面向構(gòu)件的軟件開發(fā)方法學(xué)研究_第1頁
面向構(gòu)件的軟件開發(fā)方法學(xué)研究_第2頁
面向構(gòu)件的軟件開發(fā)方法學(xué)研究_第3頁
面向構(gòu)件的軟件開發(fā)方法學(xué)研究_第4頁
面向構(gòu)件的軟件開發(fā)方法學(xué)研究_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向構(gòu)件的軟件開發(fā)方法學(xué)研究陳良山 200305018009從軟件建模方法論的角度看, 信息系統(tǒng)的開發(fā)方法已歷經(jīng)兩代技術(shù)跨越: 面向過程, 包括面向功能和面向數(shù)據(jù)流; 面向?qū)ο? 體現(xiàn)功能與數(shù)據(jù)抽象方法的統(tǒng)一.20 世紀 90 年代中期以來, 由于分布對象技術(shù)與軟件重構(gòu)工程的有機結(jié)合, 促使面向構(gòu)件的軟件開發(fā)方法應(yīng)運而生.面向構(gòu)件方法(COM )與面向?qū)ο蠓椒?OOM ) 的本質(zhì)差異在于: 對象化建模過程一般針對單一應(yīng)用系統(tǒng), 對象抽象一般針對問題域, 對象模型的生成過程是靜態(tài)的, 軟件重用粒度是原子級的; 而構(gòu)件化建模過程一般針對領(lǐng)域應(yīng)用系統(tǒng), 構(gòu)件抽象則針對解域, 構(gòu)件化模型即構(gòu)架的生成過

2、程是動態(tài)的, 軟件重用粒度是組合級的. 領(lǐng)域應(yīng)用是多個單一應(yīng)用通用化和重用化的應(yīng)用集群, 解域是問題域的過程與層次深化, 構(gòu)件則是對象的軟件實現(xiàn)與集成; 因此,COM 法與OOM 法在研究范疇、研究對象及其研究方法上都是有區(qū)別的. 不言而喻, 面向構(gòu)件方法是 21 世紀軟件方法學(xué)的主流研究方向. 下面用過程與方法的組合理念來展開研究內(nèi)容.面向構(gòu)件軟件開發(fā)的一般過程 構(gòu)件化軟件開發(fā)的過程模型 所謂構(gòu)件化, 是指軟件體系結(jié)構(gòu)可重組以及軟件成份可重用的系統(tǒng)開發(fā)方法. 這種方法的基本內(nèi)涵是: 應(yīng)用需求領(lǐng)域化, 軟件結(jié)構(gòu)框架化, 軟件元素構(gòu)件化, 應(yīng)用原型實例化. 這一思想可以概括為四個階段、三個層次和

3、兩大過程, 如圖 1 所示 從工程化與過程管理的角度講, 整個軟件系統(tǒng)的開發(fā)過程可定義為四個階段: 分析, 設(shè)計, 實現(xiàn), 評價. 但這并不是單純的串行式瀑布模型, 而是過程并行與增量迭代等多種方法相結(jié)合的工作流模型. 多年來, 人們往往把系統(tǒng)階段控制方法與軟件建模抽象方法混為一談; 最典型的是把生命周期法和原型法與面向過程和面向?qū)ο蟮姆椒ɑ鞛橐徽? 信息系統(tǒng)是一種具有生命周期的開放系統(tǒng), 這是毋庸置疑的. 因此, 從工程管理及大的階段控制過程看, 構(gòu)件化方法與結(jié)構(gòu)化方法和對象化方法一樣, 仍然應(yīng)該遵循軟件生命周期規(guī)律; 差別在于, 前者的階段論觀點是弱化的歷遞歸和過程重構(gòu)特征. 換句話說,

