青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩91頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)摘要目前,軟件系統(tǒng)的規(guī)模日趨龐大,軟件及其開(kāi)發(fā)過(guò)程越來(lái)越復(fù)雜,“軟件危機(jī)”仍是尚未解決的問(wèn)題。隨著軟件復(fù)用被視為解決“軟件危機(jī)”問(wèn)題的有效途徑之一,基于構(gòu)件的軟件開(kāi)發(fā)方法以其對(duì)軟件復(fù)用的有效支持,而被越來(lái)越多的開(kāi)發(fā)組織所采用。基于構(gòu)件的軟件開(kāi)發(fā)大致涉及構(gòu)件的獲取、構(gòu)件存儲(chǔ)管理和構(gòu)件組裝等幾個(gè)過(guò)程。構(gòu)件的存儲(chǔ)和管理是構(gòu)件開(kāi)發(fā)及基于構(gòu)件復(fù)用的開(kāi)發(fā)的重要中間環(huán)節(jié)。其重點(diǎn)是研究構(gòu)件的分類(lèi)檢索策略、構(gòu)件的數(shù)據(jù)模型、構(gòu)件庫(kù)建立及管理等方面。本文工作以國(guó)家“九五”重點(diǎn)科技攻關(guān)專(zhuān)題“基于構(gòu)件/構(gòu)架模式的應(yīng)用軟件集成環(huán)境 JBIII系統(tǒng)”為背景。青鳥(niǎo)III型系統(tǒng)的核心子系統(tǒng)是青鳥(niǎo)構(gòu)件

2、庫(kù)管理系統(tǒng),由可復(fù)用構(gòu)件庫(kù)和構(gòu)件庫(kù)管理工具集組成。本文著重于青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)的核心部件 青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的設(shè)計(jì)和實(shí)現(xiàn)。青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)支持符合青鳥(niǎo)構(gòu)件模型的構(gòu)件的分類(lèi)、存儲(chǔ)、檢索和管理;采用以刻面分類(lèi)模式為主、多種分類(lèi)模式相結(jié)合的機(jī)制對(duì)構(gòu)件進(jìn)行分類(lèi)檢索。本文以青鳥(niǎo)構(gòu)件模型為基礎(chǔ)、從刻面分類(lèi)為主的多種分類(lèi)檢索機(jī)制的需求出發(fā),建立了構(gòu)件庫(kù)概念模型,然后把概念模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型,并在實(shí)現(xiàn)過(guò)程中對(duì)關(guān)系模型進(jìn)行優(yōu)化,以提高構(gòu)件庫(kù)的性能。為了對(duì)外屏蔽網(wǎng)絡(luò)平臺(tái)和DBMS細(xì)節(jié),青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)為構(gòu)件庫(kù)管理工具集(包括構(gòu)件分類(lèi)工具、查詢(xún)工具以及庫(kù)管理和維護(hù)工具)提供一整套工具集接口CLTSI,并支持新工具

3、的集成。針對(duì)訪(fǎng)問(wèn)可復(fù)用構(gòu)件庫(kù)信息的特點(diǎn),設(shè)計(jì)了專(zhuān)門(mén)的數(shù)據(jù)存取命令DAC,通過(guò)DAC來(lái)實(shí)現(xiàn)工具集接口CLTSI,在保證系統(tǒng)功能和總體結(jié)構(gòu)不變的前提下,減小了檢索和獲取可復(fù)用構(gòu)件的代價(jià),提高了系統(tǒng)的性能與效率。關(guān)鍵字軟件復(fù)用,構(gòu)件,構(gòu)件模型,構(gòu)件庫(kù),數(shù)據(jù)庫(kù)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 標(biāo)題 1,1 第一章 引言 PAGEREF _Toc418581687 h 1軟件復(fù)用 PAGEREF _Toc418581688 h 1現(xiàn)狀及其問(wèn)題 PAGEREF _Toc418581689 h 2相關(guān)工作及解決途徑 PAGEREF _Toc418581690 h 3相關(guān)術(shù)語(yǔ)定義 PAGEREF _Toc418581691 h 4論文的組織 PAGEREF _Toc418581692 h 5第二章 基于構(gòu)件的軟件開(kāi)發(fā) PAGEREF _Toc418581693 h 6可復(fù)用構(gòu)件 PAGEREF _Toc418581694 h 6基于構(gòu)件的軟

13、件開(kāi)發(fā) PAGEREF _Toc418581695 h 6構(gòu)件庫(kù)對(duì)CBSD的支持 PAGEREF _Toc418581696 h 7基于構(gòu)件-構(gòu)架模式的軟件復(fù)用支持系統(tǒng) PAGEREF _Toc418581697 h 8第三章 青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng) PAGEREF _Toc418581698 h 10青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)體系結(jié)構(gòu) PAGEREF _Toc418581699 h 10青鳥(niǎo)構(gòu)件分類(lèi)檢索機(jī)制 PAGEREF _Toc418581700 h 11分類(lèi)模式 PAGEREF _Toc418581701 h 113.刻面分類(lèi)及術(shù)語(yǔ)空間 PAGEREF _Toc418581702 h 12輔助分類(lèi)

14、策略 PAGEREF _Toc418581703 h 14青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)功能 PAGEREF _Toc418581704 h 14青鳥(niǎo)構(gòu)件庫(kù)設(shè)計(jì)目標(biāo)與原則 PAGEREF _Toc418581705 h 15第四章 青鳥(niǎo)構(gòu)件庫(kù)模型設(shè)計(jì) PAGEREF _Toc418581706 h 17青鳥(niǎo)構(gòu)件模型簡(jiǎn)介 PAGEREF _Toc418581707 h 17構(gòu)件庫(kù)概念模型 PAGEREF _Toc418581708 h 19表示法 PAGEREF _Toc418581709 h 19青鳥(niǎo)構(gòu)件庫(kù)概念模型 PAGEREF _Toc418581710 h 20構(gòu)件庫(kù)數(shù)據(jù)模型 PAGEREF _To

15、c418581711 h 25相關(guān)概念 PAGEREF _Toc418581712 h 26青鳥(niǎo)構(gòu)件庫(kù)關(guān)系模型 PAGEREF _Toc418581713 h 27第五章 青鳥(niǎo)構(gòu)件庫(kù)工具集接口設(shè)計(jì) PAGEREF _Toc418581714 h 30青鳥(niǎo)構(gòu)件庫(kù)管理工具集 PAGEREF _Toc418581715 h 30構(gòu)件分類(lèi)與入庫(kù)工具 PAGEREF _Toc418581716 h 30查詢(xún)工具 PAGEREF _Toc418581717 h 30構(gòu)件庫(kù)管理及維護(hù)工具集 PAGEREF _Toc418581718 h 31工具集接口設(shè)計(jì)目標(biāo) PAGEREF _Toc418581719 h

16、 32工具集接口組成結(jié)構(gòu) PAGEREF _Toc418581720 h 33工具集接口詳細(xì)設(shè)計(jì) PAGEREF _Toc418581721 h 335.4.1 DAC詳細(xì)設(shè)計(jì) PAGEREF _Toc418581722 h 335.4.2 事務(wù)處理 PAGEREF _Toc418581723 h 37第六章 具體實(shí)現(xiàn) PAGEREF _Toc418581724 h 38關(guān)系模型的優(yōu)化 PAGEREF _Toc418581725 h 38對(duì)術(shù)語(yǔ)進(jìn)行編碼 PAGEREF _Toc418581726 h 38建立索引和視圖 PAGEREF _Toc418581727 h 39核心數(shù)據(jù)庫(kù)的建立與管理

17、 PAGEREF _Toc418581728 h 40核心數(shù)據(jù)庫(kù)的建立 PAGEREF _Toc418581729 h 40核心數(shù)據(jù)庫(kù)的恢復(fù) PAGEREF _Toc418581730 h 41工具集接口的具體實(shí)現(xiàn) PAGEREF _Toc418581731 h 41第七章 結(jié)束語(yǔ) PAGEREF _Toc418581732 h 43參考文獻(xiàn) PAGEREF _Toc418581733 h 44圖 目 錄 TOC t 圖表名 c 圖表 圖1-1 理想的工廠化軟件生產(chǎn)方式 PAGEREF _Toc418581734 h 1圖1-2 青鳥(niǎo)軟件生產(chǎn)線(xiàn) PAGEREF _Toc418581735 h

