一種基于面向組件模型的軟件構建及驗證的方法
【專利摘要】本發(fā)明公開一種基于面向組件模型的軟件構建及驗證的方法。該方法包括:在開源操作系統(tǒng)Linux搭建搭建編譯環(huán)境、在Windows環(huán)境中基于面向?qū)ο竽P途幋a應用程序、所得到的應用程序源代碼編譯出在Windows平臺下的動態(tài)鏈接庫;利用Makefile文件生成在Linux環(huán)境或嵌入式環(huán)境中可重復利用的動態(tài)庫;單獨使用Linux環(huán)境或嵌入式開發(fā)環(huán)境,運行待驗證程序,并通過鏈接so動態(tài)鏈接庫,產(chǎn)生輸出,并將輸出打印或直接以文本格式存儲,記為文本A;中得到的動態(tài)庫,單獨使用C++開發(fā)環(huán)境運行并通過鏈接so動態(tài)鏈接庫,產(chǎn)生輸出,并將輸出打印或直接以文本格式存儲,記為文本B;使用二進制比較方法,直接比較文本A和文本B,既得驗證。
【專利說明】一種基于面向組件模型的軟件構建及驗證的方法
【技術領域】
[0001]本發(fā)明涉及軟件工程技術兼容性領域,具體涉及一種基于面向組件模型的軟件構建及驗證的方法。
【背景技術】
[0002]COM是一個可以用于構造軟件組件的模型。它由微軟提出并發(fā)布,在數(shù)十年的時間內(nèi)不斷成長,到目前為止,COM技術已經(jīng)和JavaBeans、CORBA 一起被并稱為組件開發(fā)的三大標準。COM具有構件開發(fā)語言的無關性、跨平臺性、構件運行位置和進程透明性、組件配置靈活性和運行安全性等特性,而且它有流行的開發(fā)環(huán)境支持(如VC、VB、Delphi等),對比其他組件技術,COM開發(fā)過程簡單,容易人手,這些因素使得COM成為當前廣受歡迎的組件開發(fā)技術之一。
[0003]在COM組件模型中,接口是最為重要的概念,在整個應用系統(tǒng)中起決性作用,夕卜界和組件方所有的交互都通過接口實現(xiàn),因此接口設計的優(yōu)劣直接影響組件的質(zhì)量。良好的接口的設計有利于提高組件的可用性、可理解性,有利于軟件的維護、擴展和重用。不合理的設計則會導致組件難于理解、難于選擇,從而影響整個軟件的可靠性。
[0004]軟件的驗證在許多領域中都有著廣泛的應用,比如維護系統(tǒng)安全、信息犯罪記錄以及海量信息比對和查閱等,都需要進行大量的軟件驗證工作。在驗證活動中必須回答以下問題:I)通過評審到底能發(fā)現(xiàn)多少缺陷;2)有多少缺陷是在評審過程中發(fā)現(xiàn)的,又有多少是在后面的確認測試中發(fā)現(xiàn)的;3)有多大比例的缺陷留到了測試結束,由客戶發(fā)現(xiàn)的。
[0005]需求驗證最可能為軟件開發(fā)節(jié)省成本。它可以檢測出許多缺陷,否則這些缺陷會進入開發(fā)周期的后期,那時再糾正缺陷代價就要高多了,問題轉移到了下游階段。實際上50%以上的缺陷都是在需求階段引入的。驗證的效果總的來說要高于確認測試。它可以發(fā)現(xiàn)一些在確認測試過程中幾乎不可能檢測出來的缺陷。最重要的是,利用驗證可以盡早發(fā)現(xiàn)和檢測出缺陷。
[0006]基于COM的軟件驗證技術是從組件構建方法中發(fā)展起來的新型軟件驗證技術,它是一種把動態(tài)鏈接庫當作檢測和傳遞信息的手段或載體而加以利用的驗證方法,通過比對相同源代碼在不同系統(tǒng)中的運行輸出,最終從比對結果中獲取被測對象的實際信息?;贑OM的驗證技術具有高精度、穩(wěn)定性好、普遍性高等特點,若再結合腳本編程控制技術,可構成自動化、智能化程度較高的實用在線軟件驗證系統(tǒng)。目前,通過多平臺的多次運行同一軟件,提取軟件運行結果的特征參數(shù),如運行時間、占用內(nèi)存空間大小、輸出穩(wěn)定性等,進行軟件的驗證已經(jīng)受到了廣泛關注。軟件兼容性高度作為軟件的重要特征之一,利用基于COM的驗證技術對其進行多平臺兼容性驗證在某些應用場合具有十分重要的意義。
[0007]基于COM的軟件兼容性驗證主要有兩類,一類是應用傳統(tǒng)驗證方式,依據(jù)正常設計過程、設計并編寫待測試軟件,將成品提供給客戶使用,進而多方位、多次數(shù)的提取用戶反饋信息,然后根據(jù)反饋信息做有一定針對性的軟件驗證和修改。完成一輪使用、反饋、修改后,拿出成品再次進入下一輪的使用驗證循環(huán)。另外一種方法是直接應用待驗證的軟甲成品在開發(fā)技術組中進行驗證。與經(jīng)典的基于循環(huán)驗證的方法相比,這種不僅避免了驗證周期長的問題,而且在產(chǎn)品提交客戶前即可做充分驗證,這樣使得客戶不用承擔軟件重大漏洞的責任,整個驗證過程更方便。因此基于COM的軟件驗證方法是計算機軟件驗證領域的一個重要發(fā)展方向。由于單一軟件驗證環(huán)境不能提供足夠的平臺兼容性信息,所以必須提供與平臺兼容性相關的動態(tài)鏈接庫等的已知信息。通常,需要要在驗證過程中使用已被廣泛論證過的成熟動態(tài)鏈接庫,如標準庫模板。
【發(fā)明內(nèi)容】
[0008]本發(fā)明要解決的技術問題是提供一種基于面向組件模型的軟件構建及驗證的方法,使得能夠方便地、準確地驗證軟件在不同系統(tǒng)中的兼容性。
[0009]為了實現(xiàn)發(fā)明的目的,本發(fā)明采用的技術方案如下:
[0010]本發(fā)明提供一種基于面向組件模型的軟件構建及驗證的方法,包括:
[0011]在至少兩種開發(fā)平臺中準備各自適用的動態(tài)鏈接庫源碼;
[0012]編寫待驗證軟件源代碼,作為驗證原本;
[0013]在Linux系統(tǒng)中編寫適用于Linux平臺的動態(tài)鏈接庫程序,形成動態(tài)鏈接庫,后綴為.so的文件;
[0014]在Windows系統(tǒng)中編寫適用于Windows平臺的動態(tài)鏈接庫程序,形成動態(tài)鏈接庫,后綴為.dll的文件;
[0015]使用待驗證程序源代碼分別動態(tài)鏈接上述得到的對應平臺的動態(tài)鏈接庫,保證源代碼的唯一性,使用COM的動態(tài)特性,分別運行,并分別得到運行結果的文本文件;
[0016]
【權利要求】
1.一種基于面向組件模型的軟件構建及驗證的方法,其特征在于: 在Linux環(huán)境中編寫和編譯源代碼,同時在Windows環(huán)境中編寫和編譯源代碼。
2.根據(jù)權利要求1所述的一種基于面向組件模型的軟件構建及驗證的方法,其特征在于: 利用所得到的源代碼,在Linux系統(tǒng)和Windows系統(tǒng)中分別產(chǎn)生動態(tài)鏈接庫文件,由于源代碼屬于同一版本,因此得到的動態(tài)鏈接庫的區(qū)別只是分別具有本編譯系統(tǒng)的特征。
3.一種基于面向組件模型的軟件構建及驗證的方法,其特征在于: 使用待驗證程序代碼,動態(tài)調(diào)用上述動態(tài)鏈接庫文件,分別生成文本文件A和文本文件B,存儲到本地。
4.根據(jù)權利要求3所述的一種基于面向組件模型的軟件構建及驗證的方法,其特征在于: 利用二進制對比程序,對比文本文件A和文本文件B,并對比對結果做詳細記錄。
5.一種基于面向組件模型的軟件構建及驗證的方法,其特征在于: 利用驗證結果記錄做穩(wěn)定分析,得到驗證結果。
【文檔編號】G06F11/36GK103853660SQ201310743470
【公開日】2014年6月11日 申請日期:2013年12月30日 優(yōu)先權日:2013年12月30日
【發(fā)明者】劉海亮, 廖奇, 羅笑南, 楊艾琳, 蘇航 申請人:中山大學深圳研究院