4、在構(gòu)件化方法中, 可以引入并行工程思想和能力成熟度模型(CMM ) 來進行局部過程改造, 以提高系統(tǒng)開發(fā)效率和持續(xù)優(yōu)化效果; 可以引入領(lǐng)域工程思想和面向?qū)ο蠓椒▉砀纳平C制, 以提高系統(tǒng)實施過程 的可操作性. 這就是面向構(gòu)件方法論的主要過程特征. 從模型化與內(nèi)容抽象的角度講, 構(gòu)件化軟件開發(fā)過程可按三個層次展開: 概念層, 邏輯層, 物理層. 這與UML 描述、數(shù)據(jù)庫設(shè)計模式和元建模技術(shù)等多種方法是一致的, 差別只在術(shù)語不同. 例如, 在基于UML 形式描述的面向?qū)ο蠼V? 上述三個層次稱概念層、說明層和實現(xiàn)層; 而在元建模中, 則稱元知識層、結(jié)構(gòu)知識層和算法知識層.整個建模層次展開過程是

5、: 首先從特定應(yīng)用需求出發(fā), 通過領(lǐng)域分析進行共性需求識別、領(lǐng)域?qū)ο蟪橄蠛皖I(lǐng)域知識獲取, 以建立概念級的領(lǐng)域模型. 進而通過領(lǐng)域設(shè)計為領(lǐng)域需求尋求軟件解決方案, 包括構(gòu)架級和構(gòu)件級的設(shè)計模型; 這種模型體現(xiàn)了初步設(shè)計和詳細設(shè)計成果, 體現(xiàn)了框架結(jié)構(gòu)和部件結(jié)構(gòu)的組成原理可行性, 因而是一種邏輯模型. 由問題域的領(lǐng)域模型轉(zhuǎn)化為解域的構(gòu)架模型和構(gòu)件模型, 是一個知識提取(正向) 和分析精化(逆向) 的迭代式增量開發(fā)過程. 第三, 根據(jù)領(lǐng)域應(yīng)用開發(fā)或直接重用需要, 進行領(lǐng)域?qū)崿F(xiàn); 包括領(lǐng)域構(gòu)件的識別、設(shè)計、編碼和測試等局部過程集成, 系統(tǒng)構(gòu)件的分類、檢索、引用和構(gòu)件庫維護, 領(lǐng)域構(gòu)件與系統(tǒng)構(gòu)件的演化、

6、例化、組合和應(yīng)用原型的動態(tài)生成等領(lǐng)域框架整體集成, 從而建立符合領(lǐng)域應(yīng)用的各種物理模型. 第四, 通過運行模擬(正向)和設(shè)計優(yōu)化(逆向)等措施, 對領(lǐng)域化軟件原型進行可用性評價和可重構(gòu)驗證, 并對符合確認測試條件的應(yīng)用系統(tǒng)進行全局封裝和使用規(guī)范生成; 最終獲得一個真正構(gòu)件化的目標(biāo)系統(tǒng), 這是一個經(jīng)過版本逐次尋優(yōu)的實用軟件系統(tǒng).整個過程模型充分體現(xiàn)重構(gòu)工程思想, 并把面向構(gòu)件的軟件開發(fā)分離為正向工程和逆向工程兩大過程. 正向工程側(cè)重體現(xiàn)自頂向下與過程并行特征, 解決軟件構(gòu)架和構(gòu)件的可用性問題; 逆向工程側(cè)重體現(xiàn)自底向上與增量迭代特征, 解決構(gòu)架及構(gòu)件的可重構(gòu)性問題. 過程重構(gòu)的基本內(nèi)涵是, 概念

7、重定義, 結(jié)構(gòu)重說明, 算法重用, 系統(tǒng)重生成.面向構(gòu)件的建模支持機制 常用的構(gòu)件化建模方法如, 面向?qū)ο蠓椒癠ML 描述,框架、實例及其規(guī)則描述, 巴科斯范式、謂詞邏輯和體系結(jié)構(gòu)描述語言(ADL )等形式化描述, Petri 網(wǎng)和導(dǎo)航圖等可視化描述. 支持上述建模方法的典型機制如, 抽象類型, 元模式, 模板, 分布對象, 協(xié)作代理, 參數(shù)化框架, 導(dǎo)航圖標(biāo), 軟件總線, 以及設(shè)計詞匯表. UML 描述提供了靜態(tài)和動態(tài)兩種建模機制. 在靜態(tài)建模過程中, 可通過用例圖來描述反映功能需求的領(lǐng)域模型, 通過類圖、對象圖和包圖來描述面向?qū)ο蟮慕Y(jié)構(gòu)模型, 通過構(gòu)件圖和配置圖來描述軟件系統(tǒng)的實現(xiàn)模型.