18、2圖2-1 構(gòu)件庫(kù)對(duì)基于構(gòu)件的軟件開(kāi)發(fā)的支持 PAGEREF _Toc418581736 h 7圖2-2 青鳥(niǎo)III型系統(tǒng) PAGEREF _Toc418581737 h 8圖3-1 青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)的體系結(jié)構(gòu) PAGEREF _Toc418581738 h 10圖4-1 青鳥(niǎo)構(gòu)件的三維模型 PAGEREF _Toc418581739 h 17圖4-2 實(shí)體關(guān)系模型中的概念和表示法 PAGEREF _Toc418581740 h 20圖4-3 數(shù)據(jù)庫(kù)實(shí)體關(guān)系圖(ERD) PAGEREF _Toc418581741 h 20圖4-4 構(gòu)件ER圖 PAGEREF _Toc418581742 h

19、21圖4-5 構(gòu)件關(guān)系ER圖 PAGEREF _Toc418581743 h 22圖4-6 術(shù)語(yǔ)與構(gòu)件、刻面、同義詞的關(guān)系 PAGEREF _Toc418581744 h 23圖4-7構(gòu)件與關(guān)鍵詞的關(guān)系 PAGEREF _Toc418581745 h 24圖4-8 使用者與構(gòu)件的關(guān)系 PAGEREF _Toc418581746 h 24圖4-9 構(gòu)件與提供者、聯(lián)系人之間的關(guān)系 PAGEREF _Toc418581747 h 25圖4-10 使用者與日志、配置信息的關(guān)系 PAGEREF _Toc418581748 h 25圖5-1 工具集接口的組成結(jié)構(gòu) PAGEREF _Toc418581749

20、 h 33圖6-1 術(shù)語(yǔ)空間及術(shù)語(yǔ)編碼示意圖 PAGEREF _Toc418581750 h 39圖6-2 核心數(shù)據(jù)庫(kù)的恢復(fù) PAGEREF _Toc418581751 h 41表 目 錄 TOC t 圖表名1 c 表格 表1-1 相關(guān)術(shù)語(yǔ)定義 PAGEREF _Toc418922867 h 5表3-1 使用環(huán)境刻面的術(shù)語(yǔ) PAGEREF _Toc418922868 h 13表3-2 功能刻面的術(shù)語(yǔ) PAGEREF _Toc418922869 h 14表4-1 構(gòu)件層次、形態(tài)的關(guān)系 PAGEREF _Toc418922870 h 18表4-2 構(gòu)件層次、表示的關(guān)系 PAGEREF _Toc41

21、8922871 h 19表4-3 關(guān)系模型的主要概念 PAGEREF _Toc418922872 h 26表4-4 青鳥(niǎo)構(gòu)件庫(kù)關(guān)系模式 PAGEREF _Toc418922873 h 27表4-5 Component 關(guān)系模式 PAGEREF _Toc418922874 h 27表5-1 用戶(hù)管理命令 PAGEREF _Toc418922875 h 34表5-2 構(gòu)件提供者與聯(lián)系人管理命令 PAGEREF _Toc418922876 h 34表5-3 日志管理命令 PAGEREF _Toc418922877 h 35表5-4 刻面及其術(shù)語(yǔ)空間管理命令 PAGEREF _Toc418922878

22、 h 35表5-5 構(gòu)件操作命令 PAGEREF _Toc418922879 h 36表5-6 構(gòu)件描述信息操作命令 PAGEREF _Toc418922880 h 36表5-7 構(gòu)件關(guān)系管理命令 PAGEREF _Toc418922881 h 37表5-8 配置管理命令 PAGEREF _Toc418922882 h 37表6-1 青鳥(niǎo)構(gòu)件庫(kù)索引列表 PAGEREF _Toc418922883 h 40表6-2 青鳥(niǎo)構(gòu)件庫(kù)視圖列表 PAGEREF _Toc418922884 h 40表6-3 有關(guān)合法性檢查的內(nèi)部命令列表 PAGEREF _Toc418922885 h 42第一章 引言軟件復(fù)

23、用自從1968年NATO軟件工程會(huì)議以來(lái),軟件工程的發(fā)展已有三十年歷史。其間,眾多的科研人員和工程技術(shù)人員付出了艱辛的努力,取得了豐碩成果。軟件工程思想和技術(shù)的普及,使軟件生產(chǎn)率穩(wěn)步上升,軟件質(zhì)量得到很大改善。但是隨著軟件系統(tǒng)的規(guī)模和復(fù)雜性日益增加,軟件工程研究還是遠(yuǎn)遠(yuǎn)不能滿(mǎn)足軟件產(chǎn)業(yè)發(fā)展的需求,離徹底解決“軟件危機(jī)”還有相當(dāng)大的距離 Boeh 87, Cox 90。近十年來(lái),人們開(kāi)始認(rèn)識(shí)到,要真正實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)方式,達(dá)到軟件產(chǎn)業(yè)發(fā)展所需要的軟件生產(chǎn)率和質(zhì)量,軟件復(fù)用是一條現(xiàn)實(shí)可行的途徑Mili 95。對(duì)軟件復(fù)用技術(shù)的研究已成為軟件工程學(xué)科的主攻方向之一。被視為解決軟件危機(jī)的現(xiàn)實(shí)可行的途

24、徑。軟件復(fù)用的概念是由McIlroy在1968年的NATO軟件工程會(huì)議上正式提出的,此后三十年中,軟件復(fù)用在技術(shù)研究上已取得了較大進(jìn)展,同時(shí)也對(duì)軟件產(chǎn)業(yè)產(chǎn)生了深刻的影響。軟件復(fù)用將造成軟件產(chǎn)業(yè)的合理分工,專(zhuān)業(yè)化的構(gòu)件生產(chǎn)將成為獨(dú)立的產(chǎn)業(yè)而存在,而軟件系統(tǒng)的開(kāi)發(fā)將通過(guò)集成組裝現(xiàn)有構(gòu)件的方式來(lái)完成。這種產(chǎn)業(yè)分工將促使軟件產(chǎn)業(yè)真正走上工程化、工業(yè)化的發(fā)展軌道楊芙清 97。而軟件產(chǎn)業(yè)的組織結(jié)構(gòu)也將隨之發(fā)生變革Shaw 84,Cox 90,Basili 91,一般來(lái)說(shuō),需要在傳統(tǒng)項(xiàng)目組織結(jié)構(gòu)之外,增加一個(gè)專(zhuān)門(mén)負(fù)責(zé)構(gòu)件開(kāi)發(fā)、管理和維護(hù)的部門(mén)。Caldieri和Basil提出了一種理想的工廠化的軟件生產(chǎn)方式

25、Cald 91,如圖1-1所示:圖1-1 理想的工廠化軟件生產(chǎn)方式青鳥(niǎo)工程提出的軟件生產(chǎn)線(xiàn)思想楊芙清 96b集中體現(xiàn)了軟件復(fù)用的本質(zhì)及軟件工業(yè)化生產(chǎn)的模式。圖1-2給出了青鳥(niǎo)軟件生產(chǎn)線(xiàn)圖示。青鳥(niǎo)工程一直是國(guó)家重點(diǎn)支持的科技攻關(guān)課題,已有十余年的發(fā)展歷程。“七五”、“八五”期間,青鳥(niǎo)工程面向我國(guó)軟件產(chǎn)業(yè)基礎(chǔ)建設(shè)的需求,以實(shí)用的軟件工程技術(shù)為依托,研究開(kāi)發(fā)具有自主版權(quán)的軟件工程環(huán)境,為軟件產(chǎn)業(yè)提供基礎(chǔ)設(shè)施軟件工具、平臺(tái)和環(huán)境,建立工業(yè)化生產(chǎn)的基本手段,促進(jìn)我國(guó)軟件開(kāi)發(fā)由手工作坊式轉(zhuǎn)向用計(jì)算機(jī)輔助開(kāi)發(fā),以提高軟件開(kāi)發(fā)效率,改善軟件產(chǎn)品質(zhì)量。大型軟件開(kāi)發(fā)環(huán)境青鳥(niǎo)系統(tǒng)楊芙清 95b便是這一階段攻關(guān)工作的

