專利名稱:一種從元模型生成實(shí)例圖的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件開發(fā)的方法及系統(tǒng),尤其是一種從元模型生成實(shí)例圖的方法及系統(tǒng),屬于軟件開發(fā)的技術(shù)領(lǐng)域。
背景技術(shù):
目前軟件開發(fā)的主要方法主要有兩類,一類是基于軟件重用的思想,利用軟件組件、中間件來快速形成所需的軟件系統(tǒng);另一類是基于軟件自動(dòng)生成的思想,利用相應(yīng)領(lǐng)域的元模型,經(jīng)過自動(dòng)生成模型進(jìn)而直接生成與模型對(duì)應(yīng)的軟件。與利用軟件組件、中間件來快速形成所需的軟件系統(tǒng)的技術(shù)路線比較,軟件自動(dòng)生成的技術(shù)路線的主要不同在于元模型可以作為一種領(lǐng)域描述語言提供給領(lǐng)域工程師使用,由領(lǐng)域工程師通過修改元模型生成的模型來修改所需的軟件代碼,而領(lǐng)域工程師通常不是計(jì)算機(jī)專家,可以不懂編程技術(shù)。所述相應(yīng)的領(lǐng)域指一些特定工程領(lǐng)域,如自動(dòng)控制系統(tǒng)設(shè)計(jì),嵌入式系統(tǒng)設(shè)計(jì),系統(tǒng)集成,乃至軟件設(shè)計(jì)等。在這些領(lǐng)域中開發(fā)所需的軟件系統(tǒng)需要建立這些領(lǐng)域特定系統(tǒng)的模型,如描述特定系統(tǒng)的類圖。對(duì)這些領(lǐng)域的各種特定模型進(jìn)行抽象,可以得到描述這些特定模型的模型,這就是所述的元模型。元模型也可以是類圖。而由元模型可以生成符合相應(yīng)領(lǐng)域系統(tǒng)需求的模型,這就是所述的元模型的實(shí)例或?qū)嵗龍D。利用相應(yīng)領(lǐng)域的元模型,經(jīng)過自動(dòng)生成模型而直接生成與模型對(duì)應(yīng)的軟件的技術(shù)目前尚不成熟,這一過程有諸多技術(shù)難點(diǎn)需要解決。而由元模型對(duì)應(yīng)實(shí)例自動(dòng)生成方法就是要解決的技術(shù)難點(diǎn)之一。在軟件開發(fā)過程中,由元模型自動(dòng)生成實(shí)例模型進(jìn)而生成相應(yīng)代碼的方法,可以認(rèn)為是開發(fā)特定領(lǐng)域應(yīng)用軟件的一種先進(jìn)方法。目前已有一些軟件開發(fā)環(huán)境支持從實(shí)例模型自動(dòng)生成相應(yīng)應(yīng)用軟件框架或部分代碼(如ROSE平臺(tái)可以根據(jù)類圖生成程序中類和方法的框架),但不支持從元模型自動(dòng)生成實(shí)例模型。在這些目前已有的軟件開發(fā)環(huán)境中,從元模型生成實(shí)例模型的工作仍由手工完成。對(duì)于較為復(fù)雜的軟件模型,這種從元模型生成實(shí)例模型的手工完成方式存在以下問題:
(I)、不能保證所生成實(shí)例模型的正確性。(2)、降低了開發(fā)效率。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種從元模型生成實(shí)例圖的方法及系統(tǒng),其能確保軟件開發(fā)過程中從元模型生成實(shí)例模型環(huán)節(jié)中手工完成方式的正確性,提高操作的效率,適應(yīng)范圍廣,安全可靠。按照本發(fā)明提供的技術(shù)方案,一種從元模型生成實(shí)例圖的方法,所述從元模型生成實(shí)例圖的方法包括如下步驟:
a、提供所需的元模型圖形文件,將所述元模型圖形文件中包含的類以及類之間的關(guān)系映射到第一關(guān)系中;
b、在上述第一關(guān)系中添加所需的應(yīng)用環(huán)境約束條件,以形成對(duì)應(yīng)的約束中轉(zhuǎn)關(guān)系; C、將上述約束中轉(zhuǎn)關(guān)系生成與應(yīng)用環(huán)境約束條件對(duì)應(yīng)的具體模型的第二關(guān)系;
d、將上述第二關(guān)系逆映射得到第二圖形文件。還包括步驟e、將第二圖形文件導(dǎo)入可視化軟件開發(fā)環(huán)境中,通過所述可視化軟件開發(fā)環(huán)境得到需要的實(shí)例圖。所述步驟a中,元模型圖形文件包括由UML描述的類形文件。所述步驟b中,在第一關(guān)系中添加所需的應(yīng)用環(huán)境約束條件的方法包括在第一關(guān)系中添加屬性列和屬性值。所述第一關(guān)系為符合關(guān)系數(shù)據(jù)庫的關(guān)系,所述元模型圖形文件中包含的類以及類之間的關(guān)系對(duì)應(yīng)于第一關(guān)系中的行。所述步驟C包括如下步驟:
Cl、掃描第一關(guān)系,將第一關(guān)系中表示類的行根據(jù)應(yīng)用環(huán)境約束條件生成第二關(guān)系中對(duì)應(yīng)實(shí)例的類的行;
c2、掃描第一關(guān)系,將第一關(guān)系中表示類間關(guān)系的行根據(jù)應(yīng)用環(huán)境約束條件生成第二關(guān)系中對(duì)應(yīng)實(shí)例的類間關(guān)系的行。所述步驟Cl中,所述第一關(guān)系中表示類的行為抽象類時(shí),在第二關(guān)系中生成的對(duì)應(yīng)為所述抽象類的部分或全部非抽象派生類。所述步驟c2包括如下步驟:
c21、當(dāng)?shù)谝魂P(guān)系中表示類間關(guān)系行的兩端均為抽象類,則任選一端的抽象類,并找到所述抽象類的非抽象派生類,對(duì)于每一個(gè)所述抽象類的非抽象派生類,執(zhí)行步驟c22 ;c22、當(dāng)?shù)谝魂P(guān)系中表示類間關(guān)系行的兩端中有一端為非抽象類,另一端為抽象類時(shí),則找到所述抽象類的非抽象派生類,對(duì)于每一個(gè)所述非抽象類的非抽象派生類,執(zhí)行步驟c23 ;
c23、當(dāng)所述第一關(guān)系中表示類間關(guān)系行的兩端均為非抽象類時(shí),根據(jù)應(yīng)用環(huán)境約束條件直接生成第二關(guān)系中對(duì)應(yīng)實(shí)例間的類間關(guān)系的行。一種實(shí)現(xiàn)從元模型生成實(shí)例圖的系統(tǒng),包括
第一可視化建模平臺(tái),用于生成元模型圖形文件,并將所述元模型圖形文件輸入映射模塊;
映射模塊,用于將接收元模型圖形文件,并將所述元模型圖形文件中包含的類以及類之間的關(guān)系映射成第一關(guān)系;
約束關(guān)系添加模塊,接收應(yīng)用環(huán)境約束條件,并將所述應(yīng)用環(huán)境約束條件添加到第一關(guān)系中,形成約束中轉(zhuǎn)關(guān)系;
應(yīng)用模型關(guān)系生成模塊,接收約束中轉(zhuǎn)關(guān)系,并根據(jù)應(yīng)用環(huán)境約束條件,將約束中轉(zhuǎn)關(guān)系生成第二關(guān)系;
逆映射模塊,接收第二關(guān)系,并將第二關(guān)系中表示的類以及之間的關(guān)系逆映射得到第二圖形文件;
第二可視化建模平臺(tái),接收第二圖形文件,并由第二圖形文件得到所需的實(shí)例圖。所述第一關(guān)系為符合關(guān)系數(shù)據(jù)庫的關(guān)系,所述元模型圖形文件中包含的類以及類之間的關(guān)系對(duì)應(yīng)于第一關(guān)系中的行。本發(fā)明的優(yōu)點(diǎn):利用第一關(guān)系表示元模型圖形文件中包含的類以及類之間的關(guān)系,通過添加應(yīng)用環(huán)境約束關(guān)系得到約束中轉(zhuǎn)關(guān)系,并根據(jù)應(yīng)用環(huán)境約束關(guān)系生成第二關(guān)系,由第二關(guān)系逆映射得到第二圖形文件,第二圖形文件通過可視化建模平臺(tái)得到元模型的實(shí)例圖,能確保軟件開發(fā)過程中從元模型生成實(shí)例模型環(huán)節(jié)中手工完成方式的正確性,提高操作的效率,適應(yīng)范圍廣,安全可靠。
圖1為本發(fā)明的結(jié)構(gòu)框圖。圖2為本發(fā)明的一種元模型圖形文件的示意圖。
具體實(shí)施例方式下面結(jié)合具體附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。為了能夠確保從元模型生成實(shí)例圖的正確性,同時(shí)提高開發(fā)效率,本發(fā)明所述從元模型生成實(shí)例圖的方法包括如下步驟:
a、提供所需的元模型圖形文件,將所述元模型圖形文件中包含的類以及類之間的關(guān)系映射到第一關(guān)系中;
所述元模型圖形文件是由統(tǒng)一建模語言UML (unified modeling language)描述的類形文件,所述類形文件可以在支持UML的軟件開發(fā)環(huán)境中創(chuàng)建并導(dǎo)出,本發(fā)明實(shí)施例中,元模型圖形文件為第一圖形文件。所述第一關(guān)系為符合關(guān)系數(shù)據(jù)庫的關(guān)系,所述元模型圖形文件中包含的類以及類之間的關(guān)系對(duì)應(yīng)于第一關(guān)系中的行。本發(fā)明實(shí)施例中,“關(guān)系”指數(shù)學(xué)集合論中的關(guān)系,圖形文件中的“圖”指數(shù)學(xué)圖論中的圖。描述同一事物的“關(guān)系”與“圖”之間存在著一一對(duì)應(yīng),因而可以據(jù)此通過映射相互轉(zhuǎn)換,即能夠由元模型圖形文件映射得到第一關(guān)系。由于UML類圖描述了類以及類之間的關(guān)系,因此可以將類圖表示成頂點(diǎn)的集合和邊的集合,并進(jìn)而用第一關(guān)系來表示這兩個(gè)集合。為了方便起見,將頂點(diǎn)的集合和邊的集合表示到同一個(gè)關(guān)系中,即所述兩個(gè)集合的元素對(duì)應(yīng)于所述關(guān)系的一行,利用關(guān)系的屬性值標(biāo)志元素是屬于頂點(diǎn)的集合還是邊的集合。本發(fā)明實(shí)施例中,元模型圖形文件中的類映射為頂點(diǎn)的集合,元模型圖形文件中的類間關(guān)系映射為邊的集合。b、在上述第一關(guān)系中添加所需的應(yīng)用環(huán)境約束條件,以形成對(duì)應(yīng)的約束中轉(zhuǎn)關(guān)系;
原則上,一個(gè)元模型圖形文件可以生成無數(shù)個(gè)不同的實(shí)例。為了使從元模型生成的實(shí)例圖符合需要應(yīng)用環(huán)境的需求,必須將應(yīng)用環(huán)境的特定信息添加到所述第一關(guān)系中,比如對(duì)元模型圖形文件中某條邊的生成實(shí)例數(shù)量的限制等等。這些應(yīng)用環(huán)境的信息就是所述所需要的應(yīng)用環(huán)境約束條件。本發(fā)明中,由于第一關(guān)系為符合關(guān)系數(shù)據(jù)庫的關(guān)系,對(duì)所述關(guān)系添加特定應(yīng)用環(huán)境約束條件可以通過對(duì)第一關(guān)系添加相應(yīng)的屬性列和對(duì)應(yīng)行的屬性值列實(shí)現(xiàn)的。C、將上述約束中轉(zhuǎn)關(guān)系生成與應(yīng)用環(huán)境約束條件對(duì)應(yīng)的具體模型的第二關(guān)系;
由于從元模型圖形文件生成的實(shí)例圖仍然是一個(gè)由UML類圖描述的模型,因此也可以用一個(gè)關(guān)系來表示。本發(fā)明實(shí)施例中,第二個(gè)關(guān)系就是表示所述元模型實(shí)例的關(guān)系。本發(fā)明實(shí)施例中,第一關(guān)系描述元模型圖形文件,第二關(guān)系描述對(duì)應(yīng)的實(shí)例模型。第一關(guān)系中的一行可以對(duì)應(yīng)于第二關(guān)系中的O行、一行、或多行,究竟對(duì)應(yīng)多少行取決于應(yīng)用環(huán)境約束條件。為了確保層次清晰,確保生成實(shí)例模型的正確性,本發(fā)明第一關(guān)系通過添加的應(yīng)用環(huán)境約束條件來生成第二關(guān)系,由第二關(guān)系通過逆映射得到第二圖形,降低從約束中轉(zhuǎn)關(guān)系直接生成第二圖形文件的算法的復(fù)雜度。根據(jù)面向?qū)ο笤?,抽象類不能有?shí)例,只有非抽象類才能有實(shí)例;因此步驟c包括如下步驟:
Cl、掃描第一關(guān)系,將第一關(guān)系中表示類的行根據(jù)應(yīng)用環(huán)境約束條件生成第二關(guān)系中對(duì)應(yīng)實(shí)例的類的行;
對(duì)于所有表示頂點(diǎn)的行,根據(jù)約束條件生成第二個(gè)關(guān)系的若干頂點(diǎn)行。如果所述第一個(gè)關(guān)系的某頂點(diǎn)行表示的是抽象類,則根據(jù)所述要求在第二個(gè)關(guān)系中生成所述抽象類的部分或全部非抽象派生類的若干頂點(diǎn)行。所述第一個(gè)關(guān)系中,有些行描述頂點(diǎn),稱之為頂點(diǎn)行;有些行表示邊,稱之為邊行。生成元模型的實(shí)例,首先生成元模型中類的實(shí)例即頂點(diǎn)的實(shí)例。若頂點(diǎn)行描述的是抽象類,則只能生成抽象類的非抽象派生類的實(shí)例。c2、掃描第一關(guān)系,將第一關(guān)系中表不類間關(guān)系的行根據(jù)應(yīng)用環(huán)境約束條件生成第二關(guān)系中對(duì)應(yīng)實(shí)例的類間關(guān)系的行。所述步驟c2包括如下步驟:
c21、當(dāng)?shù)谝魂P(guān)系中表示類間關(guān)系行的兩端均為抽象類,則任選一端的抽象類,并找到所述抽象類的非抽象派生類,對(duì)于每一個(gè)所述抽象類的非抽象派生類,執(zhí)行步驟c22 ;c22、當(dāng)?shù)谝魂P(guān)系中表示類間關(guān)系行的兩端中有一端為非抽象類,另一端為抽象類時(shí),則找到所述抽象類的非抽象派生類,對(duì)于每一個(gè)所述非抽象類,執(zhí)行步驟c23 ;
c23、當(dāng)所述第一關(guān)系中表示類間關(guān)系行的兩端均為非抽象類時(shí),根據(jù)應(yīng)用環(huán)境約束條件直接生成第二關(guān)系中對(duì)應(yīng)實(shí)例間的類間關(guān)系的行。執(zhí)行步驟c23后,根據(jù)執(zhí)行路徑?jīng)Q定下一步的執(zhí)行點(diǎn)。所述步驟c2的依據(jù)是面向?qū)ο笤?,根?jù)面向?qū)ο蟮脑?,只有找到非抽象類時(shí)才能直接生成實(shí)例。d、將上述第二關(guān)系逆映射得到第二圖形文件。當(dāng)生成第二關(guān)系后,根據(jù)前述說明可知,由第二關(guān)系中表示的類以及類之間的關(guān)系,逆映射能得到第二圖形文件,本發(fā)明實(shí)施例中,第二圖形文件為XML (ExtensibleMarkup Language)格式的圖形文件。將所述第二個(gè)圖形文件導(dǎo)入到所述支持UML的開發(fā)環(huán)境中并打開,即可以得到所述元模型實(shí)例圖。得到所述實(shí)例圖后,可以進(jìn)一步生成該實(shí)例圖的程序框架甚至整個(gè)程序,至于能夠生成到什么程度取決于開發(fā)平臺(tái)的功能。本發(fā)明的軟件可以作為從元模型到程序的軟件自動(dòng)生成開發(fā)平臺(tái)的組成部分。如圖1所示:為了實(shí)現(xiàn)從元模型生成需要的實(shí)例圖,本發(fā)明的系統(tǒng)包括
第一可視化建模平臺(tái),用于生成元模型圖形文件,并將所述元模型圖形文件輸入映射模塊;
映射模塊,用于將接收元模型圖形文件,并將所述元模型圖形文件中包含的類以及類之間的關(guān)系映射成第一關(guān)系;
約束關(guān)系添加模塊,接收應(yīng)用環(huán)境約束條件,并將所述應(yīng)用環(huán)境約束條件添加到第一關(guān)系中,形成約束中轉(zhuǎn)關(guān)系;
應(yīng)用模型關(guān)系生成模塊,接收約束中轉(zhuǎn)關(guān)系,并根據(jù)應(yīng)用環(huán)境約束條件,將約束中轉(zhuǎn)關(guān)系生成第二關(guān)系;
逆映射模塊,接收第二關(guān)系,并將第二關(guān)系中表示的類以及之間的關(guān)系逆映射得到第二圖形文件;
第二可視化建模平臺(tái),接收第二圖形文件,并由第二圖形文件得到所需的實(shí)例圖。所述第一可視化建模平臺(tái)與第二可視化建模平臺(tái)可以采用相同的平臺(tái),本發(fā)明實(shí)施例中,可以采用VP Ssuite4.2平臺(tái)。
實(shí)施例如圖1和圖2所示:采用支持UML的開發(fā)環(huán)境VP Ssuite4.2平臺(tái)繪制得到元模型圖形文件,圖2中為狀態(tài)機(jī)模型的模型,一些物理過程或計(jì)算過程可以用狀態(tài)空間來描述。狀態(tài)空間一般包括初始狀態(tài)、終止?fàn)顟B(tài)、狀態(tài)的集合和從某一狀態(tài)到另一狀態(tài)的轉(zhuǎn)換規(guī)則或條件-動(dòng)作對(duì)的集合。狀態(tài)機(jī)模型描述了狀態(tài)空間的要素,而狀態(tài)機(jī)元模型是對(duì)狀態(tài)機(jī)模型的描述。從UML語義看,圖1中有十個(gè)類或頂點(diǎn),即狀態(tài)機(jī)、抽象頂點(diǎn)狀態(tài)、初始狀態(tài)、抽象狀態(tài)、復(fù)合狀態(tài)、終態(tài)、簡單狀態(tài)、行動(dòng)、轉(zhuǎn)移、事件。這些頂點(diǎn)之間的邊描述了類之間的關(guān)系。從狀態(tài)機(jī)元模型語義看,頂點(diǎn)狀態(tài)機(jī)表明該圖是一個(gè)狀態(tài)機(jī)的元模型圖,該模型顯示狀態(tài)機(jī)由狀態(tài)抽象頂點(diǎn)狀態(tài)和狀態(tài)之間的轉(zhuǎn)換轉(zhuǎn)移組成。抽象頂點(diǎn)狀態(tài)可以是初始狀態(tài)、復(fù)雜狀態(tài)、終止?fàn)顟B(tài)或簡單狀態(tài),轉(zhuǎn)移是在某事件觸發(fā)下的動(dòng)作。所述元模型圖形文件對(duì)于本發(fā)明的方法而言是已知的,對(duì)于本發(fā)明的算法或軟件而目是輸入。將所述元模型圖形文件的矩形框視作頂點(diǎn),矩形框之間的連接線視作邊,再將所有所述頂點(diǎn)和邊一一表示成相應(yīng)的記錄,可以將所述元模型映射到一個(gè)關(guān)系中,這就是所述的第一個(gè)關(guān)系。所述第一個(gè)關(guān)系可以由一個(gè)關(guān)系數(shù)據(jù)庫表文件實(shí)現(xiàn)。在表示第一個(gè)關(guān)系的數(shù)據(jù)庫表中,根據(jù)實(shí)際應(yīng)用環(huán)境添加某些屬性列和屬性值。比如,可以根據(jù)具體應(yīng)用,來設(shè)定元模型實(shí)例中終止?fàn)顟B(tài)的數(shù)量,簡單狀態(tài)的數(shù)量,邊的特定頂點(diǎn),等等。本實(shí)施例中,設(shè)定了頂點(diǎn)轉(zhuǎn)移的實(shí)例個(gè)數(shù)為3。所述的這些設(shè)定是通過對(duì)表示第一個(gè)關(guān)系的數(shù)據(jù)庫表添加某些屬性和屬性值實(shí)現(xiàn)的。本實(shí)施例中,在生成第二關(guān)系時(shí),若掃描到描述抽象頂點(diǎn)狀態(tài)的頂點(diǎn)行,則根據(jù)抽象類的語義,只能在第二個(gè)關(guān)系中生成初始狀態(tài)、復(fù)合狀態(tài)、終態(tài)或簡單狀態(tài)的對(duì)應(yīng)行。生成第二關(guān)系后,由第二關(guān)系逆映射得到第二圖形文件,本實(shí)施例中,將所述XML格式的第二圖形文件導(dǎo)入到VP Ssuite4.2平臺(tái)中,即可以得到所需的實(shí)例圖。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種從元模型生成實(shí)例圖的方法,其特征是,所述從元模型生成實(shí)例圖的方法包括如下步驟: (a)、提供所需的元模型圖形文件,將所述元模型圖形文件中包含的類以及類之間的關(guān)系映射到第一關(guān)系中; (b)、在上述第一關(guān)系中添加所需的應(yīng)用環(huán)境約束條件,以形成對(duì)應(yīng)的約束中轉(zhuǎn)關(guān)系; (C)、將上述約束中轉(zhuǎn)關(guān)系生成與應(yīng)用環(huán)境約束條件對(duì)應(yīng)的具體模型的第二關(guān)系; (d)、將上述第二關(guān)系逆映射得到第二圖形文件。
2.根據(jù)權(quán)利要求1所述的從元模型生成實(shí)例圖的方法,其特征是:還包括步驟(e)、將第二圖形文件導(dǎo)入可視化軟件開發(fā)環(huán)境中,通過所述可視化軟件開發(fā)環(huán)境得到需要的實(shí)例圖。
3.根據(jù)權(quán)利要求1所述的從元模型生成實(shí)例圖的方法,其特征是:所述步驟(a)中,元模型圖形文件包括由UML描述的類形文件。
4.根據(jù)權(quán)利要求1所述的從元模型生成實(shí)例圖的方法,其特征是:所述步驟(b)中,在第一關(guān)系中添加所需的應(yīng)用環(huán)境約束條件的方法包括在第一關(guān)系中添加屬性列和屬性值。
5.根據(jù)權(quán)利要求1所述的從元模型生成實(shí)例圖的方法,其特征是:所述第一關(guān)系為符合關(guān)系數(shù)據(jù)庫的關(guān)系,所述元模型圖形文件中包含的類以及類之間的關(guān)系對(duì)應(yīng)于第一關(guān)系中的行。
6.根據(jù)權(quán)利要求5所述的從元模型生成實(shí)例圖的方法,其特征是,所述步驟(c)包括如下步驟: (Cl)、掃描第一關(guān)系,將 第一關(guān)系中表示類的行根據(jù)應(yīng)用環(huán)境約束條件生成第二關(guān)系中對(duì)應(yīng)實(shí)例的類的行; (c2)、掃描第一關(guān)系,將第一關(guān)系中表示類間關(guān)系的行根據(jù)應(yīng)用環(huán)境約束條件生成第二關(guān)系中對(duì)應(yīng)實(shí)例的類間關(guān)系的行。
7.根據(jù)權(quán)利要求6所述的從元模型生成實(shí)例圖的方法,其特征是:所述步驟(Cl)中,所述第一關(guān)系中表示類的行為抽象類時(shí),在第二關(guān)系中生成的對(duì)應(yīng)為所述抽象類的部分或全部非抽象派生類。
8.根據(jù)權(quán)利要求6所述的從元模型生成實(shí)例圖的方法,其特征是,所述步驟(c2)包括如下步驟:(c21)、當(dāng)?shù)谝魂P(guān)系中表示類間關(guān)系行的兩端均為抽象類,則任選一端的抽象類,并找到所述抽象類的非抽象派生類,對(duì)于每一個(gè)所述抽象類的非抽象派生類,執(zhí)行步驟(c22);(c22)、當(dāng)?shù)谝魂P(guān)系中表示類間關(guān)系行的兩端中有一端為非抽象類,另一端為抽象類時(shí),則找到所述抽象類的非抽象派生類,對(duì)于每一個(gè)所述非抽象類的非抽象派生類,執(zhí)行步驟(c23); (c23)、當(dāng)所述第一關(guān)系中表示類間關(guān)系行的兩端均為非抽象類時(shí),根據(jù)應(yīng)用環(huán)境約束條件直接生成第二關(guān)系中對(duì)應(yīng)實(shí)例間的類間關(guān)系的行。
9.一種實(shí)現(xiàn)從元模型生成實(shí)例圖的系統(tǒng),其特征是,包括 第一可視化建模平臺(tái),用于生成元模型圖形文件,并將所述元模型圖形文件輸入映射模塊; 映射模塊,用于將接收元模型圖形文件,并將所述元模型圖形文件中包含的類以及類之間的關(guān)系映射成第一關(guān)系; 約束關(guān)系添加模塊,接收應(yīng)用環(huán)境約束條件,并將所述應(yīng)用環(huán)境約束條件添加到第一關(guān)系中,形成約束中轉(zhuǎn)關(guān)系; 應(yīng)用模型關(guān)系生成模塊,接收約束中轉(zhuǎn)關(guān)系,并根據(jù)應(yīng)用環(huán)境約束條件,將約束中轉(zhuǎn)關(guān)系生成第二關(guān)系; 逆映射模塊,接收第二關(guān)系,并將第二關(guān)系中表示的類以及之間的關(guān)系逆映射得到第二圖形文件; 第二可視化建模平臺(tái),接收第二圖形文件,并由第二圖形文件得到所需的實(shí)例圖。
10.根據(jù)權(quán)利要求9所述實(shí)現(xiàn)從元模型生成實(shí)例圖的系統(tǒng),其特征是:所述第一關(guān)系為符合數(shù)據(jù)庫的關(guān)系,所述元模型圖形文件中包含的類以及類之間的關(guān)系對(duì)應(yīng)于第一關(guān)系中的行。
全文摘要
本發(fā)明涉及一種軟件開發(fā)的方法及系統(tǒng),尤其是一種從元模型生成實(shí)例圖的方法及系統(tǒng),屬于軟件開發(fā)的技術(shù)領(lǐng)域。按照本發(fā)明提供的技術(shù)方案,一種從元模型生成實(shí)例圖的方法,所述從元模型生成實(shí)例圖的方法包括如下步驟a、提供所需的元模型圖形文件,將所述元模型圖形文件中包含的類以及類之間的關(guān)系映射到第一關(guān)系中;b、在上述第一關(guān)系中添加所需的應(yīng)用環(huán)境約束條件,以形成對(duì)應(yīng)的約束中轉(zhuǎn)關(guān)系;c、將上述約束中轉(zhuǎn)關(guān)系生成與應(yīng)用環(huán)境約束條件對(duì)應(yīng)的具體模型的第二關(guān)系;d、將上述第二關(guān)系逆映射得到第二圖形文件。本發(fā)明能確保軟件開發(fā)過程中從元模型生成實(shí)例模型環(huán)節(jié)中手工完成方式的正確性,提高操作的效率,適應(yīng)范圍廣,安全可靠。
文檔編號(hào)G06F9/44GK103116496SQ20131005911
公開日2013年5月22日 申請(qǐng)日期2013年2月25日 優(yōu)先權(quán)日2013年2月25日
發(fā)明者朱嘉鋼, 陸曉, 鄧躍設(shè) 申請(qǐng)人:江蘇曉山信息產(chǎn)業(yè)股份有限公司