版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、青鳥可復用構件庫的設計與實現(xiàn)摘要目前,軟件系統(tǒng)的規(guī)模日趨龐大,軟件及其開發(fā)過程越來越復雜,“軟件危機”仍是尚未解決的問題。隨著軟件復用被視為解決“軟件危機”問題的有效途徑之一,基于構件的軟件開發(fā)方法以其對軟件復用的有效支持,而被越來越多的開發(fā)組織所采用。基于構件的軟件開發(fā)大致涉及構件的獲取、構件存儲管理和構件組裝等幾個過程。構件的存儲和管理是構件開發(fā)及基于構件復用的開發(fā)的重要中間環(huán)節(jié)。其重點是研究構件的分類檢索策略、構件的數(shù)據(jù)模型、構件庫建立及管理等方面。本文工作以國家“九五”重點科技攻關專題“基于構件/構架模式的應用軟件集成環(huán)境 JBIII系統(tǒng)”為背景。青鳥III型系統(tǒng)的核心子系統(tǒng)是青鳥構件
2、庫管理系統(tǒng),由可復用構件庫和構件庫管理工具集組成。本文著重于青鳥構件庫管理系統(tǒng)的核心部件 青鳥可復用構件庫的設計和實現(xiàn)。青鳥可復用構件庫支持符合青鳥構件模型的構件的分類、存儲、檢索和管理;采用以刻面分類模式為主、多種分類模式相結(jié)合的機制對構件進行分類檢索。本文以青鳥構件模型為基礎、從刻面分類為主的多種分類檢索機制的需求出發(fā),建立了構件庫概念模型,然后把概念模型轉(zhuǎn)換為關系數(shù)據(jù)模型,并在實現(xiàn)過程中對關系模型進行優(yōu)化,以提高構件庫的性能。為了對外屏蔽網(wǎng)絡平臺和DBMS細節(jié),青鳥可復用構件庫為構件庫管理工具集(包括構件分類工具、查詢工具以及庫管理和維護工具)提供一整套工具集接口CLTSI,并支持新工具
3、的集成。針對訪問可復用構件庫信息的特點,設計了專門的數(shù)據(jù)存取命令DAC,通過DAC來實現(xiàn)工具集接口CLTSI,在保證系統(tǒng)功能和總體結(jié)構不變的前提下,減小了檢索和獲取可復用構件的代價,提高了系統(tǒng)的性能與效率。關鍵字軟件復用,構件,構件模型,構件庫,數(shù)據(jù)庫The Design and Implement of JB Reusable Component LibraryAbstractAt present, with the scale of software system becoming larger and software and its development process becomi
4、ng more complex, it is still a far way to solve the software crisis. Software reuse is regarded as a practical and feasible approach to solve the software crisis, therefore, more and more software organizations and enterprises come to adopt the method of Component Based Software Development(CBSD), a
5、n effective way to support software reuse. The CBSD method usually involves components acquirement, storage, management, and composition, of which the storage and management of components play a key role during the process of component development and software development based on component. As a re
6、sult, it is important to research the component classification and retrieving strategies, the component model, and the building and management of component library.This thesis is based on the authors work in the National 9th Five-Year Plan Project “JBIII System - Application Software Integration Env
7、ironment Based on Component-Architecture Pattern”. The kernel subsystem of JBIII system is the JB Component Library Management System, which consists of a reusable component library and library management toolset. The thesis focuses on the design and implementation of JB reusable component library,
8、the key part of the JB Component Library Management System.The JB reusable component library supports the classification, storage, retrieving and management of components that conform to the JB Component Model, and employs the faceted method as the main classification strategy supported by other cla
9、ssification mechanism. After building component librarys conceptual model based on the JB Component Model and the requirement of the classification strategies, The thesis transforms the conceptual model to relational data model, and then optimizes the data model during the implementation session to
10、improve the component librarys performance. To hide the details of network platforms and DBMS, JB reusable component library offers a set of interfaces to the library management toolset consisting of the classification tool, the query tool, and the library management tool. The interfaces are impleme
11、nted through specially-designed data access commands(DAC) to meet the characteristic of component library access, thereby reducing the time of retrieving components and improving the performance and efficiency of the component library.Keywordsoftware reuse,component,component model,component library
12、,database目 錄 TOC o 2-3 t 標題 1,1 第一章 引言 PAGEREF _Toc418581687 h 1軟件復用 PAGEREF _Toc418581688 h 1現(xiàn)狀及其問題 PAGEREF _Toc418581689 h 2相關工作及解決途徑 PAGEREF _Toc418581690 h 3相關術語定義 PAGEREF _Toc418581691 h 4論文的組織 PAGEREF _Toc418581692 h 5第二章 基于構件的軟件開發(fā) PAGEREF _Toc418581693 h 6可復用構件 PAGEREF _Toc418581694 h 6基于構件的軟
13、件開發(fā) PAGEREF _Toc418581695 h 6構件庫對CBSD的支持 PAGEREF _Toc418581696 h 7基于構件-構架模式的軟件復用支持系統(tǒng) PAGEREF _Toc418581697 h 8第三章 青鳥構件庫管理系統(tǒng) PAGEREF _Toc418581698 h 10青鳥構件庫管理系統(tǒng)體系結(jié)構 PAGEREF _Toc418581699 h 10青鳥構件分類檢索機制 PAGEREF _Toc418581700 h 11分類模式 PAGEREF _Toc418581701 h 113.刻面分類及術語空間 PAGEREF _Toc418581702 h 12輔助分類
14、策略 PAGEREF _Toc418581703 h 14青鳥構件庫管理系統(tǒng)功能 PAGEREF _Toc418581704 h 14青鳥構件庫設計目標與原則 PAGEREF _Toc418581705 h 15第四章 青鳥構件庫模型設計 PAGEREF _Toc418581706 h 17青鳥構件模型簡介 PAGEREF _Toc418581707 h 17構件庫概念模型 PAGEREF _Toc418581708 h 19表示法 PAGEREF _Toc418581709 h 19青鳥構件庫概念模型 PAGEREF _Toc418581710 h 20構件庫數(shù)據(jù)模型 PAGEREF _To
15、c418581711 h 25相關概念 PAGEREF _Toc418581712 h 26青鳥構件庫關系模型 PAGEREF _Toc418581713 h 27第五章 青鳥構件庫工具集接口設計 PAGEREF _Toc418581714 h 30青鳥構件庫管理工具集 PAGEREF _Toc418581715 h 30構件分類與入庫工具 PAGEREF _Toc418581716 h 30查詢工具 PAGEREF _Toc418581717 h 30構件庫管理及維護工具集 PAGEREF _Toc418581718 h 31工具集接口設計目標 PAGEREF _Toc418581719 h
16、 32工具集接口組成結(jié)構 PAGEREF _Toc418581720 h 33工具集接口詳細設計 PAGEREF _Toc418581721 h 335.4.1 DAC詳細設計 PAGEREF _Toc418581722 h 335.4.2 事務處理 PAGEREF _Toc418581723 h 37第六章 具體實現(xiàn) PAGEREF _Toc418581724 h 38關系模型的優(yōu)化 PAGEREF _Toc418581725 h 38對術語進行編碼 PAGEREF _Toc418581726 h 38建立索引和視圖 PAGEREF _Toc418581727 h 39核心數(shù)據(jù)庫的建立與管理
17、 PAGEREF _Toc418581728 h 40核心數(shù)據(jù)庫的建立 PAGEREF _Toc418581729 h 40核心數(shù)據(jù)庫的恢復 PAGEREF _Toc418581730 h 41工具集接口的具體實現(xiàn) PAGEREF _Toc418581731 h 41第七章 結(jié)束語 PAGEREF _Toc418581732 h 43參考文獻 PAGEREF _Toc418581733 h 44圖 目 錄 TOC t 圖表名 c 圖表 圖1-1 理想的工廠化軟件生產(chǎn)方式 PAGEREF _Toc418581734 h 1圖1-2 青鳥軟件生產(chǎn)線 PAGEREF _Toc418581735 h
18、2圖2-1 構件庫對基于構件的軟件開發(fā)的支持 PAGEREF _Toc418581736 h 7圖2-2 青鳥III型系統(tǒng) PAGEREF _Toc418581737 h 8圖3-1 青鳥構件庫管理系統(tǒng)的體系結(jié)構 PAGEREF _Toc418581738 h 10圖4-1 青鳥構件的三維模型 PAGEREF _Toc418581739 h 17圖4-2 實體關系模型中的概念和表示法 PAGEREF _Toc418581740 h 20圖4-3 數(shù)據(jù)庫實體關系圖(ERD) PAGEREF _Toc418581741 h 20圖4-4 構件ER圖 PAGEREF _Toc418581742 h
19、21圖4-5 構件關系ER圖 PAGEREF _Toc418581743 h 22圖4-6 術語與構件、刻面、同義詞的關系 PAGEREF _Toc418581744 h 23圖4-7構件與關鍵詞的關系 PAGEREF _Toc418581745 h 24圖4-8 使用者與構件的關系 PAGEREF _Toc418581746 h 24圖4-9 構件與提供者、聯(lián)系人之間的關系 PAGEREF _Toc418581747 h 25圖4-10 使用者與日志、配置信息的關系 PAGEREF _Toc418581748 h 25圖5-1 工具集接口的組成結(jié)構 PAGEREF _Toc418581749
20、 h 33圖6-1 術語空間及術語編碼示意圖 PAGEREF _Toc418581750 h 39圖6-2 核心數(shù)據(jù)庫的恢復 PAGEREF _Toc418581751 h 41表 目 錄 TOC t 圖表名1 c 表格 表1-1 相關術語定義 PAGEREF _Toc418922867 h 5表3-1 使用環(huán)境刻面的術語 PAGEREF _Toc418922868 h 13表3-2 功能刻面的術語 PAGEREF _Toc418922869 h 14表4-1 構件層次、形態(tài)的關系 PAGEREF _Toc418922870 h 18表4-2 構件層次、表示的關系 PAGEREF _Toc41
21、8922871 h 19表4-3 關系模型的主要概念 PAGEREF _Toc418922872 h 26表4-4 青鳥構件庫關系模式 PAGEREF _Toc418922873 h 27表4-5 Component 關系模式 PAGEREF _Toc418922874 h 27表5-1 用戶管理命令 PAGEREF _Toc418922875 h 34表5-2 構件提供者與聯(lián)系人管理命令 PAGEREF _Toc418922876 h 34表5-3 日志管理命令 PAGEREF _Toc418922877 h 35表5-4 刻面及其術語空間管理命令 PAGEREF _Toc418922878
22、 h 35表5-5 構件操作命令 PAGEREF _Toc418922879 h 36表5-6 構件描述信息操作命令 PAGEREF _Toc418922880 h 36表5-7 構件關系管理命令 PAGEREF _Toc418922881 h 37表5-8 配置管理命令 PAGEREF _Toc418922882 h 37表6-1 青鳥構件庫索引列表 PAGEREF _Toc418922883 h 40表6-2 青鳥構件庫視圖列表 PAGEREF _Toc418922884 h 40表6-3 有關合法性檢查的內(nèi)部命令列表 PAGEREF _Toc418922885 h 42第一章 引言軟件復
23、用自從1968年NATO軟件工程會議以來,軟件工程的發(fā)展已有三十年歷史。其間,眾多的科研人員和工程技術人員付出了艱辛的努力,取得了豐碩成果。軟件工程思想和技術的普及,使軟件生產(chǎn)率穩(wěn)步上升,軟件質(zhì)量得到很大改善。但是隨著軟件系統(tǒng)的規(guī)模和復雜性日益增加,軟件工程研究還是遠遠不能滿足軟件產(chǎn)業(yè)發(fā)展的需求,離徹底解決“軟件危機”還有相當大的距離 Boeh 87, Cox 90。近十年來,人們開始認識到,要真正實現(xiàn)軟件的工業(yè)化生產(chǎn)方式,達到軟件產(chǎn)業(yè)發(fā)展所需要的軟件生產(chǎn)率和質(zhì)量,軟件復用是一條現(xiàn)實可行的途徑Mili 95。對軟件復用技術的研究已成為軟件工程學科的主攻方向之一。被視為解決軟件危機的現(xiàn)實可行的途
24、徑。軟件復用的概念是由McIlroy在1968年的NATO軟件工程會議上正式提出的,此后三十年中,軟件復用在技術研究上已取得了較大進展,同時也對軟件產(chǎn)業(yè)產(chǎn)生了深刻的影響。軟件復用將造成軟件產(chǎn)業(yè)的合理分工,專業(yè)化的構件生產(chǎn)將成為獨立的產(chǎn)業(yè)而存在,而軟件系統(tǒng)的開發(fā)將通過集成組裝現(xiàn)有構件的方式來完成。這種產(chǎn)業(yè)分工將促使軟件產(chǎn)業(yè)真正走上工程化、工業(yè)化的發(fā)展軌道楊芙清 97。而軟件產(chǎn)業(yè)的組織結(jié)構也將隨之發(fā)生變革Shaw 84,Cox 90,Basili 91,一般來說,需要在傳統(tǒng)項目組織結(jié)構之外,增加一個專門負責構件開發(fā)、管理和維護的部門。Caldieri和Basil提出了一種理想的工廠化的軟件生產(chǎn)方式
25、Cald 91,如圖1-1所示:圖1-1 理想的工廠化軟件生產(chǎn)方式青鳥工程提出的軟件生產(chǎn)線思想楊芙清 96b集中體現(xiàn)了軟件復用的本質(zhì)及軟件工業(yè)化生產(chǎn)的模式。圖1-2給出了青鳥軟件生產(chǎn)線圖示。青鳥工程一直是國家重點支持的科技攻關課題,已有十余年的發(fā)展歷程。“七五”、“八五”期間,青鳥工程面向我國軟件產(chǎn)業(yè)基礎建設的需求,以實用的軟件工程技術為依托,研究開發(fā)具有自主版權的軟件工程環(huán)境,為軟件產(chǎn)業(yè)提供基礎設施軟件工具、平臺和環(huán)境,建立工業(yè)化生產(chǎn)的基本手段,促進我國軟件開發(fā)由手工作坊式轉(zhuǎn)向用計算機輔助開發(fā),以提高軟件開發(fā)效率,改善軟件產(chǎn)品質(zhì)量。大型軟件開發(fā)環(huán)境青鳥系統(tǒng)楊芙清 95b便是這一階段攻關工作的
26、成果。圖1-2 青鳥軟件生產(chǎn)線 “九五”期間,青鳥工程的任務是在前期攻關工作的基礎上,為形成我國軟件產(chǎn)業(yè)規(guī)模提供技術支持。重點是研究青鳥軟件生產(chǎn)線,為軟件開發(fā)提供整體解決方案,推行軟件工業(yè)化生產(chǎn)模式,促進軟件產(chǎn)業(yè)規(guī)模的形成。青鳥工程“九五”目標分兩期實施,第一期目標是初步實現(xiàn)青鳥軟件生產(chǎn)線系統(tǒng),用以裝備軟件企業(yè),支持軟件構件的生產(chǎn)和應用系統(tǒng)集成,并推出示范工程。第二期目標是針對軟件產(chǎn)業(yè)規(guī)模經(jīng)濟的需求,根據(jù)軟件產(chǎn)業(yè)由于構件技術的日趨成熟而出現(xiàn)的產(chǎn)業(yè)重組分工趨勢(即分成專門的軟件構件生產(chǎn)業(yè)和應用系統(tǒng)集成業(yè)),為其提供相應的技術支撐和裝備,適應并推進產(chǎn)業(yè)分工和形成規(guī)模,使我國軟件產(chǎn)業(yè)真正走上工程化、
27、工業(yè)化的道路?,F(xiàn)狀及其問題軟件復用概念出現(xiàn)以來的三十年中,已有了許多成功的復用實踐,如針對FORTRAN,COBOL,Visual Basic等語言的復用Gris 95。軟件復用作為現(xiàn)實可行的克服軟件危機,實現(xiàn)軟件工業(yè)化生產(chǎn)方式的技術途徑在近幾年來受到普遍關注,成果斐然,然而離成功的復用仍有較大距離,原因有多方面。從組織機構與管理角度看,現(xiàn)有的組織管理模式已成為推行復用技術的障礙。首先應改革現(xiàn)有的由一個項目組從頭至尾完成整個系統(tǒng)開發(fā)的方式,應該涌現(xiàn)出大量的構件廠商生產(chǎn)大量可復用構件,使項目組和構件廠商間構成消費者生產(chǎn)者的關系,生產(chǎn)者只負責開發(fā)各類可復用構件,項目組只消費構件Basi 92,Ba
28、si 94。從思想觀念角度看,存在一種“Not Invented Here”(不是自己發(fā)明的)綜合癥。軟件工程師喜歡創(chuàng)造性的勞動,不愿意復用也往往并不信任別人開發(fā)的軟件。應當改變這種傳統(tǒng)觀念,轉(zhuǎn)而遵循Fred Brooks所提出的“用購買代替建造”(buy, dont build)的思想Broo 87。從工程學角度看,軟件工程學科的發(fā)展尚處于不成熟期,缺少對軟件開發(fā)和軟件復用的合適訓練,缺少有效方法學支持等。從技術角度看,軟件復用主要涉及構件的獲取、構件存儲管理和構件組裝等方面,這幾個環(huán)節(jié)在軟件復用過程中都處于非常重要的地位,而且都與構件密切關聯(lián)。無論是從可復用構件的開發(fā)角度、還是從基于構件的
29、復用角度來看,可復用構件的數(shù)量、種類和質(zhì)量都是成功地進行軟件復用的關鍵所在。這就對可復用構件的分類、存儲、管理、檢索以及相應的工具支持提出了需求。必須有一個合理而高效的可復用構件庫管理系統(tǒng)提供強有力的支持,才能使成功的軟件復用成為現(xiàn)實。成功的軟件復用需要在組織機構與管理、思想觀念、工程學和技術等方面的協(xié)同支持。本文主要從軟件復用的技術角度展開討論,尤其著重于對可復用構件分類、存儲、管理和檢索的支持。相關工作及解決途徑早期的軟件復用主要注重于代碼復用Free 87,Krue 92及其支持,如FORTRAN,COBOL,C語言將常用的函數(shù)保存在函數(shù)庫中。面向?qū)ο笳Z言由于其新的特性,如封裝、繼承、多
30、態(tài)等,能更好地支持復用,而面向?qū)ο笳Z言的開發(fā)環(huán)境也對代碼復用提供了有效的支持,主要是提供了強大的類庫,如Micr 94的類庫,程序員可以直接使用類庫中的類或從中派生自己的類。隨著軟件復用的發(fā)展,復用的對象從早期的代碼復用擴展到對軟件開發(fā)過程中一切有價值的信息的復用,出現(xiàn)了多種可復用構件,如分析件、設計件、測試件以及程序文檔。而可復用構件在數(shù)量上也日趨增大。為了更好地支持多形式、大數(shù)量構件的復用,必須有一個支持構件復用的環(huán)境。當前軟件界對可復用構件庫及其相關問題進行了深入研究,并提出了不少的復用標準及環(huán)境。RIGRIG 94和NATONATO提出了一系列標準;ALOAFSTARS 92對構件模型
31、進行了大量的研究。復用庫可互操作性組織RIG(Reuse library Interoperability Group)為軟件復用庫間共享軟件構件,考察了軟件庫之間的可互操作性問題,并開發(fā)了一個數(shù)據(jù)模型UDM(Uniform Data Model for Reuse Libraries),其中定義了在支持可互操作性的庫之間交換軟件構件所需要的信息。它提供了一個標準的數(shù)據(jù)模型,各個庫可以將它作為自己的數(shù)據(jù)模型的中間表示,用來和其它庫交換使用符合各自數(shù)據(jù)模型的數(shù)據(jù)。NATO(North Atlantic Treaty Organization)提出了一組標準,包括可復用軟件構件開發(fā)指南、可復用軟件
32、構件庫管理指南和軟件復用過程指南三個文檔,分別針對于軟件生命周期的不同階段NATO。其中可復用軟件構件庫管理指南討論了有關構件庫建立與管理的問題。構件庫管理的關鍵在于分類,NATO采用刻面對構件庫進行分類。NATO刻面分類模式中的刻面不必彼此獨立,也不必適用于所有的構件。一組典型的刻面可能包括:對象、功能、算法、類型、語言和環(huán)境。在對一個構件進行分類時,不一定所有的刻面都出現(xiàn)??堂嫘g語具有同義詞關系,一組同義詞表達同一個概念,術語空間由這些術語構成,術語之間沒有一般/特殊關系(即術語空間是非結(jié)構化的)。美國軍方發(fā)起的STARS(Software Technology for Adaptable
33、, Reliable Systems)項目考慮了在構件庫之間共享資源和實現(xiàn)無縫互操作的問題,于92年提出了開放體系結(jié)構的構件框架ALOAF( Asset Library Open Architecture Framework )。該文檔包括構件庫框架的參考模型(ALF-RM)、互交換構件的所需的數(shù)據(jù)模型和約定格式的規(guī)約以及一個在ALF-RM上支持構件互交換和構件描述的框架服務規(guī)約。ALOAF強調(diào)數(shù)據(jù)建模的作用,考慮元模型層、模型層和數(shù)據(jù)層三個層次,認為統(tǒng)一的數(shù)據(jù)元模型是互操作和數(shù)據(jù)共享的基礎。在理論研究的同時,已有不少的構件庫系統(tǒng)在軟件產(chǎn)業(yè)界得到了實際應用。最為典型的有REBOOTJean 9
34、3系統(tǒng)。REBOOT(Reuse Based on Object Oriented Techniques)是一個包括儲存可復用構件的數(shù)據(jù)庫和一組產(chǎn)生、認證、插入、提取、評價和適配可復用構件的工具的環(huán)境Lars 93。其中在對構件進行分類時采用了刻面的分類策略,這一分類策略主要針對面向?qū)ο蟮臉嫾C绹鴩啦恳餐瞥隽巳舾蓸嫾?,如:美國空軍電子系統(tǒng)中心(ESC)的CARDSCARDS 96、STARS項目的ASSET(Asset Source for Software Engineering Technology) STARS 92和DISA(Defense Information Service
35、s Agency)的SRP(Software Reuse Program)。青鳥可復用構件庫是青鳥基于構件-構架模式的軟件復用支持系統(tǒng)的核心,其建模過程中研究分析了國外軟件復用的最新成果、盡量遵循國際主流,并且具有自己的特色。青鳥構件庫對寬譜系粒度的構件提供支持,有足夠能力存儲、處理多層次多粒度的各種構件;提供以刻面分類策略為主、多種分類策略相結(jié)合的分類檢索機制,采用正交的五個刻面對構件進行刻劃,刻面彼此獨立且適用于所有的構件,在對一個構件進行分類時,所有的刻面都必須關聯(lián)相應術語;而且青鳥構件庫還率先提出了以樹型層次結(jié)構組織術語空間的策略。相關術語定義為了討論和敘述的方便,下面給出在本文中經(jīng)常
36、用到的一些關鍵術語的簡要定義:復用(Reuse)在一個新的語境(context)中(同一系統(tǒng)的其它地方或另一個系統(tǒng)中)使用已有的為復用目的而開發(fā)的軟件構件。構件(Component)軟件系統(tǒng)中一切可以被明確標識的有機構成成分(軟件實體);它可以是需求分析、設計、代碼、測試數(shù)據(jù)或軟件開發(fā)過程的其它產(chǎn)品。可復用構件(Reusable Component)具有可復用價值的軟件構件。構件模型(Component Model)構件的本質(zhì)特征以及構件間關系的抽象描述??蓮陀脴嫾?Component Library)可復用軟件構件的集合,包括向用戶提供構件時所需的過程和功能?;跇嫾能浖_發(fā)Compon
37、ent-Based Software Development通過組裝現(xiàn)有軟件構件的方式來建造大型軟件系統(tǒng)的軟件開發(fā)方法??堂?Facet)一個單詞或短語的固定集合,用于描述構件的某個方面或視角術語空間(Term Space)術語的結(jié)構化集合, 術語空間的結(jié)構反映了術語間的語義關系。刻面分類策略(Faceted Classification Scheme)一個刻面分類模式由一組描述構件特征的刻面所組成,每個刻面從不同的側(cè)面對庫中構件進行分類。數(shù)據(jù)模型(Data Model)數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中用于提供詳細表示和操作手段的形式構架,通常由數(shù)據(jù)結(jié)構、數(shù)據(jù)操作和完整性約束三部分組成。概念模型(Con
38、ceptal Model)從現(xiàn)實世界的客觀事務中抽象出來的一種不依賴于具體計算機系統(tǒng)的信息結(jié)構。關系模型(Relational Model)以關系表示實體及實體之間聯(lián)系的一種數(shù)據(jù)模型。領域(Domain)指一類相關的軟件應用。一般來說,構件在某個特定的領域內(nèi)復用潛力最大。表1-1 相關術語定義論文的組織本文涉及了青鳥可復用構件庫的組織存儲及檢索等方面的研究。第二章主要討論了基于構件的軟件開發(fā)及構件庫對基于構件的軟件開發(fā)的支持,并且介紹了“基于構件/構架模式的軟件開發(fā)支持系統(tǒng)” 青鳥III型,由此給出本文研究的工作背景。第三章介紹了青鳥III型的核心 青鳥構件庫管理系統(tǒng)的體系結(jié)構、分類檢索機制及
39、應具有的功能,并由此導出青鳥構件庫的設計目標與原則。第四章在討論青鳥構件模型之后,用實體關系模型描述青鳥構件庫的概念模型,并把概念模型轉(zhuǎn)換為關系數(shù)據(jù)模型。第五章主要討論構件庫管理工具集接口的設計。在簡單介紹構件庫管理工具集之后,討論了工具集與構件庫之間的接口的設計目標、組成結(jié)構及詳細設計。第六章主要討論青鳥構件庫及其工具集接口實現(xiàn)上的各種細節(jié)。第二章 基于構件的軟件開發(fā)基于構件的軟件開發(fā)是一種有效實際的復用途徑。本章先討論復用的幾種形式并給出可復用構件的定義;接著,介紹基于構件的軟件開發(fā)并闡述構件庫對基于構件的軟件開發(fā)的支持。最后,闡述基于構件/構架模式的軟件開發(fā)支持系統(tǒng)青鳥III型從而,給出
40、本文研究的工作背景??蓮陀脴嫾蓮陀脴嫾≧eusable Component)指所有具有可復用價值的構件,在本文中簡稱為構件(Component)。軟件復用是指應用已有的為復用目的而開發(fā)的軟件構件構造新的軟件系統(tǒng),以提高系統(tǒng)開發(fā)效率及軟件質(zhì)量。復用的形式多種多樣,可以是規(guī)約復用、設計復用、代碼復用、測試復用和文檔復用NATO。由于復用的種類不同,不同的復用研究人員對構件給出的定義也不盡相同,目前國際上對構件并無統(tǒng)一的標準定義。NATO在其頒布的構件開發(fā)標準中將構件籠統(tǒng)地定義為:構件是用于復用的軟件實體NATO。STARS拓廣了構件的范圍,將廣義構件(Asset)定義為:任何在當前或?qū)韺τ陂_
41、發(fā)和維護軟件系統(tǒng)的企業(yè)和組織有價值的信息單元。這一概念比狹義的軟件構件意義更為廣泛。構件可以包括軟件工作產(chǎn)品、軟件子系統(tǒng)、軟件構件(STARS的軟件構件是與分析件、設計件等相并列的)、專家聯(lián)系名單、構架、領域分析、設計、文檔、個案分析、經(jīng)驗教訓、研究成果、以及有創(chuàng)見的軟件工程思想與表述等等STARS 92。Mili等在Mili 95一文中將軟件復用分為兩類:產(chǎn)品復用(product reuse)和過程復用(process reuse)。產(chǎn)品復用是指將對軟件開發(fā)過程中生成的各種產(chǎn)品作為構件進行復用,一般而言有兩種形式:直接復用和間接復用。直接復用針對的構件可以表示為某種程序設計語言代碼,這類構件
42、的復用可以直接產(chǎn)生可執(zhí)行的應用程序。間接復用是指對需求規(guī)約、設計、模式、測試計劃等文檔型知識的復用。雖然這類非代碼構件的復用不能直接得到可執(zhí)行的應用程序,但可以對系統(tǒng)開發(fā)的效率和質(zhì)量帶來極大的好處。過程復用是指復用以前軟件開發(fā)的過程,一般表現(xiàn)為對軟件開發(fā)某一階段提供自動化支持的工具,典型的過程復用例子有程序生成器、程序變換器和可執(zhí)行規(guī)約語言等。本文的研究重點是產(chǎn)品復用,將構件定義為:構件是軟件系統(tǒng)中一切可以被明確標識和的有機構成成分(軟件實體),可以是需求分析、設計、代碼、測試數(shù)據(jù)或軟件開發(fā)過程的其它產(chǎn)品。基于構件的軟件開發(fā)隨著構件技術的發(fā)展,軟件開發(fā)方式也發(fā)生了巨大變化?;跇嫾能浖_發(fā)(
43、CBSD,Component-Based Software Development),成為軟件工程學科的焦點之一。CBSD有時也被稱為基于構件的軟件工程(CBSE)Brow 96,它致力于通過組裝現(xiàn)有軟件構件的方式來建造大型軟件系統(tǒng)。通過增強系統(tǒng)的靈活性和可維護性,這種方法可以降低軟件開發(fā)成本,加快系統(tǒng)開發(fā)的速度,減輕大型系統(tǒng)支持和升級所帶來的維護負擔。CBSD是建立在這樣一個前提之上的,即大型軟件系統(tǒng)的某些部分具有共性,因此將該部分制作成構件,類似系統(tǒng)通過復用構件來實現(xiàn)。在基于構件的軟件開發(fā)過程中,原來系統(tǒng)開發(fā)中的重點 程序設計,將被組裝現(xiàn)有軟件構件所取代。構件組裝成為整個軟件開發(fā)過程的核心
44、工作,因此構件的組織、存儲、檢索也就成為基于構件的軟件開發(fā)中的一個關鍵因素。為了支持關于構件的上述活動,使用構件庫來保存構件是必須的,也是提高開發(fā)效率的關鍵。構件庫對CBSD的支持為了支持基于構件的軟件開發(fā)過程,人們希望能夠擁有與軟件生命周期的各個階段相關的構件,以便軟件開發(fā)者在整個軟件開發(fā)過程都能通過復用構件得到幫助。由于軟件復用具有多種形式,同時軟件開發(fā)過程又可分為需求分析、設計、實現(xiàn)、測試、維護等不同階段。因此,要使復用成為可能,首先必須要有大批量的各種形式、分屬不同階段的可復用構件。其次,為了盡可能地減小用戶獲取可復用構件的代價,這就必然要求有一個能夠良好有效地支持復用的環(huán)境,對大量構
45、件進行分類、管理、存儲并支持開發(fā)者檢索和提取構件。圖2-1 構件庫對基于構件的軟件開發(fā)的支持支持構件復用的環(huán)境的一個重要部分是支持構件分類、組織、存儲和查詢的構件庫系統(tǒng)。支持多層次多形態(tài)構件的大型構件庫有利于提高復用的可能性和復用的質(zhì)量。有了構件庫系統(tǒng)的支持,基于構件的軟件開發(fā)活動被劃分成三類:構件獲取、構件管理和構件復用,如圖2-1所示。構件可以通過設計生產(chǎn),或通過再工程的方式提取,或直接從某個商業(yè)性的軟件機構購買。構件管理負責構件分類以及構件維護。而構件復用則查詢構件并通過構件組裝生成新系統(tǒng)。Fisc 87,Rama 88,Maid 93,Mili 94,Mili 95基于構件-構架模式的
46、軟件復用支持系統(tǒng)青鳥 = 3 * ROMAN III型系統(tǒng)的研制開發(fā)是青鳥工程“九五”攻關中的一個重要組成部分,該系統(tǒng)的研制目標是針對軟件工業(yè)化生產(chǎn)的需求,完善并初步實現(xiàn)青鳥軟件生產(chǎn)線的思想,制定軟件工業(yè)化生產(chǎn)標準和規(guī)范,研究基于“構件構架”模式的軟件工業(yè)化生產(chǎn)技術,研制支持面向?qū)ο蠹夹g、支持軟件復用、基于異構平臺、具有多信息源接口的應用系統(tǒng)集成環(huán)境。圖2-2給出了青鳥 = 3 * ROMAN III型系統(tǒng)的示意圖:圖2-2 青鳥 = 3 * ROMAN III型系統(tǒng)基于構件-構架模式的軟件復用支持系統(tǒng)是青鳥的 = 3 * ROMAN III型系統(tǒng)的核心,如圖2-1所示,它主要由以下幾個工具組
47、成:1、領域分析工具;2、程序理解及構件抽取工具;3、構件庫管理系統(tǒng)JBCL,其中包括構件庫、分類工具、查詢工具和庫管理工具;4、基于復用的OO開發(fā)工具集,其中包括分析工具、設計工具、編程工具和測試工具;5、構件組裝工具。青鳥可復用構件庫管理系統(tǒng)JBCL是構件庫、分類工具、查詢工具以及庫管理工具的統(tǒng)稱,它是青鳥III型系統(tǒng)的核心子系統(tǒng)。在構件庫中可以保存軟件開發(fā)過程中所生成的不同階段(如分析、設計、編碼、測試等)、不同形態(tài)(如類、類樹以及框架)、不同表示(如圖形、偽碼、語言等)的構件,并根據(jù)多種不同機制(如刻面、關鍵詞等)為它們建立分類索引,以便于進行檢索工作。第三章 青鳥構件庫管理系統(tǒng)本章先
48、給出青鳥III型的核心青鳥構件庫管理系統(tǒng)的體系結(jié)構。接著,介紹青鳥構件庫管理系統(tǒng)所采用的分類檢索機制。最后,闡述青鳥構件庫管理系統(tǒng)應具有的功能,并由此導出青鳥構件庫的設計目標與原則。青鳥構件庫管理系統(tǒng)體系結(jié)構青鳥可復用構件庫管理系統(tǒng)JBCL(Jade Bird Component Library)是JBIII型系統(tǒng)的核心子系統(tǒng), 由構件庫、入庫工具、查詢工具以及構件庫管理工具組成。青鳥構件庫管理系統(tǒng)的體系結(jié)構如圖3-1所示:圖3-1 青鳥構件庫管理系統(tǒng)的體系結(jié)構青鳥構件庫管理系統(tǒng)為Client/Server結(jié)構,其核心是一個存儲構件及其相關信息的關系數(shù)據(jù)庫系統(tǒng),外圍支持工具構成三個工具集:構件
49、庫入庫工具集、構件庫查詢工具集和構件庫維護工具集。數(shù)據(jù)庫服務員基于工作站的UNIX平臺,直接對關系數(shù)據(jù)庫進行各種操作。其主要功能包括:為數(shù)據(jù)庫用戶提供統(tǒng)一的DAC(Data Access Command,數(shù)據(jù)存取命令)語言,以屏蔽DBMS的細節(jié)(考慮到用戶可選用不同的數(shù)據(jù)庫);附加的數(shù)據(jù)庫訪問控制;譯碼并解釋執(zhí)行DAC,訪問數(shù)據(jù)庫。支持工具基于微機Windows平臺,通過局域網(wǎng)與數(shù)據(jù)庫服務員通訊,支持用戶對構件庫的使用。各支持工具通過OLE機制集成起來。構件庫的三組工具分別為:構件入庫工具集:由構件庫管理員使用,其中包括構件分類工具,主要功能是將新構件加入構件庫及修改已有構件信息;構件查詢工具
50、集:由構件庫用戶使用,其中包括構件查詢工具和構件使用意見反饋工具,主要協(xié)助構件庫用戶瀏覽、查詢、提取構件,反饋用戶對構件的使用意見;構件庫維護工具集:由構件庫管理員使用,其中包括用戶數(shù)據(jù)庫維護工具、構件提供者數(shù)據(jù)庫維護工具、構件庫管理員數(shù)據(jù)庫維護工具、用戶反饋意見處理工具、刻面術語空間維護工具和構件庫信息統(tǒng)計工具,主要對構件庫的各部分內(nèi)容進行管理維護。青鳥構件分類檢索機制分類模式合理地組織構件庫的關鍵,是如何對構件進行分類,即按照什么樣的分類模式組織不同的構件集合。一般地,構件庫的分類策略應滿足如下的要求:分類信息應該表達構件的相關信息;分類策略應該適用于各種粒度、來自軟件開發(fā)過程各個階段的各
51、種構件;分類策略不應太復雜,過高的復雜度將導致較低的可理解性與易用性,從而降低復用的價值Lars 93。通常的分類模式有層次分類和刻面(facet)分類兩種。刻面分類模式是對層次分類模式的擴充。一個刻面分類模式由一組描述構件特征的刻面所組成,每個刻面從不同的側(cè)面對庫中構件進行分類。例如,這組刻面可以是應用領域、功能、操作對象、編程語言和操作系統(tǒng)等。每個刻面由一組基本的術語所構成(稱為術語空間term space)。一個構件可以被每個刻面中的一個或多個術語所刻劃(刻面術語是一個確定的集合),而每個刻面則分別反映了對庫中構件的一種劃分,因此用戶可以直觀地從不同的角度指明待檢索的構件,也有利于用戶對
52、構件的理解??堂娣诸惒呗跃哂邢铝刑匦裕好恳粋€刻面都必須充分并明確地描述構件庫中全體構件,即每一個構件都可以用該刻面來分類。每一個刻面與一個術語空間相關聯(lián)。任意兩個刻面的術語空間是正交的,即一個刻面的術語發(fā)生變化不會影響到另一個刻面的術語空間。一個刻面的術語空間為有限的不定空間,即可以隨時間的演進而動態(tài)地增加和刪除術語。每一個構件的所有刻面必須予以定義,在對構件分類時不允許有未定義的刻面;但查詢時,用戶可以利用任意數(shù)目的刻面進行查詢。構件庫管理者對構件進行分類時,應該針對每一個刻面,從術語空間中選擇適當?shù)?一個或多個)術語,以完成構件的封裝工作。在每個術語空間中的術語按一般/特殊關系形成樹狀的層
53、次結(jié)構,每一個術語附帶有不定數(shù)目的同義詞。在刻面分類策略中,構件庫管理者通過將構件與對應的術語相聯(lián)結(jié),可以在構件間建立復雜的聯(lián)系。與一般的層次分類策略相比,刻面分類策略更易于修改,更富有彈性,因為對一個刻面的修改不會影響到其它的刻面。同時,每個刻面對應一個結(jié)構化的術語空間,避免了一般的關鍵詞分類策略的雜亂無章,使得對關鍵詞的管理更為方便和有序。刻面分類及術語空間一、刻面分類模式青鳥構件庫系統(tǒng)主要采用刻面分類模式。每個刻面關聯(lián)一個合法術語的結(jié)構化集合術語空間,在構件的分類和查詢中用到的術語均來自于這些術語空間。術語空間的結(jié)構反映了術語間的語義關系,可以看做是一種語義網(wǎng),其結(jié)構相對穩(wěn)定。而每個構件
54、從外部來看,都是一組刻面術語的集合。構件庫中的每個構件都具有一組屬性,這些屬性有的是由構件的提供者提供的,有的是構件庫根據(jù)構件的使用情況加入的。從表面上看,屬性與刻面非常相似,屬性值就相當于刻面的術語。但實際上二者之間存在一定的區(qū)別,主要表述如下:刻面是構件屬性的一個子集。屬性絕大部分是由構件的提供者提供的,而刻面則完全由構件庫的管理者規(guī)定,構件的提供者完全不需要了解它們??堂媸菢嫾膹陀谜咴诓樵儤嫾r最感興趣的構件屬性。在查詢時復用者通過選擇刻面的術語,可以明確地限定構件的范疇,不會有遺漏的構件。依據(jù)屬性與刻面的區(qū)別,經(jīng)過反復篩選,我們選定了以下五個構件屬性作為青鳥構件庫的刻面。這五個屬性彼
55、此間完全獨立并且相互正交,比較充分地體現(xiàn)了構件與復用相關的一些特性,而且也能夠適應青鳥構件庫今后的發(fā)展。(1)使用環(huán)境(Application Environment)構件的使用環(huán)境是使用(包括理解/組裝/修改)該構件時必須提供的硬件和軟件平臺。如所需的特定的硬件環(huán)境、操作系統(tǒng)、數(shù)據(jù)庫平臺、網(wǎng)絡環(huán)境和編譯系統(tǒng)等。構件庫中任何構件都必須依賴于一定的使用環(huán)境才能得到復用,即使是源代碼級的某些通用構件,也必須依賴于特定的編譯系統(tǒng)。(2)應用領域(Application Domain)構件的應用領域是指該構件原來的或可能被使用到的應用領域(及其子領域)。這里的領域,指共享某種功能性(functiona
56、lity)的系統(tǒng)或應用程序的集合。構件庫中任何構件都有一個適用的領域。(3)功能(Functionality)構件的功能是該構件在原有或可能的軟件系統(tǒng)中所提供的軟件功能集。構件庫中任何構件都必須提供一種或多種功能。(4)層次(Level of Abstraction)構件的層次是構件相對于軟件開發(fā)過程不同階段的抽象層次,如分析、設計、編碼等。構件庫中任何構件都處于軟件開發(fā)過程中一定的階段,并為該階段服務。(5)表示(Representation)構件的表示是指用來描述構件內(nèi)容的語言形式或媒體,如源代碼構件所用的編程語言等。構件庫中任何構件都以一定的形式存在,因而必然有其外在的表現(xiàn)形式。這種表現(xiàn)
57、形式與構件的上下文環(huán)境(context)直接相關。二、刻面的術語空間構件庫的刻面定義好之后,就必須開始為刻面建立相應的術語空間。構件庫的刻面術語是由構件庫的管理者制定的。若構件的提供者所提供的術語與構件庫原有術語不符,構件庫的管理者將負責與構件的提供者協(xié)商,力求刻面術語的一致,將該術語作為新術語或作為原有術語的同義詞加入構件庫。由于缺乏一個公認的術語標準,術語空間的確定成為刻面分類策略的難點,我們只能先自行初步定義青鳥構件庫刻面的術語空間,以后再逐步修正。(1)使用環(huán)境(Application Environment) 最初階段,使用環(huán)境的術語由構件庫管理者枚舉,構件的提供者可以在提供構件時隨
58、時提供新的環(huán)境術語。典型術語包括操作系統(tǒng)中的“MS DOS”、“”、“MS Windows 95/NT”、“UNIX”等。表3-1是使用環(huán)境刻面術語的例子:工作站(Work Station)硬件(Hardware)微機(PC)DOS操作系統(tǒng)(OS)WINDOWS 3.X & 95UNIXFoxPro數(shù)據(jù)庫平臺(Database)InformixOracle表3-1 使用環(huán)境刻面的術語(2)應用領域(Application Domain)應用領域的術語最開始也是由構件庫管理者枚舉,構件的提供者可以在提供構件時隨時提供新的應用領域術語,各個領域的專家可以對領域術語進行修正和更新。典型術語包括“MI
59、S”、“CAI”等。(3)功能(Functionality)功能刻面的術語主要是構件提供者所提供的關于構件功能的關鍵詞。為達到術語間的一致,功能術語應力求從較高抽象層次上體現(xiàn)構件的用途。典型術語包括“打開文件”、“讀文件”、“寫文件”、“關閉文件”等。表3-2是功能刻面術語的例子:打印表格(print form)打印(print)打印文檔(print document)讀取文件(read file)讀取(read)讀取數(shù)據(jù)庫(read database)表3-2 功能刻面的術語(4)層次(Level of Abstraction)層次刻面的術語比較簡單,因此主要由構件庫的管理者枚舉。目前層次術
60、語有分析(Analysis)、設計(Design)、編碼(Coding)、測試(Testing)等等。(5)表示(Representation)表示刻面的術語最初由構件庫管理者枚舉,構件的提供者可以在提供構件時隨時提供新的構件表示術語,典型術語包括“中文” 、“英文” 、“DFD圖” 、“OMT類圖”等。輔助分類策略除了以上討論的刻面分類策略以外,還有關鍵詞、屬性、枚舉等多種分類策略。這些策略都各有其優(yōu)點和缺點,單獨使用其中的任何一種分類策略,都不能令構件庫的管理和構件庫用戶的使用達到理想的效果。因此,比較合理的方法是在構件分類時將各種策略結(jié)合起來,在用戶對構件進行查詢時,也提供基于各種分類策
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《數(shù)字化模具設計與工程實踐》教學大綱
- 教案概率大題(文) 文科高考匯編 大小題都有
- 玉溪師范學院《酒店管理》2021-2022學年第一學期期末試卷
- 弧度制課件中職
- 會考地理復習教案
- ECharts數(shù)據(jù)可視化 教案-教學設計 第1、2章 初識ECharts、折線圖和餅圖
- 《人力資源管理》課件
- 2023年洗面奶項目評估分析報告
- 2024屆河北省保定市重點高中高三下學期高考模擬訓練(五)數(shù)學試題試卷
- 2024屆貴州省貴陽市清鎮(zhèn)北大培文學校高三第四次月考(4月)數(shù)學試題數(shù)學試題
- 影視人類學概論智慧樹知到期末考試答案2024年
- (完整版)小學生24點習題大全(含答案)
- 2024年河北廊坊開發(fā)區(qū)管理委員招聘筆試參考題庫附帶答案詳解
- 拜占庭歷史與文化智慧樹知到期末考試答案2024年
- 2024年物流行業(yè)全面培訓資料
- (2024版)初中八年級生物備考全攻略
- 畢業(yè)論文寫作論文寫作課件
- 市場營銷策劃職業(yè)生涯規(guī)劃
- 老年??谱o士進修匯報總結(jié)
- 高二之路-我們的挑戰(zhàn)與成長
- 與醫(yī)保有關的信息系統(tǒng)相關材料-模板
評論
0/150
提交評論