可信構件庫的開發(fā)-構件檢索畢業(yè)論文_第1頁
可信構件庫的開發(fā)-構件檢索畢業(yè)論文_第2頁
可信構件庫的開發(fā)-構件檢索畢業(yè)論文_第3頁
可信構件庫的開發(fā)-構件檢索畢業(yè)論文_第4頁
可信構件庫的開發(fā)-構件檢索畢業(yè)論文_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

.....參考資料.可信構件庫的開發(fā)—構件檢索畢業(yè)論文目錄摘要 IAbstract II目錄 III第1章概述 11.1研究背景和意義 11.1.1項目背景 11.1.2項目意義 21.2相關研究現(xiàn)狀 21.3本文的主要研究工作 31.4本文的組織結構 4第2章構件庫及構件檢索理論研究與分析 52.1構件的概念 52.1.1構件定義 52.1.2構件庫 52.2構件的存儲 62.2.1構件的存儲方式 62.2.2構件庫的存儲對象分析 72.3構件的檢索 82.3.1構件檢索過程 82.3.2構件檢索算法分析 9第3章構件檢索子系統(tǒng)的設計 133.1總體設計 133.1.1系統(tǒng)功能結構 133.1.2構件檢索方法設計 143.1.3檢索信息的提交及系統(tǒng)檢索流程設計 143.2普通檢索設計 153.2.1構件檢索的評價標準 163.2.3廣度優(yōu)先檢索 163.2.4深度優(yōu)先檢索 173.2.5構件檢索結果計時器 183.3XML查詢語句XQuery 19第4章系統(tǒng)實驗及性能優(yōu)化 204.1系統(tǒng)運行環(huán)境及配置 204.2系統(tǒng)實驗及分析 204.2.1實驗數(shù)據(jù)來源 204.2.2實驗方法 204.2.3實驗結果分析 214.3系統(tǒng)檢索性能優(yōu)化 214.4系統(tǒng)運行界面說明 22第5章總結與展望 235.1總結 235.1.1收獲 235.1.2存在的問題 235.2展望未來 23參考文獻 25致謝 26附錄 27附錄A:主要源程序 27附錄B:系統(tǒng)界面示例 31牛瑋:可信構件庫的開發(fā)....第1章概述本章節(jié)將從項目研究背景和意義講起全面概述系統(tǒng)的研究設計和開發(fā),對本文章進行整體架構。近年來隨著面向對象技術的發(fā)展,以及CORBA、J2EE等工業(yè)標準的出現(xiàn),大大刺激了構件技術的發(fā)展[1]。隨著軟件復用實踐的深入和時間的推移,企業(yè)部積累的構件將越來越多、企業(yè)外部對構件的需求也越來越多。Internet和Web技術的成熟,使得企業(yè)或組織的構傳庫實現(xiàn)基于Internet的共享成為可能和必然[17]。在Internet技術下如何實現(xiàn)構件庫對構件的有效管理和檢索,成為研究的重點,以便為構件復用實踐提供技術支持。1.1研究背景和意義1.1.1項目背景軟件復用(SoftwareReuse)是一種由預先構造好的、為復用目的而設計的軟件構件來建立或者組裝軟件系統(tǒng)的過程。它的基本思想是在兩次或多次不同的軟件開發(fā)過程中重復使用相同或相近軟件元素的過程。軟件構件(SoftwareComponent)是抽象程度最高的復用,是對一組類的組合進行封裝,并代表完成一個或多個功能的特定服務,也為用戶提供了多個接口。整個構件隱藏了具體的實現(xiàn)只用接口提供服務。通過建立可復用構件庫可使軟件開發(fā)商快速高效地從一,個成功項目中開發(fā)出相關領域的類似項目,充分節(jié)省開發(fā)成本。建立構件庫管理系統(tǒng)可以對構件進行有效的組織和管理,其中構件庫管理系統(tǒng)主要涉及構件的完整性描述、構件庫的搭建、構件的存儲和構件檢索。構件的存儲主要解決構件在構件庫中的存儲方法和數(shù)據(jù)結構,是實現(xiàn)一個有效的構件庫的前提;構件庫的搭建主要解決構件的分類和入庫;構件檢索主要是為了用戶準確快速地檢索到目標構件然后用于再工程等,其中需要重點解決的是構件的檢索[2]。然而,即便軟件復用思想已經(jīng)深入人心,雖然業(yè)界或者學術界已經(jīng)存在大量的CBSD概念、方法和工具,并且在實踐中能見到許多成功的例子,但是軟件產(chǎn)業(yè)并沒有完完全全走進CBSD規(guī)的開發(fā)過程中。有文獻表明[2],大規(guī)模的軟件成本下降和軟件質量的提高在現(xiàn)存的基于構件的軟件生成的幫助下并沒有得到體現(xiàn),作為子產(chǎn)業(yè)的軟件構件也沒有形成,CBSD還遠未被當成一種真正的軟件工程實踐方法。1.1.2項目意義本文詳細介紹了構件庫管理系統(tǒng)的設計與實現(xiàn),主要分為構件庫及構件檢索理論研究與分析,構件檢索子系統(tǒng)的設計,系統(tǒng)實驗及性能優(yōu)化,總結等部分。通過一系列詳細的研究學習,筆者對構件領域有了很深的理解。本項目是在參照很多已投入運營的構件庫系統(tǒng)如863構件庫系統(tǒng)、構件庫等基礎上設計開發(fā)的。1.2相關研究現(xiàn)狀軟件復用技術在國外經(jīng)過多年的研究,導致了一批有特色的構件庫系統(tǒng)的產(chǎn)生。在國外,比較有名的構件庫系統(tǒng)有REBOOT構件庫、Agora構件庫、和IBMRSL系統(tǒng)[16]。其中REBOOT構件庫采用了刻面分類的方法,定義了Abstraction、Operations、Operateson、Dependencies四個刻面對構件進行描述,主要針對源代碼級別的構件[15]。Agora構件庫的搜索引擎是CMUSEI開發(fā)的一個構件搜索引擎,它的主要特點是基于Intrnet互聯(lián)。Agora通過對Web頁面的搜索來獲取構件的信息,對這些構件信息的管理與普通的搜索引擎一致[15]。Agora搜索的構件種類有限,局限于流行的JavaBeans、ActiveX和COBRA等商業(yè)構件上。IBM公司研發(fā)的RSL(reuselibrary)系統(tǒng)結合了刻面和關鍵詞分類方法對構件進行描述,通過多種分類方法的綜合運用提高檢索效果。近十年來,國對軟件復用也進行了廣泛的研究。其中北大青鳥構件庫系統(tǒng)具有代表意義。青鳥構件庫系統(tǒng)采用以刻面為主,關鍵詞、屬性、超文本結合使用的分類方案。構件的基本刻面包括環(huán)境、應用領域、功能、層次、表示方法。使用者可以用刻面和屬性的檢索組合,層次地瀏覽和檢索,并逐步求精。此外,使用者還可以通過系統(tǒng)提供的反饋機制選取輔助分析。構件庫則是國運營較為成功的一個構件庫,它的出現(xiàn)為軟件企業(yè)實現(xiàn)由傳統(tǒng)開發(fā)方式向軟件工廠模式的轉變提供了良好的公共基礎設施。構件檢索是指軟件復用者根據(jù)其自身的需求,通過軟件構件庫管理系統(tǒng)所提供的查詢手段,提出查詢請求,并獲得系統(tǒng)返回的構件的過程。從軟件復用思想的提出開始,構件檢索方法的研究工作已經(jīng)持續(xù)了幾十年。尤其在上世紀的90年代,學者們提出了很多不同的構件檢索方法,但是始終沒達到一個令人滿意的檢索效果。隨著互聯(lián)網(wǎng)技術的高速發(fā)展和Java等面向對象語言的流行,對構件的復用研究又提出了新的要求。構件檢索技術始終是構件復用的一個研究熱點。以上是國外對構件復用技術研究的一些顯著成果。與構件檢索相關的技術將在第2章中做詳細的綜述。1.3本文的主要研究工作構件檢索技術涉及三個方面,它們分別是構件描述,構件存儲,構件分類和構件檢索。構件檢索技術的關鍵在于構件的形式化表示與軟件復用需求的形式化表示。由此引出了構件檢索技術的難點——如何使構件復用者能夠從構件庫系統(tǒng)描述構件的角度去理解構件,并且用構件庫能理解和處理的形式來描述復用者對構件的需求。關于構件檢索,很多學者對各種各樣的方法進行了歸類。比較流行的有以下幾個:Frakes等把構件檢索分為基于圖書館和信息科學索引檢索方法,基于知識庫的檢索方法和超文本的檢索方法[10]。HMili等則提出構件檢索方法可以歸納成基于人工智能、基于超文本、基于圖書館科學和信息科學和基于形式化規(guī)約等四種檢索方法[12]。Okhayati則提出了基于部索引檢索、基于外部索引檢索、基于結構匹配的檢索和基于行為匹配的檢索四種檢索類型[11]。總結前人的研究,他們大體上把構件檢索方法分成六大類,它們分別是:基于信息科學檢索方法、基于描述性說明的檢索方法、基于構件運算語義的檢索方法、基于構件指稱語義的檢索方法,基于拓撲檢索方法和基于構件結構的檢索方法。目前廣為使用的刻面分類方法能夠對構件的分類與檢索作出很好的支持。基于刻面的分類雖然提供了多角度對構件進行描述,并且刻面的樹形結構在XML技術的幫助下能很好地對構件進行表示,但是由于復用者存在對領域知識的缺乏和刻面術語描述的嚴格性,復用者和計算機對構件的理解的一致性問題仍然沒有很好的解決。針對這個問題,本文提出了一種基于描述性說明的構件檢索方法。通過學習和研究以上六類系統(tǒng)檢索方法,特就基于描述性說明的構件檢索方法進行了系統(tǒng)性的研究。基于描述性說明的方法通常是對用戶的檢索請求(通常是關鍵字請求)和構件的描述性說明(通常由一組結構化的說明性術語或關鍵字組成)進行匹配。這個方式可以被認為是信息科學檢索方法的一個特例,而其特別之處在于基于描述性說明的方法通常是基于受控詞匯表的。同時這種檢索方式由于易于實現(xiàn)并且效果不錯,目前廣為使用。所以本文把它單獨作為一個大類討論。由于構件本身與構件描述是獨立的兩類實體,因此需要通過人工對其進行關聯(lián)。通常的做法是,專家根據(jù)構件庫的領域特征設定一系列關鍵詞,構件庫管理員在構件入庫的時候對構件進行索引[3]。在基于描述說明中,被討論得最多的方法是基于刻面的構件檢索方法。Prieto等人最先在[14]中提出了基于刻面的構件檢索方法。他們指出,由于簡單的關鍵字描述是非結構化的,構件間的公共特性不能統(tǒng)一。并且,構件間的特殊關系也不能在構件庫的組織過程中顯示出來。有鑒于此,他們在文中為構件提出了功能,實體類型,媒介、系統(tǒng)類型、功能區(qū)域和設置這六個刻面。對于每個刻面,作者又設定一系列的術語與之對應(如系統(tǒng)類型:windowsxp,unix,linux等)。術語是受控的,同時也僅限于描述給定的刻面。術語間有如同義詞等的特殊關系,從而形成結構化的術語空間。自從基于刻面的方法提出以后,很多研究在刻面的基礎上展開。Boerstler在[13]中提出了一種面向特征的檢索方法。該文指出,構件是由一些特征來進行區(qū)別的,通過一系列刻面和術語,可以給構件定義其獨有的特征。復用者根據(jù)特征這個概念,對目標構件的理解會更準確,進而提高檢索的精度。基于知識的構件檢索在某種程度上也屬于基于描述性的檢索方法,這是因為知識的核心語義也是基于自然語言字符串的語義[12]。由于存在著推理的過程,基于知識的描述形式化程度比關鍵字和刻面都要高。構件檢索時,根據(jù)用戶提出的各種要求,生成系統(tǒng)部的提問形式,推理機便根據(jù)提問形式求出結果并顯示給用戶。典型的例子有MurrayWood的[15]。本文綜合各種構件檢索方法的特點以及本系統(tǒng)實際需要,把基于描述性的構件檢索方法細分為深度優(yōu)先檢索、廣度優(yōu)先檢索、XQuery查詢、受控詞匯查詢等四類檢索方法。1.4本文的組織結構全文共5章,第l章為概述,介紹研究課題的背景和意義,軟件構件檢索在國外的研究現(xiàn)狀以及本文的研究工作。第2章介紹了構件庫及構件檢索技術的相關理論,包括構件定義,構件庫概述,構件分類和描述技術以及構件檢索技術等。第3章介紹了構件庫系統(tǒng)中的構件檢索模塊具體設計和實現(xiàn)。第4章主要是對系統(tǒng)進行實驗分析并對系統(tǒng)性能進行優(yōu)化。第5章對系統(tǒng)進行整體總結并得出結論,一方面總結已完成的任務,另一方面也對為完成的任務進行分析,同時明確在系統(tǒng)設計和開發(fā)過程中存在的問題,也對構件領域的未來進行了展望。

