亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

核電軟件開發(fā)自動化系統(tǒng)和方法

文檔序號:10624573閱讀:739來源:國知局
核電軟件開發(fā)自動化系統(tǒng)和方法
【專利摘要】公開了核電軟件開發(fā)自動化系統(tǒng)和方法,系統(tǒng)包括:架構設計部,將核電軟件的架構抽象為樹型數(shù)據(jù)結構,采用廣度優(yōu)先搜索進行遍歷,自動生成代碼框架;詳細設計部,進行核電軟件詳細設計圖差異的自動對比;以及代碼開發(fā)部,接收輸入數(shù)據(jù),并根據(jù)事先定義的抽象定義模板,自動生成并輸出程序代碼。根據(jù)本發(fā)明的系統(tǒng)和方法,將軟件自動化技術引入核電軟件開發(fā)的各個環(huán)節(jié),搭建統(tǒng)一的核電軟件開發(fā)自動化工具平臺,在充分提高軟件開發(fā)效率的同時降低了人為引入的軟件缺陷率。
【專利說明】
核電軟件開發(fā)自動化系統(tǒng)和方法
技術領域
[0001]本發(fā)明示例性實施例總體上涉及軟件開發(fā)自動化領域,具體涉及一種核電軟件開發(fā)自動化系統(tǒng)和方法。
【背景技術】
[0002]軟件自動化技術是計算機領域當今的熱門技術,IBM、微軟等國際IT公司都在該領域投入了大量研發(fā)實力。IBM公司開發(fā)的Rat1nal Software Architect (RSA)是一款基于統(tǒng)一建模語言(UML)的軟件架構設計自動化程序,架構師根據(jù)軟件需求利用UML語言繪制軟件架構圖,然后RSA會將軟件架構設計圖轉化為程序框架代碼。利用RSA進行軟件架構的自動化設計可以保證所開發(fā)的程序代碼架構忠實于原始設計,并通過可視化圖形界面操作的方式使設計人員更專注于軟件的業(yè)務邏輯,從繁瑣的代碼編寫中解脫出來。
[0003]在代碼生成自動化領域,當前流行的代碼生成器大致有如下幾類:1)代碼Munger ;2)內(nèi)嵌代碼擴展器(Inline Code Expander,ICE) ;3)混合代碼生成器(MixedCode Generator, MCG) ;4)部分類生成器(Partial Class Generator, PCG) ;5)層生成器(Tier Generator,TG)。代碼Munger是代碼生成器中最基本的一種,通過處理一個或多個程序源碼文件生成解析文件。JavaDoc即屬于該類生成器,它讀取和解析Java源代碼中的注釋,然后利用一組模板產(chǎn)生HTML文檔。ICE的輸入和輸出都是代碼,輸出代碼是在輸入代碼的基礎上對一些代碼段進行擴展。開發(fā)該類生成器須從設計一門新語言開始,通常新語言是在現(xiàn)有語言的基礎上進行一些語法擴展,而ICE就用來把該新語言的代碼轉換成現(xiàn)有語言的代碼。Oracle公司的Pro系列(Pro*Ada、Pro*C、Pro*C0B0L)就屬于該類生成器。MCG和ICE類似,輸入和輸出都是代碼文件,但其無須先設計一門新語言,輸入和輸出都是同一種高級程序語言的源代碼,而且其最大的特點是產(chǎn)生的代碼可作為下一次代碼產(chǎn)生流程的輸入。該類代碼生成器可用于從寫在代碼注釋里的測試用例數(shù)據(jù)產(chǎn)生測試代碼、從寫在代碼注釋里的存取定義產(chǎn)生數(shù)據(jù)庫存取代碼等等。PCG將一個抽象定義文件作為輸入,產(chǎn)生一組基本類。這些基本類完成了大部分底層的工作,用戶可以通過繼承和擴展這些基本類的方法來完成設計。TG讀取一個抽象定義文件,并用一組模板文件生成一個或多個輸出源文件,這些輸出源文件完成應用程序的一個層次的所有功能。這里“層”是指多層應用程序中的“層”,如數(shù)據(jù)訪問層、業(yè)務邏輯層、界面表示層等。
[0004]雖然軟件自動化技術是計算機領域的研究熱點,但目前已有的軟件自動化技術不適合核電軟件開發(fā)流程特點。核電軟件屬于科學計算類軟件,在軟件需求分析、架構設計、詳細設計、代碼開發(fā)等多個方面較傳統(tǒng)軟件開發(fā)都有很大差異,已有自動化技術不能滿足核電軟件的開發(fā)需求,很難直接應用于核電軟件開發(fā)過程中。
[0005]需要一種核電軟件開發(fā)技術,能夠結合核電軟件的特性將設計開發(fā)的各個環(huán)節(jié)自動化。