26、成果。圖1-2 青鳥(niǎo)軟件生產(chǎn)線(xiàn) “九五”期間,青鳥(niǎo)工程的任務(wù)是在前期攻關(guān)工作的基礎(chǔ)上,為形成我國(guó)軟件產(chǎn)業(yè)規(guī)模提供技術(shù)支持。重點(diǎn)是研究青鳥(niǎo)軟件生產(chǎn)線(xiàn),為軟件開(kāi)發(fā)提供整體解決方案,推行軟件工業(yè)化生產(chǎn)模式,促進(jìn)軟件產(chǎn)業(yè)規(guī)模的形成。青鳥(niǎo)工程“九五”目標(biāo)分兩期實(shí)施,第一期目標(biāo)是初步實(shí)現(xiàn)青鳥(niǎo)軟件生產(chǎn)線(xiàn)系統(tǒng),用以裝備軟件企業(yè),支持軟件構(gòu)件的生產(chǎn)和應(yīng)用系統(tǒng)集成,并推出示范工程。第二期目標(biāo)是針對(duì)軟件產(chǎn)業(yè)規(guī)模經(jīng)濟(jì)的需求,根據(jù)軟件產(chǎn)業(yè)由于構(gòu)件技術(shù)的日趨成熟而出現(xiàn)的產(chǎn)業(yè)重組分工趨勢(shì)(即分成專(zhuān)門(mén)的軟件構(gòu)件生產(chǎn)業(yè)和應(yīng)用系統(tǒng)集成業(yè)),為其提供相應(yīng)的技術(shù)支撐和裝備,適應(yīng)并推進(jìn)產(chǎn)業(yè)分工和形成規(guī)模,使我國(guó)軟件產(chǎn)業(yè)真正走上工程化、

27、工業(yè)化的道路。現(xiàn)狀及其問(wèn)題軟件復(fù)用概念出現(xiàn)以來(lái)的三十年中,已有了許多成功的復(fù)用實(shí)踐,如針對(duì)FORTRAN,COBOL,Visual Basic等語(yǔ)言的復(fù)用Gris 95。軟件復(fù)用作為現(xiàn)實(shí)可行的克服軟件危機(jī),實(shí)現(xiàn)軟件工業(yè)化生產(chǎn)方式的技術(shù)途徑在近幾年來(lái)受到普遍關(guān)注,成果斐然,然而離成功的復(fù)用仍有較大距離,原因有多方面。從組織機(jī)構(gòu)與管理角度看,現(xiàn)有的組織管理模式已成為推行復(fù)用技術(shù)的障礙。首先應(yīng)改革現(xiàn)有的由一個(gè)項(xiàng)目組從頭至尾完成整個(gè)系統(tǒng)開(kāi)發(fā)的方式,應(yīng)該涌現(xiàn)出大量的構(gòu)件廠商生產(chǎn)大量可復(fù)用構(gòu)件,使項(xiàng)目組和構(gòu)件廠商間構(gòu)成消費(fèi)者生產(chǎn)者的關(guān)系,生產(chǎn)者只負(fù)責(zé)開(kāi)發(fā)各類(lèi)可復(fù)用構(gòu)件,項(xiàng)目組只消費(fèi)構(gòu)件Basi 92,Ba

28、si 94。從思想觀念角度看,存在一種“Not Invented Here”(不是自己發(fā)明的)綜合癥。軟件工程師喜歡創(chuàng)造性的勞動(dòng),不愿意復(fù)用也往往并不信任別人開(kāi)發(fā)的軟件。應(yīng)當(dāng)改變這種傳統(tǒng)觀念,轉(zhuǎn)而遵循Fred Brooks所提出的“用購(gòu)買(mǎi)代替建造”(buy, dont build)的思想Broo 87。從工程學(xué)角度看,軟件工程學(xué)科的發(fā)展尚處于不成熟期,缺少對(duì)軟件開(kāi)發(fā)和軟件復(fù)用的合適訓(xùn)練,缺少有效方法學(xué)支持等。從技術(shù)角度看,軟件復(fù)用主要涉及構(gòu)件的獲取、構(gòu)件存儲(chǔ)管理和構(gòu)件組裝等方面,這幾個(gè)環(huán)節(jié)在軟件復(fù)用過(guò)程中都處于非常重要的地位,而且都與構(gòu)件密切關(guān)聯(lián)。無(wú)論是從可復(fù)用構(gòu)件的開(kāi)發(fā)角度、還是從基于構(gòu)件的

29、復(fù)用角度來(lái)看,可復(fù)用構(gòu)件的數(shù)量、種類(lèi)和質(zhì)量都是成功地進(jìn)行軟件復(fù)用的關(guān)鍵所在。這就對(duì)可復(fù)用構(gòu)件的分類(lèi)、存儲(chǔ)、管理、檢索以及相應(yīng)的工具支持提出了需求。必須有一個(gè)合理而高效的可復(fù)用構(gòu)件庫(kù)管理系統(tǒng)提供強(qiáng)有力的支持,才能使成功的軟件復(fù)用成為現(xiàn)實(shí)。成功的軟件復(fù)用需要在組織機(jī)構(gòu)與管理、思想觀念、工程學(xué)和技術(shù)等方面的協(xié)同支持。本文主要從軟件復(fù)用的技術(shù)角度展開(kāi)討論,尤其著重于對(duì)可復(fù)用構(gòu)件分類(lèi)、存儲(chǔ)、管理和檢索的支持。相關(guān)工作及解決途徑早期的軟件復(fù)用主要注重于代碼復(fù)用Free 87,Krue 92及其支持,如FORTRAN,COBOL,C語(yǔ)言將常用的函數(shù)保存在函數(shù)庫(kù)中。面向?qū)ο笳Z(yǔ)言由于其新的特性,如封裝、繼承、多

30、態(tài)等,能更好地支持復(fù)用,而面向?qū)ο笳Z(yǔ)言的開(kāi)發(fā)環(huán)境也對(duì)代碼復(fù)用提供了有效的支持,主要是提供了強(qiáng)大的類(lèi)庫(kù),如Micr 94的類(lèi)庫(kù),程序員可以直接使用類(lèi)庫(kù)中的類(lèi)或從中派生自己的類(lèi)。隨著軟件復(fù)用的發(fā)展,復(fù)用的對(duì)象從早期的代碼復(fù)用擴(kuò)展到對(duì)軟件開(kāi)發(fā)過(guò)程中一切有價(jià)值的信息的復(fù)用,出現(xiàn)了多種可復(fù)用構(gòu)件,如分析件、設(shè)計(jì)件、測(cè)試件以及程序文檔。而可復(fù)用構(gòu)件在數(shù)量上也日趨增大。為了更好地支持多形式、大數(shù)量構(gòu)件的復(fù)用,必須有一個(gè)支持構(gòu)件復(fù)用的環(huán)境。當(dāng)前軟件界對(duì)可復(fù)用構(gòu)件庫(kù)及其相關(guān)問(wèn)題進(jìn)行了深入研究,并提出了不少的復(fù)用標(biāo)準(zhǔn)及環(huán)境。RIGRIG 94和NATONATO提出了一系列標(biāo)準(zhǔn);ALOAFSTARS 92對(duì)構(gòu)件模型

