999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

遺留系統中構件的提取及管理研究

2018-09-26 11:34:32李天科
數字技術與應用 2018年5期

李天科

摘要:為了從遺留系統中提取具有可復用價值的構件,并對提取的構件實施有效的管理。提出了基于UML的構件提取方法,通過分析用例圖、交互圖、類圖,篩選需要提取的候選構件,依據構件質量度量模型,對候選構件進行度量,確定所提取構件并進行封裝。最后確定了構件描述的刻面術語,并選擇應用數據庫保存構件的描述信息,應用文件系統保存構件。

關鍵詞:遺留系統;構件提取;構件描述

中圖分類號:TP311.54 文獻標識碼:A 文章編號:1007-9416(2018)05-0109-03

1 引言

隨著軟件需求的迅速增長,軟件復用技術和基于構件的軟件開發技術逐漸受到軟件開發者的青睞。軟件復用是指在新軟件系統的開發過程中,重復利用已有的、相同或相近軟件元素的過程。作為提高軟件生產率的一個有效方法,依照軟件復用的思想,軟件系統的開發不再采用一切“從零開始”的模式,而是以己有的工作為基礎,充分利用遺留系統開發中積累的成果,消除重復勞動,提高軟件開發效率和質量[1]。

構件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確辨識的、具有相對獨立功能的構成成分。簡單地說,構件就是具有一定功能,能夠獨立工作或能同其它構件裝配起來協調工作的程序體。

基于構件的軟件復用,存在兩個關鍵技術問題,一是需要大量的可復用構件,二是如何找到合適的構件。

軟件工程專業的歷屆學生在課程設計、畢業論文設計過程中,開發了大量的應用系統。這些遺留系統針對的問題域各種各樣,實現方法也各有不同。這些系統都是以學習為目的而開發,大多或多或少存在一些缺陷,系統的功能、性能很難真正滿足行業的需要,多數應用系統難以投入實際應用。即便如此,許多遺留系統中還是存在一些有價值的軟件模塊,隨意丟棄必然造成資源浪費。從這些遺留系統中提取有復用價值的軟件模塊或軟件構件,進行合理的分類描述,然后通過軟件構件庫收集、存儲。在以后的軟件開發實踐中,就可以根據需求選擇重復。

2 遺留系統中構件的提取

從遺留系統中提取有可復用價值的構件是構件獲取的主要途徑之一。然而,大多數遺留系統在軟件設計和開發時并沒有為復用作專門的考慮,系統的接口和文檔也不是為復用而設計的,甚至有些遺留系統只有代碼,沒有相關的文檔。因此,要從遺留系統中提取構件存在很多困難。

如何從遺留系統中提取構件,是軟件復用與程序理解領域的一個重要交叉研究領域[2]。許多專業人員對此做了深入研究,文獻[2]從系統分解和度量兩個方面對構件提取的研究現狀做了綜述,文獻[3]以系統理解和軟件度量為基礎,提出了一種從面向對象遺留系統中挖掘可復用構件的方法,文獻[4]提出了一種領域框架和構件的提取方法。這些研究為自動化的構件識別和獲取提供基礎,但是至今,構件的提取還不能做到完全的自動化[3]。

學生的課程設計、畢業設計產生的遺留系統一般都有比較完整的文檔,因此,可以依據這些文檔理解系統,采用手工方式從這些系統中提取構件。本文采用了基于UML的軟件構件提取方法,提取過程是一個基于用例迭代的過程,構件的提取由用例驅動,用例圖描述系統的功能需求,交互圖描述每個用例的流程和涉及的類,類圖描述實現用例的類和類之間的關系,構件則是類的抽象[1]。下面結合圖書館管理系統,說明構件的提取過程:

(1)依據用例圖,分析每一個用例的可復用性,并利用有用性原則篩選用例。

圖1是圖書管理系統中涉及圖書管理員角色的用例圖,由圖可知,涉及圖書管理員的用例包括:用戶管理、圖書管理、借閱管理、借書證管理。其中圖書管理和借閱管理是兩個比較復雜的用例,圖書管理包含圖書編目管理和圖書入庫管理。借閱管理包括:借閱資格驗證管理、借書管理、還書管理、續借管理等。

依據有用性原則篩選用例,所謂有用性原則就是選取的用例具有相對獨立的邏輯功能,能滿足某種通用的功能需求,或者能滿足特定領域經常被用到的業務需求。對于一個遺留系統,并沒有必要把所有的用例確定為提取構件的候選用例,一般只選擇可復用性高,邏輯功能完善、邏輯關系比較獨立的用例。

例如,針對圖書館管理系統,選取用戶管理用例作為候選用例,提取通用的用戶管理構件,該構件可在新系統開發中復用,實現用戶的輸入、刪除、更新等功能。也可以考慮選取借閱管理用例作為候選用例提取領域構件,以后在領域內開發新的圖書管理系統的時候復用。