第2章構件庫及構件檢索理論研究與分析本章節(jié)將詳細講述構件庫及構件檢索的相關理論研究,對構件確定明確的定義,使構件庫及構件存儲過程清晰明了,最后對構件檢索過程進行比較分析。2.1構件的概念2.1.1構件定義軟件構件是可被用來構造其他軟件的軟件組成成份,它可以是被封裝的對象類、類樹、一些功能模塊、軟件框架(或體系結構)、文檔、分析件、設計模式等[9]。廣義上將,只要是軟件系統(tǒng)中可以明確識別的、可被他人復用的成份,就可以稱為軟件構件。一般來說,具有相對獨立的功能和可復用價值的軟件成份都可被稱為可復用構件,可復用構件不但包括源程序而且還包括在軟件生產(chǎn)過程中各個階段的成品,如項目計劃需求定義、分析模型、設計模型、文檔、測試案例和數(shù)據(jù)以及其他對開發(fā)活動有用的信息等,它可以是從舊的軟件中提取的也可以是專門為了復用而開發(fā),可復用構件應該具備幾個基本要素:有用性(Usefulness):構件必須提供有用的功能;可用性(Usability):構件必須易于理解和使用;質量(Quality):構件及其變形必須能正確工作;適應性(Adaptability):構件應該易于通過參數(shù)化等方式在不同語境中進行配置;可移植性(Portability):構件因能再不同的硬件平臺和軟件環(huán)境中工作。2.1.2構件庫構件庫是可重用軟構件的集合,是一個包括人員、工具和過程的組織,主要目的是提供軟件生存周期產(chǎn)品的重用機制以滿足特定的軟件代價——效益和生產(chǎn)率的目標,并作為開發(fā)可重用構件和基于可重用構件開發(fā)這兩個生存周期的聯(lián)系體系。具體地說,構件庫就是類似于用來存儲、檢索和管理構件的數(shù)據(jù)庫,是開發(fā)可重用構件和使用可重用構件的中間媒介[10]。構件庫一般管理流程如圖2-1所示。圖2-1構件庫一般管理流程構件庫管理系統(tǒng)CLMS(ComponentLibraryManagementSystem)是為構件庫的建立、使用和維護而配置的應用軟件。文獻[11]中提到的構件庫管理系統(tǒng)通過構件庫存儲構件、提供可重用的軟件資源。CLMS對構件庫進行統(tǒng)一的管理和控制,承擔著構件庫的維護工作,保證構件庫的安全性和完整性。重用者使用各種構件庫管理命令查詢利用構件、控制構件的執(zhí)行,通過構件庫管理系統(tǒng)使用各類構件將更加方便。2.2構件的存儲2.2.1構件的存儲方式構件庫的構件存儲系統(tǒng)可嘆采用多種方式:面向對象數(shù)據(jù)庫OODBSMS、關系數(shù)據(jù)庫RDBMS和文件系統(tǒng)Files[6]。OODBSMS其有存儲數(shù)據(jù)量大、易于維護、易于擴充、易于格式動態(tài)變動等優(yōu)點,但它目前尚無成熟產(chǎn)品,龍其在標準化和性能上令人不滿意,并且有些構件又不支持OO(面向對象)技術,因而OODBSMS不能滿足構件庫對構件的存儲要求。相比之下,關系數(shù)據(jù)庫RDBMS具有就存儲和管理大量數(shù)據(jù)的高效性、理論的嚴密性和技術的成熟性,它不僅可以支持存儲不同的數(shù)據(jù)類型和負責的數(shù)據(jù)結構,而且能夠表示結構化的數(shù)據(jù),可以方便地表達出數(shù)據(jù)之間的關系,并且還可以提供多種線索進行查詢,具有很高的查詢效率,所以是構件存儲系統(tǒng)的首選。但是,在實際應用中,構件的結構極其復雜,存在形式多種多樣,且構件的體積可以能大,這與關系數(shù)據(jù)庫多所保存的數(shù)據(jù)項一般都有尺寸限制,不宜過大的要求不相符合,所以僅用RDBMS來存儲構件是顯然可能的,但是又不夠的。另一種可用來存儲構件的是文件系統(tǒng)Files。Files系統(tǒng)的存儲特點是存儲容量大,對存儲的數(shù)據(jù)體積無限制,且可以存儲多種不同形式的構件。這點剛好符合對構件存儲的要求。但Files不利于大量數(shù)據(jù)的存儲,因為它的查詢效率低,缺少有效快捷的檢索途徑,查找構件不方便。因此,文件系統(tǒng)Files也不完全符合對構件存儲的需要。綜合上述幾種存儲方式,本系統(tǒng)采用XML對構件信息進行存儲,而采用文件系統(tǒng)對構件本體進行存儲。之所以使用XML的一個重要因素是,XML在數(shù)據(jù)表示方面極具靈活性。它可以表示關系數(shù)據(jù)庫里很難表示的數(shù)據(jù)結構,剛好符合構件相關描述信息。在某些情形下,原生的XML數(shù)據(jù)庫可以解決一些關系數(shù)據(jù)庫不容易解決的問題,比如XML特有的XQuery操作,它類似于SQL查詢語句,能夠快速準確地對XML數(shù)據(jù)進行查詢。而構件本體一般所占存儲空間比較大,適合用文件系統(tǒng)進行存儲。2.2.2構件庫的存儲對象分析在研究完構件和構件庫的具體定義之后,本項目下一步的目標是研究構件的存儲,并設計建立合理的存儲模型。構件庫中的存儲對象包括構件實體、構件描述信息、構件管理控制信息簿[11]。構件庫作為基于構件開發(fā)過程中的重要部分,主要作用不僅是保存構件,而且還能檢索和管理構件信息以利于選取符合需要的構件和。所以構件庫不僅要保存眾多的構件實體,還需要記錄這些構件豐富的描述和說明信息。此外,為了保證系統(tǒng)運行的安全性,必須對構件庫使用者的身份和權限進行控制和管理,進行控制和管理權限的相關的信息也存儲在構件庫中。所有這些容,構成了構件庫系統(tǒng)存儲和管理的對象,具體來說,包括如下容:構件實體:主要是指構件本身的容,即復用者最終感興趣的軟件成分,如,代碼、設計文檔等。獲取構件實體是用戶使用構件庫的最終目的。構件描述信息:在構件本身的實體容中不存在,是人為增加的用于構件屬性描述和分類的信息,目的是便于構件復用者對構件的查找和理解,是構件查詢和理解所借助的依據(jù)。下面對構件描述信息包含的容作一個簡要介紹。構件本體信息:構件類型,應用領域,功能分類。創(chuàng)建信息:版本編號,創(chuàng)建者,創(chuàng)建者聯(lián)系方式,創(chuàng)建時間。更新信息:版本編號,更新者,更新者聯(lián)系方式,更新時間。服務信息:服務名稱,服務接口,輸入?yún)?shù),輸出參數(shù),示例描述。引用信息:引用名稱,引用接口。環(huán)境信息:軟件環(huán)境(操作系統(tǒng),數(shù)據(jù)庫,開發(fā)語言),硬件環(huán)境(處理器,存,硬盤)。構件存儲模型如圖2-2所示:圖2-2構件存儲模型2.3構件的檢索2.3.1構件檢索過程構件的查詢過程就是定位類似的構件,使用者只需理解查詢得到的少數(shù)構件就可以決定是否直接重用構件。查找軟件構件的傳統(tǒng)方法,如查看一個用戶手冊,使用瀏覽器檢查源代碼等,不僅花費大量時間,而且對理解構件幫助不大,通常,在本地較小的軟件庫中的構件檢索是比較簡單的,用戶能夠很容易地檢查到所需的構件,并可通過它們的名字或通過瀏覽器庫來選擇它們;但在一個大的構件庫中檢索可復用的構件就沒這么簡單,存在很多影響檢索效率的因素,一般包括[12]:用戶的請求與所需構件信息的相近程度;搜尋和索引策略;索引方法的詳盡性和具體性;使用的匹配和相似分析機制;實踐中構件數(shù)量不斷增長,構件也隨技術和領域演化而更新。構件的分類是建立和維護構件目錄信息的活動,構件的檢索方法依賴于構件的標識和分類。對構件進行分類有三個好處:便于組織管理、方便查詢和輔助理解[13]。而對于具體檢索過程則要通過不同檢索算法的設計而定,但檢索流程大體上相同。構件檢索過程如圖2-3所示。圖2-3構件檢索過程2.3.2構件檢索算法分析構件檢索算法的研究一直是構件領域比較重要的研究容,也是構件庫系統(tǒng)最關鍵部分技術。現(xiàn)階段業(yè)界對構件檢索算法的研究花費了很大的人力和財力,所以也出現(xiàn)了很多種檢索算法。研究學習目前已經(jīng)存在的檢索算法,收獲頗大。現(xiàn)列舉幾種流行的和檢索效果較好的檢索算法。(1)基于規(guī)約語法的構件檢索原理在構件組裝的過程中需要查找滿足功能需求的構件,而且所查找的構件必須滿足組裝語法的需求[13]。待檢索構件和構件庫中候選構件的規(guī)約語法匹配是構件庫支持構件組裝的一個重要的方法。在PlugandSocket類型接口中,每個服務作為一個不可分割的獨立單位存在,類似于硬件設備的一個插口。因此我們將服務作為語法匹配的原子單位。PlugandSocket類型的接口將一組相關的功能封裝成一個服務(),每個服務的形式如下:service-nameisprovides:functionslistrequires:functionslistend每個function只包含功能名、參數(shù)類型、參數(shù)名及返回值類型,不包含功能的實現(xiàn)體。基于規(guī)約語法的構件檢索原理如圖2-4所示。圖2-4基于規(guī)約語法的構件檢索原理首先需要通過一個語法分析器對待檢索構件的規(guī)約進行語法掃描,提取出與檢索相關的信息。然后需要對構件庫中侯選構件的規(guī)約逐一進行語法掃描,獲得每個侯選構件與檢索相關的信息,再和待檢索構件進行比較,判斷是否滿足需求。為了提高響應速度,通常的做法是在構件入庫時就對它進行語法分析,提取出與檢索相關的信息,事先存放在構件庫中,在檢索的過程中直接用它們和待檢索構件的檢索信息進行匹配。(2)基于本體與刻面相結合的構件檢索算法(RBOF)RBOF(ARetrievalMethodBasedOnOntologyAndFacet,基于本體與刻面相結合的構件檢索算法)使用定義好的領域本體庫對查詢樹進行語義推理,取查詢樹的每條路徑和構件庫中的每一棵構件樹進行匹配,并根據(jù)匹配庫返回檢索結果。該檢索算法描述如下:輸入:構件查詢樹Q,構件庫樹集合C(C1,C2……Cn),領域本體庫;輸出:檢索的結果集合N;/*BEGIN*/;/*初始化檢索結果集合為空*/計算查詢樹Q的所有根結點到葉結點的路徑集合Q(Q1,Q2,……,Qk);根據(jù)領域本體庫對Q1,Q2,…,Qk進行語義推理,獲得更多路徑Qk+1,…,Qm;若Qk+1,……,Qm集合不為空,;輸入檢索時期望的匹配程度,賦值給P;while(P=<0||P>1){/*第7至第11步驟為while循環(huán)體*/提示用戶匹配程序不合要求,請選擇退出本次檢索或重新輸入匹配程度;if(用戶選擇退出本次檢索){退出檢索;}else{重新輸入匹配程度,并賦值給P;}}To=0;/*查詢樹與構件樹T的匹配路徑數(shù),初始化為0*/for構件庫中的每一棵構件樹Cifor查詢樹中的每條路徑Qjif(路徑Qj與構件Ci相匹配){To++;if(To>=P*Q.length)/*p=1時,說明匹配路徑數(shù)與查詢路徑數(shù)相等,為高度匹配,否則允許((1-P)*Q.length)條路徑不匹配*/;}輸出檢索結果集N;/*END*/通過對算法的描述,可以看到該算法具有如下特點:(1)在該算法中使用本體的特點對檢索樹進行語義推理,推導出隱含語義,能對用戶的查詢請求進行語義處理,避免由于用戶查詢要求用詞不精確造成的查詢不準確。(2)可讓用戶自由輸入匹配程度。