8、 在動態(tài)建模過程中, 可通過交互圖、狀態(tài)圖和活動圖來描述軟件系統(tǒng)的行為模型;包括對象間的交互與協(xié)作, 對象的生命周期及狀態(tài)轉(zhuǎn)換, 事務(wù)處理及過程同步控制等.框架規(guī)則實例(稱 FR I)描述是智能建模方法的推廣應(yīng)用. 框架(Framework)是描述結(jié)構(gòu)性問題的基本骨架, 是一組實體、關(guān)聯(lián)和約束的集合. 規(guī)則(Rule)可用于定義實體與實例之間的結(jié)構(gòu)組裝或集成方法, 是結(jié)構(gòu)中各類元素交互與連接映射的集合. 實例(Instance)是描述問題解決方案的例化模板, 是一組特定的結(jié)構(gòu)類型和元素類型即表示值的集合. FR I描述特別適用于軟件構(gòu)架設(shè)計及動態(tài)生成. 其它建模機制的作用如, 巴科斯范式可用于

9、概念模型的規(guī)范化描述, 謂詞邏輯可用于說明構(gòu)架和構(gòu)件的約束條件,ADL 語言可定義軟件體系結(jié)構(gòu)的風(fēng)格, Petri 網(wǎng)可描述工作流和事務(wù)處理的動態(tài)特性, 導(dǎo)航圖可用于構(gòu)件庫的組織與管理. 設(shè)計詞匯表可用于定義構(gòu)件和連接件的類型; 使得領(lǐng)域概念元素化, 功能分解原子化, 構(gòu)件聚合結(jié)構(gòu)化. 領(lǐng)域工程及分析方法 領(lǐng)域工程的基本思想 在信息系統(tǒng)中, 領(lǐng)域(Domain)是具有相似應(yīng)用范疇與共性需求抽象的問題域, 或者是與共性目標(biāo)關(guān)聯(lián)的應(yīng)用域. 對于一個信息化企業(yè)來說, 領(lǐng)域概念通常涉及該企業(yè)所具有的行業(yè)特征和經(jīng)營活動特征; 如機械、電子、化工或商貿(mào)領(lǐng)域, 管理、設(shè)計或制造領(lǐng)域. 可見, 領(lǐng)域給定了一個

10、信息系統(tǒng)的工程實施背景和研究對象. 領(lǐng)域工程則是面向構(gòu)件的理念工程, 其核心思想是: 應(yīng)用模式領(lǐng)域化, 問題抽象通用化, 軟件元素重用化, 開發(fā)過程工程化.應(yīng)用模式領(lǐng)域化是一種從特殊到一般的總體歸類方法,它根據(jù)特定應(yīng)用系統(tǒng)的概念特征作出相似目標(biāo)定位和領(lǐng)域劃分, 尋求規(guī)范的需求描述和一致的概念設(shè)計, 從而使單一應(yīng)用系統(tǒng)按照概念趨同模式向領(lǐng)域概念框架演化.問題抽象通用化是一種具體的需求識別方法, 是實現(xiàn)領(lǐng)域歸類的關(guān)鍵技術(shù). 需求通用化是需求領(lǐng)域化的技術(shù)延伸, 并從概念層擴展到說明層. 通用化抽象需要嚴格區(qū)分需求的共性、相似性和變異性, 以形成類化的需求分割; 把基本不變的問題抽象為共性模型, 把部

11、分變化的問題抽象為相似模型,把頻繁多變的問題抽象為變異模型. 共性模型和相似模型可用分類結(jié)構(gòu)、繼承機制及演化規(guī)則來統(tǒng)一描述; 變異模型可用代理結(jié)構(gòu)、重載機制及例化規(guī)則來描述, 并提供用戶自定義的工具支持. 通用化需要有抽象思維與分析高度, 沒有抽象高度就沒有問題通用性; 這正是領(lǐng)域分析的特點和難點所在.軟件元素重用化使通用化的問題域模型進一步向解域深化. 通用是重用的基礎(chǔ), 重用是通用的目的. 軟件重用同樣可體現(xiàn)在三個層次: 概念級重用, 如領(lǐng)域知識、開發(fā)經(jīng)驗、建模方法和文檔資源的重用; 邏輯級重用, 關(guān)鍵是軟件體系結(jié)構(gòu)重組和規(guī)則重用; 物理級重用的實質(zhì)是構(gòu)件重用, 包括模板共享、類庫共享、子

