基于模型關(guān)聯(lián)關(guān)系的遺產(chǎn)軟件系統(tǒng)的現(xiàn)代化的制作方法
【技術(shù)領(lǐng)域】
【背景技術(shù)】
[0001]FORTRAN(FORmula TRANslat1n,公式翻譯程式語言)是一種適于執(zhí)行大型、復(fù)雜數(shù)值和科學(xué)計(jì)算的程序設(shè)計(jì)語言。自20世紀(jì)50年代引入FORTRAN以來,已經(jīng)使用FORTRAN開發(fā)了很多不同規(guī)模和復(fù)雜度的系統(tǒng)。這些系統(tǒng)中的一些可能有幾十年之久并且仍然可以有效用于各個(gè)行業(yè)中。因此,這些系統(tǒng)可以被稱為遺產(chǎn)(Iegacy)FORTRAN系統(tǒng)。
[0002]遺產(chǎn)FORTRAN系統(tǒng)能夠存在各種缺點(diǎn)。第一,遺產(chǎn)FORTRAN系統(tǒng)可能具有少量或沒有文檔。第二,遺產(chǎn)FORTRAN系統(tǒng)可能是使用過時(shí)的軟件設(shè)計(jì)方法開發(fā)的或者完全沒有使用軟件設(shè)計(jì)方法開發(fā)。第三,可能存在多個(gè)程序員從事遺產(chǎn)FORTRAN系統(tǒng),從而產(chǎn)生的代碼具有多種編程風(fēng)格并且有時(shí)具有不同的編程風(fēng)格。第四,當(dāng)前進(jìn)入勞動(dòng)力市場的新的大學(xué)畢業(yè)生可能接收很少或沒有接收正式的遺產(chǎn)編程語言(如FORTRAN)的培訓(xùn),從而減少了能夠從事遺產(chǎn)FORTRAN系統(tǒng)的熟練程序員的數(shù)量。這些缺點(diǎn)和其他缺點(diǎn)能夠影響組織者對(duì)遺產(chǎn)FORTRAN系統(tǒng)的維護(hù)、迀移和/或現(xiàn)代化的能力。
[0003]基于這些考慮和其他考慮,提出本文所述公開。
【發(fā)明內(nèi)容】
[0004]應(yīng)當(dāng)理解,以簡化形式提供此
【發(fā)明內(nèi)容】
引入了一些概念,它們將在下面的【具體實(shí)施方式】中進(jìn)一步描述。此
【發(fā)明內(nèi)容】
目的不用于限制所要求保護(hù)主題的范圍。
[0005]本文描述的方法、系統(tǒng)和計(jì)算機(jī)可讀介質(zhì)用于將非面向?qū)ο蟮膽?yīng)用(applicat1n,應(yīng)用/應(yīng)用程序)迀移到面向?qū)ο蟮钠脚_(tái)。根據(jù)本文提出的實(shí)施例,可以接收非面向?qū)ο蟮膽?yīng)用。非面向?qū)ο蟮膽?yīng)用可以被解析為非面向?qū)ο蟮膽?yīng)用的元素??梢陨稍氐脑O(shè)計(jì)或關(guān)聯(lián)關(guān)系結(jié)構(gòu)矩陣(design or dependency structure matrix, DSM)表示?;贒SM表示可以生成最終對(duì)象模型。最終對(duì)象模型可以映射到面向?qū)ο蟮拈_發(fā)環(huán)境的代碼框架表示。
[0006]本文討論的特征、功能和優(yōu)點(diǎn)能夠獨(dú)立地在本發(fā)明的各種實(shí)施例中實(shí)現(xiàn)或者可以被組合在其他實(shí)施例中,這些特征、功能和優(yōu)點(diǎn)的進(jìn)一步細(xì)節(jié)能夠參考下面的說明書和附圖而了解到。
【附圖說明】
[0007]圖1示出根據(jù)本文提出的實(shí)施例的迀移系統(tǒng)的框圖,迀移系統(tǒng)被配置為將源應(yīng)用迀移到面向?qū)ο蟮钠脚_(tái);
[0008]圖2示出根據(jù)本文提出的實(shí)施例的DSM表示的示例性實(shí)施方式的屏幕顯示圖;
[0009]圖3是根據(jù)本文提出的實(shí)施例在劃分模塊已經(jīng)劃分DSM表示之后,示例性劃分的DSM表不的屏蒂顯不圖;
[0010]圖4是根據(jù)本文提出的實(shí)施例在聚類模塊已經(jīng)識(shí)別DSM表示中的聚類之后,示例性聚類的DSM表示的屏幕顯示圖;
[0011]圖5示出根據(jù)本文提出的實(shí)施例的目標(biāo)系統(tǒng)對(duì)象模型的一個(gè)示例性實(shí)施方式的屏蒂顯不圖;
[0012]圖6示出根據(jù)本文提出的實(shí)施例的最終對(duì)象模型的示例性實(shí)施方式的屏幕顯示圖;
[0013]圖7示出根據(jù)本文提出的實(shí)施例的聚類的類定義的示例性實(shí)施方式的屏幕顯示圖;
[0014]圖8和圖9示出根據(jù)本文提出的實(shí)施例的代碼框架表示的示例性實(shí)施方式的屏幕顯不圖;
[0015]圖10示出根據(jù)本文提出的實(shí)施例的用于將非面向?qū)ο蟮膽?yīng)用迀移到面向?qū)ο蟮钠脚_(tái)的方法的流程圖;以及
[0016]圖11示出計(jì)算系統(tǒng)的一個(gè)說明性計(jì)算機(jī)硬件和軟件架構(gòu)的框圖,該計(jì)算系統(tǒng)能夠?qū)嵤┍疚奶岢龅膶?shí)施例的各個(gè)方面。
【具體實(shí)施方式】
[0017]下面的【具體實(shí)施方式】涉及用于將遺產(chǎn)軟件應(yīng)用(例如FORTRAN應(yīng)用)迀移到現(xiàn)代的面向?qū)ο蟮钠脚_(tái)的方法、系統(tǒng)、計(jì)算機(jī)可讀介質(zhì)和其他合適的技術(shù)。根據(jù)各種實(shí)施例,所述技術(shù)可以被配置為執(zhí)行三級(jí)迀移過程。在第一級(jí)中,所述技術(shù)可以被配置為接收源應(yīng)用、提取源應(yīng)用的元素、獲取元素之間的關(guān)聯(lián)關(guān)系,并生成設(shè)計(jì)或關(guān)聯(lián)關(guān)系結(jié)構(gòu)矩陣(DSM)表示,該設(shè)計(jì)或關(guān)聯(lián)關(guān)系結(jié)構(gòu)矩陣表示圖形化描繪了提取的元素和它們被獲取的關(guān)聯(lián)關(guān)系。在第二級(jí)中,所述技術(shù)可以被配置為執(zhí)行DSM表示的分析,以生成源應(yīng)用的模塊化框架。一些示例分析可以包括域知識(shí)獨(dú)立分析(domain knowledge independent analysis)和功能性知識(shí)分析。在第三級(jí)中,所述技術(shù)可以被配置為基于模塊化框架生成面向?qū)ο蟮哪繕?biāo)系統(tǒng)中的代碼框架。程序員可以利用代碼框架有效且高效地將源應(yīng)用從它的源語言(例如,F(xiàn)ORTRAN)翻譯為面向?qū)ο蟮哪繕?biāo)語言(例如,JAVA)。
[0018]一般情況下,DSM是復(fù)雜系統(tǒng)的緊湊簡潔的可視化表示。可以利用使用DSM的分析技術(shù)來模擬系統(tǒng)以便解決分解和整合問題。根據(jù)各種實(shí)施例,軟件分析使用的DSM是nXn方陣,其中對(duì)角線單元表示系統(tǒng)的節(jié)點(diǎn)或模塊。每個(gè)對(duì)角線單元可以與數(shù)值權(quán)重相關(guān)聯(lián),該數(shù)值權(quán)重表示相應(yīng)節(jié)點(diǎn)相對(duì)于整個(gè)系統(tǒng)包括的代碼的百分比。矩陣中的所有其他單元可以表示陰影(或以其他方式進(jìn)行高亮)指示的元素或模塊的組和/或?qū)蔷€之外的數(shù)值加權(quán)的單元之間的潛在關(guān)聯(lián)性或關(guān)系。
[0019]出于說明目的,本文描述的實(shí)施例主要涉及遺產(chǎn)FORTRAN應(yīng)用向現(xiàn)代的面向?qū)ο蟮钠脚_(tái)的迀移。然而,應(yīng)當(dāng)理解,這些實(shí)施例僅是示例性的,目的不是限制性的。具體地,本文描述的概念和技術(shù)可以類似地用于以其他遺產(chǎn)編程語言(例如,LISP、C0B0L等)撰寫的應(yīng)用的現(xiàn)代化。
[0020]在下面【具體實(shí)施方式】中,參考構(gòu)成本發(fā)明的一部分并通過圖示說明的方式示出具體實(shí)施例或示例的附圖。在參考附圖時(shí),多個(gè)圖中相似的附圖標(biāo)記表示相似元件。
[0021]圖1示出根據(jù)本文提出的實(shí)施例的迀移系統(tǒng)100的框圖,迀移系統(tǒng)100被配置為將源應(yīng)用迀移到面向?qū)ο蟮钠脚_(tái)。迀移系統(tǒng)100可以包括DSM生成模塊102、DSM分析模塊104和目標(biāo)系統(tǒng)映射模塊106。
[0022]DSM生成模塊102可以包括FORTRAN解析器108和DSM表示生成工具110。FORTRAN解析器108的一個(gè)示例是SCIENTIFIC TOOL WORKS公司(也稱為SCIT00LS,科學(xué)工具廠公司)生產(chǎn)的UNDERSTAND靜態(tài)代碼分析工具。DSM表示生成工具110的一個(gè)示例是LATTIX公司的LATTIX LDM。在這種情況下,術(shù)語LDM可以指代輕量級(jí)關(guān)聯(lián)關(guān)系模型。FORTRAN解析器108和/或DSM表示生成工具110的其他實(shí)施方式可以由本領(lǐng)域技術(shù)人員想到。
[0023]FORTRAN解析器108可以接收FORTRAN應(yīng)用112作為輸入。FORTRAN解析器108可以將FORTRAN應(yīng)用112分解為它的基本元素,該元素組成系統(tǒng)結(jié)構(gòu)114。例如,系統(tǒng)結(jié)構(gòu)114可以包括FORTRAN應(yīng)用112的FORTRAN模塊、源文件、子程序、函數(shù)、公共塊、變量。
[0024]DSM表示生成工具110可以接收系統(tǒng)結(jié)構(gòu)114作為輸入、識(shí)別系統(tǒng)結(jié)構(gòu)114中的元素之間的關(guān)聯(lián)關(guān)系并生成表示元素和它們的關(guān)聯(lián)關(guān)系的DSM表示116。兩個(gè)元素之間的關(guān)聯(lián)關(guān)系可以在一個(gè)元素使用另一個(gè)元素時(shí)識(shí)別。例如,在第一子程序調(diào)用第二子程序時(shí),第一子程序和第二子程序之間可以存在關(guān)聯(lián)關(guān)系。兩個(gè)元素之間的關(guān)聯(lián)關(guān)系還可以在一個(gè)元素包括另一個(gè)元素時(shí)識(shí)別。例如,在子程序包括公共塊時(shí),子程序和公共塊之間可以存在關(guān)聯(lián)關(guān)系。如本文使用的,當(dāng)?shù)谝辉厥褂没虬ǖ诙貢r(shí),第一元素可以被稱為“關(guān)聯(lián)于”第二元素。
[0025]DSM表示116可以包括FORTRAN應(yīng)用112的元素的圖形化表示。DSM表示116可以被配置為具有多行、多列和多個(gè)單元的方陣。每個(gè)單元可以對(duì)應(yīng)于一行和一列。每行可以被標(biāo)記并對(duì)應(yīng)于FORTRAN應(yīng)用112的元素或元素組。每列可以被標(biāo)記并且也對(duì)應(yīng)于FORTRAN應(yīng)用112的元素或元素組。給定元素或元素組可以嵌套,以擴(kuò)展元素或元素組導(dǎo)致顯示嵌套元素。
[0026]行和列可以根據(jù)元素的相同順序(order,順序/階)設(shè)置。因此,DSM表示116的每個(gè)對(duì)角線單元可以對(duì)應(yīng)于沿著行和沿著列的相同的元素。DSM表示116中的每個(gè)對(duì)角線外的單元可以指示相應(yīng)的列表示的元素和相應(yīng)的行表示的元素之間是否存在關(guān)聯(lián)關(guān)系。DSM表示116可以反映DSM生成模塊102提取的FORTRAN應(yīng)用112的原始數(shù)據(jù)。因此,元素可以不按照對(duì)FORTRAN應(yīng)用112進(jìn)行有意義分析的方式布置、分離或分組。下面描述圖2中示出的DSM表示116的一個(gè)示例。
[0027]DSM分析模塊104可以接收DSM表示116作為輸入。DSM分析模塊104可以包括劃分模塊118、聚類模塊120和功能性知識(shí)分析模塊122。劃分模塊118和聚類模塊120可以被配置為對(duì)DSM表示116執(zhí)行域知識(shí)獨(dú)立分析的各種方面。功能性知識(shí)分析模塊122可以被配置為對(duì)DSM表示116執(zhí)行功能性知識(shí)分析的各個(gè)方面。
[0028]劃分模塊118可以對(duì)DSM表示116執(zhí)行基于組件的劃分,以便識(shí)別DSM表示116內(nèi)的層。層可以表示DSM表示116中的元素組的分層結(jié)構(gòu)。劃分模塊118可以基于DSM表示116中的元素的關(guān)聯(lián)關(guān)系分離所述元素,使得每層包含一組或更多組相關(guān)元素。
[0029]在一些實(shí)施例中,所述層可以包括頂層、中間層和底層。頂層中的元素可以關(guān)聯(lián)于