31、進(jìn)行了大量的研究。復(fù)用庫(kù)可互操作性組織RIG(Reuse library Interoperability Group)為軟件復(fù)用庫(kù)間共享軟件構(gòu)件,考察了軟件庫(kù)之間的可互操作性問(wèn)題,并開(kāi)發(fā)了一個(gè)數(shù)據(jù)模型UDM(Uniform Data Model for Reuse Libraries),其中定義了在支持可互操作性的庫(kù)之間交換軟件構(gòu)件所需要的信息。它提供了一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)模型,各個(gè)庫(kù)可以將它作為自己的數(shù)據(jù)模型的中間表示,用來(lái)和其它庫(kù)交換使用符合各自數(shù)據(jù)模型的數(shù)據(jù)。NATO(North Atlantic Treaty Organization)提出了一組標(biāo)準(zhǔn),包括可復(fù)用軟件構(gòu)件開(kāi)發(fā)指南、可復(fù)用軟件

32、構(gòu)件庫(kù)管理指南和軟件復(fù)用過(guò)程指南三個(gè)文檔,分別針對(duì)于軟件生命周期的不同階段NATO。其中可復(fù)用軟件構(gòu)件庫(kù)管理指南討論了有關(guān)構(gòu)件庫(kù)建立與管理的問(wèn)題。構(gòu)件庫(kù)管理的關(guān)鍵在于分類(lèi),NATO采用刻面對(duì)構(gòu)件庫(kù)進(jìn)行分類(lèi)。NATO刻面分類(lèi)模式中的刻面不必彼此獨(dú)立,也不必適用于所有的構(gòu)件。一組典型的刻面可能包括:對(duì)象、功能、算法、類(lèi)型、語(yǔ)言和環(huán)境。在對(duì)一個(gè)構(gòu)件進(jìn)行分類(lèi)時(shí),不一定所有的刻面都出現(xiàn)??堂嫘g(shù)語(yǔ)具有同義詞關(guān)系,一組同義詞表達(dá)同一個(gè)概念,術(shù)語(yǔ)空間由這些術(shù)語(yǔ)構(gòu)成,術(shù)語(yǔ)之間沒(méi)有一般/特殊關(guān)系(即術(shù)語(yǔ)空間是非結(jié)構(gòu)化的)。美國(guó)軍方發(fā)起的STARS(Software Technology for Adaptable

33、, Reliable Systems)項(xiàng)目考慮了在構(gòu)件庫(kù)之間共享資源和實(shí)現(xiàn)無(wú)縫互操作的問(wèn)題,于92年提出了開(kāi)放體系結(jié)構(gòu)的構(gòu)件框架ALOAF( Asset Library Open Architecture Framework )。該文檔包括構(gòu)件庫(kù)框架的參考模型(ALF-RM)、互交換構(gòu)件的所需的數(shù)據(jù)模型和約定格式的規(guī)約以及一個(gè)在ALF-RM上支持構(gòu)件互交換和構(gòu)件描述的框架服務(wù)規(guī)約。ALOAF強(qiáng)調(diào)數(shù)據(jù)建模的作用,考慮元模型層、模型層和數(shù)據(jù)層三個(gè)層次,認(rèn)為統(tǒng)一的數(shù)據(jù)元模型是互操作和數(shù)據(jù)共享的基礎(chǔ)。在理論研究的同時(shí),已有不少的構(gòu)件庫(kù)系統(tǒng)在軟件產(chǎn)業(yè)界得到了實(shí)際應(yīng)用。最為典型的有REBOOTJean 9

34、3系統(tǒng)。REBOOT(Reuse Based on Object Oriented Techniques)是一個(gè)包括儲(chǔ)存可復(fù)用構(gòu)件的數(shù)據(jù)庫(kù)和一組產(chǎn)生、認(rèn)證、插入、提取、評(píng)價(jià)和適配可復(fù)用構(gòu)件的工具的環(huán)境Lars 93。其中在對(duì)構(gòu)件進(jìn)行分類(lèi)時(shí)采用了刻面的分類(lèi)策略,這一分類(lèi)策略主要針對(duì)面向?qū)ο蟮臉?gòu)件。美國(guó)國(guó)防部也推出了若干構(gòu)件庫(kù),如:美國(guó)空軍電子系統(tǒng)中心(ESC)的CARDSCARDS 96、STARS項(xiàng)目的ASSET(Asset Source for Software Engineering Technology) STARS 92和DISA(Defense Information Service

35、s Agency)的SRP(Software Reuse Program)。青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)是青鳥(niǎo)基于構(gòu)件-構(gòu)架模式的軟件復(fù)用支持系統(tǒng)的核心,其建模過(guò)程中研究分析了國(guó)外軟件復(fù)用的最新成果、盡量遵循國(guó)際主流,并且具有自己的特色。青鳥(niǎo)構(gòu)件庫(kù)對(duì)寬譜系粒度的構(gòu)件提供支持,有足夠能力存儲(chǔ)、處理多層次多粒度的各種構(gòu)件;提供以刻面分類(lèi)策略為主、多種分類(lèi)策略相結(jié)合的分類(lèi)檢索機(jī)制,采用正交的五個(gè)刻面對(duì)構(gòu)件進(jìn)行刻劃,刻面彼此獨(dú)立且適用于所有的構(gòu)件,在對(duì)一個(gè)構(gòu)件進(jìn)行分類(lèi)時(shí),所有的刻面都必須關(guān)聯(lián)相應(yīng)術(shù)語(yǔ);而且青鳥(niǎo)構(gòu)件庫(kù)還率先提出了以樹(shù)型層次結(jié)構(gòu)組織術(shù)語(yǔ)空間的策略。相關(guān)術(shù)語(yǔ)定義為了討論和敘述的方便,下面給出在本文中經(jīng)常

36、用到的一些關(guān)鍵術(shù)語(yǔ)的簡(jiǎn)要定義:復(fù)用(Reuse)在一個(gè)新的語(yǔ)境(context)中(同一系統(tǒng)的其它地方或另一個(gè)系統(tǒng)中)使用已有的為復(fù)用目的而開(kāi)發(fā)的軟件構(gòu)件。構(gòu)件(Component)軟件系統(tǒng)中一切可以被明確標(biāo)識(shí)的有機(jī)構(gòu)成成分(軟件實(shí)體);它可以是需求分析、設(shè)計(jì)、代碼、測(cè)試數(shù)據(jù)或軟件開(kāi)發(fā)過(guò)程的其它產(chǎn)品??蓮?fù)用構(gòu)件(Reusable Component)具有可復(fù)用價(jià)值的軟件構(gòu)件。構(gòu)件模型(Component Model)構(gòu)件的本質(zhì)特征以及構(gòu)件間關(guān)系的抽象描述??蓮?fù)用構(gòu)件庫(kù)(Component Library)可復(fù)用軟件構(gòu)件的集合,包括向用戶(hù)提供構(gòu)件時(shí)所需的過(guò)程和功能。基于構(gòu)件的軟件開(kāi)發(fā)Compon

37、ent-Based Software Development通過(guò)組裝現(xiàn)有軟件構(gòu)件的方式來(lái)建造大型軟件系統(tǒng)的軟件開(kāi)發(fā)方法??堂?Facet)一個(gè)單詞或短語(yǔ)的固定集合,用于描述構(gòu)件的某個(gè)方面或視角術(shù)語(yǔ)空間(Term Space)術(shù)語(yǔ)的結(jié)構(gòu)化集合, 術(shù)語(yǔ)空間的結(jié)構(gòu)反映了術(shù)語(yǔ)間的語(yǔ)義關(guān)系??堂娣诸?lèi)策略(Faceted Classification Scheme)一個(gè)刻面分類(lèi)模式由一組描述構(gòu)件特征的刻面所組成,每個(gè)刻面從不同的側(cè)面對(duì)庫(kù)中構(gòu)件進(jìn)行分類(lèi)。數(shù)據(jù)模型(Data Model)數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)中用于提供詳細(xì)表示和操作手段的形式構(gòu)架,通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。概念模型(Con

38、ceptal Model)從現(xiàn)實(shí)世界的客觀事務(wù)中抽象出來(lái)的一種不依賴(lài)于具體計(jì)算機(jī)系統(tǒng)的信息結(jié)構(gòu)。關(guān)系模型(Relational Model)以關(guān)系表示實(shí)體及實(shí)體之間聯(lián)系的一種數(shù)據(jù)模型。領(lǐng)域(Domain)指一類(lèi)相關(guān)的軟件應(yīng)用。一般來(lái)說(shuō),構(gòu)件在某個(gè)特定的領(lǐng)域內(nèi)復(fù)用潛力最大。表1-1 相關(guān)術(shù)語(yǔ)定義論文的組織本文涉及了青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)的組織存儲(chǔ)及檢索等方面的研究。第二章主要討論了基于構(gòu)件的軟件開(kāi)發(fā)及構(gòu)件庫(kù)對(duì)基于構(gòu)件的軟件開(kāi)發(fā)的支持,并且介紹了“基于構(gòu)件/構(gòu)架模式的軟件開(kāi)發(fā)支持系統(tǒng)” 青鳥(niǎo)III型,由此給出本文研究的工作背景。第三章介紹了青鳥(niǎo)III型的核心 青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)的體系結(jié)構(gòu)、分類(lèi)檢索機(jī)制及