(2)依據交互圖,了解候選用例的處理流程,分析候選用例所涉及到的類,以及這些類之間的耦合關系。

借書管理的順序圖如圖2所示,圖2表示了借書管理中的業務處理流程,參照借書管理用例的順序圖并研究借閱管理的其它用例,可知借書管理所涉及的類有:“圖書管理員”、“讀者”、“書籍”、“圖書信息”、“借閱記錄”以及“圖形界面控制類(GUI)”等。

依據交互圖分析類之間的耦合關系,耦合關系是度量構件獨立性的指標之一。類的耦合數越大,類越容易受其它類的影響,不利于復用。圖2描述了這些類之間的方法調用過程,反應這些類之間的耦合關系。

(3)依據類圖,確定那些類共同實現那個候選用例。將這些類提取出來,作為具有實現該用例功能的候選構件。

分析借書管理的類圖(如圖3所示),由于“圖書管理員”、“讀者”、“書籍”、“圖書信息”、“借閱記錄”類共同用來實現圖書借閱用例。因此,將這些類抽象成圖書借閱構件。

(4)依據構件質量度量模型,對所提取的候選構件質量進行度量,并根據需要對構件進行封裝。

構件可復用性質量度量的模型有多種,本文選擇三個主要的因素進行度量,即有用性、易用性、接口成熟性。有用性就是度量提取的構件能完成什么邏輯功能,易用性包括易理解、易修改,易修改就是針對新系統特殊的功能需求對構件能進行適應性修改。接口成熟性度量包括接口的正確性和接口的易理解性。接口的正確性判斷是依據接口是否符合接口規格說明。接口的易理解性是指接口規格說明是否能被用戶正確理解[5]。根據度量的結果確定需要提取的構件,最后對提取的構件進行封裝,這里封裝的含義有兩方面,一是對提取的同一構件的類進行打包,如將java類打包成jar包的形式。二是給每一個構件添加必要的文檔。

3 構件的管理

3.1 構件的分類描述

隨著提取構件數量的增加,構件的分類描述越來越重要。構件復用者通過構件的描述信息,往往找到的是一個具有相似功能的構件集。如何找到合適的構件,主要取決于需要確定更合理的構件描述術語。

現有文獻關于構件的分類描述主要應用刻面分類法,刻面分類法是由一組描述構件特征的刻面所組成,每個刻面從不同的角度對構件進行分類,每個刻面由一組基本的術語構成術語空間。

本文參照青鳥構件模型[6]、以及現有的一些文獻[7][8]中提出的構件刻面分類方法,針對提取的構件,設計出了五個刻面:構件屬性、構件形態、應用環境、構件功能、存儲環境。具體描述信息見圖4所示。

(1)構件屬性:涉及構件描述的一些基本信息,術語包括構件名稱、作者、版本、創建時間、入庫時間、修改時間。

(2)構件形態:描述構件開發所用的語言、構件的模型以及構件的抽象層次。術語包括開發語言、類型、抽象層次。開發語言術語指定為枚舉值:C#、C++、Java、JSP、ASP、PHP、其它。類型術語指定為枚舉值:COM/DCOM、JavaBean/EJB、CORBA。抽象層次術語指定的枚舉值:DLL、EXE、源碼、其它。

(3)應用環境:指構件實現的目標及可能的應用領域。術語包括構件實現目標、應用領域、適用的操作系統。其中應用領域術語指定為枚舉值:通用、信息管理、辦公應用、Web應用、數據庫相關、網絡和通信、多媒體、文件處理、標記語言相關、用戶界面、其它。操作系統術語指定為枚舉值:Unix、Linux、Windows、Android。

(4)構件功能:主要指構件在原有或可能的軟件系統中實現的邏輯功能,術語包括功能的分類、功能描述、接口描述。功能分類指定的枚舉值:圖形圖像、網絡通信、數值處理、數據庫、用戶界面、容器、字處理、文件操作、其他。功能描述是對構件所實現的功能用文字描述,幫助使用者理解構件。接口描述對構件的輸入參數個數及類型、輸出結果等進行描述。

(5)存儲環境:構件實體采用文件系統存儲,存儲環境刻面描述包含構件存儲有關的信息,術語包括文件名、文件屬性、文件存儲路徑。

3.2 構件的存儲

從遺留系統中提取的構件形式多樣、規模大小不一,不適合使用關系數據庫直接存儲。因為關系數據庫中的字段一般有類型、大小的限制,這與構件實體的特點不相符。

構件實體適合采用文件系統,以文件為單位存儲。文件系統對所存儲的文件大小沒有限制,且可以存儲多種不同形式的構件,這恰好符合構件的特點。但是文件系統不具有快速有效的檢索途徑,文件系統中存儲的構件檢索效率低,特別是當文件數量很多的時候,檢索效率更低。因此,文件系統不能滿足對構件高效檢索的要求。