第3章需求分析系統(tǒng)需求分析對后期軟件設計的重要性毋庸置疑。本章主要描述構件檢索相關的詳細需求分析,為第4章系統(tǒng)設計階段做好準備。3.1功能性需求3.1.構件庫管理系統(tǒng)的設計主要是為了合理規(guī)管理軟件構件,為軟件復用提供高效,可靠的根據(jù)。而構件檢索更是構件庫管理系統(tǒng)的核心功能部分。一個好的構件庫管理系統(tǒng)必須能夠給用戶提供比較完善的檢索方式,并且能夠高效地檢索到用戶期望得到的構件,當然前提是構件庫中必須存儲有足夠和全面的構件。然而,構件檢索對于一個比較龐大的構件庫來說并不容易,因為構件的規(guī)問題一直沒有固定的標準。所以在設計開發(fā)一個構件庫系統(tǒng)時必須要設計出合理的構件存儲方式,搭建穩(wěn)定的構件庫,在進行構件檢索開始時對構件進行清晰的分類。只有滿足以上條件才能保證構件檢索的順利進行。由于目前構件領域沒有規(guī)的技術標準,所以在此我們只是對構件庫系統(tǒng)進行研究。構件的檢索主要分為深度優(yōu)先檢索,廣度優(yōu)先檢索,XQuery查詢等方式。、1.構件檢索模塊關聯(lián)角色:普通用戶,管理員需求編號:CR-001需求描述:用戶需選擇適當?shù)臋z索條件,點擊不同檢索方式進行檢索。備注說明:登錄系統(tǒng)后才可進行事務處理等操作。3.1.深度優(yōu)先檢索。2.廣度優(yōu)先檢索。3.XQuery查詢。3.2非功能性需求3.2.1可用性系統(tǒng)可靈活的在每臺裝有Java虛擬機的電腦上使用,并且有足夠的能夠存儲構件的硬盤空間。3.2.2安全性1.安全防護針對本系統(tǒng)我們對用戶進行分類,以保證各級用戶對系統(tǒng)訪問的安全性。不同用戶對于系統(tǒng)的功能性操作不同,使得對于系統(tǒng)的管理運行更加穩(wěn)定。另外用戶登錄時輸入的口令不應在終端上顯示。2.訪問控制用戶登錄除了需要輸入用戶名和密碼外,還要輸入驗證碼,防止黑系統(tǒng)用戶賬號密碼被黑客暴力破解,并且用戶還可以通過問題提示找回密碼。3.2.3易用性構件庫管理系統(tǒng)必須簡單、易用,具有清晰的導航功能,使用戶快速找到自己想要執(zhí)行的操作界面,能夠方便地檢索到自己想要找的構件。3.3用例規(guī)約描述本章的目的是依據(jù)《需求規(guī)格說明書》,建立用例模型,并對用例模型進行具體描述。用例規(guī)約描述是面向對象分析和設計的重要步驟。用例規(guī)約描述需要進行評審。3.3.1目的用例是關于用戶和系統(tǒng)之間相互作用的文本性描述,從外部角度描述系統(tǒng)的行為,表達系統(tǒng)應該做什么。本文檔通過用例規(guī)約描述,來進一步說明該系統(tǒng)需求,是下一階段系統(tǒng)設計的基礎,也是測試用例的重要依據(jù)。3.3.2用例描述用例規(guī)約如表3.1所示:表3.1構件檢索用例規(guī)約用例名稱:構件檢索用例ID:CR-001關聯(lián)角色:普通用戶,管理員用例說明:系統(tǒng)驗證用戶輸入選擇檢索條件前置條件:無基本事件流:1.用戶請求系統(tǒng)構件檢索2.系統(tǒng)彈出系統(tǒng)構件檢索頁面3.用戶輸入選擇檢索條件4.用戶點擊檢索方式4.1.用戶選擇深度優(yōu)先檢索4.2.用戶選擇廣度優(yōu)先檢索5.系統(tǒng)輸出檢索結果6.系統(tǒng)顯示檢索用時7.用戶選擇確定檢索結果集8.用戶點擊修改按鈕9.系統(tǒng)跳轉到構件修改界面10.用例結束 異常事件流:8a.用戶選擇修改項為空8a-1.系統(tǒng)彈出消息對話框,提示用戶選擇修改項8a-2.用例結束后置條件:用戶檢索成功,顯示檢索結果備注說明:3.4用例圖構件檢索用例圖如圖3-1所示。圖3-1構件檢索用例圖3.5用戶界面設計構件檢索是構件庫管理系統(tǒng)設計開發(fā)過程中最重要的一部分,經(jīng)過慎重思考,并結合多方面考慮,將構件檢索界面設計如圖3-2所示。圖3-2構件檢索