39、應(yīng)具有的功能,并由此導(dǎo)出青鳥(niǎo)構(gòu)件庫(kù)的設(shè)計(jì)目標(biāo)與原則。第四章在討論青鳥(niǎo)構(gòu)件模型之后,用實(shí)體關(guān)系模型描述青鳥(niǎo)構(gòu)件庫(kù)的概念模型,并把概念模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型。第五章主要討論構(gòu)件庫(kù)管理工具集接口的設(shè)計(jì)。在簡(jiǎn)單介紹構(gòu)件庫(kù)管理工具集之后,討論了工具集與構(gòu)件庫(kù)之間的接口的設(shè)計(jì)目標(biāo)、組成結(jié)構(gòu)及詳細(xì)設(shè)計(jì)。第六章主要討論青鳥(niǎo)構(gòu)件庫(kù)及其工具集接口實(shí)現(xiàn)上的各種細(xì)節(jié)。第二章 基于構(gòu)件的軟件開(kāi)發(fā)基于構(gòu)件的軟件開(kāi)發(fā)是一種有效實(shí)際的復(fù)用途徑。本章先討論復(fù)用的幾種形式并給出可復(fù)用構(gòu)件的定義;接著,介紹基于構(gòu)件的軟件開(kāi)發(fā)并闡述構(gòu)件庫(kù)對(duì)基于構(gòu)件的軟件開(kāi)發(fā)的支持。最后,闡述基于構(gòu)件/構(gòu)架模式的軟件開(kāi)發(fā)支持系統(tǒng)青鳥(niǎo)III型從而,給出

40、本文研究的工作背景??蓮?fù)用構(gòu)件可復(fù)用構(gòu)件(Reusable Component)指所有具有可復(fù)用價(jià)值的構(gòu)件,在本文中簡(jiǎn)稱(chēng)為構(gòu)件(Component)。軟件復(fù)用是指應(yīng)用已有的為復(fù)用目的而開(kāi)發(fā)的軟件構(gòu)件構(gòu)造新的軟件系統(tǒng),以提高系統(tǒng)開(kāi)發(fā)效率及軟件質(zhì)量。復(fù)用的形式多種多樣,可以是規(guī)約復(fù)用、設(shè)計(jì)復(fù)用、代碼復(fù)用、測(cè)試復(fù)用和文檔復(fù)用NATO。由于復(fù)用的種類(lèi)不同,不同的復(fù)用研究人員對(duì)構(gòu)件給出的定義也不盡相同,目前國(guó)際上對(duì)構(gòu)件并無(wú)統(tǒng)一的標(biāo)準(zhǔn)定義。NATO在其頒布的構(gòu)件開(kāi)發(fā)標(biāo)準(zhǔn)中將構(gòu)件籠統(tǒng)地定義為:構(gòu)件是用于復(fù)用的軟件實(shí)體NATO。STARS拓廣了構(gòu)件的范圍,將廣義構(gòu)件(Asset)定義為:任何在當(dāng)前或?qū)?lái)對(duì)于開(kāi)

41、發(fā)和維護(hù)軟件系統(tǒng)的企業(yè)和組織有價(jià)值的信息單元。這一概念比狹義的軟件構(gòu)件意義更為廣泛。構(gòu)件可以包括軟件工作產(chǎn)品、軟件子系統(tǒng)、軟件構(gòu)件(STARS的軟件構(gòu)件是與分析件、設(shè)計(jì)件等相并列的)、專(zhuān)家聯(lián)系名單、構(gòu)架、領(lǐng)域分析、設(shè)計(jì)、文檔、個(gè)案分析、經(jīng)驗(yàn)教訓(xùn)、研究成果、以及有創(chuàng)見(jiàn)的軟件工程思想與表述等等STARS 92。Mili等在Mili 95一文中將軟件復(fù)用分為兩類(lèi):產(chǎn)品復(fù)用(product reuse)和過(guò)程復(fù)用(process reuse)。產(chǎn)品復(fù)用是指將對(duì)軟件開(kāi)發(fā)過(guò)程中生成的各種產(chǎn)品作為構(gòu)件進(jìn)行復(fù)用,一般而言有兩種形式:直接復(fù)用和間接復(fù)用。直接復(fù)用針對(duì)的構(gòu)件可以表示為某種程序設(shè)計(jì)語(yǔ)言代碼,這類(lèi)構(gòu)件

42、的復(fù)用可以直接產(chǎn)生可執(zhí)行的應(yīng)用程序。間接復(fù)用是指對(duì)需求規(guī)約、設(shè)計(jì)、模式、測(cè)試計(jì)劃等文檔型知識(shí)的復(fù)用。雖然這類(lèi)非代碼構(gòu)件的復(fù)用不能直接得到可執(zhí)行的應(yīng)用程序,但可以對(duì)系統(tǒng)開(kāi)發(fā)的效率和質(zhì)量帶來(lái)極大的好處。過(guò)程復(fù)用是指復(fù)用以前軟件開(kāi)發(fā)的過(guò)程,一般表現(xiàn)為對(duì)軟件開(kāi)發(fā)某一階段提供自動(dòng)化支持的工具,典型的過(guò)程復(fù)用例子有程序生成器、程序變換器和可執(zhí)行規(guī)約語(yǔ)言等。本文的研究重點(diǎn)是產(chǎn)品復(fù)用,將構(gòu)件定義為:構(gòu)件是軟件系統(tǒng)中一切可以被明確標(biāo)識(shí)和的有機(jī)構(gòu)成成分(軟件實(shí)體),可以是需求分析、設(shè)計(jì)、代碼、測(cè)試數(shù)據(jù)或軟件開(kāi)發(fā)過(guò)程的其它產(chǎn)品?;跇?gòu)件的軟件開(kāi)發(fā)隨著構(gòu)件技術(shù)的發(fā)展,軟件開(kāi)發(fā)方式也發(fā)生了巨大變化。基于構(gòu)件的軟件開(kāi)發(fā)(

43、CBSD,Component-Based Software Development),成為軟件工程學(xué)科的焦點(diǎn)之一。CBSD有時(shí)也被稱(chēng)為基于構(gòu)件的軟件工程(CBSE)Brow 96,它致力于通過(guò)組裝現(xiàn)有軟件構(gòu)件的方式來(lái)建造大型軟件系統(tǒng)。通過(guò)增強(qiáng)系統(tǒng)的靈活性和可維護(hù)性,這種方法可以降低軟件開(kāi)發(fā)成本,加快系統(tǒng)開(kāi)發(fā)的速度,減輕大型系統(tǒng)支持和升級(jí)所帶來(lái)的維護(hù)負(fù)擔(dān)。CBSD是建立在這樣一個(gè)前提之上的,即大型軟件系統(tǒng)的某些部分具有共性,因此將該部分制作成構(gòu)件,類(lèi)似系統(tǒng)通過(guò)復(fù)用構(gòu)件來(lái)實(shí)現(xiàn)。在基于構(gòu)件的軟件開(kāi)發(fā)過(guò)程中,原來(lái)系統(tǒng)開(kāi)發(fā)中的重點(diǎn) 程序設(shè)計(jì),將被組裝現(xiàn)有軟件構(gòu)件所取代。構(gòu)件組裝成為整個(gè)軟件開(kāi)發(fā)過(guò)程的核心

