數(shù)據(jù)模型恢復(fù)方法和數(shù)據(jù)模型恢復(fù)裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)模型恢復(fù)方法和一種數(shù)據(jù)模型恢復(fù)裝置。
【背景技術(shù)】
[0002]在軟件開發(fā)時,特別對于大型軟件,都需要驗證軟件的總體架構(gòu)設(shè)計質(zhì)量,目前的軟件總體架構(gòu)驗證往往都是手工驗證,效率低,而且都是在項目后期才開始驗證,修復(fù)成本高,且很難做到全覆蓋。
[0003]另外,由于缺少代碼知識結(jié)構(gòu)化,這些工作都是人工完成,這樣一來,就會造成缺少知識庫支持、工作量大等弊端。
[0004]再者,不管是開發(fā)人員還是業(yè)務(wù)人員,想了解軟件的某個模塊或某個組件的模型,只能通過詢問相關(guān)的領(lǐng)域產(chǎn)品人員,而并沒有其他方便的途徑。目前,相關(guān)技術(shù)中有通過詳細(xì)設(shè)計和偽代碼恢復(fù)代碼依賴模型的,然而偽代碼和真代碼相差比較遠(yuǎn),不能實時反映真代碼的情況,并且,沒有統(tǒng)一代碼支持庫,不便于展現(xiàn)和理解。
[0005]因此需要一種新的技術(shù)方案,可以恢復(fù)軟件領(lǐng)域模型,有效地監(jiān)控代碼的互相依賴關(guān)系,并提供可視化的配置界面。
【發(fā)明內(nèi)容】
[0006]本發(fā)明正是基于上述問題,提出了一種新的技術(shù)方案,可以恢復(fù)軟件領(lǐng)域模型,有效地監(jiān)控代碼的互相依賴關(guān)系,并提供可視化的配置界面。
[0007]有鑒于此,本發(fā)明的一方面提出了一種數(shù)據(jù)模型恢復(fù)方法,包括:根據(jù)接收到的監(jiān)聽命令,監(jiān)聽數(shù)據(jù)模型的制作過程,以獲取所述數(shù)據(jù)模型的代碼路徑和版本信息;根據(jù)所述數(shù)據(jù)模型的所述代碼路徑和所述版本信息,確定所述數(shù)據(jù)模型的代碼關(guān)系和模型關(guān)系;根據(jù)所述數(shù)據(jù)模型的所述代碼關(guān)系和所述模型關(guān)系,恢復(fù)得到所述數(shù)據(jù)模型的數(shù)據(jù)模型架構(gòu)和恢復(fù)數(shù)據(jù),以供將所述數(shù)據(jù)模型架構(gòu)和所述恢復(fù)數(shù)據(jù)進(jìn)行頁面展現(xiàn)。
[0008]在該技術(shù)方案中,可以通過訂閱功能自動監(jiān)聽一個數(shù)據(jù)模型的全盤制作,在制作完成后,自動把數(shù)據(jù)模型的代碼路徑和版本信息輸入到數(shù)據(jù)處理裝置中,使數(shù)據(jù)處理裝置確定數(shù)據(jù)模型的代碼關(guān)系和模型關(guān)系,以根據(jù)代碼關(guān)系和模型關(guān)系恢復(fù)得到數(shù)據(jù)模型架構(gòu)。通過該技術(shù)方案,能夠?qū)崿F(xiàn)各種視圖和組件的內(nèi)部結(jié)構(gòu)的展示,恢復(fù)軟件領(lǐng)域模型,有效地監(jiān)控代碼的互相依賴關(guān)系,并提供可視化的配置界面,便于支持軟件全生命周期的質(zhì)量管理,提升了數(shù)據(jù)處理的效率。
[0009]在上述技術(shù)方案中,優(yōu)選地,所述根據(jù)所述數(shù)據(jù)模型的所述代碼路徑和所述版本信息,確定所述數(shù)據(jù)模型的代碼關(guān)系和模型關(guān)系,包括:對所述數(shù)據(jù)模型的代碼進(jìn)行類二進(jìn)制流分析,得到代碼結(jié)構(gòu)元素;根據(jù)所述代碼結(jié)構(gòu)元素的類與類之間的依賴關(guān)系,確定代碼拓?fù)鋵?,其中,所述代碼拓?fù)鋵佑涗浻兴龃a關(guān)系。
[0010]在該技術(shù)方案中,首先需要處理代碼元素,具體地,可以通過輸入裝置,把全盤代碼通過分析類二進(jìn)制流轉(zhuǎn)為代碼結(jié)構(gòu)元素,例如類、接口、方法、參數(shù)等,然后,進(jìn)行代碼關(guān)系處理,具體地,可通過分析類與類之間關(guān)系,得到代碼拓?fù)鋵?,代碼拓?fù)鋵又杏涗浻性刂g各種關(guān)系,包括繼承、調(diào)用、引用關(guān)系等。通過該技術(shù)方案,確定了數(shù)據(jù)模型的代碼關(guān)系,便于進(jìn)一步實現(xiàn)各種視圖和組件的內(nèi)部結(jié)構(gòu)的展示。
[0011]在上述任一技術(shù)方案中,優(yōu)選地,所述根據(jù)所述數(shù)據(jù)模型的所述代碼路徑和所述版本信息,確定所述數(shù)據(jù)模型的代碼關(guān)系和模型關(guān)系,還包括:根據(jù)所述數(shù)據(jù)模型的所述代碼路徑和預(yù)定文件目錄結(jié)構(gòu),確定所述數(shù)據(jù)模型的領(lǐng)域信息、模塊信息和組件信息以及模型間依賴關(guān)系。
[0012]在該技術(shù)方案中,首先需進(jìn)行模型元素處理,根據(jù)代碼路徑通過分析安裝盤中的預(yù)定文件目錄結(jié)構(gòu)分析出代碼的領(lǐng)域、模塊、組件等信息,再進(jìn)行模型關(guān)系處理,此時,可以通過不同的文件目錄結(jié)構(gòu)得出模型之間的關(guān)系,例如組件從屬模塊、模塊從屬領(lǐng)域,并且,通過分析代碼不同的文件目錄結(jié)構(gòu)還可以分析出實體、服務(wù)、活動、操作、規(guī)則等。例如,當(dāng)有代碼繼承底層框架IRule類時,可以認(rèn)為此類是一個規(guī)則類。另外,還可以把上述過程中得到的基礎(chǔ)信息存儲到數(shù)據(jù)庫中,以得到軟件版本全盤的知識庫。
[0013]在上述任一技術(shù)方案中,優(yōu)選地,所述根據(jù)所述數(shù)據(jù)模型的所述代碼關(guān)系和所述模型關(guān)系,恢復(fù)得到所述數(shù)據(jù)模型的數(shù)據(jù)模型架構(gòu)和恢復(fù)數(shù)據(jù),包括:根據(jù)所述數(shù)據(jù)模型的任一代碼的所述領(lǐng)域信息、所述模塊信息和所述組件信息以及模型間依賴關(guān)系,恢復(fù)得到所述數(shù)據(jù)模型的所述數(shù)據(jù)模型架構(gòu)和所述恢復(fù)數(shù)據(jù)。
[0014]在該技術(shù)方案中,可以數(shù)據(jù)模型的代碼關(guān)系和模型關(guān)系,恢復(fù)代碼的領(lǐng)域模型架構(gòu)圖,即該代碼從屬哪個組件、模型、領(lǐng)域,并通過類和類的關(guān)系恢復(fù)出領(lǐng)域、組件、模塊之間依賴關(guān)系,通過該技術(shù)方案,能夠恢復(fù)軟件領(lǐng)域模型,實現(xiàn)各種視圖和組件的內(nèi)部結(jié)構(gòu)的展示,有效地監(jiān)控代碼的互相依賴關(guān)系,便于支持軟件全生命周期的質(zhì)量管理,提升了數(shù)據(jù)處理的效率。
[0015]在上述任一技術(shù)方案中,優(yōu)選地,所述根據(jù)所述數(shù)據(jù)模型的所述代碼關(guān)系和所述模型關(guān)系,恢復(fù)得到所述數(shù)據(jù)模型的數(shù)據(jù)模型架構(gòu)和恢復(fù)數(shù)據(jù),還包括:恢復(fù)所述數(shù)據(jù)模型的領(lǐng)域規(guī)則、模塊規(guī)則以及所述數(shù)據(jù)模型對外提供的應(yīng)用程序編程接口和實體。
[0016]在該技術(shù)方案中,可以列出目前的領(lǐng)域、模塊的所有規(guī)則、活動,恢復(fù)領(lǐng)域?qū)ν馓峁┑膽?yīng)用程序編程接口和實體,即提供所有用戶感興趣的數(shù)據(jù),另外,還可以恢復(fù)類與類之間的依賴關(guān)系。在恢復(fù)數(shù)據(jù)模型架構(gòu)后,可以將數(shù)據(jù)模型架構(gòu)和恢復(fù)數(shù)據(jù)進(jìn)行頁面展現(xiàn),推送給目標(biāo)對象,例如,可以推送給設(shè)計人員,以供設(shè)計人員進(jìn)行依賴關(guān)系驗證。通過該技術(shù)方案,能夠?qū)崿F(xiàn)各種視圖和組件的內(nèi)部結(jié)構(gòu)的展示,恢復(fù)軟件領(lǐng)域模型,有效地監(jiān)控代碼的互相依賴關(guān)系,并提供可視化的配置界面,便于支持軟件全生命周期的質(zhì)量管理,提升了數(shù)據(jù)處理的效率。
[0017]本發(fā)明的另一方面提出了一種數(shù)據(jù)模型恢復(fù)裝置,包括:代碼監(jiān)聽單元,根據(jù)接收到的監(jiān)聽命令,監(jiān)聽數(shù)據(jù)模型的制作過程,以獲取所述數(shù)據(jù)模型的代碼路徑和版本信息;關(guān)系確定單元,根據(jù)所述數(shù)據(jù)模型的所述代碼路徑和所述版本信息,確定所述數(shù)據(jù)模型的代碼關(guān)系和模型關(guān)系;模型恢復(fù)單元,根據(jù)所述數(shù)據(jù)模型的所述代碼關(guān)系和所述模型關(guān)系,恢復(fù)得到所述數(shù)據(jù)模型的數(shù)據(jù)模型架構(gòu)和恢復(fù)數(shù)據(jù),以供將所述數(shù)據(jù)模型架構(gòu)和所述恢復(fù)數(shù)據(jù)進(jìn)行頁面展現(xiàn)。
[0018]在該技術(shù)方案中,可以通過訂閱功能自動監(jiān)聽一個數(shù)據(jù)模型的全盤制作,在制作完成后,自動把數(shù)據(jù)模型的代碼路徑和版本信息輸入到數(shù)據(jù)處理裝置中,使數(shù)據(jù)處理裝置確定數(shù)據(jù)模型的代碼關(guān)系和模型關(guān)系,以根據(jù)代碼關(guān)系和模型關(guān)系恢復(fù)得到數(shù)據(jù)模型架構(gòu)。通過該技術(shù)方案,能夠?qū)崿F(xiàn)各種視圖和組件的內(nèi)部結(jié)構(gòu)的展示,恢復(fù)軟件領(lǐng)域模型,有效地監(jiān)控代碼的互相依賴關(guān)系,并提供可視化的配置界面,便于支持軟件全生命周期的質(zhì)量管理,提升了數(shù)據(jù)處理的效率。
[0019]在上述技術(shù)方案中,優(yōu)選地,所述關(guān)系確定單元包括:分析單元,對所述數(shù)據(jù)模型的代碼進(jìn)行類二進(jìn)制流分析,得到代碼結(jié)構(gòu)元素;代碼拓?fù)鋵哟_定單元,根據(jù)所述代碼結(jié)構(gòu)元素的類與類之間的依賴關(guān)系,確定代碼拓?fù)鋵?,其中,所述代碼拓?fù)鋵佑涗浻兴龃a關(guān)系O
[0020]在該技術(shù)方案中,首先需要處理代碼元素,具體地,可以通過輸入裝置,把全盤代碼通過分析類