第4章構件檢索子系統(tǒng)的設計本章節(jié)將主要講述系統(tǒng)的總體設計、構件普通檢索方法設計、XML查詢。關鍵技術檢索算法設計使用將在這里做重點介紹。4.1總體設計4.1.1系統(tǒng)功能結構在系統(tǒng)開發(fā)之前,項目小組對系統(tǒng)整體結構進行了詳細分析和設計,最終結合多方面因素將系統(tǒng)整體功能模塊明確劃分。系統(tǒng)功能分類和系統(tǒng)結構如圖所示:圖4-1系統(tǒng)功能分類圖圖4-2系統(tǒng)結構圖4.1.2系統(tǒng)類圖本系統(tǒng)包括對構件的基本操作管理等部分,系統(tǒng)總體類圖如圖所示。圖4-3系統(tǒng)總體類圖4.1.3構件檢索方法設計考慮到可能的檢索需求,系統(tǒng)設計了兩種檢索方式:普通檢索與XQuery檢索。普通檢索主要用于對構件描述比較詳細的情況進行檢索,此檢索方式對構件詳細描述信息要求比較嚴格,查找出的結果也比較精確;而基于XQuery的檢索主要是針對XML中構件描述信息不是很完整的構件進行檢索,這種檢索對檢索準確度要求不高,所以查找結果比較全面。4.1.4檢索信息的提交及系統(tǒng)檢索流程設計由于檢索關鍵詞以及可能的檢索條件較多,決定使用類型化數(shù)據(jù)集對象保存檢索條件,同時由于普通檢索的關鍵詞信息較少,為了避免定義過多的數(shù)據(jù)集對象,設計中將普通檢索的關鍵詞信息也包含入這個數(shù)據(jù)集,以下是用于類型化數(shù)據(jù)集的XMLSchema文件(newXMLDocument.xsd)。<?xmlversion="1.0"encoding="UTF-8"?><Schemaxmlns="./2001/XMLSchema"targetNamespace=".example./components"xmlns:target=".example./components"elementFormDefault="qualified"><!--構件庫根元素--><elementname="components"><complexType><sequence><elementname="component"minOccurs="0"maxOccurs="unbounded"><complextType><sequence><elementname="selfInfo"type="components:SelfInfoType"/><elementname="buildingInfo"type="components:BuildingInfoType"/><elementname="updateInfo"type="components:UpdateInfoType"/><elementname="serviceInfo"type="components:ServiceInfoType"/><elementname="quoteInfo"type="components:QuoteInfoType"/><elementname="environmenntInfo"type="components:EnvironmentInfoType"/></sequence></complextType></element></sequence></complexType></element>另外對于構件檢索條件也完全參照構件存儲時的規(guī),例如構件本體信息SelfInfo所包括的三個屬性(componentType,applyField,functionType)都是必須提前規(guī)好的,不容許隨便改動,這樣有利于對構件進行規(guī)和管理。與此類似的還有構件所需的硬件環(huán)境信息(HardEnvironmentInfo),軟件環(huán)境信息(SoftwareEnvironmentInfo)。在檢索流程設計方面,考慮到檢索方式較多,系統(tǒng)采用了框架集設計,多個刻面信息采集頁面共用一個框架集,并提供快捷指向任意檢索頁面。構件檢索整體流程設計如圖4-3所示。圖4-3構件檢索整體流程設計4.2領域模型在建立好用例模型后,本項目下一步的目標是從用例描述中抽象出領域模型,找出分析類。然后按照一定的原則進行系統(tǒng)設計,設計出相應的邊界類和控制類。4.2.1邊界類系統(tǒng)用戶通過邊界類與系統(tǒng)打交道,用戶向邊界類發(fā)起訪問,邊界類把用戶的申請?zhí)峤唤o控制類,控制類最終訪問實體類。一般在進行設計時可能一個用例對應一個邊界類,也可能是一個用戶對應一個邊界類,有時一個邊界類可能還要調用另一個邊界類才能完成一次用例。系統(tǒng)邊界類的命名以具體的英文描述,系統(tǒng)中構件檢索相關的邊界類說明如表4.1所示。表4.1構件檢索相關邊界類說明邊界類名稱說明Main系統(tǒng)主界面ComponentSelectHign高級檢索ComponentSelectOrdinary普通檢索4.2.2控制類邊界類通過控制類訪問實體類,本系統(tǒng)一個實體類基本對應一個控制類做管理,系統(tǒng)中檢索相關的主要控制類接口如表4.2所示。表4.2構件檢索相關控制類接口說明控制類接口名稱說明ComponentDao構件相關接口HardEnvironmentDao硬件環(huán)境相關接口SoftEnvironmentDao軟件環(huán)境相關接口SelfInfoDao本體信息接口控制類需要訪問實體類,具體控制類接口的實現(xiàn)也非常重要。系統(tǒng)中檢索相關的主要控制類接口實現(xiàn)如表4.3所示。表4.3構件檢索相關控制類接口實現(xiàn)說明控制類接口實現(xiàn)名稱說明ComponentDaoImpl構件相關接口實現(xiàn)HardEnvironmentDaoImpl硬件環(huán)境相關接口實現(xiàn)SoftEnvironmentDaoImpl軟件環(huán)境相關接口實現(xiàn)SelfInfoDaoImpl本體信息接口實現(xiàn)4.2.3實體類由于構件描述信息較多,所以本系統(tǒng)中構件相關實體類劃分很清楚。具體分類如表4.4所示。表4.4構件檢索相關實體類說明控制類說明BuildingInfo構件創(chuàng)建信息UpdateInfo構件更新信息SelfInfo本體信息ServiceInfo服務信息QuoteInfo引用信息Environment環(huán)境信息Component構件整體描述HardEnvironment硬件環(huán)境信息SoftEnvironment軟件環(huán)境信息ComponentList構件結果集4.3普通檢索設計在本節(jié)中將會介紹構件管理系統(tǒng)中構件檢索模塊的設計以及代碼實現(xiàn)。構件檢索模塊主要采用兩種檢索算法,廣度優(yōu)先檢索和深度優(yōu)先檢索。在檢索的過程中特別添加了計時器,使兩種檢索算法效率詳細呈現(xiàn)。在下面的容中只介紹部分主要類與函數(shù)代碼,其余在此就不再過多的贅述,詳細代碼請參考程序源代碼。4.3.1構件檢索的評價標準每種構件檢索策略的代價是該構件檢索策略的關鍵,如果某檢索策略代價高于對重新開發(fā)的代價則該檢索策略是失敗的。檢查效率主要包括查全率、查準率和查詢時間三個重要參數(shù)。在具有多種分類方法的構件庫中,可以用查全率、查準率來定義檢索效果[7]。具體定義如下:查全率=檢索到的相關構件集合/構件庫中所有相關構件集合查準率=檢索到的相關構件集合/檢索到的所以構件集合查詢時間=檢索開始時間-檢索結束時間4.3.2構件檢索界面通過第三章對系統(tǒng)的需求分析和本章前兩節(jié)的系統(tǒng)設計分析,我們實現(xiàn)了普通構件檢索的相關功能。構件檢索界面如圖4-4所示。圖4-4構件檢索界面4.3.3廣度優(yōu)先檢索經(jīng)過檢索算法學習和研究,結合構件樹形結構類型的特點特設計出了廣度優(yōu)先檢索算法。此算法的特點是查準率比較高,但查全率很低。具體廣度優(yōu)先檢索描述如圖4-4所示。圖4-4廣度優(yōu)先檢索描述上述廣度優(yōu)先檢索算法的設計主要是由ComponentSelect.java類中的SelectWide(ArrayList<Component>list,Stringstring)方法實現(xiàn)的。此方法是將一個參數(shù)string返回到<Component>list中并進行廣度優(yōu)先查找。用這種方法檢索構件的好處是查準率比較高,但查全率不好。SelectWide(ArrayList<Component>list,Stringstring)的實現(xiàn)過程為:先定義newList=newArrayList<Component>()將操作相關構件結果集放入到newList中。然后用一個switch(i)語句對構件查詢條件選擇進行判斷并獲取。i取值從0到8依次判斷并從構件庫中進行篩選。將檢索到的信息用add()方法放入到newList中,同時通過list.remove(j)操作使檢索條件判斷下移并繼續(xù)執(zhí)行,如果找到目標構件信息,使用break跳出,否則繼續(xù)檢索。publicstaticArrayList<Component>SelectWide(ArrayList<Component>list,Stringstring){booleansign=true;ArrayList<Component>newList=newArrayList<Component>();if(!string.equals("")){for(inti=0;i<9;i++){switch(i){case0:for(intj=0;j<list.size();j++){if(list.get(j).getSelfInfo().getComponentType().equals(string)){Componentcomponent=newComponent();component=list.remove(j);newList.add(component);}};break;}……}}else{newList=list;}returnnewList;}4.3.4深度優(yōu)先檢索本系統(tǒng)設計的另外一種檢索算法是深度優(yōu)先檢索,它查全率比較高,而查準率不行,通過這種方式能夠檢索到某一更大圍的構件信息。此檢索方式具體檢索描述過程如圖4-5所示。圖4-5深度優(yōu)先檢索描述上述深度優(yōu)先檢索算法的設計主要是由ComponentSelect.java類中的SelectDeep(ArrayList<Component>list,Stringstring)方法實現(xiàn)的。此方法也是將一個參數(shù)string返回到<Component>list中并進深度優(yōu)先查找。用這種方法檢索構件的好處是查全率比較高,但查準率不好。SelectDeep(ArrayList<Component>list,Stringstring)的實現(xiàn)過程為:(1)先定義一個boolean類型的標識的變量sign用于對檢索過程進行標識。(2)先定義newList=newArrayList<Component>()將操作相關構件結果集放入到newList中。(3)然后用一個switch(i)語句對構件查詢條件選擇進行判斷并獲取。i取值從0到8依次判斷并從構件庫中進行篩選。(4)將檢索到的信息用add()方法放入到newList中,同時通過list.remove(j)操作使檢索條件判斷下移并繼續(xù)執(zhí)行,如果找到目標構件信息,將標識變量sign值改變并使用break跳出,否則繼續(xù)檢索。publicstaticArrayList<Component>SelectDeep(ArrayList<Component>list,Stringstring){booleansign=true;ArrayList<Component>newList=newArrayList<Component>();if(!string.equals("")){while(!list.isEmpty()){Componentcomponent=newComponent();component=list.remove(0);if(component.getSelfInfo().getComponentType().equals(string)){newList.add(component);sign=false;}……對環(huán)境信息的判斷同對軟件環(huán)境信息的判斷相同,在此就不再列舉。4.3.5構件檢索結果計時器為了便于對不同檢索算法的檢索效率進行比較,在系統(tǒng)設計時添加了計時器,使得檢索出結果的同時能夠清楚地查看不同檢索算法檢索所用的時間,從而清晰比較出檢索效率。(1)定義兩個長整型變量開始時間(beginTime),結束時間(endTime),還有一個浮點型檢索時間(resultTime)(2)檢索算法執(zhí)行之前由beginTime=System.nanoTime()獲得開始時間,在檢索算法執(zhí)行之后用endTime=System.nanoTime()獲得檢索結束時間,并使用resultTime=(float)(endTime-beginTime)獲得檢索所用時間。通過檢索時間resultTime的多少來對不同檢索算法進行比較分析。以下對比分析兩種檢索算法通過檢索條件的異同檢索得到結果所用時間對照表如下:表4.1檢索數(shù)據(jù)分析表深度優(yōu)先檢索(ms)廣度優(yōu)先檢索(ms)開始時間結束時間檢索用時開始時間結束時間檢索用時不同檢索條件4106010070459644.0259597728651327.0相同檢索條件387566523426478.094598967212123.04.4XML查詢語句XQueryQuery是XML數(shù)據(jù)查詢語句,盡管XQuery才面世時間不長,但是很多軟件公司和獨立的開發(fā)商已經(jīng)開放了實現(xiàn)Xquery的部分功能或全部功能的軟件。Xquery工具軟件的普遍使用,說明了許多軟件開發(fā)商認識到XQuery是一個重要的XML標準,它具有巨大的商業(yè)機遇[4]。本文所列舉到的有關XQuery的技術都使用SaxonXQuery引擎。在系統(tǒng)開發(fā)過程中下載使用的是Saxon8.9的版本。對XQuery的使用必須經(jīng)過一下類似于關系型數(shù)據(jù)庫操作:(1)創(chuàng)建數(shù)據(jù)源DataSource:DDXQDataSourcedataSource=newDDXQDataSource();(2)創(chuàng)建連接Connection:XQConnectionconn=dataSource.getConnection();(3)書寫XQuery語句:Stringxquery="for$cindoc(\""+XMLPath.FILEPATH+"\")/components/component";(4)創(chuàng)建Expression:XQExpressionxqexp=(XQExpression)conn.createExpression();(5)執(zhí)行解析:XQSequenceresult=xqexp.executeQuery(string);(6)數(shù)據(jù)處理:while(result.next()){ XQItemitem=result.getItem();Nodenode=item.getNode(); NodeListlst=node.getChildNodes();readNodeList(lst);}

第5章系統(tǒng)實驗及性能優(yōu)化本章將介紹系統(tǒng)的整體運行情況,包括運行所需的軟硬件環(huán)境要求和對系統(tǒng)運行界面的分析說明。5.1系統(tǒng)運行環(huán)境及配置每個系統(tǒng)都應有它所適合運行的環(huán)境,只有在最佳環(huán)境下才能將系統(tǒng)性能發(fā)揮最好。本系統(tǒng)是基于C/S模式的應用程序,所以在此對其運行環(huán)境進行說明。具體運行環(huán)境如下:操作系統(tǒng):WindowsXP以上系列網(wǎng)絡平臺:Internet/LAN數(shù)據(jù)庫:MySQL5.5開發(fā)環(huán)境:NetBeans6.8開發(fā)語言:Java5.2系統(tǒng)實驗及分析5.2.1實驗數(shù)據(jù)來源在參照目前以投入使用運營的構件庫系統(tǒng)例如863構件庫系統(tǒng),青鳥構件庫系統(tǒng),構件庫等基礎上,對構件相關數(shù)據(jù)進行了綜合并制定了自己特有的標準和規(guī)。為保證試驗數(shù)據(jù)的多樣性,從構件庫下載了很多免費構件成品,對這些構件除功能刻面保留參考資料的原始信息外,其他刻面均隨機虛擬為相應的刻面,最后將它們添加入庫[14]。如下圖所示是根據(jù)構件本體信息將構件分類。表5.1構件本體信息分類類型定義實驗數(shù)據(jù)構件類型測試構件,頁面構件,中間件功能分類系統(tǒng)和安全,程序開發(fā),數(shù)據(jù)庫相關,多媒體,網(wǎng)絡通信,信息管理,辦公應用,用戶界面應用領域公共事業(yè),金融,教育,交通,軍事,醫(yī)療,電力,機械等5.2.2實驗方法構件添加入庫實驗方法:(1)直接添加方式,是指通過提交正常數(shù)據(jù),將構件添加入庫,這種方式主要是為了規(guī)構件庫中構件登記信息的完整性。(2)用添加向導方式添加大部分實驗構件:通過系統(tǒng)正確引導使之按照順序正常添加構件入庫,或者提交格式錯誤數(shù)據(jù)以測試系統(tǒng)添加入庫的正確性、健壯性。構件檢索實驗方法:為參加實驗的人員,提供所要求查找的構件的一段文字描述。讓他們登錄系統(tǒng)之后,任意使用檢索方式進行查找,最后將他們所查找到的構件集合及使用的檢索方法進行統(tǒng)計,與庫中實際滿足要求的構件集合進行比較和分析。5.2.3實驗結果分析添加入庫實驗表明:通過直接入庫方式在正常數(shù)據(jù)添加時表現(xiàn)較好,但當部分數(shù)據(jù)類型為不規(guī)字符串時對非法數(shù)據(jù)校檢能力不夠。針對這種情況,對直接添加方式使用JAXB映射的方式對構件信息進行規(guī),JAXB映射主要由4部分構成:Schema、JAXB、XML文檔、Java對象[5]。通過JAXB所產(chǎn)生的XML文件滿足這種格式,所以添加構件系統(tǒng)實際上采用了JAXB代替Schema作為添加入庫的模式映射文件。通過對檢索實驗結果的分析得到以下幾點結論:(1)當用戶對刻面分類不熟悉時,檢索過程中均不會多檢索條件進行選擇,他們對構件的理解僅限于“在關鍵詞中檢索”和“在功能描述檢索”。查全率一般在80%以上,但查準率不理想,一般在50~70%之間。由此可見,改進檢索方式可有效的提高檢索效率。(2)當用戶對刻面分類有一定的了解后,用戶可以選擇不同檢索條件,系統(tǒng)會根據(jù)不同檢索條件檢索到不同結果。(3)當檢索條件相同,用戶采用深度優(yōu)先檢索時,其查全率一般在80%~90%之間,查準率則很低;而使用廣度優(yōu)先檢索其查全率在50%~60%,但其查準率一般都能達到95%以上。(4)當檢索條件不同相同,用戶采用深度優(yōu)先檢索時,其查全率一般還是在80%~90%之間,查準率則很低,檢索所用時間較多;而使用廣度優(yōu)先檢索時查準率很高,所以檢索用時就相對較少。5.3系統(tǒng)檢索性能優(yōu)化系統(tǒng)采用數(shù)據(jù)集保存檢索結果,由于采用兩級顯示方式(多個構件基本信息列表顯示、單個構件詳細信息樹狀顯示),所以在執(zhí)行數(shù)據(jù)庫檢索時,并不將合乎條件的構件全部信息讀出,而只是將構件的基本信息讀出并保存入數(shù)據(jù)集(減少了存消耗,尤其是檢索結果較多時),并將返回結果存入Component結果集,同時系統(tǒng)置檢索完成標記,以后只要標記不改變,列表均從Component結果集中讀取數(shù)據(jù)顯示,避免執(zhí)行修改刪除等操作導致從數(shù)據(jù)庫中執(zhí)行。5.4系統(tǒng)運行界面說明在這里挑選部分有代表性的界面說明,附錄中有具體的運行界面:附錄B2-1是上傳構件的界面。附錄B2-2是檢索構件的界面。附錄B2-3是修改構件的界面。

第6章總結與展望6.1總結6.1.1收獲本系統(tǒng)作為畢業(yè)設計,并且是大學以來第一次學術研究性課題,設計開發(fā)難度可見一斑。經(jīng)過小組成員通力合作以及在老師的耐心幫助下最終基本完成項目任務,實現(xiàn)了預定的構件管理系統(tǒng)的核心功能及相關輔助功能。系統(tǒng)開發(fā)所使用的開發(fā)工具是NetBeans6.8,后臺數(shù)據(jù)庫存儲使用的是XML和MySQL,使用Java語言開發(fā)而成,使得系統(tǒng)具有很好的移植性和穩(wěn)定性,提高了軟件的應用圍。由于在系統(tǒng)開發(fā)開始之前的理論準備工作量很重,所以小組成員投入了大量人力和時間進行開發(fā)理論研究準備所以基本完成了系統(tǒng)總體任務方面(構件描述,構件庫搭建,構件存儲,構件檢索)。全面總結本次畢業(yè)設計主要有以下幾個方面的寶貴經(jīng)驗和深刻體會:一:綜合查閱資料是一項非常重要的學習能力。二:軟件開發(fā)是一種邏輯分析思維要求很高的工程性工作,在設計開發(fā)過程中一定要遵照軟件工程步驟實施。三:經(jīng)過畢業(yè)設計的鍛煉,團隊合作精神的重要性完全體現(xiàn)出來,這對將來的工作和發(fā)展都是有很大影響。本次畢業(yè)設計是一次重要的經(jīng)歷,鞏固了大學四年所學習的理論基礎知識,同時對四年學習的專業(yè)方面知識進行了全面檢驗,而且磨礪了自己為人處事的能力和態(tài)度。6.1.2存在的問題總結本次畢業(yè)設計,不能只看到系統(tǒng)任務完成的情況,更要看到系統(tǒng)開發(fā)過程中還存在的問題以及待發(fā)現(xiàn)的問題。仔細分析發(fā)現(xiàn)本次畢業(yè)設計暴露出了不少問題,主要表現(xiàn)為:自己編程語言基礎不是很扎實,使得在后期開發(fā)過程中耽誤了不是工期;二是自己編程過程中缺乏規(guī)性指導,寫出的代碼總是顯得很雜亂。三是還有一部分任務沒有完成,例如基于受控詞匯的構件檢索,這是一種很好的也是目前業(yè)界廣泛關注和研究的熱點。6.2展望未來目前構件領域應用正處在一個上升階段,可信構件技術和基于構件的開發(fā)方法是當前軟件發(fā)展的必然趨勢。展望未來,軟件構件技術及其應用將變得標準化和系統(tǒng)化。基于構件的軟件復用也將會越來越成熟,并成為軟件開發(fā)中的重要手段,必定會被更多的組織運用于系統(tǒng)開發(fā)。在課題研究中,由于前期對構件方面接觸不多,加之時間倉促,只是簡單提出了構件管理框架,簡單實現(xiàn)了構件管理系統(tǒng)中構件描述,構件庫搭建,構件添加,構件檢索等部分功能,其它如構件庫的管理機制,系統(tǒng)的自動化組裝,構架的公共服務,構件的測試、構件的挖掘等等都是下一步要研究和實現(xiàn)的工作。

參考文獻[1]董玉娟.支持異構可信平臺的可信軟件棧研究[D].工業(yè)大學碩士學位論文,2008[2]強薛賀.構件庫之構件檢索與理論[D].西北工業(yè)大學碩士學位論文,2003[3]樹文曉茹.基于WebService技術的數(shù)據(jù)庫訪問中間件研究[J].電腦學報與應用,2010,(03),3-6[4]DavidHunterJeffRafter(美)JoeFawcett,吳文國(譯).XML入門經(jīng)典(第四版)[M].:清華大學.2009.02.312-313[5]京華.JavaWeb整合開發(fā)王者歸來[M].:清華大學.2010.01356-361[6]閆學偉成嚴.基于刻面分類的ERP構件檢索方法研究[D].理工大學工學碩士學位論文,2010[7]文斌文登敏.基于XML描述的軟件構件庫的設計與實現(xiàn)[D].西南交通大學工學碩士學位論文,2004[8]傅翠云,常會友.基于刻面分類的構件檢索技術的研究與實現(xiàn)[D].大學工學碩士學位論文,2008[9]賈曉輝.可復用構件庫及構件檢索技術的研究與應用[D].東華大學碩士學位論文,2005[10]劍江建慧.基于可復用連接件的可信軟件構造方法[J].計算機應用研究,2009,21(07):33-35[11]BertLagaisseWouterJoosen.Component-basedOpenMiddlewaresupportingAspect-orientedSoftwareComposition[J].Dept.ofComputerScience,K.U.Leuven,Belgium,2004[12]雷寧寧薛錦云超.基于構件開發(fā)與傳統(tǒng)面向對象開發(fā)之比較[J].計算機技術與發(fā)展,2007,17(8):88-91[13]馬亮家,基于規(guī)約匹配的構件檢索[J].小型微型計算機系統(tǒng).2002.10(23):1154-1157[14]周明輝梅宏.可信計算研究的初步探疑[J].計算機科學,2004.7(08):5-8[15]廖偉池常會友等.構件檢索技術的研究與實現(xiàn)[D].大學工學碩士學位論文,2009[16]高其勝余臘生.基于Agent的構件檢索與組裝研究[D].中南大學碩士學位論文,2009[17]龔小秋天煌.基于WebServices的構件庫檢索技術的研究[D].理工大學碩士學位論文,2009[19]WBFrakes,TPPole.AnEmpiricalStudyofRepresentationMethodsforReusableSoftwareComponents[J].IEEETransactionsonSoftwareEngineering,1994,20(8):617-630

致謝首先感謝指導老師賈曉輝老師給予我們認真負責的指導和熱情幫助,她在系統(tǒng)建設方面不斷啟示我們,并且給予了我們足夠的技術指導,幫助我們得以順利完成畢業(yè)設計!其次感謝學校及學院領導對于畢業(yè)設計給大家所提供的很多有利條件,允許大家在外工作期間完成畢業(yè)設計,定期要求上交工作學習匯報等很多形式,使得大家都能在一個比較合理的時間圍完成畢業(yè)相關事宜。其次感謝同小組的申越同學給予我很熱情的幫助,尤其在系統(tǒng)整體設計和開發(fā)過程中,我們都是密切合作努力的,在經(jīng)過了幾個月的配合和努力,我們終于按期完成畢業(yè)設計。本次畢業(yè)設計的經(jīng)歷是大學期間留下的最后一筆寶貴財富,將為我今后的工作和學習提供良好的借鑒作用。今后在工作崗位上一定會繼續(xù)虛心努力學習,不斷提高自身的能力!最后,再次感謝所有關心和支持我的老師和同學們!

附錄附錄A:主要源程序publicstaticArrayList<Component>SelectDeep(ArrayList<Component>list,Stringstring){booleansign=true;ArrayList<Component>newList=newArrayList<Component>();if(!string.equals("")){while(!list.isEmpty()){Componentcomponent=newComponent();component=list.remove(0);if(component.getSelfInfo().getComponentType().equals(string)){newList.add(component);sign=false;}elseif(component.getSelfInfo().getApplyField().equals(string)){newList.add(component);sign=false;}elseif(component.getSelfInfo().getFunctionType().equals(string)){newList.add(component);sign=false;}//對應用環(huán)境進行判斷//軟件環(huán)境判斷Environmentenvironment=newEnvironment();environment=component.getEnvironment();if(environment==null){newList.add(component);sign=false;}else{ArrayList<SoftEnvironment>softList=newArrayList<SoftEnvironment>();softList=component.getEnvironment().getSoftEnvironment();if(sign){if(string.equals("")){newList.add(component);sign=false;}elseif(softList!=null){while(!softList.isEmpty()&&sign){SoftEnvironmentsoft=newSoftEnvironment();soft=softList.remove(0);if(soft.getOs().equals(string)){newList.add(component);sign=false;break;}elseif(soft.getDb().equals(string)){newList.add(component);sign=false;break;}elseif(soft.getLanguage().equals(string)){newList.add(component);sign=false;break;}}}}//硬件環(huán)境判斷ArrayList<HardEnvironment>hardList=component.getEnvironment().getHardEnvironment();if(sign){if(string.equals("")){newList.add(component);sign=false;}elseif(hardList!=null){while(!hardList.isEmpty()&&sign){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論