【發(fā)明內(nèi)容】

[0006]本發(fā)明示例性實施例提供了一種核電軟件開發(fā)自動化工具平臺,將軟件自動化技術引入核電軟件架構設計、詳細設計、代碼開發(fā)的各個環(huán)節(jié),搭建統(tǒng)一的核電軟件開發(fā)自動化工具平臺,充分提高軟件開發(fā)效率的同時降低了人為引入的軟件缺陷率。
[0007]根據(jù)本發(fā)明一方面,提出了一種核電軟件開發(fā)自動化系統(tǒng),包括:架構設計部,將核電軟件的架構抽象為樹型數(shù)據(jù)結構,采用廣度優(yōu)先搜索進行遍歷,自動生成代碼框架;詳細設計部,進行核電軟件詳細設計圖差異的自動對比;以及代碼開發(fā)部,接收輸入數(shù)據(jù),并根據(jù)事先定義的抽象定義模板,自動生成并輸出程序代碼。
[0008]根據(jù)本發(fā)明另一方面,提出了一種核電軟件開發(fā)自動化方法,包括:架構設計步驟,將核電軟件的架構抽象為樹型數(shù)據(jù)結構,采用廣度優(yōu)先搜索進行遍歷,自動生成代碼框架;詳細設計步驟,進行核電軟件詳細設計圖差異的自動對比;以及代碼開發(fā)步驟,接收輸入數(shù)據(jù),并根據(jù)事先定義的抽象定義模板,自動生成并輸出程序代碼。
[0009]本申請的技術方案基于核電軟件開發(fā)特點將軟件自動化技術引入架構設計、詳細設計、代碼編寫等多個環(huán)節(jié),集成為統(tǒng)一的自動化開發(fā)工具平臺。該平臺將采用模塊化設計和中間件技術,使得各自動化工具既能獨立工作,又可協(xié)同完成開發(fā)流程各階段的自動化,實現(xiàn)真正意義的核電軟件開發(fā)全流程自動化。此外,采用核電軟件自動化開發(fā)工具平臺后,可以有效降低開發(fā)人員的重復工作量,使其可以更加關注程序業(yè)務邏輯的設計與優(yōu)化,提高核電軟件的開發(fā)效率和開發(fā)質(zhì)量。
【附圖說明】
[0010]下面結合附圖對本發(fā)明的【具體實施方式】作進一步詳細的說明,其中:
[0011]圖1示出了根據(jù)本發(fā)明實施例的核電軟件開發(fā)自動化系統(tǒng)的示意框圖;
[0012]圖2示出了基于廣度優(yōu)先搜索的代碼框架自動生成流程;
[0013]圖3示出了架構樹的示例;
[0014]圖4示出了代碼架構生成結果的示例;
[0015]圖5示出了基于Vis1對象模型和COM接口的核電軟件詳細設計圖差異自動對比流程;
[0016]圖6不出了代碼開發(fā)部的不例框圖;
[0017]圖7示出了代碼開發(fā)部中主要類及類關系的示意圖;
[0018]圖8示出了代碼開發(fā)部中輸入元數(shù)據(jù)的示例;以及
[0019]圖9示出了基于圖8的輸入元數(shù)據(jù),自動生成變量定義代碼的示例。
【具體實施方式】
[0020]下面結合附圖對本發(fā)明的示例實施例進行詳述。以下描述包括各種具體細節(jié)以輔助理解,但這些具體細節(jié)應僅被示為示例性的。因此,本領域普通技術人員將認識到,可以在不脫離本公開范圍和精神的情況下對這里描述的各個實施例進行各種改變和修改。此夕卜,為了清楚和簡明起見,省略了公知功能和結構的描述。
[0021]以下描述和權利要求中使用的術語和詞語不限于其字面含義,而是僅由發(fā)明人用于實現(xiàn)本發(fā)明的清楚一致的理解。因此,本領域技術人員應當清楚,對本發(fā)明各個示例實施例的以下描述僅被提供用于說明目的,而不意在限制由所附權利要求及其等同物限定的本發(fā)明。
[0022]以下結合附圖詳細說明本發(fā)明實施例。
[0023]圖1示出了根據(jù)本發(fā)明示例實施例的核電軟件開發(fā)自動化系統(tǒng)I的示意框圖。該系統(tǒng)I包括:架構設計部10,將核電軟件的架構抽象為樹型數(shù)據(jù)結構,采用廣度優(yōu)先搜索進行遍歷,自動生成代碼框架;詳細設計部20,進行核電軟件詳細設計圖差異的自動對比;以及代碼開發(fā)部30,接收輸入數(shù)據(jù),并根據(jù)事先定義的抽象定義模板,自動生成并輸出程序代碼。
[0024]架構設計部10將核電軟件的架構抽象為包括多級節(jié)點的架構樹,從根節(jié)點開始采用廣度優(yōu)先搜索遍歷架構樹的各級節(jié)點,自頂向下的逐層生成代碼框架,最后生成可編譯運行的完整代碼框架。代碼框架包括框架代碼將包括程序預處理(Pre)、求解器(Solver)、后處理(Post)的頂層調(diào)用流程,并自動插入部分調(diào)試代碼,如程序運行日志(Log)信息等,實現(xiàn)核電軟件架構設計的自動化。由于采用架構設計自動化,程序設計人員可以更專注于計算軟件架構的設計與優(yōu)化,然后根據(jù)架構樹自動生成框架代碼。這將極大提高軟件框架的搭建效率,同時降低軟件開發(fā)的缺陷率。
[0025]詳細設計部20基于Vis1對象模型和COM接口技術實現(xiàn)核電軟件Vis1詳細設計圖差異的自動對比,能夠幫助設計人員提高設計更改效率。在詳細設計過程中,不可避免的設計更改在多人協(xié)同開發(fā)時可能會造成由于設計圖版本的不一致導致設計更改被覆蓋,降低開發(fā)效率。采用本發(fā)明技術后,開發(fā)人員可以快速發(fā)現(xiàn)不同版本程序設計圖間的差異,有效合并設計變更,在降低開發(fā)人員負擔的同時保證了設計一致性。
[0026]代碼開發(fā)部30包括:數(shù)據(jù)層,根據(jù)輸入數(shù)據(jù)提供設計圖中的變量定義元數(shù)據(jù);業(yè)務層,包括代碼生成引擎、代碼生成器和生成策略,其中生成策略描述了代碼生成規(guī)則的抽象定義模板,代碼生成引擎根據(jù)生成策略調(diào)用代碼生成器,代碼生成器利用數(shù)據(jù)層提供的元數(shù)據(jù),根據(jù)抽象定義模板生成程序代碼;以及表示層,執(zhí)行與用戶的交互,所述表示層包括事件監(jiān)聽組件和顯示策略,其中事件監(jiān)聽組件采集用戶的代碼生成需求,并傳遞給業(yè)務層以進行代碼生成,顯示策略控制代碼生成結果的呈現(xiàn)。代碼開發(fā)部30還可以包括:數(shù)據(jù)采集模塊,記錄代碼開發(fā)部的運行行為,生成日志文件,以便用戶進行調(diào)試和查錯。利用代碼開發(fā)部,將原先大量繁瑣重復的需要開發(fā)人員手工編寫的代碼轉變?yōu)橛捎嬎銠C自動生成,較好的提高了代碼開發(fā)效率。同時由于程序代碼是根據(jù)模板自動生成的,因而在代碼風格、編碼一致性等方面可以較好的滿足編程規(guī)范要求,因而從質(zhì)量保證角度確保了軟件的高可靠性。另外,當軟件設計圖發(fā)生設計變更時,無需代碼開發(fā)人員再手工修改已經(jīng)編寫過的程序代碼,只需根據(jù)變更后的設計圖重新生成新代碼覆蓋原有代碼即可,從而避免降低開發(fā)效率和引入人為錯誤。
[0027]圖2示出了可應用于架構設計部10的基于廣度優(yōu)先搜索的代碼框架自動生成流程的示例,具體描述如下:
[0028](I)首先掃描架構樹根節(jié)點,生成計算程序入口 ;
[0029](2)判斷根節(jié)點是否包含子節(jié)點;
[0030](3)若根節(jié)點沒有子節(jié)點,則算法結束,直接退出;
[0031](4)若根節(jié)點包含子節(jié)點,則使用廣度優(yōu)先搜索(BFS)遍歷架構樹的下一級子節(jié)點(例如,第一級子節(jié)點),建立代碼頂層框架,生成對應的源文件;
[0032](5)判斷遍歷到架構樹的最后I個葉子節(jié)點;
[0033](6)若沒有遍歷到架構樹的最后I個葉子節(jié)點,則使用BFS繼續(xù)循環(huán)遍歷架構樹的下一級子節(jié)點(例如,第二級子節(jié)點),依此類推,生成程序各層次框架代碼;
[0034](7)若已遍歷到架構樹的最后I個葉子節(jié)點,則遍歷結束,生成完整的代碼框架,
算法退出。
[0035]圖3示出了針對核電軟件的架構樹的示例,其中以Fortran程序代碼為例。如圖3所示,該架構樹共包含三層節(jié)點。首先掃描架構樹的根節(jié)點LATC,生成程序入口主函數(shù)program LATC。然后掃描架構樹的I級子節(jié)點,生成程序的頂層代碼框架subroutinepre O、subroutine solver O和subroutine post () ο I級子節(jié)點遍歷完畢后會開始遍歷架構樹的2級子節(jié)點,2級子節(jié)點為頂層代碼框架包含的子程序。這里I級子節(jié)點pre下包含的2級子節(jié)點為讀用戶輸入文件subroutine readlnputFile O、讀多群截面數(shù)據(jù)庫 subroutine readDatabase O、用戶輸入檢查 subroutine inputCheck O、網(wǎng)格設置subroutine meshes O、常數(shù)計算 subroutine constants O 等;I 級子節(jié)點 solver 包含的 2級子節(jié)點為共振計算 subroutine Resonance_XS O、棚.元均勾化 subroutine Cell_homo O、組件均勾化 subroutine Assembly_homo O、燃耗計算 subroutine Burnup_calc O 等;I 級子節(jié)點post包含的2級子節(jié)點為輸出處理subroutine output O。掃描完架構樹的output節(jié)點后,發(fā)現(xiàn)已經(jīng)遍歷到架構樹的最后I個葉子節(jié)點,則代碼架構生成完成。圖4示出了代碼架構生成結果的示例。
[0036]下面結合圖5具體描述詳細設計部20。如圖5所示,詳細設計部20執(zhí)行核電軟件Vis1詳細設計圖差異自動對比,流程如下:
[0037](I)首先讀入待比較差異的兩個Vis1詳細設計圖;
[0038](2)調(diào)用COM接口分別生成兩個設計文件的Shape對象集(記為A、B),對象集中每個Shape對象包含設計圖中對應圖形的所有屬性信息;
[0039](3)判斷A或B對象集是否為空;
[0040](4)若有對象集為空,則算法結束,直接退出;
[0041](5)若對象集不為空,則從對象集A中依次取出Shape對象,與對象集B中的同名對象進行屬性對比;
[0042](6)若不存在屬性差異,則表明兩個Shape對象完全相同,不存在設計變更,流程如進到(8);
[0043](7)若存在屬性差異,則記錄Shape對象屬性差異信息,流程前進到⑶;
[0044](8)判斷對象集A是否為空,若為空,則流程前進到(9),若不為空,則流程返回到
(5);
[0045](9)完成所有Shape對象屬性比較后輸出設計文件Shape對象屬性差異信息,即兩個Vis1詳細設計圖的差異信息,算法結束。
[0046]利用記錄的Shape對象屬性差異信息,開發(fā)人員可以快速發(fā)現(xiàn)不同版本程序設計圖間的差異,有效合并設計變更。
[0047]下面結合圖6和7具體描述代碼開發(fā)部30。
[0048]圖6示出了代碼開發(fā)部30的架構圖,具體包括表示層(View Layer),業(yè)務層(Business Layer)以及數(shù)據(jù)層(Data Layer)。其中數(shù)據(jù)層表示代碼生成器的輸入,例如代碼生成器將從數(shù)據(jù)層獲得堆芯物理程序設計圖中的變量定義元數(shù)據(jù),為代碼生成做好數(shù)據(jù)準備。業(yè)務層以代碼生成器(Code Generator)為核心,利用例如從數(shù)據(jù)層提供的設計圖元數(shù)據(jù)根據(jù)事先定義好的代碼抽象定義模板生成Fortran代碼,實現(xiàn)代碼生成邏輯。業(yè)務層的代碼生成引擎(CG Engine)負責根據(jù)生成策略(Generat1n Strategy)調(diào)用代碼生成器(Generator) 0生成策略就是描述代碼生成規(guī)則的抽象定義模板。表示層負責與用戶的交互,將代碼生成結果呈現(xiàn)給用戶。表示層的事件監(jiān)聽(Event Listener)組件負責采集用戶的代碼生成需求,并傳遞給業(yè)務層進行代碼生成。顯示策略(Show Strategy)則負責控制代碼生成結果的呈現(xiàn)方式,以提供較好的用戶體驗。數(shù)據(jù)采集模塊負責記錄生成器的運行行為,生成日志文件,方便進行調(diào)試和查錯。
[0049]圖7示出了代碼開發(fā)部中主要類及類關系的示意圖。在圖7中,CodeBuilderView完成表示層和數(shù)據(jù)層的雙重功能,負責接收用戶輸入的元數(shù)據(jù),并將代碼生成結果呈現(xiàn)給用戶。GenCode和InitParaProperties共同完成代碼生成的業(yè)務層功能,其中GenCode由CodeBuilderView直接調(diào)用,完成 CG Engine 的角色。GenCode 再調(diào)用 InitParaProperties完成實際代碼生成功能,這里InitParaProperties完成Code Generator的功能。另外,為了實現(xiàn)代碼可重用性,將一些通用字符串操作封裝為StringTools類,如去除字符串中的所有空格、替換字符串中的全角等號、獲取字符串中的中英文以及匹配是否為數(shù)字等等,方便在需要的地方直接調(diào)用。
[0050]圖8示出了針對核電軟件,代碼開發(fā)部中輸入元數(shù)據(jù)的示例。圖9示出了基于圖8的輸入元數(shù)據(jù),自動生成變量定義代碼的示例。
[0051]以上描述了根據(jù)本發(fā)明示例實施例的核電軟件開發(fā)自動化系統(tǒng)。根據(jù)本發(fā)明實施例,還提出了一種核電軟件開發(fā)自動化方法,包括:架構設計步驟,將核電軟件的架構抽象為樹型數(shù)據(jù)結構,采用廣度優(yōu)先搜索進行遍歷,自動生成代碼框架;詳細設計步驟,進行核電軟件詳細設計圖差異的自動對比;以及代碼開發(fā)步驟,接收輸入數(shù)據(jù),并根據(jù)事先定義的抽象定義模板,自動生成并輸出程序代碼。
[0052]在示例實施例中,在架構設計步驟中,將核電軟件的架構抽象為包括多級節(jié)點的架構樹,從根節(jié)點開始采用廣度優(yōu)先搜索遍歷架構樹的各級節(jié)點,自頂向下的逐層生成代碼框架,最后生成可編譯運行的完整代碼框架。
[0053]在示例實施例中,在生產(chǎn)代碼框架時,在代碼框架中包括程序預處理、求解器、后處理的頂層調(diào)用流程,并自動插入部分調(diào)試代碼。
[0054]在示例實施例中,在詳細設計步驟中,基于Vis1對象模型和COM接口技術,執(zhí)行核電軟件Vis1詳細設計圖差異的自動對比,以發(fā)現(xiàn)不同版本程序設計圖間的差異。
[0055]在示例實施例中,代碼開發(fā)步驟包括:根據(jù)輸入數(shù)據(jù)提供設計圖中的變量定義元數(shù)據(jù);以及根據(jù)生成策略調(diào)用代碼生成器,代碼生成器利用數(shù)據(jù)層提供的元數(shù)據(jù),根據(jù)抽象定義模板生成程序代碼,其中生成策略描述了代碼生成規(guī)則的抽象定義模板。
[0056]在示例實施例中,代碼開發(fā)步驟還包括:執(zhí)行與用戶的交互,包括采集用戶的代碼生成需求,以及控制代碼生成結果的呈現(xiàn)。
[0057]在示例實施例中,代碼開發(fā)步驟還包括:記錄代碼開發(fā)部的運行行為,生成日志文件,以便用戶進行調(diào)試和查錯。
[0058]以上的詳細描述通過使用示意圖、流程圖和/或示例,已經(jīng)闡述了根據(jù)本發(fā)明實施例的核電軟件開發(fā)自動化系統(tǒng)和方法的實施例。在這種示意圖、流程圖和/或示例包含一個或多個功能和/或操作的情況下,本領域技術人員應理解,這種示意圖、流程圖或示例中的每一功能和/或操作可以通過各種結構、硬件、軟件、固件或?qū)嵸|(zhì)上它們的任意組合來單獨和/或共同實現(xiàn)。本領域技術人員應認識到,這里所公開的實施例的一些方面在整體上或部分地可以等同地實現(xiàn)在集成電路中,實現(xiàn)為在一臺或多臺計算機上運行的一個或多個計算機程序(例如,實現(xiàn)為在一臺或多臺計算機系統(tǒng)上運行的一個或多個程序),實現(xiàn)為固件,或者實質(zhì)上實現(xiàn)為上述方式的任意組合,并且本領域技術人員根據(jù)本公開,將具備設計電路和/或?qū)懭胲浖?或固件代碼的能力。此外,本領域技術人員將認識到,本公開所述主題的機制能夠作為多種形式的程序產(chǎn)品進行分發(fā),并且無論實際用來執(zhí)行分發(fā)的信號承載介質(zhì)的具體類型如何,本公開所述主題的示例性實施例均適用。信號承載介質(zhì)的示例包括但不限于:可記錄型介質(zhì),如軟盤、硬盤驅(qū)動器、緊致盤(⑶)、數(shù)字通用盤(DVD)、數(shù)字磁帶、計算機存儲器等;以及傳輸型介質(zhì),如數(shù)字和/或模擬通信介質(zhì)(例如,光纖光纜、波導、有線通信鏈路、無線通信鏈路等)。
[0059]雖然已參照幾個典型實施例描述了本發(fā)明,但應當理解,所用的術語是說明和示例性、而非限制性的術語。由于本發(fā)明能夠以多種形式具體實施而不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應當理解,上述實施例不限于任何前述的細節(jié),而應在隨附權利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權利要求或其等效范圍內(nèi)的全部變化和改型都應為隨附權利要求所涵蓋。
【主權項】
1.一種核電軟件開發(fā)自動化系統(tǒng),包括: 架構設計部,將核電軟件的架構抽象為樹型數(shù)據(jù)結構,采用廣度優(yōu)先搜索進行遍歷,自動生成代碼框架; 詳細設計部,進行核電軟件詳細設計圖差異的自動對比;以及 代碼開發(fā)部,接收輸入數(shù)據(jù),并根據(jù)事先定義的抽象定義模板,自動生成并輸出程序代碼。2.根據(jù)權利要求1所述的系統(tǒng),其中架構設計部將核電軟件的架構抽象為包括多級節(jié)點的架構樹,從根節(jié)點開始采用廣度優(yōu)先搜索遍歷架構樹的各級節(jié)點,自頂向下的逐層生成代碼框架,最后生成可編譯運行的完整代碼框架。3.根據(jù)權利要求2所述的系統(tǒng),其中代碼框架包括程序預處理、求解器、后處理的頂層調(diào)用流程,并自動插入部分調(diào)試代碼。4.根據(jù)權利要求1所述的系統(tǒng),其中詳細設計部基于Vis1對象模型和COM接口技術,執(zhí)行核電軟件Vis1詳細設計圖差異的自動對比,以發(fā)現(xiàn)不同版本程序設計圖間的差異。5.根據(jù)權利要求1所述的系統(tǒng),其中代碼開發(fā)部包括: 數(shù)據(jù)層,根據(jù)輸入數(shù)據(jù)提供設計圖中的變量定義元數(shù)據(jù); 業(yè)務層,包括代碼生成引擎、代碼生成器和生成策略,其中生成策略描述了代碼生成規(guī)則的抽象定義模板,代碼生成引擎根據(jù)生成策略調(diào)用代碼生成器,代碼生成器利用數(shù)據(jù)層提供的元數(shù)據(jù),根據(jù)抽象定義模板生成程序代碼;以及 表示層,執(zhí)行與用戶的交互,所述表示層包括事件監(jiān)聽組件和顯示策略,其中事件監(jiān)聽組件采集用戶的代碼生成需求,并傳遞給業(yè)務層以進行代碼生成,顯示策略控制代碼生成結果的呈現(xiàn)。6.根據(jù)權利要求5所述的系統(tǒng),其中代碼開發(fā)部還包括: 數(shù)據(jù)采集模塊,記錄代碼開發(fā)部的運行行為,生成日志文件,以便用戶進行調(diào)試和查錯O7.—種核電軟件開發(fā)自動化方法,包括: 架構設計步驟,將核電軟件的架構抽象為樹型數(shù)據(jù)結構,采用廣度優(yōu)先搜索進行遍歷,自動生成代碼框架; 詳細設計步驟,進行核電軟件詳細設計圖差異的自動對比;以及代碼開發(fā)步驟,接收輸入數(shù)據(jù),并根據(jù)事先定義的抽象定義模板,自動生成并輸出程序代碼。8.根據(jù)權利要求7所述的方法,其中在架構設計步驟中,將核電軟件的架構抽象為包括多級節(jié)點的架構樹,從根節(jié)點開始采用廣度優(yōu)先搜索遍歷架構樹的各級節(jié)點,自頂向下的逐層生成代碼框架,最后生成可編譯運行的完整代碼框架。9.根據(jù)權利要求8所述的方法,其中在生產(chǎn)代碼框架時,在代碼框架中包括程序預處理、求解器、后處理的頂層調(diào)用流程,并自動插入部分調(diào)試代碼。10.根據(jù)權利要求7所述的方法,其中在詳細設計步驟中,基于Vis1對象模型和COM接口技術,執(zhí)行核電軟件Vis1詳細設計圖差異的自動對比,以發(fā)現(xiàn)不同版本程序設計圖間的差異。11.根據(jù)權利要求7所述的方法,其中代碼開發(fā)步驟包括: 根據(jù)輸入數(shù)據(jù)提供設計圖中的變量定義元數(shù)據(jù);以及 根據(jù)生成策略調(diào)用代碼生成器,代碼生成器利用數(shù)據(jù)層提供的元數(shù)據(jù),根據(jù)抽象定義模板生成程序代碼,其中生成策略描述了代碼生成規(guī)則的抽象定義模板。12.根據(jù)權利要求11所述的方法,其中代碼開發(fā)步驟還包括: 執(zhí)行與用戶的交互,包括采集用戶的代碼生成需求,以及控制代碼生成結果的呈現(xiàn)。13.根據(jù)權利要求11所述的方法,其中代碼開發(fā)步驟還包括: 記錄代碼開發(fā)部的運行行為,生成日志文件,以便用戶進行調(diào)試和查錯。
【文檔編號】G06F9/44GK105988792SQ201510071979
【公開日】2016年10月5日
【申請日】2015年2月11日
【發(fā)明人】莫文濤, 趙廣, 劉碩, 任浩, 任黨培
【申請人】國核(北京)科學技術研究院有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1