12、程序和函數(shù)調(diào)用等. 重用方法的引用包括組合式和生成式, 前者針對已有構(gòu)件庫, 后者針對形式描述工具和元生成器.開發(fā)過程工程化是一種行為方法論, 它不僅考慮信息系統(tǒng)的技術(shù)行為, 而且考慮與技術(shù)實施相適應(yīng)的組織行為. 工程化的典型模式是, 把并行工程、重構(gòu)工程、協(xié)同方法和系統(tǒng)集成技術(shù)與現(xiàn)代軟件工程相結(jié)合, 形成“項目工程產(chǎn)品產(chǎn)業(yè)”一體化發(fā)展的工程研究環(huán)境和開發(fā)環(huán)境.領(lǐng)域分析方法及形式描述 領(lǐng)域分析的基本出發(fā)點是, 尋求研究對象領(lǐng)域內(nèi)共性需求、共性特征和共性結(jié)構(gòu)的一致性描述, 尋求具有可變特征或相似功能覆蓋的事務(wù)處理和對象抽象, 以獲得概念化的領(lǐng)域模型. 在領(lǐng)域建模過程中, 理順領(lǐng)域知識的分類關(guān)系極

13、為重要, 它是規(guī)范概念和實現(xiàn)概念級元素重用的基礎(chǔ). 分類是面向?qū)ο蠓椒ǖ慕Y(jié)構(gòu)抽象策略, 它使領(lǐng)域知識可按不同層次和不同關(guān)系來組織, 以利將概念結(jié)構(gòu)轉(zhuǎn)化為靜態(tài)的邏輯結(jié)構(gòu). 下面以集成供應(yīng)鏈管理(ISCM )軟件的研究開發(fā)為例, 說明領(lǐng)域模型的建立問題. ISCM 系統(tǒng)是企業(yè)信息系統(tǒng)的一個子集, 它把電子商務(wù)與供應(yīng)鏈管理功能集成在一起. 與這種應(yīng)用模式相適應(yīng), 任何一個企業(yè)的領(lǐng)域需求首先可以抽象為 5 大類: 目標(biāo), 組織, 流程, 資源, 環(huán)境. 進一步的抽象處理是, 把目標(biāo)及其任務(wù)分解到組織和流程中; 再把組織中的職責(zé)與角色歸入流程, 人員歸入資源, 并通過工作流模式進行事務(wù)與數(shù)據(jù)融合. 經(jīng)過

14、二次抽象, 單個信息系統(tǒng)的領(lǐng)域需求可以歸結(jié)為三要素, 即流程、資源和環(huán)境; 它也是 ISCM 軟件的共性需求. 換句話說, 在 IS2 CM 軟件開發(fā)過程中, 可以用事務(wù)流模型及事務(wù)對象來描述流程結(jié)構(gòu), 用類樹模型及數(shù)據(jù)來描述資源結(jié)構(gòu), 用角色模型及實體來描述環(huán)境關(guān)聯(lián). 按照領(lǐng)域知識獲取與組織方法, 三要素模型均可用概念元和概念結(jié)構(gòu)來表示, 兩者共同組成領(lǐng)域模型. 概念元可用巴科斯范式(或設(shè)計詞匯表)來定義, 概念結(jié)構(gòu)可用UML 用例圖(圖 2)來定義. 現(xiàn)給出 ISCM 領(lǐng)域模型的一些關(guān)鍵描述. ISCM 系統(tǒng) = 領(lǐng)域需求 目標(biāo)模型 領(lǐng)域需求 = (流程, 資源, 環(huán)境) 流程 = 活動集