44、工作,因此構(gòu)件的組織、存儲(chǔ)、檢索也就成為基于構(gòu)件的軟件開(kāi)發(fā)中的一個(gè)關(guān)鍵因素。為了支持關(guān)于構(gòu)件的上述活動(dòng),使用構(gòu)件庫(kù)來(lái)保存構(gòu)件是必須的,也是提高開(kāi)發(fā)效率的關(guān)鍵。構(gòu)件庫(kù)對(duì)CBSD的支持為了支持基于構(gòu)件的軟件開(kāi)發(fā)過(guò)程,人們希望能夠擁有與軟件生命周期的各個(gè)階段相關(guān)的構(gòu)件,以便軟件開(kāi)發(fā)者在整個(gè)軟件開(kāi)發(fā)過(guò)程都能通過(guò)復(fù)用構(gòu)件得到幫助。由于軟件復(fù)用具有多種形式,同時(shí)軟件開(kāi)發(fā)過(guò)程又可分為需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、維護(hù)等不同階段。因此,要使復(fù)用成為可能,首先必須要有大批量的各種形式、分屬不同階段的可復(fù)用構(gòu)件。其次,為了盡可能地減小用戶(hù)獲取可復(fù)用構(gòu)件的代價(jià),這就必然要求有一個(gè)能夠良好有效地支持復(fù)用的環(huán)境,對(duì)大量構(gòu)

45、件進(jìn)行分類(lèi)、管理、存儲(chǔ)并支持開(kāi)發(fā)者檢索和提取構(gòu)件。圖2-1 構(gòu)件庫(kù)對(duì)基于構(gòu)件的軟件開(kāi)發(fā)的支持支持構(gòu)件復(fù)用的環(huán)境的一個(gè)重要部分是支持構(gòu)件分類(lèi)、組織、存儲(chǔ)和查詢(xún)的構(gòu)件庫(kù)系統(tǒng)。支持多層次多形態(tài)構(gòu)件的大型構(gòu)件庫(kù)有利于提高復(fù)用的可能性和復(fù)用的質(zhì)量。有了構(gòu)件庫(kù)系統(tǒng)的支持,基于構(gòu)件的軟件開(kāi)發(fā)活動(dòng)被劃分成三類(lèi):構(gòu)件獲取、構(gòu)件管理和構(gòu)件復(fù)用,如圖2-1所示。構(gòu)件可以通過(guò)設(shè)計(jì)生產(chǎn),或通過(guò)再工程的方式提取,或直接從某個(gè)商業(yè)性的軟件機(jī)構(gòu)購(gòu)買(mǎi)。構(gòu)件管理負(fù)責(zé)構(gòu)件分類(lèi)以及構(gòu)件維護(hù)。而構(gòu)件復(fù)用則查詢(xún)構(gòu)件并通過(guò)構(gòu)件組裝生成新系統(tǒng)。Fisc 87,Rama 88,Maid 93,Mili 94,Mili 95基于構(gòu)件-構(gòu)架模式的

46、軟件復(fù)用支持系統(tǒng)青鳥(niǎo) = 3 * ROMAN III型系統(tǒng)的研制開(kāi)發(fā)是青鳥(niǎo)工程“九五”攻關(guān)中的一個(gè)重要組成部分,該系統(tǒng)的研制目標(biāo)是針對(duì)軟件工業(yè)化生產(chǎn)的需求,完善并初步實(shí)現(xiàn)青鳥(niǎo)軟件生產(chǎn)線(xiàn)的思想,制定軟件工業(yè)化生產(chǎn)標(biāo)準(zhǔn)和規(guī)范,研究基于“構(gòu)件構(gòu)架”模式的軟件工業(yè)化生產(chǎn)技術(shù),研制支持面向?qū)ο蠹夹g(shù)、支持軟件復(fù)用、基于異構(gòu)平臺(tái)、具有多信息源接口的應(yīng)用系統(tǒng)集成環(huán)境。圖2-2給出了青鳥(niǎo) = 3 * ROMAN III型系統(tǒng)的示意圖:圖2-2 青鳥(niǎo) = 3 * ROMAN III型系統(tǒng)基于構(gòu)件-構(gòu)架模式的軟件復(fù)用支持系統(tǒng)是青鳥(niǎo)的 = 3 * ROMAN III型系統(tǒng)的核心,如圖2-1所示,它主要由以下幾個(gè)工具組

47、成:1、領(lǐng)域分析工具;2、程序理解及構(gòu)件抽取工具;3、構(gòu)件庫(kù)管理系統(tǒng)JBCL,其中包括構(gòu)件庫(kù)、分類(lèi)工具、查詢(xún)工具和庫(kù)管理工具;4、基于復(fù)用的OO開(kāi)發(fā)工具集,其中包括分析工具、設(shè)計(jì)工具、編程工具和測(cè)試工具;5、構(gòu)件組裝工具。青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)管理系統(tǒng)JBCL是構(gòu)件庫(kù)、分類(lèi)工具、查詢(xún)工具以及庫(kù)管理工具的統(tǒng)稱(chēng),它是青鳥(niǎo)III型系統(tǒng)的核心子系統(tǒng)。在構(gòu)件庫(kù)中可以保存軟件開(kāi)發(fā)過(guò)程中所生成的不同階段(如分析、設(shè)計(jì)、編碼、測(cè)試等)、不同形態(tài)(如類(lèi)、類(lèi)樹(shù)以及框架)、不同表示(如圖形、偽碼、語(yǔ)言等)的構(gòu)件,并根據(jù)多種不同機(jī)制(如刻面、關(guān)鍵詞等)為它們建立分類(lèi)索引,以便于進(jìn)行檢索工作。第三章 青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)本章先

48、給出青鳥(niǎo)III型的核心青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)的體系結(jié)構(gòu)。接著,介紹青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)所采用的分類(lèi)檢索機(jī)制。最后,闡述青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)應(yīng)具有的功能,并由此導(dǎo)出青鳥(niǎo)構(gòu)件庫(kù)的設(shè)計(jì)目標(biāo)與原則。青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)體系結(jié)構(gòu)青鳥(niǎo)可復(fù)用構(gòu)件庫(kù)管理系統(tǒng)JBCL(Jade Bird Component Library)是JBIII型系統(tǒng)的核心子系統(tǒng), 由構(gòu)件庫(kù)、入庫(kù)工具、查詢(xún)工具以及構(gòu)件庫(kù)管理工具組成。青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)的體系結(jié)構(gòu)如圖3-1所示:圖3-1 青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)的體系結(jié)構(gòu)青鳥(niǎo)構(gòu)件庫(kù)管理系統(tǒng)為Client/Server結(jié)構(gòu),其核心是一個(gè)存儲(chǔ)構(gòu)件及其相關(guān)信息的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),外圍支持工具構(gòu)成三個(gè)工具集:構(gòu)件

49、庫(kù)入庫(kù)工具集、構(gòu)件庫(kù)查詢(xún)工具集和構(gòu)件庫(kù)維護(hù)工具集。數(shù)據(jù)庫(kù)服務(wù)員基于工作站的UNIX平臺(tái),直接對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行各種操作。其主要功能包括:為數(shù)據(jù)庫(kù)用戶(hù)提供統(tǒng)一的DAC(Data Access Command,數(shù)據(jù)存取命令)語(yǔ)言,以屏蔽DBMS的細(xì)節(jié)(考慮到用戶(hù)可選用不同的數(shù)據(jù)庫(kù));附加的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)控制;譯碼并解釋執(zhí)行DAC,訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。支持工具基于微機(jī)Windows平臺(tái),通過(guò)局域網(wǎng)與數(shù)據(jù)庫(kù)服務(wù)員通訊,支持用戶(hù)對(duì)構(gòu)件庫(kù)的使用。各支持工具通過(guò)OLE機(jī)制集成起來(lái)。構(gòu)件庫(kù)的三組工具分別為:構(gòu)件入庫(kù)工具集:由構(gòu)件庫(kù)管理員使用,其中包括構(gòu)件分類(lèi)工具,主要功能是將新構(gòu)件加入構(gòu)件庫(kù)及修改已有構(gòu)件信息;構(gòu)件查詢(xún)工具

