專利名稱:應用軟件開發(fā)系統(tǒng)及其方法、應用軟件開發(fā)程序、以及應用軟件生成方法
技術領域:
本發(fā)明涉及一種通過組合多個軟件組件進行應用軟件開發(fā)的應用軟件開發(fā)方法。
背景技術:
過去,已知有組合多個軟件組件進行應用軟件開發(fā)的應用軟件開發(fā)方法。在這樣的現(xiàn)有應用軟件開發(fā)方法中,如圖19所示那樣,通過在物理層組合面向特定平臺41安裝的軟件組件即物理組件42(參照標記43),進行應用軟件40的開發(fā)。
然而,在上述現(xiàn)有的應用軟件開發(fā)方法中,由于軟件組件的組合在物理層被描述,所以,需要依賴于安裝有軟件組件的平臺(OS和中間件、語言、通信等系統(tǒng)環(huán)境)的描述,存在難以將開發(fā)的應用軟件40移到其它平臺的問題。
另外,在上述現(xiàn)有應用軟件開發(fā)方法中,由于在開發(fā)的應用軟件40混合存在應用軟件本來的處理(例如業(yè)務處理)的描述和平臺固有的處理的描述,所以,存在應用軟件40的維護性差的問題。
發(fā)明內(nèi)容
本發(fā)明就是鑒于這樣的情況而作出的,其目的在于提供一種可容易地開發(fā)能夠靈活對應平臺等系統(tǒng)環(huán)境變化的、維護性優(yōu)良的應用軟件的應用軟件開發(fā)系統(tǒng)及其方法、應用軟件開發(fā)程序、以及應用軟件生成方法。
圖20為用于示意地說明本發(fā)明的應用軟件開發(fā)方法的圖。如圖20所示,在本發(fā)明中,分別對應于多個軟件組件,設置通過抽出不依賴于平臺41的部分而構(gòu)成的邏輯組件52,通過組合這些各邏輯組件52(參照標記53),進行應用軟件的設計。然后,根據(jù)由這樣的設計獲得的邏輯設計信息和軟件組件的物理安裝信息(包含物理組件42與邏輯組件52之間的對應關系的物理組件信息和存放物理組件42的安裝信息的組件庫),生成可在特定平臺41上運行的應用軟件40。
在這樣的基本原理下,本發(fā)明提供一種應用軟件開發(fā)系統(tǒng)作為其第1解決手段,該應用軟件開發(fā)系統(tǒng)通過組合多個軟件組件開發(fā)應用軟件;其特征在于具有邏輯設計部和物理安裝部,該邏輯設計部支持通過根據(jù)邏輯組件信息組合多個邏輯組件進行的應用軟件的設計,輸出由該設計獲得的邏輯設計信息,而該邏輯組件信息包含邏輯組件的定義信息,該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成;該物理安裝部根據(jù)由上述邏輯設計部輸出的邏輯設計信息和軟件組件的物理安裝信息生成可在系統(tǒng)環(huán)境上運行的應用軟件。
而且,在上述第1解決手段中,上述邏輯設計信息最好由XML語言描述。
另外,在上述第1解決手段中,最好上述邏輯設計部和上述物理安裝部分別設在通過網(wǎng)絡相互連接的客戶計算機上和服務器計算機上,在上述客戶計算機和上述服務器計算機之間進行上述邏輯設計信息的交換。
另外,本發(fā)明提供一種應用軟件開發(fā)方法作為其第2解決手段,該應用軟件開發(fā)方法通過組合多個軟件組件開發(fā)應用軟件;其特征在于包含支持根據(jù)邏輯組件信息組合多個邏輯組件而進行的應用軟件設計的步驟,和根據(jù)由上述設計獲得的邏輯設計信息和軟件組件的物理安裝信息生成可在系統(tǒng)環(huán)境上運行的應用軟件的步驟,而該邏輯組件信息包含邏輯組件的定義信息,該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成。
另外,本發(fā)明提供一種應用軟件開發(fā)程序作為其第3解決手段,該應用軟件開發(fā)程序通過組合多個軟件組件開發(fā)應用軟件;其特征在于使計算機執(zhí)行支持根據(jù)邏輯組件信息組合多個邏輯組件而進行的應用軟件設計的程序,和輸出由上述設計獲得的邏輯設計信息的程序,而該邏輯組件信息包含邏輯組件的定義信息,該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成。
另外,本發(fā)明提供一種應用軟件開發(fā)程序作為其第4解決手段,該應用軟件開發(fā)程序通過組合多個軟件組件開發(fā)應用軟件;其特征在于使計算機執(zhí)行讀取通過組合邏輯組件獲得的邏輯設計信息的程序,和根據(jù)該讀取的邏輯設計信息和軟件組件的物理安裝信息生成可在系統(tǒng)環(huán)境上運行的應用軟件的程序,而該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成。
另外,本發(fā)明提供一種應用軟件生成方法作為其第5解決手段,該應用軟件生成方法通過組合多個軟件組件生成應用軟件;其特征在于包含顯示分別與多個軟件組件相對應地設置的邏輯組件的特定信息以促使用戶選擇邏輯組件的步驟、對用戶選擇的邏輯組件,根據(jù)包含其定義信息的邏輯組件信息生成邏輯設計信息的步驟、及根據(jù)上述邏輯設計信息和軟件組件的物理安裝信息生成應用軟件的步驟。
按照本發(fā)明,將通過組合軟件組件進行的應用軟件的開發(fā)分成(1)邏輯層和(2)物理層來進行,在該邏輯層通過抽出軟件組件中的不依賴于平臺等系統(tǒng)環(huán)境的部分而形成邏輯組件并將其進行組合,設計應用軟件,在該物理層根據(jù)由該設計獲得的邏輯設計信息,組合作為依賴于系統(tǒng)環(huán)境的軟件組件即物理組件,生成應用軟件;所以,對于邏輯層各部,可與最終系統(tǒng)環(huán)境無關地通用,通過相對于最終的系統(tǒng)環(huán)境分別準備物理層各部,可開發(fā)與系統(tǒng)環(huán)境對應的應用軟件。為此,可容易地開發(fā)能夠靈活地對應于系統(tǒng)環(huán)境變化的、維護性優(yōu)良的應用軟件。
另外,按照本發(fā)明,由XML語言這樣的通用性高的語言描述連接邏輯層處理與物理層處理的邏輯設計信息,從而可使物理層和邏輯層雙方具有自由度。為此,可使各層的替換變得容易,而且可延長應用軟件的業(yè)務處理的邏輯表現(xiàn)的壽命。
另外,按照本發(fā)明,將邏輯層(邏輯設計部)和物理層(物理安裝部)分別設到客戶計算機上和服務器計算機上,在客戶計算機與服務器計算機之間交換邏輯設計信息,從而可減小客戶計算機與服務器計算機之間的通信量。因此,即使在互聯(lián)網(wǎng)環(huán)境下,也可從客戶計算機側(cè)開發(fā)服務器計算機側(cè)的應用軟件,可應用于提供在互聯(lián)網(wǎng)環(huán)境下的開放式的應用軟件開發(fā)環(huán)境那樣的服務中。
圖1為示出本發(fā)明的應用軟件開發(fā)系統(tǒng)的一實施形式的圖。
圖2為詳細示出圖1中的應用軟件開發(fā)系統(tǒng)的設計工具(邏輯設計部)的圖。
圖3為示出在圖1的應用軟件開發(fā)系統(tǒng)中對用戶顯示的工具畫面的一例的圖。
圖4為用于說明圖1和圖2所示設計工具的的邏輯組件工具信息設定部(規(guī)格信息生成部)的動作的流程圖。
圖5為用于說明圖1和圖2所示設計工具的設計工具主體(設計部主體)的動作的流程圖。
圖6為用于說明圖1所示的源代碼生成處理部的動作的流程圖。
圖7為示出在圖1所示應用軟件開發(fā)系統(tǒng)中所用的邏輯組件信息的一例的圖。
圖8為示出圖1所示的由應用軟件開發(fā)系統(tǒng)輸出的邏輯設計信息的一例的圖。
圖9為示出圖1所示的在應用軟件開發(fā)系統(tǒng)中使用的物理組件信息與各軟件組件的代碼生成方法相關的信息)的一例的圖。
圖10為示出圖1所示的在應用軟件開發(fā)系統(tǒng)中使用的物理組件信息(與整體的代碼生成方法相關的信息)的一例的圖。
圖11為示出由圖1所示應用軟件開發(fā)系統(tǒng)生成的源代碼一例的圖。
圖12為示出本發(fā)明的應用軟件開發(fā)系統(tǒng)的另一實施形式的系統(tǒng)構(gòu)成圖。
圖13為用于說明圖12所示源代碼生成處理部的動作的流程圖。
圖14為用于說明圖12所示組件對象生成處理部的動作的流程圖。
圖15為示出在圖12所示應用軟件開發(fā)系統(tǒng)中使用的物理組件信息(與各軟件組件的代碼生成方法相關的信息)的一例的圖。
圖16為示出在圖12所示應用軟件開發(fā)系統(tǒng)中使用的物理組件信息(與整體的代碼生成方法相關的信息)的一例的圖。
圖17為示出由圖12所示應用軟件開發(fā)系統(tǒng)生成的源代碼一例的圖。
圖18為示出本發(fā)明的應用軟件開發(fā)系統(tǒng)適用的分散開發(fā)環(huán)境的一例的圖。
圖19為用于示意地說明現(xiàn)有應用軟件開發(fā)方法的圖。
圖20為用于示意地說明本發(fā)明應用軟件開發(fā)方法的圖。
具體實施例方式
下面參照
本發(fā)明的實施形式。圖1-圖11為用于說明本發(fā)明的應用軟件開發(fā)系統(tǒng)的一實施形式的圖。在本實施形式中,以在單一的計算機上實現(xiàn)應用軟件開發(fā)系統(tǒng)的場合為例進行說明。
如圖1所示,本實施形式的應用軟件開發(fā)系統(tǒng)通過組合多個軟件組件開發(fā)應用軟件,具有設計工具(邏輯設計部)1、源代碼生成處理部2、及編譯器(可運行文件生成部)3。源代碼生成處理部2和編譯器3構(gòu)成物理安裝部。
其中,設計工具1根據(jù)邏輯組件信息4,支持通過組合多個邏輯組件而進行的應用軟件的設計,輸出通過該設計獲得的邏輯設計信息5。在這里,輸入到設計工具1的邏輯組件信息4包含邏輯組件定義信息,例如由XML語言描述成字符串數(shù)據(jù)(參照圖7(a)(b))。邏輯組件為用于應用軟件設計的組件,分別與多個軟件組件對應地設置,通過從軟件組件中抽出不依賴于平臺(系統(tǒng)環(huán)境)的部分而構(gòu)成。另外,由設計工具1輸出的邏輯設計信息5包含各邏輯組件的屬性信息和各邏輯組件間的連接信息,例如由XML語言描述為字符串數(shù)據(jù)(參照圖8)。
另一方面,源代碼生成處理部2和編譯器3根據(jù)由設計工具1輸出的邏輯設計信息5和軟件組件的物理安裝信息(物理組件信息6和組件庫8)生成可在特定平臺上運行的應用軟件(可運行文件9)。
具體地說,源代碼生成處理部2根據(jù)由設計工具1輸出的邏輯設計信息5和物理組件信息6生成源代碼7。而且,輸入到源代碼生成處理部2的物理組件信息6包含面向特定平臺安裝的物理組件與邏輯組件間的對應關系,例如由XML語言描述為字符串數(shù)據(jù)(參照圖9和圖10(a)(b)(c))。邏輯組件與物理組件的對應關系不限于1對1,也可為1對多個。例如,對于邏輯組件“A”有成為物理組件“a”的場合,對于邏輯組件“A”也有成為物理組件“a+b”的場合,對相同的“A”也可定義多個物理組件。更為具體地說,如對邏輯組件“帶檢查的更新”有物理組件成為“UpdateWithCheck”的場合,對于邏輯組件“帶檢查的更新”也有物理組件成為“Check”+“Update”的場合,對于相同邏輯組件“帶檢查的更新”可定義多個物理組件。另外,由源代碼生成處理部2輸出的源代碼7例如由Java等程序語言描述為字符串數(shù)據(jù)(參照圖11)。
另外,編譯器3根據(jù)由源代碼生成處理部2生成的源代碼7和存放各物理組件的安裝信息(界面和類型定義)的組件庫8生成可在特定的平臺上運行的可運行文件9。存放于組件庫8中的物理組件使用EJB、JavaBeans和Java類等。
以上由設計工具1、邏輯組件信息4、及邏輯設計信息5構(gòu)成邏輯層,由源代碼生成處理部2、編譯器3、物理組件信息6、源代碼7、組件庫8、及可運行文件9構(gòu)成物理層。
圖2為詳細示出圖1中的設計工具1的圖。
如圖2所示,設計工具1具有根據(jù)邏輯組件信息4生成邏輯組件工具信息12的邏輯組件工具信息設定部(規(guī)格信息生成部)11、及根據(jù)由邏輯組件工具信息設定部11生成的邏輯組件工具信息12,支持通過組合各邏輯組件而進行的應用軟件的設計的設計工具主體(設計部主體)13。邏輯組件信息4包含邏輯組件基本信息4a(各邏輯組件的ID和屬性信息、輸入輸出信息等)和邏輯組件相關信息4b(各邏輯組件間的連接信息)作為邏輯組件的定義信息。另外,邏輯組件工具信息12用于表示各邏輯組件的規(guī)格信息,包含各邏輯組件的輸入輸出規(guī)格(邏輯組件輸入輸出規(guī)格12a)、各邏輯組件間的連接規(guī)格(邏輯組件連接規(guī)格12b)、及各邏輯組件的屬性規(guī)格(邏輯組件屬性規(guī)格12c)。從設計工具主體13輸出的邏輯設計信息5包含各邏輯組件的屬性信息(組件屬性信息5a)和各邏輯組件間的連接信息(組件連接信息5b)。
另外,設計工具1具有與設計工具主體13連接的畫面輸入輸出界面部14。在這里,畫面輸入輸出界面部14提供在工具畫面上將成為設計基礎的多個邏輯組件表示為圖標的圖示用戶界面(GUI),通過由關系線連接圖標的圖形構(gòu)造,可成為表現(xiàn)構(gòu)成作為開發(fā)對象的應用軟件的軟件組件的組合。畫面輸入輸出界面部14可作為在Web瀏覽器等應用軟件上動作的界面程序加以實現(xiàn)。
圖3為示出工具畫面一例的圖。如圖3所示,工具畫面20具有工具盤區(qū)域21和作業(yè)區(qū)域22。其中,在工具盤區(qū)域21根據(jù)邏輯組件信息4一覽顯示與成為設計基礎的邏輯組件對應的多個圖標23。另外,在作業(yè)區(qū)域22顯示根據(jù)配置于工具盤區(qū)域21的圖標23而粘貼的多個圖標24。配置于作業(yè)區(qū)域22的圖標24與構(gòu)成作為開發(fā)對象的應用軟件的多個軟件組件對應。
在這樣的工具畫面20中,用戶可通過鼠標等輸入裝置對圖標進行各種操作(圖標的粘貼、移動、及添加關系等),與針對這些圖標的操作連動地組合邏輯組件,進行應用程序的設計。
具體地說,例如,在配置于工具盤區(qū)域21的多個圖標23中的任意圖標(圖標A、B、C)上單擊鼠標的左鍵后,在作業(yè)區(qū)域22的任意位置再次單擊鼠標左鍵,可將圖標24(圖標A、B、C)粘貼到作業(yè)區(qū)域22(參照標記26)。這樣在作業(yè)區(qū)域22粘貼圖標24后,在圖標24上單擊鼠標的右鍵,彈出菜單(圖中未示),通過適當選擇該菜單中的項目,可設定邏輯組件的屬性(邏輯組件的名稱(“parent”、“child1”等)等。
另外,在配置于作業(yè)區(qū)域22的圖標中,與要設定關系的原部件對應的圖標(在圖3中為圖標A)的輸出端子上按下鼠標的左鍵,在按住左鍵的狀態(tài)下將鼠標移動(拖動)到與要設定關系的目標部件對應的圖標(在圖3中為圖標B、C),從而可定義圖標間的關系線25(參照圖27)。
在工具畫面20上的對圖標的操作(圖標的配置、移動、及添加關系等)由鼠標等的基本操作實現(xiàn)。鼠標等的基本操作在邏輯組件間得到統(tǒng)一。
下面說明這樣構(gòu)成的本實施形式的作用。
首先,根據(jù)圖4和圖5說明圖1和圖2所示應用軟件開發(fā)系統(tǒng)的邏輯層(設計工具1)的處理。
圖4為用于說明圖1和圖2所示設計工具1的邏輯組件工具信息設定部11的動作的流程圖。
如圖4所示,設計工具1的邏輯組件工具信息設定部11首先讀取邏輯組件信息4中的邏輯組件基本信息4a(步驟101),根據(jù)該邏輯組件基本信息4a,對每個各邏輯組件生成邏輯組件輸入輸出規(guī)格12a和邏輯組件屬性規(guī)格12c(步驟102和步驟103)。然后,讀取邏輯組件信息4中的邏輯組件相關信息4b(步驟104),根據(jù)該邏輯組件相關信息4b對每次邏輯組件的組合生成邏輯組件連接規(guī)格12b(步驟105)。
圖7(a)(b)為示出邏輯組件信息4的一例的圖。其中,圖7(a)示出包含邏輯組件基本信息4a的一部分(各邏輯組件的ID)與邏輯組件相關信息4b(各邏輯組件間的連接信息)的整體信息。另外,圖7(b)示出包含邏輯組件基本信息4a的一部分(各邏輯組件的屬性信息和輸入輸出信息)的個別信息。
在圖7(a)的標記(A)的部分描述了各邏輯組件的ID(<componenttype=″A″/>等)。另外,在標記(B)的部分描述了成為邏輯組件連接規(guī)格12b的基礎的各邏輯組件間的連接信息(<connectionfrom=″A″to=″B″/>等)?!?amp;lt;connection from=″A″to=″B″/>”的部分表示可從軟件組件A連接到軟件組件B。
另外,在圖7(b)的標記(c)的部分描述了邏輯組件屬性規(guī)格12c的基礎的各邏輯組件的屬性信息(<property name=″name″type=″string″/>等)?!?amp;lt;property name=″name″type=″string″/><propertyname=″option″type=″string″1>”的部分表示具有″name″和″option″這樣2個字符串屬。另外,標記(D)的部分描述了邏輯組件輸入輸出規(guī)格12a的基礎的各邏輯組件的輸入輸出信息(<terminalid=″out″type″out″min=1 max=3>…</terminal>等)。其中,“<terminalid=″out″type″out″min=1 max=3><connectwithtype=″B″><connectwith type=″C″/></terminal>”的部分表示具有″out″這樣的輸出端子,可連接1根到3根,連接目標為軟件組件B或C。
圖5為用于說明圖1和圖2所示設計工具1的設計工具主體13的動作的流程圖。
如圖5所示,設計工具1的畫面輸入輸出界面部14在設計工具主體13的控制下示出圖3所示工具畫面20,接受用戶的圖標的操作,支持通過各邏輯組件的組合進行的應用軟件的設計(步驟201和步驟202)。
具體地說,對于畫面輸入輸出界面部14,用戶在配置于工具畫面20的工具盤區(qū)域21的多個圖標23中的任意圖標(圖標A、B、C)上單擊鼠標的左鍵后,在作業(yè)區(qū)域22的任意位置再次單擊鼠標的左鍵,從而將圖標24(圖標A、B、C)粘貼到作業(yè)區(qū)域22(步驟201)。
另外,在配置于作業(yè)區(qū)域22中的與要設定關系的原部件對應的圖標(在圖3中為圖標A)的輸出端子上按下鼠標的左鍵,在按下左鍵的狀態(tài)下將鼠標移動(拖動)到與要設定關系的目標部件對應的圖標(在圖3中為圖標B、C),從而定義圖標間的關系線25(步驟202)。
之后,設計工具主體13根據(jù)邏輯組件工具信息12的邏輯組件輸入輸出規(guī)格12a檢查各邏輯組件的連接點的確實性(步驟203),在不確實的場合,返回到步驟202繼續(xù)處理,在確實的場合,前進到步驟205(步驟204)。
另外,設計工具主體13根據(jù)邏輯組件工具信息12的邏輯組件連接規(guī)格12b檢查各邏輯組件間的連接關系的確實性(步驟205),在不確實的場合,返回到步驟202繼續(xù)處理,在確實的場合,前進到步驟207(步驟206)。
之后,用戶在粘貼到作業(yè)區(qū)域22的圖標24上單擊鼠標的右鍵,彈出菜單(圖中未示出),適當選擇該菜單中的項目,設定邏輯組件的屬性等(步驟207),然后,根據(jù)邏輯組件工具信息12的邏輯組件屬性規(guī)格12c檢查各邏輯組件的確實性(步驟208),當不確實時,返回到步驟207繼續(xù)處理,確實時,前進到步驟210(步驟209)。
最后,判斷所有邏輯組件的處理是否結(jié)束(步驟210),在處理結(jié)束時,輸出邏輯設計信息5(步驟211)。
圖8為示出邏輯設計信息5的一例的圖,邏輯設計信息5包含組件屬性信息5a(參照標記(E))和組件連接信息5b(參照標記(F))。在這里,圖8所示邏輯設計信息5對應于圖3所示那樣的邏輯組件的組合(在圖標A(名稱為″parent″,選擇項為″1″)下將圖標B(名稱為″child1″,選擇項為″11″)和圖標C(名稱為″child2″,選擇項為″12″)連接成樹狀的組合)。
下面,根據(jù)圖6說明圖1所示應用軟件開發(fā)系統(tǒng)的物理層(源代碼生成處理部2和編譯器3)的處理。
圖6為用于說明圖1所示源代碼生成處理部2的動作的流程圖。
如圖6所示,源代碼生成處理部2根據(jù)從設計工具1輸出的邏輯設計信息5(組件屬性信息5a和組件連接信息5b)和物理組件信息6生成源代碼7。
圖9和圖10(a)(b)(c)為示出物理組件信息6的一例的圖。其中,圖9示出物理組件信息6中的與各軟件組件的代碼生成方法相關的信息,包含面向特定的平臺安裝的物理組件與邏輯組件間的對應關系,各物理組件的屬性相關信息和連接相關信息。另外,圖10(a)(b)(c)示出與整體代碼生成方法相關的信息。
在圖9的標記(G)的部分描述了各軟件組件的初始化代碼生成方法(<newcode=″ClassX%name%=ClassX.newinstanceO″/>等)。另外,在標記(H)的部分描述各軟件組件的屬性設定代碼生成方法(<propertyname=″option″code=″%name%.addItem(″OPTION″,″%value%″,″string″)″/>等)。另外,在標記(I)的部分描述各軟件組件的組件連接設定代碼生成方法(<code=″%from%.addItem(″CHILD″,%to%);/>等)。標記(G)(H)的部分和標記(I)的部分分別是成為源代碼7的屬性設定代碼7b和組件連接設定代碼7c的基礎的部分,通過“%xxx%的項目與邏輯設計信息5的值的置換,從而生成源代碼7的相當部分。
另外,在圖10(a)的標記(J)的部分描述了成為源代碼7的初始設定代碼7a的基礎的初始設定代碼生成方法(initfile=″fwlinit.java″/>),在標記(K)的部分描述了成為源代碼7的結(jié)束處理設定代碼7d的基礎的結(jié)束處理設定代碼生成方法(<termfile=″fwlterm.java″/>)。而且,“initfile=″fwlinit.java″/>”的部分為用于輸入圖10(b)所示模板文件(fwlinit.java)的描述,“<termfile=″fwlterm.java″/>”的部分為用于輸入圖10(c)所示模板文件(fwlterm.java)的描述。
根據(jù)這樣的物理組件信息6,源代碼生成處理部2如圖6所示那樣首先輸出源代碼7的初始設定代碼7a(步驟301)。
然后,讀取邏輯設計信息5中的組件屬性信息5a(步驟302),根據(jù)該組件屬性信息5a和物理組件信息6對每個軟件組件生成源代碼7的屬性設定代碼7b(步驟303)。
之后,判斷所有軟件組件的處理是否結(jié)束(步驟304),在未結(jié)束處理的場合,返回到步驟302繼續(xù)進行處理,在結(jié)束處理的場合,前進到步驟305。
然后,讀取邏輯設計信息5中的組件連接信息5b(步驟305),根據(jù)該組件屬性信息5a和物理組件信息6對各軟件組件生成源代碼7的組件連接設定代碼7c(步驟306)。
然后,判斷是否所有軟件組件的處理結(jié)束(步驟307),在處理未結(jié)束的場合,返回步驟305繼續(xù)進行處理,在結(jié)束了處理的場合,根據(jù)物理組件信息6輸出源代碼7的結(jié)束處理設定代碼7d(步驟308),結(jié)束整體的處理。圖11為示出這樣生成的源代碼7的一例。
這樣由源代碼生成處理部2生成源代碼7后,如圖1所示,通過將源代碼7加載到編譯器3,根據(jù)存放于組件庫8的各物理組件的安裝信息生成可在特定平臺上運行的可運行文件9。
這樣按照本實施形式,通過組合軟件組件進行的應用軟件的開發(fā)分成(1)邏輯層和(2)物理層進行,在該邏輯層通過抽出軟件組件中的不依賴于平臺等系統(tǒng)環(huán)境的部分而形成邏輯組件,并將其進行組合,設計應用軟件,在該物理層組合依賴于系統(tǒng)環(huán)境的軟件組件即物理組件而生成應用軟件;所以,對于邏輯層各部,可與最終系統(tǒng)環(huán)境無關地通用,通過相應于最終的系統(tǒng)環(huán)境分別準備物理層各部,可開發(fā)與系統(tǒng)環(huán)境對應的應用軟件。為此,可容易地開發(fā)出能夠靈活地對應于系統(tǒng)環(huán)境變化的、維護性優(yōu)良的應用軟件。
具體地說,(1)可根據(jù)由邏輯層(設計工具1)的處理獲得的邏輯設計信息5,通過替換物理層的組件和處理(源代碼生成處理部2、物理組件信息6、組件庫8、及編譯器3等)生成與多個系統(tǒng)環(huán)境對應的應用軟件。另外,(2)在邏輯層的處理中獲得的邏輯設計信息5由于受系統(tǒng)環(huán)境的影響小,所以,即使在運行的系統(tǒng)環(huán)境因技術進步等而改變較大的場合,通過對各應用軟件預備與新系統(tǒng)環(huán)境相符的物理層的組件和處理,可容易地生成能夠在新系統(tǒng)環(huán)境上運行的應用軟件。另外,(3)由于邏輯層的處理可不受物理層束縛地限定于輸出特定的邏輯設計信息5,所以,可容易地預備在多個系統(tǒng)環(huán)境上工作的開發(fā)工具。
另外,按照本實施形式,由XML語言這樣的通用性高的語言描述用于連接邏輯層處理與物理層處理的邏輯設計信息5,所以,可使物理層和邏輯層雙方具有自由度,可使各層的替換變得容易,而且可延長應用軟件的業(yè)務處理的邏輯表現(xiàn)的壽命。
而且,在上述實施形式中,由源代碼生成處理部2生成包含屬性設定代碼和組件連接設定代碼的源代碼7,同時,由編譯器3根據(jù)該源代碼7生成設定了軟件組件的屬性和軟件組件間的連接關系的可運行文件9,但也可如圖12-圖17所示其它實施形式那樣,在運行時設定軟件組件的屬性和軟件組件間的連接關系。
下面,根據(jù)圖12-圖17說明本發(fā)明的應用軟件開發(fā)系統(tǒng)的其它實施形式。圖12-圖17所示實施形式除了在可運行文件運行時設定軟件組件的屬性和軟件組件間的連接信息這一點外,其它與圖1-圖11所示實施形式大體相同。在圖12-圖17所示實施形式中,與圖1-圖11所示實施形式相同的部分采用相同標記,省略詳細說明。
如圖12所示,由源代碼生成處理部2′生成包含翻譯型組件對象生成代碼的源代碼7,當運行根據(jù)該源代碼7由編譯器3生成的可運行文件9時,由運行處理部15和組件對象生成處理部16設定軟件組件屬性和軟件組件間的連接信息。
圖13為用于說明圖12所示源代碼生成處理部2′的動作的流程圖。
如圖13所示,源代碼生成處理部2′根據(jù)物理組件信息6生成源代碼7。
圖15和圖16(a)(b)(c)(d)為示出物理組件信息6的一例的圖。其中,圖15示出物理組件信息6中的與各軟件組件的組件對象生成方法相關的信息。另外,圖16(a)(b)(c)(d)為與整體代碼生成方法相關的信息。
在圖16(a)的標記(L)的部分描述了成為源代碼7的初始設定代碼7a(參照圖13)的基礎的初始設定代碼生成方法(<initfile=″fwlinit.java″/>),在標記(M)的部分描述了成為源代碼7的翻譯型組件對象生成代碼7e(參照圖13)的基礎的組件對象生成方法(<main file=″fwlmain.java″/>),標記(N)的部分描述了成為源代碼7的結(jié)束處理設定代碼7d(參照圖13)的基礎的結(jié)束處理設定代碼生成方法(<term file=″fwlterm.java″/>)。其中,<initfile=″fwlinit.java″/>的部分為用于輸入圖16(b)所示模板文件(fwlinit.java)的描述,<mainfile=″fwlmain.java″/>的部分為用于輸入圖16(c)所示模板文件(fwmain.java)的描述,<term file=″fwlterm.java″/>的部分為用于輸入圖16(d)所示模板文件(fwterm.java)的描述。
根據(jù)這樣的物理組件信息6,源代碼生成處理部2′如圖13所示那樣,先輸出源代碼7的初始設定代碼7a(步驟401)。
接著,輸出源代碼7的翻譯型組件對象生成代碼7e(步驟402)。
然后,根據(jù)物理組件信息6輸出源代碼7的結(jié)束處理設定代碼7d(步驟403),結(jié)束整體處理。圖17為示出這樣生成的源代碼7的一例。
這樣由源代碼生成處理部2′生成源代碼7后,如圖12所示那樣,將源代碼7加載到編譯器3,從而根據(jù)存放于組件庫8的各物理組件的安裝信息生成可在特定平臺上運行的可運行文件9。
這樣生成的可運行文件9可由運行處理部15運行,運行處理部15在其處理過程中啟動組件對象生成處理部16,從而生成軟件組件的軟件對象,并設定該軟件組件的屬性和軟件組件間連接信息。
圖14為用于說明圖12所示組件對象生成處理部16的動作的流程圖。
如圖14所示,組件對象生成處理部16根據(jù)由設計工具1輸出的邏輯設計信息5(組件屬性信息5a和組件連接信息5b)和物理組件信息6,進行組件對象的生成、屬性和組件間的連接信息的設定等。
具體地說,先從邏輯設計信息5中讀取組件屬性信息5a(步驟501),根據(jù)該組件屬性信息5a和物理組件信息6對軟件組件生成組件對象,設定屬性(步驟502)。
之后,判斷是否所有軟件組件的處理結(jié)束(步驟503),在處理未結(jié)束的場合,返回到步驟501繼續(xù)進行處理,在處理結(jié)束的場合,前進到步驟504。
接著,從邏輯設計信息5中讀取組件連接信息5b(步驟504),根據(jù)該組件屬性信息5a和物理組件信息6對各軟件組件設定相互參照信息,連接組件間(步驟505)。
之后,判斷是否所有軟件組件的處理結(jié)束(步驟506),在處理未結(jié)束的場合,返回到步驟504繼續(xù)進行處理,在處理結(jié)束的場合,結(jié)束整體處理。
在上述圖1-圖11所示實施形式和圖12-圖17所示實施形式中,以在單一的計算機上實現(xiàn)應用軟件開發(fā)系統(tǒng)的場合為例進行了說明,但不限于此,也可在圖18所示那樣的分散開發(fā)環(huán)境下實現(xiàn)應用軟件開發(fā)系統(tǒng)。具體地說,也可如圖18所示那樣,在通過互聯(lián)網(wǎng)等網(wǎng)絡32相互連接的多個客戶計算機31和服務器計算機33中,將邏輯層(設計工具1和邏輯組件信息4)設置在客戶計算機31上,將物理層(源代碼生成處理部2、編譯器3、物理組件信息6、源代碼7、組件庫8、及可運行文件9)設置在服務器計算機33。在該場合,在客戶計算機31與服務器計算機33之間,可交換不涉及物理組件的安裝信息的、由XML語言等形成的邏輯設計信息5,所以,可減小通信量。因此,即使在互聯(lián)網(wǎng)環(huán)境下,也可從客戶計算機31側(cè)開發(fā)服務器計算機33側(cè)的應用軟件,可應用于提供在互聯(lián)網(wǎng)環(huán)境下的開放式的應用軟件開發(fā)環(huán)境那樣的服務中。
另外,在上述圖1-圖11所示實施形式和圖12-圖17所示實施形式中,由編譯器3集成由源代碼生成處理部2生成的源代碼7和組件庫8,但不限于此,也可通過組件選擇手法或組件插入手法等集成源代碼7和組件庫8。
另外,在上述圖1-圖11所示實施形式和圖12-圖17所示實施形式中,由XML語言描述邏輯組件信息4和物理組件信息6,但不限于此,可由表形式等任意的形式描述。
另外,在上述圖1-圖11所示實施形式和圖12-圖17所示實施形式中,應用軟件開發(fā)系統(tǒng)的設計工具1、源代碼生成處理部2、及編譯器3可作為程序加以實現(xiàn)。這樣的程序構(gòu)成的應用軟件開發(fā)程序,如果為例如圖18所示那樣的分散開發(fā)環(huán)境,則可記錄到軟盤34和CD-ROM35等計算機可讀取的記錄媒體中,在客戶計算機31和服務器計算機33中,可按圖4-圖6所示順序開發(fā)應用軟件。
作為本發(fā)明的記錄媒體,不限于軟盤和CD-ROM,只要為如磁盤、內(nèi)存儲器、硬盤、光盤(CD-R、DVD(Digital Versatile Disk)等)、磁光盤(MO(MagnetoOptical)等)、半導體存儲器等那樣可記錄程序而且可由計算機讀取的記錄媒體,則其記錄形式可為任何形式。另外,作為記錄媒體,還包含在網(wǎng)絡上傳送時的載波和信息傳遞媒體。
另外,也可根據(jù)從記錄媒體安裝到計算機的程序的指示,由在計算機上工作的OS(操作系統(tǒng))或數(shù)據(jù)庫管理軟件、網(wǎng)絡軟件等MW(中間件)等進行用于實現(xiàn)本發(fā)明的各處理的一部分。
另外,本發(fā)明的記錄媒體不限于與計算機獨立的媒體,也包括下載由局域網(wǎng)和互聯(lián)網(wǎng)等傳輸?shù)某绦虿⒋鎯驎簳r存儲的記錄媒體。
另外,記錄媒體不限于1個,從多個媒體實施本發(fā)明的處理的場合也包含于本發(fā)明的記錄媒體中,媒體的構(gòu)成可為任一構(gòu)成。
如以上那樣按照本發(fā)明,可容易地開發(fā)能夠靈活地與系統(tǒng)環(huán)境變化相對應的、維護性良好的應用軟件。
權(quán)利要求
1.一種應用軟件開發(fā)系統(tǒng),通過組合多個軟件組件開發(fā)應用軟件;其特征在于具有邏輯設計部和物理安裝部,該邏輯設計部支持根據(jù)邏輯組件信息組合多個邏輯組件而進行的應用軟件的設計,輸出由該設計獲得的邏輯設計信息,而該邏輯組件信息包含邏輯組件的定義信息,該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成;該物理安裝部根據(jù)由上述邏輯設計部輸出的邏輯設計信息和軟件組件的物理安裝信息生成可在系統(tǒng)環(huán)境上運行的應用軟件。
2.根據(jù)權(quán)利要求1所述的應用軟件開發(fā)系統(tǒng),其特征在于上述邏輯設計部具有規(guī)格信息生成部和設計部主體,而該規(guī)格信息生成部根據(jù)上述邏輯組件信息生成上述各邏輯組件的規(guī)格信息,該設計部主體支持,根據(jù)由上述規(guī)格信息生成部生成的上述各邏輯組件的規(guī)格信息,通過組合上述各邏輯組件進行的應用軟件設計。
3.根據(jù)權(quán)利要求2所述的應用軟件開發(fā)系統(tǒng),其特征在于上述各邏輯組件的規(guī)格信息包含上述各邏輯組件的輸入輸出規(guī)格、上述各邏輯組件間的連接規(guī)格、及上述各邏輯組件的屬性規(guī)格。
4.根據(jù)權(quán)利要求1所述的應用軟件開發(fā)系統(tǒng),其特征在于上述物理安裝部具有源代碼生成處理部和可運行文件生成部,而該源代碼生成處理部根據(jù)由上述邏輯設計部輸出的邏輯設計信息、和包含面向系統(tǒng)環(huán)境安裝的物理組件與邏輯組件間的對應關系的物理組件信息,生成源代碼,該可運行文件生成部根據(jù)由上述源代碼生成處理部生成的源代碼、和存放上述各物理組件安裝信息的組件庫,生成可在系統(tǒng)環(huán)境上運行的可運行文件。
5.根據(jù)權(quán)利要求1所述的應用軟件開發(fā)系統(tǒng),其特征在于上述物理安裝部具有源代碼生成處理部、可運行文件生成部、及組件對象生成處理部,而該源代碼生成處理部根據(jù)包含面向系統(tǒng)環(huán)境安裝的物理組件與邏輯組件間的對應關系的物理組件信息,生成源代碼,該可運行文件生成部根據(jù)由上述源代碼生成處理部生成的源代碼和存放上述各物理組件安裝信息的組件庫,生成可在系統(tǒng)環(huán)境上運行的可運行文件,該組件對象生成處理部在運行由可運行文件生成部生成的可運行文件時,根據(jù)由上述邏輯設計部輸出的邏輯設計信息和上述物理組件信息,生成組件對象,并設定組件的屬性和組件間的連接關系。
6.根據(jù)權(quán)利要求1-5中任何一項所述的應用軟件開發(fā)系統(tǒng),其特征在于上述邏輯設計信息包含上述各邏輯組件的屬性信息和上述各邏輯組件間的連接信息。
7.根據(jù)權(quán)利要求1-6中任何一項所述的應用軟件開發(fā)系統(tǒng),其特征在于上述邏輯設計信息由XML語言描述。
8.根據(jù)權(quán)利要求1-7中任何一項所述的應用軟件開發(fā)系統(tǒng),其特征在于上述邏輯設計部和上述物理安裝部分別設置在通過網(wǎng)絡相互連接的客戶計算機上和服務器計算機上,在上述客戶計算機與上述服務器計算機之間交換上述邏輯設計信息。
9.一種應用軟件開發(fā)方法,通過組合多個軟件組件開發(fā)應用軟件;其特征在于包含支持根據(jù)邏輯組件信息組合多個邏輯組件而進行的應用軟件設計的步驟,和根據(jù)由上述設計獲得的邏輯設計信息和軟件組件的物理安裝信息,生成可在系統(tǒng)環(huán)境上運行的應用軟件的步驟,該邏輯組件信息包含邏輯組件的定義信息,該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成。
10.一種應用軟件開發(fā)程序,通過組合多個軟件組件開發(fā)應用軟件;其特征在于使計算機執(zhí)行支持根據(jù)邏輯組件信息組合多個邏輯組件而進行的應用軟件設計的程序,和輸出由上述設計獲得的邏輯設計信息的程序,而該邏輯組件信息包含邏輯組件的定義信息,該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成。
11.一種應用軟件開發(fā)程序,通過組合多個軟件組件開發(fā)應用軟件;其特征在于使計算機執(zhí)行讀取通過組合邏輯組件獲得的邏輯設計信息的程序,和根據(jù)該讀取的邏輯設計信息和軟件組件的物理安裝信息生成可在系統(tǒng)環(huán)境上運行的應用軟件的程序,而該邏輯組件是分別與多個軟件組件相對應地設置并通過從該軟件組件中抽出不依賴于系統(tǒng)環(huán)境的部分而構(gòu)成。
12.一種應用軟件生成方法,通過組合多個軟件組件生成應用軟件;其特征在于包含顯示分別與多個軟件組件相對應地設置的邏輯組件的特定信息,以促使用戶選擇邏輯組件的步驟、對用戶選擇的邏輯組件,根據(jù)包含其定義信息的邏輯組件信息,生成邏輯設計信息的步驟、及根據(jù)上述邏輯設計信息和軟件組件的物理安裝信息,生成應用軟件的步驟。
全文摘要
提供一種應用軟件開發(fā)系統(tǒng),該應用軟件開發(fā)系統(tǒng)可開發(fā)出能夠靈活地對應平臺等系統(tǒng)環(huán)境變化的、維護性優(yōu)良的應用軟件。設計工具1支持根據(jù)邏輯組件信息4,通過組合多個邏輯組件進行的應用軟件的設計,輸出由該設計獲得的邏輯設計信息5。源代碼生成處理部2和編譯器3根據(jù)由設計工具1輸出的邏輯設計信息5和軟件組件的物理安裝信息(物理組件信息6和組件庫8)生成可在特定平臺上運行的應用軟件(可運行文件9)。
文檔編號G06F9/46GK1357822SQ0113753
公開日2002年7月10日 申請日期2001年10月26日 優(yōu)先權(quán)日2000年10月27日
發(fā)明者關武夫 申請人:株式會社東芝