15、, 關(guān)系集 資源 = 人員, 資金, 物料, 信息, 時間 環(huán)境 = 顧客, 供應(yīng)商, 競爭者, 變因 目標(biāo)模型 = (概念模型, 邏輯模型, 物理模型) 概念模型 = 元知識集, 結(jié)構(gòu)知識集 邏輯模型 = 軟構(gòu)架, 關(guān)聯(lián)集, 規(guī)則集 物理模型 = 構(gòu)件集, 實例集, 說明文檔 軟件構(gòu)架與構(gòu)件設(shè)計方法 構(gòu)架設(shè)計及形式化描述 在軟件系統(tǒng)中, 構(gòu)架(A rchitecture) 即軟件體系結(jié)構(gòu); 它是可預(yù)制和可重構(gòu)的軟件骨架, 是問題域模型轉(zhuǎn)化為解域模型的框架式系統(tǒng). 這里區(qū)分構(gòu)架與框架, 即構(gòu)架一般指解決問題的軟件結(jié)構(gòu)本身, 而框架則是用于描述各種系統(tǒng)結(jié)構(gòu)的一種方法. 構(gòu)架的典型實例如: 基于層

16、次抽象程序解釋執(zhí)行與狀態(tài)模擬的虛擬機結(jié)構(gòu). 根據(jù)實際應(yīng)用需要, 上述單一軟件結(jié)構(gòu)可進一步組成多體系結(jié)構(gòu)風(fēng)格的分布計算系統(tǒng), 如B S 與C S 集成體系結(jié)構(gòu). 框架則是可用于描述構(gòu)架等總體結(jié)構(gòu)的方法論體系. 框架的典型實例如, 采用巴科斯范式描述的概念結(jié)構(gòu), 采用類圖描述的對象系統(tǒng)邏輯結(jié)構(gòu), 采用ADL 形式化描述的文本結(jié)構(gòu), 采用樹型和網(wǎng)狀拓撲描述的圖形結(jié)構(gòu). 所以, 框架是研究構(gòu)架的建模機制, 而構(gòu)架可以是軟件結(jié)構(gòu)的框架描述.按照分布計算體系結(jié)構(gòu)的思想, 任何一個應(yīng)用軟件的構(gòu)架均可劃分為三種構(gòu)造邏輯: 一、界面表示邏輯, 用于覆蓋與用戶直接關(guān)聯(lián)的前端應(yīng)用; 二、事務(wù)處理邏輯, 體現(xiàn)軟件的核

17、心處理功能;三、數(shù)據(jù)管理邏輯, 用于解決用戶事務(wù)的數(shù)據(jù)交換和后端服務(wù)問題. 依據(jù)領(lǐng)域應(yīng)用的復(fù)雜程度和系統(tǒng)平臺的多線程能力, 事務(wù)邏輯可進一步細分, 形成多層應(yīng)用體系結(jié)構(gòu); 但它本質(zhì)上仍是三層構(gòu)架. 三層構(gòu)架劃分思想既有利于保證用戶、應(yīng)用程序和數(shù)據(jù)三者之間的相互獨立性, 以提高軟件的整體執(zhí)行效率和構(gòu)架重組性能; 又與領(lǐng)域需求的三要素模型保持一致, 即用界面邏輯來覆蓋環(huán)境需求, 用事務(wù)邏輯覆蓋流程需求, 用數(shù)據(jù)邏輯覆蓋資源需求.按照軟件構(gòu)架的邏輯構(gòu)造思想, 每一種邏輯部件都可用特定功能的物理構(gòu)件來實現(xiàn); 而構(gòu)件之間的相互連接及其組合規(guī)則與約束條件則構(gòu)成一個完整的構(gòu)架設(shè)計內(nèi)容. 所以, 一個規(guī)范的軟

18、構(gòu)架應(yīng)由三要素組成: 構(gòu)件 (component), 連接(connection) , 約束 (constraint); 稱 3C 構(gòu)架模型. 所對應(yīng)的實現(xiàn)模式是, 基于對象的基本構(gòu)件, 基于角色關(guān)聯(lián)的連接及接口件, 基于規(guī)則和參數(shù)配置的約束集合, 基于實例與連接約束的構(gòu)架集成. 這種構(gòu)架設(shè)計模式可歸納為:軟構(gòu)架 = 軟芯片(構(gòu)件)+ 軟總線(連接) + 控制使能(約束)若采用網(wǎng)狀結(jié)構(gòu)來定義構(gòu)架及其要素之間的事務(wù)關(guān)聯(lián),采用樹型結(jié)構(gòu)來定義構(gòu)架生成過程中所引用的資源, 則一個通用的構(gòu)架模型可用網(wǎng)狀結(jié)構(gòu)與樹型結(jié)構(gòu)的組合模式來描述, 并采用樹 網(wǎng)分層機制進行管理, 如圖 3 所示. 圖 3 中, 基本