50、集:由構(gòu)件庫(kù)用戶(hù)使用,其中包括構(gòu)件查詢(xún)工具和構(gòu)件使用意見(jiàn)反饋工具,主要協(xié)助構(gòu)件庫(kù)用戶(hù)瀏覽、查詢(xún)、提取構(gòu)件,反饋用戶(hù)對(duì)構(gòu)件的使用意見(jiàn);構(gòu)件庫(kù)維護(hù)工具集:由構(gòu)件庫(kù)管理員使用,其中包括用戶(hù)數(shù)據(jù)庫(kù)維護(hù)工具、構(gòu)件提供者數(shù)據(jù)庫(kù)維護(hù)工具、構(gòu)件庫(kù)管理員數(shù)據(jù)庫(kù)維護(hù)工具、用戶(hù)反饋意見(jiàn)處理工具、刻面術(shù)語(yǔ)空間維護(hù)工具和構(gòu)件庫(kù)信息統(tǒng)計(jì)工具,主要對(duì)構(gòu)件庫(kù)的各部分內(nèi)容進(jìn)行管理維護(hù)。青鳥(niǎo)構(gòu)件分類(lèi)檢索機(jī)制分類(lèi)模式合理地組織構(gòu)件庫(kù)的關(guān)鍵,是如何對(duì)構(gòu)件進(jìn)行分類(lèi),即按照什么樣的分類(lèi)模式組織不同的構(gòu)件集合。一般地,構(gòu)件庫(kù)的分類(lèi)策略應(yīng)滿(mǎn)足如下的要求:分類(lèi)信息應(yīng)該表達(dá)構(gòu)件的相關(guān)信息;分類(lèi)策略應(yīng)該適用于各種粒度、來(lái)自軟件開(kāi)發(fā)過(guò)程各個(gè)階段的各

51、種構(gòu)件;分類(lèi)策略不應(yīng)太復(fù)雜,過(guò)高的復(fù)雜度將導(dǎo)致較低的可理解性與易用性,從而降低復(fù)用的價(jià)值Lars 93。通常的分類(lèi)模式有層次分類(lèi)和刻面(facet)分類(lèi)兩種??堂娣诸?lèi)模式是對(duì)層次分類(lèi)模式的擴(kuò)充。一個(gè)刻面分類(lèi)模式由一組描述構(gòu)件特征的刻面所組成,每個(gè)刻面從不同的側(cè)面對(duì)庫(kù)中構(gòu)件進(jìn)行分類(lèi)。例如,這組刻面可以是應(yīng)用領(lǐng)域、功能、操作對(duì)象、編程語(yǔ)言和操作系統(tǒng)等。每個(gè)刻面由一組基本的術(shù)語(yǔ)所構(gòu)成(稱(chēng)為術(shù)語(yǔ)空間term space)。一個(gè)構(gòu)件可以被每個(gè)刻面中的一個(gè)或多個(gè)術(shù)語(yǔ)所刻劃(刻面術(shù)語(yǔ)是一個(gè)確定的集合),而每個(gè)刻面則分別反映了對(duì)庫(kù)中構(gòu)件的一種劃分,因此用戶(hù)可以直觀地從不同的角度指明待檢索的構(gòu)件,也有利于用戶(hù)對(duì)

52、構(gòu)件的理解??堂娣诸?lèi)策略具有下列特性:每一個(gè)刻面都必須充分并明確地描述構(gòu)件庫(kù)中全體構(gòu)件,即每一個(gè)構(gòu)件都可以用該刻面來(lái)分類(lèi)。每一個(gè)刻面與一個(gè)術(shù)語(yǔ)空間相關(guān)聯(lián)。任意兩個(gè)刻面的術(shù)語(yǔ)空間是正交的,即一個(gè)刻面的術(shù)語(yǔ)發(fā)生變化不會(huì)影響到另一個(gè)刻面的術(shù)語(yǔ)空間。一個(gè)刻面的術(shù)語(yǔ)空間為有限的不定空間,即可以隨時(shí)間的演進(jìn)而動(dòng)態(tài)地增加和刪除術(shù)語(yǔ)。每一個(gè)構(gòu)件的所有刻面必須予以定義,在對(duì)構(gòu)件分類(lèi)時(shí)不允許有未定義的刻面;但查詢(xún)時(shí),用戶(hù)可以利用任意數(shù)目的刻面進(jìn)行查詢(xún)。構(gòu)件庫(kù)管理者對(duì)構(gòu)件進(jìn)行分類(lèi)時(shí),應(yīng)該針對(duì)每一個(gè)刻面,從術(shù)語(yǔ)空間中選擇適當(dāng)?shù)?一個(gè)或多個(gè))術(shù)語(yǔ),以完成構(gòu)件的封裝工作。在每個(gè)術(shù)語(yǔ)空間中的術(shù)語(yǔ)按一般/特殊關(guān)系形成樹(shù)狀的層

53、次結(jié)構(gòu),每一個(gè)術(shù)語(yǔ)附帶有不定數(shù)目的同義詞。在刻面分類(lèi)策略中,構(gòu)件庫(kù)管理者通過(guò)將構(gòu)件與對(duì)應(yīng)的術(shù)語(yǔ)相聯(lián)結(jié),可以在構(gòu)件間建立復(fù)雜的聯(lián)系。與一般的層次分類(lèi)策略相比,刻面分類(lèi)策略更易于修改,更富有彈性,因?yàn)閷?duì)一個(gè)刻面的修改不會(huì)影響到其它的刻面。同時(shí),每個(gè)刻面對(duì)應(yīng)一個(gè)結(jié)構(gòu)化的術(shù)語(yǔ)空間,避免了一般的關(guān)鍵詞分類(lèi)策略的雜亂無(wú)章,使得對(duì)關(guān)鍵詞的管理更為方便和有序??堂娣诸?lèi)及術(shù)語(yǔ)空間一、刻面分類(lèi)模式青鳥(niǎo)構(gòu)件庫(kù)系統(tǒng)主要采用刻面分類(lèi)模式。每個(gè)刻面關(guān)聯(lián)一個(gè)合法術(shù)語(yǔ)的結(jié)構(gòu)化集合術(shù)語(yǔ)空間,在構(gòu)件的分類(lèi)和查詢(xún)中用到的術(shù)語(yǔ)均來(lái)自于這些術(shù)語(yǔ)空間。術(shù)語(yǔ)空間的結(jié)構(gòu)反映了術(shù)語(yǔ)間的語(yǔ)義關(guān)系,可以看做是一種語(yǔ)義網(wǎng),其結(jié)構(gòu)相對(duì)穩(wěn)定。而每個(gè)構(gòu)件

54、從外部來(lái)看,都是一組刻面術(shù)語(yǔ)的集合。構(gòu)件庫(kù)中的每個(gè)構(gòu)件都具有一組屬性,這些屬性有的是由構(gòu)件的提供者提供的,有的是構(gòu)件庫(kù)根據(jù)構(gòu)件的使用情況加入的。從表面上看,屬性與刻面非常相似,屬性值就相當(dāng)于刻面的術(shù)語(yǔ)。但實(shí)際上二者之間存在一定的區(qū)別,主要表述如下:刻面是構(gòu)件屬性的一個(gè)子集。屬性絕大部分是由構(gòu)件的提供者提供的,而刻面則完全由構(gòu)件庫(kù)的管理者規(guī)定,構(gòu)件的提供者完全不需要了解它們??堂媸菢?gòu)件的復(fù)用者在查詢(xún)構(gòu)件時(shí)最感興趣的構(gòu)件屬性。在查詢(xún)時(shí)復(fù)用者通過(guò)選擇刻面的術(shù)語(yǔ),可以明確地限定構(gòu)件的范疇,不會(huì)有遺漏的構(gòu)件。依據(jù)屬性與刻面的區(qū)別,經(jīng)過(guò)反復(fù)篩選,我們選定了以下五個(gè)構(gòu)件屬性作為青鳥(niǎo)構(gòu)件庫(kù)的刻面。這五個(gè)屬性彼