在實際應用中,構件的存儲采用關系數據庫與文件系統相結合的方法實現較合理,具體的存儲結構見圖5。圖中的橢圓表示構件的刻面分類信息,包括構件基本屬性、構件形態、構件功能、應用環境和存儲環境,刻面分類信息是構件的附加信息,這些信息存儲在關系數據庫中。其中,構件的一個刻面對應一個構件表,一個術語對應一個字段(表設計見圖4),六個表組成構件庫。構件復用者利用構件庫就可以高效檢索構件,利用構件的存儲環境信息就可知構件的文件名、文件存儲路徑。然后按照文件名和路徑,從文件系統中找到并下載構件。

4 結語

本文參考了現有構件提取和管理的文獻資料,研究了基于UML的構件提取方法,該方法是一種是通過分析用例圖、交互圖、類圖,確定需要提取的候選構件,然后依據構件質量度量模型,對候選構件進行度量,最后確定并提取可復用價值較高的構件,并進行封裝。這種手工提取方法,雖然不能實現自動化的構件提取,但是思路簡單易于實現。

參考文獻

[1]朱建江.基于軟件構件的軟件復用的研究[D].南京:南京航空航天大學,2001.

[2]羅景,張路,孫家.構件提取技術綜述[J].計算機科學,2005,32(12):1-7.

[3]周欣,陳向葵,孫家,楊芙清.面向對象系統中基于度量的可復用構件獲取機制[J].電子學報,2003,31(5):649-653.

[4]彭鑫,趙文耘.一種基于類間關系動態分析的領域框架和構件提取方法[J].小型微型計算機系統,2007,28(11):1928-1931.

[5]李曉麗,劉超,金茂忠,高仲儀.軟件構件的可復用性質量度量[J].計算機應用研究,2007,24(6):280-283.

[6]潘穎,趙俊峰,謝冰.構件庫技術的研究與發展[J].計算機科學,2003,30(5):90-94.

[7]梁潔輝.Web構件庫管理系統的設計與實現[D].南京:南京理工大學,2004.

[8]楊森,曹寶香.基于J2EE和XML的構件庫系統的設計[J].計算機技術與發展,2009,19(8):100-103.

主站蜘蛛池模板: 日韩在线视频网| 在线看片免费人成视久网下载| 亚洲综合在线最大成人| 国产va在线| 亚洲二区视频| 成人午夜精品一级毛片 | 久久综合亚洲色一区二区三区| 久久天天躁狠狠躁夜夜躁| 真实国产乱子伦高清| 亚洲色偷偷偷鲁综合| 免费一级毛片| 71pao成人国产永久免费视频| 欧美亚洲国产一区| 久久精品国产亚洲麻豆| 88av在线播放| 日韩欧美综合在线制服| 国产原创第一页在线观看| 亚洲欧美日韩另类在线一| 亚洲中文字幕在线观看| 亚洲va欧美va国产综合下载| 亚洲无卡视频| 亚洲三级a| 天堂在线www网亚洲| 亚洲无码久久久久| 国产特一级毛片| 欧美乱妇高清无乱码免费| 色网站免费在线观看| 全色黄大色大片免费久久老太| 欲色天天综合网| 91久久夜色精品国产网站| 国内精品视频| 亚洲第一区精品日韩在线播放| 91区国产福利在线观看午夜| 黄色一级视频欧美| 狠狠亚洲婷婷综合色香| 伊人中文网| 国产福利一区视频| 亚洲视频免费在线| 好吊妞欧美视频免费| 亚洲男人天堂网址| 国产精品综合久久久| 无码人妻免费| 毛片免费观看视频| 超碰色了色| 色婷婷电影网| 97久久超碰极品视觉盛宴| a级毛片免费网站| 国产精品欧美激情| 伊人久久精品无码麻豆精品| 国产欧美日韩精品第二区| 一级爱做片免费观看久久| 色哟哟国产成人精品| 国产成人综合日韩精品无码首页| 在线a视频免费观看| 亚洲欧美日韩成人在线| 91精品啪在线观看国产60岁 | 成人国产免费| 久久天天躁狠狠躁夜夜躁| 久久综合伊人 六十路| 草草影院国产第一页| 国产精品露脸视频| 婷婷久久综合九色综合88| 亚洲天堂在线免费| www中文字幕在线观看| 亚洲精品自在线拍| 幺女国产一级毛片| 亚洲国产午夜精华无码福利| 亚洲一区二区三区中文字幕5566| 精品国产自| 中文字幕有乳无码| aa级毛片毛片免费观看久| 亚洲欧美在线精品一区二区| 中文成人在线视频| 久久香蕉国产线| 亚洲精品视频在线观看视频| 在线va视频| 亚洲婷婷在线视频| 亚洲欧美另类日本| 日本色综合网| 亚洲侵犯无码网址在线观看| 萌白酱国产一区二区| 久久精品国产电影|