19、構(gòu)件的定義可分為兩類: 一是已存在的系統(tǒng) 構(gòu)件, 由系統(tǒng)平臺及開發(fā)工具自身攜帶的構(gòu)件庫所提供, 主要完成較低層功能; 二是新開發(fā)的領(lǐng)域構(gòu)件, 主要提供應(yīng)用領(lǐng)域的共性事務(wù)或特定事務(wù)處理功能, 提供高層次和大粒度的重用支持. 系統(tǒng)構(gòu)件與領(lǐng)域構(gòu)件之間可以相互演化, 并用構(gòu)件庫進行分類管理. 連接是構(gòu)件間角色關(guān)聯(lián)、交互協(xié)議、接口類型以及智能特性的邏輯描述, 其功能構(gòu)造體便是連接件(connector). 連接件亦可定義為兩類: 一是數(shù)據(jù)通信接插件, 實例如消息、管道和事件廣播; 二是進程控制接插件, 實例如過程調(diào)用、事件觸發(fā)和數(shù)據(jù)緩存. 約束用于定義構(gòu)件或?qū)嵗g的組合方式、交互規(guī)則和集成方法, 是概

20、念層、說明層和實現(xiàn)層所有語義轉(zhuǎn)換與描述規(guī)范的集合. 規(guī)范、規(guī)則與約束條件的完備集稱規(guī)約. 在進行構(gòu)架生成時, 需要對構(gòu)件和連接件進行實例化, 以便規(guī)約的引用. 實例化可分成直接例化和增量例化,前者按初始條件將相關(guān)構(gòu)件直接例化為可通用的固定部件;后者按層次漸近例化思想, 把上層構(gòu)件逐步例化為新的重用部件, 直至滿足領(lǐng)域需求. 框架集成則把已實例化的構(gòu)件按規(guī)約組裝成可用構(gòu)架.按圖 3 框架展開, 一個完整的軟件構(gòu)架可形式化描述為:構(gòu)架 = 構(gòu)架模式 構(gòu)架模型 構(gòu)架模式 = (構(gòu)架名, 類型說明) 構(gòu)架類型 = 指定風(fēng)格的構(gòu)件類型集 構(gòu)架模型 = (構(gòu)件, 連接; 約束) 構(gòu)件 = (構(gòu)件名, 對象

21、集, 行為代理; 接口) 對象集 = 對象名(屬性集, 行為集, 消息接口) 行為代理 = 角色名(責(zé)任, 權(quán)限, 交互方式) 連接 = (角色名, 關(guān)聯(lián)集; 映射方法) 關(guān)聯(lián)集定義了連接類型 關(guān)聯(lián)集 = 泛化, 聚集, 依賴; 串行, 并行, 回環(huán) 約束 = (結(jié)構(gòu)規(guī)則, 行為規(guī)則, 語義說明) 結(jié)構(gòu)規(guī)則= 滿足條件的靜態(tài)結(jié)構(gòu)規(guī)則集 行為規(guī)則= 滿足條件的動態(tài)行為規(guī)則集 構(gòu)件模型設(shè)計及模板劃分 構(gòu)件是可預(yù)制和可重用的軟件部件, 是組成構(gòu)架的基本計算單元或數(shù)據(jù)儲存單元, 是實現(xiàn)領(lǐng)域應(yīng)用的功能封裝體. 依據(jù)對領(lǐng)域知識的抽象程度和構(gòu)造邏輯的劃分需要, 可生成不同粒度級的構(gòu)件元素; 如對象, 二進制