55、此間完全獨(dú)立并且相互正交,比較充分地體現(xiàn)了構(gòu)件與復(fù)用相關(guān)的一些特性,而且也能夠適應(yīng)青鳥(niǎo)構(gòu)件庫(kù)今后的發(fā)展。(1)使用環(huán)境(Application Environment)構(gòu)件的使用環(huán)境是使用(包括理解/組裝/修改)該構(gòu)件時(shí)必須提供的硬件和軟件平臺(tái)。如所需的特定的硬件環(huán)境、操作系統(tǒng)、數(shù)據(jù)庫(kù)平臺(tái)、網(wǎng)絡(luò)環(huán)境和編譯系統(tǒng)等。構(gòu)件庫(kù)中任何構(gòu)件都必須依賴(lài)于一定的使用環(huán)境才能得到復(fù)用,即使是源代碼級(jí)的某些通用構(gòu)件,也必須依賴(lài)于特定的編譯系統(tǒng)。(2)應(yīng)用領(lǐng)域(Application Domain)構(gòu)件的應(yīng)用領(lǐng)域是指該構(gòu)件原來(lái)的或可能被使用到的應(yīng)用領(lǐng)域(及其子領(lǐng)域)。這里的領(lǐng)域,指共享某種功能性(functiona

56、lity)的系統(tǒng)或應(yīng)用程序的集合。構(gòu)件庫(kù)中任何構(gòu)件都有一個(gè)適用的領(lǐng)域。(3)功能(Functionality)構(gòu)件的功能是該構(gòu)件在原有或可能的軟件系統(tǒng)中所提供的軟件功能集。構(gòu)件庫(kù)中任何構(gòu)件都必須提供一種或多種功能。(4)層次(Level of Abstraction)構(gòu)件的層次是構(gòu)件相對(duì)于軟件開(kāi)發(fā)過(guò)程不同階段的抽象層次,如分析、設(shè)計(jì)、編碼等。構(gòu)件庫(kù)中任何構(gòu)件都處于軟件開(kāi)發(fā)過(guò)程中一定的階段,并為該階段服務(wù)。(5)表示(Representation)構(gòu)件的表示是指用來(lái)描述構(gòu)件內(nèi)容的語(yǔ)言形式或媒體,如源代碼構(gòu)件所用的編程語(yǔ)言等。構(gòu)件庫(kù)中任何構(gòu)件都以一定的形式存在,因而必然有其外在的表現(xiàn)形式。這種表現(xiàn)

57、形式與構(gòu)件的上下文環(huán)境(context)直接相關(guān)。二、刻面的術(shù)語(yǔ)空間構(gòu)件庫(kù)的刻面定義好之后,就必須開(kāi)始為刻面建立相應(yīng)的術(shù)語(yǔ)空間。構(gòu)件庫(kù)的刻面術(shù)語(yǔ)是由構(gòu)件庫(kù)的管理者制定的。若構(gòu)件的提供者所提供的術(shù)語(yǔ)與構(gòu)件庫(kù)原有術(shù)語(yǔ)不符,構(gòu)件庫(kù)的管理者將負(fù)責(zé)與構(gòu)件的提供者協(xié)商,力求刻面術(shù)語(yǔ)的一致,將該術(shù)語(yǔ)作為新術(shù)語(yǔ)或作為原有術(shù)語(yǔ)的同義詞加入構(gòu)件庫(kù)。由于缺乏一個(gè)公認(rèn)的術(shù)語(yǔ)標(biāo)準(zhǔn),術(shù)語(yǔ)空間的確定成為刻面分類(lèi)策略的難點(diǎn),我們只能先自行初步定義青鳥(niǎo)構(gòu)件庫(kù)刻面的術(shù)語(yǔ)空間,以后再逐步修正。(1)使用環(huán)境(Application Environment) 最初階段,使用環(huán)境的術(shù)語(yǔ)由構(gòu)件庫(kù)管理者枚舉,構(gòu)件的提供者可以在提供構(gòu)件時(shí)隨

58、時(shí)提供新的環(huán)境術(shù)語(yǔ)。典型術(shù)語(yǔ)包括操作系統(tǒng)中的“MS DOS”、“”、“MS Windows 95/NT”、“UNIX”等。表3-1是使用環(huán)境刻面術(shù)語(yǔ)的例子:工作站(Work Station)硬件(Hardware)微機(jī)(PC)DOS操作系統(tǒng)(OS)WINDOWS 3.X & 95UNIXFoxPro數(shù)據(jù)庫(kù)平臺(tái)(Database)InformixOracle表3-1 使用環(huán)境刻面的術(shù)語(yǔ)(2)應(yīng)用領(lǐng)域(Application Domain)應(yīng)用領(lǐng)域的術(shù)語(yǔ)最開(kāi)始也是由構(gòu)件庫(kù)管理者枚舉,構(gòu)件的提供者可以在提供構(gòu)件時(shí)隨時(shí)提供新的應(yīng)用領(lǐng)域術(shù)語(yǔ),各個(gè)領(lǐng)域的專(zhuān)家可以對(duì)領(lǐng)域術(shù)語(yǔ)進(jìn)行修正和更新。典型術(shù)語(yǔ)包括“MI

59、S”、“CAI”等。(3)功能(Functionality)功能刻面的術(shù)語(yǔ)主要是構(gòu)件提供者所提供的關(guān)于構(gòu)件功能的關(guān)鍵詞。為達(dá)到術(shù)語(yǔ)間的一致,功能術(shù)語(yǔ)應(yīng)力求從較高抽象層次上體現(xiàn)構(gòu)件的用途。典型術(shù)語(yǔ)包括“打開(kāi)文件”、“讀文件”、“寫(xiě)文件”、“關(guān)閉文件”等。表3-2是功能刻面術(shù)語(yǔ)的例子:打印表格(print form)打印(print)打印文檔(print document)讀取文件(read file)讀取(read)讀取數(shù)據(jù)庫(kù)(read database)表3-2 功能刻面的術(shù)語(yǔ)(4)層次(Level of Abstraction)層次刻面的術(shù)語(yǔ)比較簡(jiǎn)單,因此主要由構(gòu)件庫(kù)的管理者枚舉。目前層次術(shù)

60、語(yǔ)有分析(Analysis)、設(shè)計(jì)(Design)、編碼(Coding)、測(cè)試(Testing)等等。(5)表示(Representation)表示刻面的術(shù)語(yǔ)最初由構(gòu)件庫(kù)管理者枚舉,構(gòu)件的提供者可以在提供構(gòu)件時(shí)隨時(shí)提供新的構(gòu)件表示術(shù)語(yǔ),典型術(shù)語(yǔ)包括“中文” 、“英文” 、“DFD圖” 、“OMT類(lèi)圖”等。輔助分類(lèi)策略除了以上討論的刻面分類(lèi)策略以外,還有關(guān)鍵詞、屬性、枚舉等多種分類(lèi)策略。這些策略都各有其優(yōu)點(diǎn)和缺點(diǎn),單獨(dú)使用其中的任何一種分類(lèi)策略,都不能令構(gòu)件庫(kù)的管理和構(gòu)件庫(kù)用戶(hù)的使用達(dá)到理想的效果。因此,比較合理的方法是在構(gòu)件分類(lèi)時(shí)將各種策略結(jié)合起來(lái),在用戶(hù)對(duì)構(gòu)件進(jìn)行查詢(xún)時(shí),也提供基于各種分類(lèi)策

溫馨提示

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

評(píng)論

0/150

提交評(píng)論