22、對象, 函數(shù), 例程, 類庫,數(shù)據(jù)包, 過濾器, 觸發(fā)器等. 這些構(gòu)件可以設(shè)計成模型和模板的形式, 并以源文件、二進制文件和可執(zhí)行文件的形式存放.一個規(guī)范的構(gòu)件設(shè)計也可引入三要素: 概念(Concept),內(nèi)容(Content), 語境(Context); 稱 3C 構(gòu)件模型. 概念刻畫了構(gòu)件的概貌特征, 包括功能需求和數(shù)據(jù)存取的語義描述和接口說明. 內(nèi)容是概念實現(xiàn)的軟件體, 包括程序代碼、腳本、設(shè)計文檔和技術(shù)標(biāo)準(zhǔn)等. 語境即上下文, 用于刻畫領(lǐng)域應(yīng)用環(huán)境歷定義的交互構(gòu)件, 二是用作 I O 信息交換的接口構(gòu)件. 界面構(gòu)件可覆蓋領(lǐng)域應(yīng)用的環(huán)境需求. 事務(wù)構(gòu)件是領(lǐng)域構(gòu)件設(shè)計的關(guān)鍵, 主要用于實現(xiàn)

23、事務(wù)流程及處理活動; 并可分解為通用事務(wù)和專用事務(wù)兩個子類. 通用事務(wù)構(gòu)件可解決泛化問題, 即完成基本不變或相似的事務(wù)處理任務(wù); 其中, 關(guān)鍵策略是實體或過程的參數(shù)化. 專用事務(wù)構(gòu)件可解決特化問題, 即實現(xiàn)多變事務(wù)的實例化和用戶自定義功能, 包括特定實體或過程的例化與重載. 按照可泛化或可特化事務(wù)抽象的程度, 一個構(gòu)件功能可以對應(yīng)一個原子事務(wù), 也可覆蓋一個事務(wù)流. 數(shù)據(jù)構(gòu)件的提取與領(lǐng)域資源共享及數(shù)據(jù)存取服務(wù)模式有關(guān), 可分為數(shù)據(jù)文件DF (含HTML 等文檔)、數(shù)據(jù)庫DB 和知識庫 KB (含黑板系統(tǒng))三個子類級. 以上是從靜態(tài)的對象抽象的角度來識別構(gòu)件. 若引入?yún)f(xié)同建模方法與多代理機制,

24、則可為構(gòu)件模型增加動態(tài)交互能力; 如設(shè)置熱點和移動對象, 設(shè)置限次 限時等條件觸發(fā)響應(yīng), 嵌入隱式調(diào)用結(jié)構(gòu). 此外, 構(gòu)件模型中必須引入接口定義機制, 主要包括 IDL 和AP I兩大接口描述支持.綜上所述, 一個完整的領(lǐng)域應(yīng)用構(gòu)件集可以劃分為三個大類七個子類; 每個大類或子類構(gòu)件均可用一個模板來實現(xiàn),構(gòu)件模板是可規(guī)范化、可參數(shù)化和可實例化的模塊語義結(jié)構(gòu)或程序源代碼. 體現(xiàn)上述構(gòu)件設(shè)計思想的模板結(jié)構(gòu)定義為:構(gòu)件模板 = (構(gòu)件類型, 參數(shù), 處理功能, 引用接口)這種基于功能類化和模板粒度劃分的構(gòu)件模型如圖 4 所示. 圖 4 的關(guān)鍵內(nèi)涵在于: 通過設(shè)計與實現(xiàn)的分離, 把構(gòu)件定義為模型和模板;

25、模型描述構(gòu)件結(jié)構(gòu), 模板描述構(gòu)件算法. 通過實體與規(guī)約的分離, 例如交互構(gòu)件與通信代理機制的分離, 大大提高了構(gòu)件化建模效果與實現(xiàn)效果. 通過粒度分解, 把構(gòu)件定義為原子級和組合級兩大類; 這樣既降低了構(gòu)件的設(shè)計難度和實現(xiàn)代價, 又提高了構(gòu)件的重用性能和管理水準(zhǔn).構(gòu)架與構(gòu)件的基本實現(xiàn)領(lǐng)域構(gòu)架生成方法 前已指出, 一個規(guī)范的軟件構(gòu)架可從模式(Pattern) 和模型 (M odel) 兩個不同側(cè)面展開, 并可用面向構(gòu)件的關(guān)聯(lián)網(wǎng)及資源樹結(jié)構(gòu)來實現(xiàn). 按照這一設(shè)計原理, 與圖 3 相吻合的領(lǐng)域構(gòu)架動態(tài)生成過程可用圖 5 表示. 在圖 5 中, 領(lǐng)域構(gòu)架的實現(xiàn)過程綜合運用了六種軟件系結(jié)構(gòu)風(fēng)格: 在靜態(tài)

26、結(jié)構(gòu)表示方面, 采用類樹來組織對象和中央資源, 包括類化的對象庫、數(shù)據(jù)庫和例程庫, 這些分類庫統(tǒng)一用構(gòu)件庫模式來管理; 在動態(tài)結(jié)構(gòu)生成方面, 采用關(guān)聯(lián)網(wǎng)來組織構(gòu)件或?qū)ο笾g的組合(隱式 顯式) 調(diào)用過程和虛擬解釋執(zhí)行過程, 這種關(guān)聯(lián)網(wǎng)是基于規(guī)則引用和構(gòu)架重組的. 整個領(lǐng)域構(gòu)架生成過程可按三段式遞增過程展開: 為系統(tǒng)平臺或外部系統(tǒng)的公共對象提供直接的對象調(diào)用渠道, 包括 IDL 引用定義或AP I包裝定義, 以生成系統(tǒng)構(gòu)件; 這些系統(tǒng)構(gòu)件是一組與具體領(lǐng)域無關(guān)的標(biāo)準(zhǔn)服務(wù)構(gòu)件,可用于演化或組裝領(lǐng)域構(gòu)件. 這一過程可在一組給定的構(gòu)架組合條件和構(gòu)件選擇條件下進行. 根據(jù)給定的構(gòu)件組合條件或領(lǐng)域需求說明,

27、 調(diào)用相關(guān)的系統(tǒng)構(gòu)件和領(lǐng)域?qū)ο? 并按照角色關(guān)聯(lián)進行規(guī)則引用及方 法映射, 以生成領(lǐng)域構(gòu)件. 這一過程需要進行模型的一致性檢驗, 以消除語義沖突. 根據(jù)領(lǐng)域框架的集成要求和具體應(yīng)用的實例化要求, 調(diào)用相關(guān)的領(lǐng)域構(gòu)件和應(yīng)用例程, 或者對領(lǐng)域構(gòu)件進行基于實例的演化; 并根據(jù)框架、實例及其規(guī)則的完整性檢驗2, 最 終生成可用的領(lǐng)域構(gòu)架.這一過程是最關(guān)鍵的, 需要進行靜態(tài)檢測和動態(tài)驗證, 以消除語義沖突和結(jié)構(gòu)沖突. 其中, 實例是應(yīng)用例程模板化的結(jié)果; 實例化則為構(gòu)件演化和構(gòu)架生成過程提供了相關(guān)支持機制, 如參數(shù)選擇, 例程修改, 處理變換, 規(guī)則匹配, 約束檢驗, 以及實體或過程自定義等. 領(lǐng)域構(gòu)件

28、實現(xiàn)方法 如前所述, 一個規(guī)范的領(lǐng)域構(gòu)件可從模型和模板(Tem2p late) 兩個不同側(cè)面展開; 模型是邏輯設(shè)計的關(guān)鍵, 模板則是物理實現(xiàn)的關(guān)鍵. 從功能實現(xiàn)的角度講, 模板是結(jié)構(gòu)穩(wěn)定、語義規(guī)范和具有派生能力的算法單元. 下面采用ADL 形式描述來定義一個典型事務(wù)構(gòu)件模板Component general_ transac TransacTypeID = GT ObjectModel < object_ model_ description > BehaviorAgents < behavior_ agent_ description > Interfaces <

29、; interface_ declaration > Constraints < constraint_ declaration > object_ model_ descrip tion ObjectName= object_ name_ list ( n , object_ name ) A ttributes= < object_ name ( data_ solt_ interface ) > Behaviors= object_ name ( method_ solt ) method_ solt= solt_ name ( inheritance_ name , method_ nam e , p rocessing ) maps= role_ name ( role_ type , computation_ list

溫馨提示

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

評論

0/150

提交評論