第六章 軟件復(fù)用_第1頁
第六章 軟件復(fù)用_第2頁
第六章 軟件復(fù)用_第3頁
第六章 軟件復(fù)用_第4頁
第六章 軟件復(fù)用_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、12345 這些可復(fù)用的軟件元素作為軟件構(gòu)件創(chuàng)這些可復(fù)用的軟件元素作為軟件構(gòu)件創(chuàng)建,并以軟件構(gòu)件的方式集成到新應(yīng)用建,并以軟件構(gòu)件的方式集成到新應(yīng)用系統(tǒng)中。系統(tǒng)中。 所謂所謂構(gòu)件構(gòu)件,是在一個(gè)系統(tǒng)中,是在一個(gè)系統(tǒng)中有價(jià)值的有價(jià)值的,近似獨(dú)立的近似獨(dú)立的,可替換的可替換的系統(tǒng)成分。它可系統(tǒng)成分。它可在明確定義的體系結(jié)構(gòu)環(huán)境中履行一個(gè)在明確定義的體系結(jié)構(gòu)環(huán)境中履行一個(gè)顯式定義的功能。顯式定義的功能。 所謂所謂軟件構(gòu)件軟件構(gòu)件則是一個(gè)具有則是一個(gè)具有按契約定義按契約定義的、依賴上下文環(huán)境的、依賴上下文環(huán)境的組裝單元。的組裝單元。6 復(fù)用需以對被復(fù)用對象的理解為基礎(chǔ);復(fù)用需以對被復(fù)用對象的理解為基礎(chǔ);

2、 如何表達(dá)對軟件構(gòu)件的需求;如何表達(dá)對軟件構(gòu)件的需求; 如何尋找有關(guān)的軟件構(gòu)件;如何尋找有關(guān)的軟件構(gòu)件; 如何識(shí)別是否滿足要求;如何識(shí)別是否滿足要求; 如何調(diào)整或修改構(gòu)件使之滿足要求;如何調(diào)整或修改構(gòu)件使之滿足要求; 如何組裝到新系統(tǒng)中;如何組裝到新系統(tǒng)中; 如何保證結(jié)果的正確性;如何保證結(jié)果的正確性; 如何進(jìn)行效益的定量估算。只有當(dāng)復(fù)用如何進(jìn)行效益的定量估算。只有當(dāng)復(fù)用能帶來效益時(shí)人們才會(huì)考慮復(fù)用。能帶來效益時(shí)人們才會(huì)考慮復(fù)用。78910 從使用構(gòu)件的角度,構(gòu)件的關(guān)鍵特性為:從使用構(gòu)件的角度,構(gòu)件的關(guān)鍵特性為:構(gòu)件是一個(gè)獨(dú)立的可運(yùn)行的實(shí)體構(gòu)件是一個(gè)獨(dú)立的可運(yùn)行的實(shí)體,其,其源代碼是看不到的;

3、源代碼是看不到的;所有的交互都通過構(gòu)件接口完成所有的交互都通過構(gòu)件接口完成,其,其形式表現(xiàn)為帶參數(shù)的函數(shù);形式表現(xiàn)為帶參數(shù)的函數(shù); 一般情況下,構(gòu)件涉及兩個(gè)關(guān)聯(lián)的接口:一般情況下,構(gòu)件涉及兩個(gè)關(guān)聯(lián)的接口:構(gòu)件提供的接口構(gòu)件提供的接口:定義構(gòu)件可提供使:定義構(gòu)件可提供使用的服務(wù)。用的服務(wù)。系統(tǒng)要求的接口系統(tǒng)要求的接口:系統(tǒng)為使用此構(gòu)件:系統(tǒng)為使用此構(gòu)件需要的操作。需要的操作。11Meyer將其歸結(jié)到將其歸結(jié)到 5 個(gè)不同的抽象層次上。個(gè)不同的抽象層次上。功能抽象功能抽象 構(gòu)件提供單一的功能;構(gòu)件提供單一的功能;數(shù)據(jù)抽象數(shù)據(jù)抽象 構(gòu)件是構(gòu)件是ADT或?qū)ο箢?;或?qū)ο箢悾徊灰?guī)則的組合不規(guī)則的組合 構(gòu)件

4、是一組松散關(guān)聯(lián)的構(gòu)件是一組松散關(guān)聯(lián)的實(shí)體的集合。如數(shù)據(jù)聲明或函數(shù)等;實(shí)體的集合。如數(shù)據(jù)聲明或函數(shù)等;聚合抽象聚合抽象 構(gòu)件是一群能在一起工作的構(gòu)件是一群能在一起工作的相關(guān)的對象類,即框架;相關(guān)的對象類,即框架;系統(tǒng)抽象系統(tǒng)抽象 構(gòu)件是一個(gè)完整的自包含系構(gòu)件是一個(gè)完整的自包含系統(tǒng)。統(tǒng)。12131415161718管理管理計(jì)劃計(jì)劃, 基金基金, 優(yōu)先順序優(yōu)先順序, 協(xié)同工作協(xié)同工作, 學(xué)習(xí)學(xué)習(xí)創(chuàng)建創(chuàng)建工程工程,領(lǐng)域領(lǐng)域,框架框架,構(gòu)件構(gòu)件,工具工具支持支持確認(rèn)確認(rèn),分類分類,打包打包分發(fā)分發(fā),建議建議,維護(hù)維護(hù)復(fù)用復(fù)用挑選挑選,客戶化客戶化,組裝組裝產(chǎn)品需求與現(xiàn)有軟件產(chǎn)品需求與現(xiàn)有軟件產(chǎn)品產(chǎn)品19

5、 縱向復(fù)用活動(dòng)的主要關(guān)鍵點(diǎn)在于縱向復(fù)用活動(dòng)的主要關(guān)鍵點(diǎn)在于領(lǐng)域分領(lǐng)域分析析:根據(jù)應(yīng)用領(lǐng)域的:根據(jù)應(yīng)用領(lǐng)域的特征特征和和相似性相似性,預(yù),預(yù)測軟件構(gòu)件的可復(fù)用性,從而測軟件構(gòu)件的可復(fù)用性,從而界定潛在界定潛在的可復(fù)用資產(chǎn)的可復(fù)用資產(chǎn)。 一旦根據(jù)領(lǐng)域分析確認(rèn)了軟件構(gòu)件的可一旦根據(jù)領(lǐng)域分析確認(rèn)了軟件構(gòu)件的可復(fù)用價(jià)值,即可進(jìn)行軟件構(gòu)件的開發(fā),復(fù)用價(jià)值,即可進(jìn)行軟件構(gòu)件的開發(fā),并對具有可復(fù)用價(jià)值的軟件構(gòu)件做并對具有可復(fù)用價(jià)值的軟件構(gòu)件做一般一般化處理化處理,使它們能夠適應(yīng)新的類似的應(yīng),使它們能夠適應(yīng)新的類似的應(yīng)用領(lǐng)域。然后將軟件構(gòu)件和它們的文檔用領(lǐng)域。然后將軟件構(gòu)件和它們的文檔存入可復(fù)用構(gòu)件庫存入可復(fù)用

6、構(gòu)件庫,成為可復(fù)用資源。,成為可復(fù)用資源。20領(lǐng)域知識(shí)領(lǐng)域知識(shí)領(lǐng)域分析領(lǐng)域分析 軟件開發(fā)與軟件開發(fā)與軟件構(gòu)件開發(fā)軟件構(gòu)件開發(fā)目標(biāo)軟件目標(biāo)軟件用戶需求用戶需求理理 解解檢檢 索索確確 認(rèn)認(rèn)可復(fù)用構(gòu)件庫可復(fù)用構(gòu)件庫21 隨著可復(fù)用構(gòu)件庫規(guī)模的擴(kuò)大,必須考隨著可復(fù)用構(gòu)件庫規(guī)模的擴(kuò)大,必須考慮如何組織庫的結(jié)構(gòu)以保持較高的檢索慮如何組織庫的結(jié)構(gòu)以保持較高的檢索效率。效率。 軟件構(gòu)件從庫中被檢索出來之后,用戶軟件構(gòu)件從庫中被檢索出來之后,用戶必須理解它的功能或行為,以判定它必須理解它的功能或行為,以判定它是是否真正適合于當(dāng)前的應(yīng)用否真正適合于當(dāng)前的應(yīng)用。 必要時(shí),可考慮對必要時(shí),可考慮對某個(gè)與期望的功能或

7、某個(gè)與期望的功能或行為匹配程度最好的可復(fù)用構(gòu)件行為匹配程度最好的可復(fù)用構(gòu)件進(jìn)行少進(jìn)行少量修改,甚至可將修改后的構(gòu)件再加到量修改,甚至可將修改后的構(gòu)件再加到可復(fù)用構(gòu)件庫中??蓮?fù)用構(gòu)件庫中。 222324領(lǐng)域工程領(lǐng)域工程領(lǐng)域分析領(lǐng)域分析可復(fù)用構(gòu)件庫可復(fù)用構(gòu)件庫應(yīng)用軟件應(yīng)用軟件基于構(gòu)件的基于構(gòu)件的 應(yīng)用開發(fā)應(yīng)用開發(fā)構(gòu)件更新構(gòu)件更新測測 試試領(lǐng)域模型領(lǐng)域模型分分 析析體系結(jié)構(gòu)體系結(jié)構(gòu) 設(shè)計(jì)設(shè)計(jì)構(gòu)件資格構(gòu)件資格構(gòu)件適應(yīng)構(gòu)件適應(yīng)構(gòu)件合成構(gòu)件合成構(gòu)件工程構(gòu)件工程 結(jié)構(gòu)模型結(jié)構(gòu)模型可復(fù)用軟件可復(fù)用軟件 構(gòu)件開發(fā)構(gòu)件開發(fā)軟件體系軟件體系結(jié)構(gòu)開發(fā)結(jié)構(gòu)開發(fā)25262728 構(gòu)件的功能是否在未來的實(shí)現(xiàn)中需要?構(gòu)件的功

8、能是否在未來的實(shí)現(xiàn)中需要? 在領(lǐng)域中構(gòu)件功能的公共性如何?在領(lǐng)域中構(gòu)件功能的公共性如何? 在領(lǐng)域中存在構(gòu)件功能的副本嗎?在領(lǐng)域中存在構(gòu)件功能的副本嗎? 構(gòu)件是否依賴于硬件?構(gòu)件是否依賴于硬件? 在不同的實(shí)現(xiàn)之間硬件是否保持不變?在不同的實(shí)現(xiàn)之間硬件是否保持不變? 硬件細(xì)節(jié)能否移到另一個(gè)構(gòu)件中?硬件細(xì)節(jié)能否移到另一個(gè)構(gòu)件中? 設(shè)計(jì)為下一步的實(shí)現(xiàn)是否做了足夠的優(yōu)設(shè)計(jì)為下一步的實(shí)現(xiàn)是否做了足夠的優(yōu)化?化?29 能夠把一個(gè)不可復(fù)用的構(gòu)件參數(shù)化,使能夠把一個(gè)不可復(fù)用的構(gòu)件參數(shù)化,使其成為可復(fù)用的構(gòu)件?其成為可復(fù)用的構(gòu)件? 構(gòu)件是否可以僅經(jīng)過少量修改就能夠在構(gòu)件是否可以僅經(jīng)過少量修改就能夠在很多實(shí)現(xiàn)中復(fù)用

9、?很多實(shí)現(xiàn)中復(fù)用? 通過修改實(shí)現(xiàn)復(fù)用是否可行?通過修改實(shí)現(xiàn)復(fù)用是否可行? 一個(gè)不可復(fù)用的構(gòu)件能否通過分解產(chǎn)生一個(gè)不可復(fù)用的構(gòu)件能否通過分解產(chǎn)生一組可復(fù)用的構(gòu)件?一組可復(fù)用的構(gòu)件? 針對復(fù)用的構(gòu)件分解有效到什么程度?針對復(fù)用的構(gòu)件分解有效到什么程度?30領(lǐng)域的特征領(lǐng)域的特征 領(lǐng)域特征定義了屬于某個(gè)領(lǐng)域的軟件產(chǎn)領(lǐng)域特征定義了屬于某個(gè)領(lǐng)域的軟件產(chǎn)品都應(yīng)有的品都應(yīng)有的類屬屬性類屬屬性,例如,例如安全性安全性/可靠可靠性的重要性性的重要性、程序設(shè)計(jì)語言程序設(shè)計(jì)語言、處理中的處理中的并發(fā)性并發(fā)性等。等。 領(lǐng)域特征用于領(lǐng)域特征用于確定一個(gè)潛在可復(fù)用的軟確定一個(gè)潛在可復(fù)用的軟件構(gòu)件在某種特定的情況下是否確實(shí)可

10、件構(gòu)件在某種特定的情況下是否確實(shí)可以使用以使用。31領(lǐng)域特征與應(yīng)用的相關(guān)度分為領(lǐng)域特征與應(yīng)用的相關(guān)度分為5個(gè)等級(jí):個(gè)等級(jí):1) 與復(fù)用是否合適與復(fù)用是否合適沒有相關(guān)性沒有相關(guān)性。2) 僅在僅在不尋常的情況下相關(guān)不尋常的情況下相關(guān)。3) 相關(guān)相關(guān)。此時(shí)可以修改軟件構(gòu)件,使其可。此時(shí)可以修改軟件構(gòu)件,使其可以被復(fù)用。以被復(fù)用。4) 顯著相關(guān)顯著相關(guān),且若新軟件不具有此特征則,且若新軟件不具有此特征則復(fù)用是低效的。但復(fù)用仍有可能。復(fù)用是低效的。但復(fù)用仍有可能。5) 顯著相關(guān)顯著相關(guān),且若新軟件不具有此特征則,且若新軟件不具有此特征則復(fù)用是無效的。此時(shí)不推薦復(fù)用。復(fù)用是無效的。此時(shí)不推薦復(fù)用。32如果

11、想要構(gòu)造一個(gè)屬于某一應(yīng)用領(lǐng)域如果想要構(gòu)造一個(gè)屬于某一應(yīng)用領(lǐng)域的新軟件,可先確定它的領(lǐng)域特征,的新軟件,可先確定它的領(lǐng)域特征,然后進(jìn)行比較,決定現(xiàn)有的構(gòu)件是否然后進(jìn)行比較,決定現(xiàn)有的構(gòu)件是否可以可以有效地在新應(yīng)用中復(fù)用。有效地在新應(yīng)用中復(fù)用。典型的對軟件復(fù)用有影響的領(lǐng)域特征典型的對軟件復(fù)用有影響的領(lǐng)域特征如下:如下: 33產(chǎn)產(chǎn) 品品 過過 程程 人人 員員 需需求求穩(wěn)穩(wěn)定定性性 過過程程模模型型 動(dòng)動(dòng)機(jī)機(jī) 并并發(fā)發(fā)軟軟件件 過過程程符符合合性性 教教育育 內(nèi)內(nèi)存存限限制制 項(xiàng)項(xiàng)目目環(huán)環(huán)境境 經(jīng)經(jīng)驗(yàn)驗(yàn)/ /培培訓(xùn)訓(xùn) 應(yīng)應(yīng)用用大大小小 進(jìn)進(jìn)度度限限制制 應(yīng)應(yīng)用用論論域域 用用戶戶界界面面復(fù)復(fù)雜雜性性

12、 預(yù)預(yù)算算限限制制 過過程程 程程序序設(shè)設(shè)計(jì)計(jì)語語言言 生生產(chǎn)產(chǎn)效效率率 平平臺(tái)臺(tái) 安安全全性性/ /可可靠靠性性 語語言言 壽壽命命需需求求 開開發(fā)發(fā)隊(duì)隊(duì)伍伍 產(chǎn)產(chǎn)品品質(zhì)質(zhì)量量 生生產(chǎn)產(chǎn)效效率率 產(chǎn)產(chǎn)品品可可靠靠性性 34結(jié)構(gòu)建模結(jié)構(gòu)建模 結(jié)構(gòu)建模是基于模式的領(lǐng)域工程方法。結(jié)構(gòu)建模是基于模式的領(lǐng)域工程方法。 使用該方法要求使用該方法要求應(yīng)用領(lǐng)域有可在應(yīng)用應(yīng)用領(lǐng)域有可在應(yīng)用軟件間重復(fù)使用軟件間重復(fù)使用的模式(功能的、數(shù)的模式(功能的、數(shù)據(jù)的、行為的)。據(jù)的、行為的)。 結(jié)構(gòu)模型結(jié)構(gòu)模型由少量的結(jié)構(gòu)元素由少量的結(jié)構(gòu)元素構(gòu)成,這構(gòu)成,這些結(jié)構(gòu)元素用來表示交互的模式。些結(jié)構(gòu)元素用來表示交互的模式。

13、系統(tǒng)體系結(jié)構(gòu)可以通過由這些模型元系統(tǒng)體系結(jié)構(gòu)可以通過由這些模型元素組成的多聲部合唱來描述。素組成的多聲部合唱來描述。35每一個(gè)應(yīng)用領(lǐng)域都可以一個(gè)結(jié)構(gòu)模型每一個(gè)應(yīng)用領(lǐng)域都可以一個(gè)結(jié)構(gòu)模型來描述。在這個(gè)領(lǐng)域中所有的現(xiàn)行應(yīng)來描述。在這個(gè)領(lǐng)域中所有的現(xiàn)行應(yīng)用都有相同的結(jié)構(gòu)模型。用都有相同的結(jié)構(gòu)模型。結(jié)構(gòu)點(diǎn)是結(jié)構(gòu)模型中的不同的構(gòu)成成結(jié)構(gòu)點(diǎn)是結(jié)構(gòu)模型中的不同的構(gòu)成成分,用于描述系統(tǒng)體系結(jié)構(gòu)中的模式分,用于描述系統(tǒng)體系結(jié)構(gòu)中的模式。1) 結(jié)構(gòu)點(diǎn)應(yīng)是一種抽象,它的實(shí)例應(yīng)在結(jié)構(gòu)點(diǎn)應(yīng)是一種抽象,它的實(shí)例應(yīng)在領(lǐng)域的各個(gè)應(yīng)用中重復(fù)出現(xiàn)。領(lǐng)域的各個(gè)應(yīng)用中重復(fù)出現(xiàn)。2) 使用結(jié)構(gòu)點(diǎn)的規(guī)則應(yīng)是容易理解的,使用結(jié)構(gòu)點(diǎn)的規(guī)則應(yīng)

14、是容易理解的,結(jié)構(gòu)點(diǎn)的界面應(yīng)比較簡單。結(jié)構(gòu)點(diǎn)的界面應(yīng)比較簡單。3) 結(jié)構(gòu)點(diǎn)的實(shí)現(xiàn)應(yīng)做到信息隱蔽。結(jié)構(gòu)點(diǎn)的實(shí)現(xiàn)應(yīng)做到信息隱蔽。36 典型的結(jié)構(gòu)點(diǎn)有典型的結(jié)構(gòu)點(diǎn)有 應(yīng)用前端應(yīng)用前端 即即GUI,如菜單、面板和,如菜單、面板和輸入及命令編輯工具等;輸入及命令編輯工具等; 數(shù)據(jù)庫數(shù)據(jù)庫 即存儲(chǔ)所有與應(yīng)用領(lǐng)域有關(guān)即存儲(chǔ)所有與應(yīng)用領(lǐng)域有關(guān)的對象的數(shù)據(jù)倉庫;的對象的數(shù)據(jù)倉庫; 計(jì)算引擎計(jì)算引擎 即操作數(shù)據(jù)的數(shù)值或非數(shù)即操作數(shù)據(jù)的數(shù)值或非數(shù)值計(jì)算模型;值計(jì)算模型; 報(bào)告工具報(bào)告工具 即產(chǎn)生各種輸出的功能;即產(chǎn)生各種輸出的功能; 應(yīng)用編輯器應(yīng)用編輯器 即根據(jù)特定用戶要求定即根據(jù)特定用戶要求定制應(yīng)用的機(jī)制。制應(yīng)用

15、的機(jī)制。37可復(fù)用構(gòu)件的構(gòu)造原則可復(fù)用構(gòu)件的構(gòu)造原則和質(zhì)量標(biāo)準(zhǔn)和質(zhì)量標(biāo)準(zhǔn) 一旦確定了某些軟件元素可以當(dāng)作可復(fù)一旦確定了某些軟件元素可以當(dāng)作可復(fù)用構(gòu)件并將要加入到可復(fù)用構(gòu)件庫中,用構(gòu)件并將要加入到可復(fù)用構(gòu)件庫中,軟件人員就需要實(shí)際構(gòu)造它們。軟件人員就需要實(shí)際構(gòu)造它們。 由于軟件構(gòu)件的生存期將跨越開發(fā)項(xiàng)目,由于軟件構(gòu)件的生存期將跨越開發(fā)項(xiàng)目,甚至應(yīng)用領(lǐng)域,因此,可復(fù)用構(gòu)件必須甚至應(yīng)用領(lǐng)域,因此,可復(fù)用構(gòu)件必須更為通用、更容易組裝到新的軟件系統(tǒng)更為通用、更容易組裝到新的軟件系統(tǒng)中、在新的運(yùn)行環(huán)境下能表現(xiàn)出更好的中、在新的運(yùn)行環(huán)境下能表現(xiàn)出更好的健壯性。健壯性。 381. 需求和設(shè)計(jì)級(jí)的軟件構(gòu)件需求和

16、設(shè)計(jì)級(jí)的軟件構(gòu)件 需求級(jí)軟件構(gòu)件通常包括需求級(jí)軟件構(gòu)件通常包括u 問題(及子問題)描述問題(及子問題)描述u 有關(guān)的領(lǐng)域知識(shí)有關(guān)的領(lǐng)域知識(shí)u 相應(yīng)的需求規(guī)格說明。相應(yīng)的需求規(guī)格說明。問題描述及領(lǐng)域知識(shí)均使用領(lǐng)域語言,問題描述及領(lǐng)域知識(shí)均使用領(lǐng)域語言,必要時(shí)可輔以結(jié)構(gòu)化的自然語言。必要時(shí)可輔以結(jié)構(gòu)化的自然語言。 設(shè)計(jì)級(jí)軟件構(gòu)件包括設(shè)計(jì)級(jí)軟件構(gòu)件包括u設(shè)計(jì)規(guī)格說明(片段)設(shè)計(jì)規(guī)格說明(片段)u設(shè)計(jì)決策描述設(shè)計(jì)決策描述39u 相應(yīng)的設(shè)計(jì)文檔(如總體設(shè)計(jì)方案、相應(yīng)的設(shè)計(jì)文檔(如總體設(shè)計(jì)方案、抽象算法)。抽象算法)。將需求級(jí)軟件構(gòu)件和設(shè)計(jì)級(jí)軟件構(gòu)件將需求級(jí)軟件構(gòu)件和設(shè)計(jì)級(jí)軟件構(gòu)件相結(jié)合,能夠簡化對這些軟

17、件構(gòu)件的相結(jié)合,能夠簡化對這些軟件構(gòu)件的理解和組裝過程。理解和組裝過程。開發(fā)原則:開發(fā)原則:1) 嚴(yán)格分離構(gòu)件應(yīng)用的上下文與構(gòu)件;嚴(yán)格分離構(gòu)件應(yīng)用的上下文與構(gòu)件;2) 利用抽象化、參數(shù)化等手段提取公利用抽象化、參數(shù)化等手段提取公共特征,增強(qiáng)構(gòu)件對未來不同應(yīng)用共特征,增強(qiáng)構(gòu)件對未來不同應(yīng)用項(xiàng)目的適應(yīng)能力。項(xiàng)目的適應(yīng)能力。 402. 代碼級(jí)的軟件構(gòu)件代碼級(jí)的軟件構(gòu)件 代碼級(jí)軟件構(gòu)件不僅應(yīng)包含通常的代碼級(jí)軟件構(gòu)件不僅應(yīng)包含通常的程程序代碼段序代碼段,還應(yīng)輔以相應(yīng)的,還應(yīng)輔以相應(yīng)的注釋注釋和和上上下文環(huán)境說明下文環(huán)境說明。 代碼級(jí)軟件構(gòu)件的主體是代碼級(jí)軟件構(gòu)件的主體是子程序子程序(過(過程或函數(shù))。程

18、或函數(shù))。 在基于對象和面向?qū)ο蟪绦蛟O(shè)計(jì)語言在基于對象和面向?qū)ο蟪绦蛟O(shè)計(jì)語言及相應(yīng)的開發(fā)環(huán)境下,軟件構(gòu)件可以及相應(yīng)的開發(fā)環(huán)境下,軟件構(gòu)件可以用用Ada程序包程序包或或C+類類來實(shí)現(xiàn)。來實(shí)現(xiàn)。41開發(fā)代碼級(jí)構(gòu)件時(shí)要運(yùn)用各種抽象化開發(fā)代碼級(jí)構(gòu)件時(shí)要運(yùn)用各種抽象化手段,發(fā)掘公共特征,分離構(gòu)件的應(yīng)手段,發(fā)掘公共特征,分離構(gòu)件的應(yīng)用環(huán)境、功能和行為,提高可復(fù)用性。用環(huán)境、功能和行為,提高可復(fù)用性。1) 功能抽象功能抽象 軟件構(gòu)件的功能軟件構(gòu)件的功能由接口說由接口說明中的輸入明中的輸入輸出關(guān)系確定輸出關(guān)系確定,實(shí)現(xiàn)細(xì),實(shí)現(xiàn)細(xì)節(jié)對構(gòu)件的使用者隱藏起來;節(jié)對構(gòu)件的使用者隱藏起來;2) 數(shù)據(jù)抽象數(shù)據(jù)抽象 隱藏除

19、接口參數(shù)外的所有隱藏除接口參數(shù)外的所有數(shù)據(jù)數(shù)據(jù)。構(gòu)件的功能或行為由參數(shù)和構(gòu)。構(gòu)件的功能或行為由參數(shù)和構(gòu)件的內(nèi)部狀態(tài)決定。構(gòu)件的內(nèi)部狀態(tài)件的內(nèi)部狀態(tài)決定。構(gòu)件的內(nèi)部狀態(tài)可由構(gòu)件的內(nèi)部操作來更新。可由構(gòu)件的內(nèi)部操作來更新。423) 過程抽象過程抽象 在數(shù)據(jù)抽象的基礎(chǔ)上進(jìn)一在數(shù)據(jù)抽象的基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)步實(shí)現(xiàn)在同一軟件構(gòu)件上并發(fā)執(zhí)行的在同一軟件構(gòu)件上并發(fā)執(zhí)行的多個(gè)線程的無關(guān)性多個(gè)線程的無關(guān)性。軟件構(gòu)件提供端。軟件構(gòu)件提供端口,以便為多個(gè)用戶同時(shí)訪問軟件構(gòu)口,以便為多個(gè)用戶同時(shí)訪問軟件構(gòu)件中的資源進(jìn)行同步控制。訪問請求件中的資源進(jìn)行同步控制。訪問請求首先進(jìn)入等待隊(duì)列,軟件構(gòu)件就緒后,首先進(jìn)入等待隊(duì)列,軟

20、件構(gòu)件就緒后,從隊(duì)列中取出請求逐個(gè)執(zhí)行。使用構(gòu)從隊(duì)列中取出請求逐個(gè)執(zhí)行。使用構(gòu)件的多個(gè)線程之間通過全局共享數(shù)據(jù)件的多個(gè)線程之間通過全局共享數(shù)據(jù)或消息傳遞進(jìn)行信息交換。或消息傳遞進(jìn)行信息交換。43444546474849用戶界面用戶界面窗口窗口菜單菜單對話框?qū)υ捒蚴录幚硎录幚韴D形窗口圖形窗口文本窗口文本窗口信息對話框信息對話框數(shù)據(jù)錄入數(shù)據(jù)錄入對話框?qū)υ捒?拖放處理拖放處理鍵盤事件鍵盤事件處理處理關(guān)鍵詞分類結(jié)構(gòu)示例關(guān)鍵詞分類結(jié)構(gòu)示例 5051同義詞庫同義詞庫T11 S111, S112, , S11kT12 S121, S122, , S12mT13 S131, S132, , S13n同義詞

21、同義詞多面分類機(jī)制多面分類機(jī)制Cdc = ( T1A, T2B, , TNJ )F1 F2 FNT11 T21 TN1T12 T22 TN2T13 T23 TN3 T1J T2J TNJ概念概念面面面描述子面描述子構(gòu)件構(gòu)件概念距離圖概念距離圖 T11 T12 T13 T1M 一般化概念一般化概念 F1F252 意義相同或相近的若干詞匯組成意義相同或相近的若干詞匯組成同義同義詞庫詞庫。所有詞匯按照隸屬于所有詞匯按照隸屬于“面面”的的“概念概念”分組分組,每個(gè),每個(gè)“概念概念”可用組可用組內(nèi)的某一同義詞匯作為標(biāo)識(shí)載體。內(nèi)的某一同義詞匯作為標(biāo)識(shí)載體。 概念距離圖概念距離圖用于用于度量每個(gè)度量每個(gè)“面

22、面”中中“概念概念”的相似性程度的相似性程度。屬于每個(gè)。屬于每個(gè)“面面”的一般化概念與其中的兩個(gè)或的一般化概念與其中的兩個(gè)或多個(gè)多個(gè)“概念概念”以加權(quán)邊相連接,兩個(gè)以加權(quán)邊相連接,兩個(gè)“概念概念”的相似性由它們之間的最短的相似性由它們之間的最短加權(quán)路徑上的加權(quán)距離確定。加權(quán)路徑上的加權(quán)距離確定。 53 采用多面分類法組織可復(fù)用構(gòu)件庫時(shí),采用多面分類法組織可復(fù)用構(gòu)件庫時(shí),必須存儲(chǔ)軟件構(gòu)件,存儲(chǔ)多面分類機(jī)必須存儲(chǔ)軟件構(gòu)件,存儲(chǔ)多面分類機(jī)制、同義詞庫和概念距離圖。如可采制、同義詞庫和概念距離圖。如可采用關(guān)系數(shù)據(jù)庫中的表格來描述它們。用關(guān)系數(shù)據(jù)庫中的表格來描述它們。 當(dāng)需在構(gòu)件庫中加入新構(gòu)件時(shí),先分當(dāng)

23、需在構(gòu)件庫中加入新構(gòu)件時(shí),先分析構(gòu)件的功能和行為,用現(xiàn)有的多面析構(gòu)件的功能和行為,用現(xiàn)有的多面分類結(jié)構(gòu)確定構(gòu)件的描述子,對每個(gè)分類結(jié)構(gòu)確定構(gòu)件的描述子,對每個(gè)“面面”選取合適的選取合適的“概念概念”作為特征作為特征描述。必要時(shí)可增加新的描述。必要時(shí)可增加新的“概念概念”,并根據(jù)新并根據(jù)新“概念概念”完善同義詞庫和概完善同義詞庫和概念距離圖。念距離圖。54 全文檢索系統(tǒng)將用戶給出的關(guān)鍵詞與全文檢索系統(tǒng)將用戶給出的關(guān)鍵詞與說明文檔中的文字進(jìn)行匹配,實(shí)現(xiàn)說明文檔中的文字進(jìn)行匹配,實(shí)現(xiàn)軟軟件構(gòu)件的瀏覽式檢索件構(gòu)件的瀏覽式檢索。 55 超文本以結(jié)點(diǎn)為基本單位,鏈作為結(jié)點(diǎn)超文本以結(jié)點(diǎn)為基本單位,鏈作為結(jié)點(diǎn)

24、之間的聯(lián)想式關(guān)聯(lián)。之間的聯(lián)想式關(guān)聯(lián)。 56 一般地,結(jié)點(diǎn)是一個(gè)信息塊。對于可復(fù)一般地,結(jié)點(diǎn)是一個(gè)信息塊。對于可復(fù)用構(gòu)件庫而言,結(jié)點(diǎn)可以是領(lǐng)域的概念、用構(gòu)件庫而言,結(jié)點(diǎn)可以是領(lǐng)域的概念、功能或行為名稱、構(gòu)件名稱等,在圖形功能或行為名稱、構(gòu)件名稱等,在圖形用戶界面上,結(jié)點(diǎn)可以是字符串,也可用戶界面上,結(jié)點(diǎn)可以是字符串,也可以是圖像、聲音、動(dòng)畫等。以是圖像、聲音、動(dòng)畫等。 超文本組織方式為構(gòu)造可復(fù)用構(gòu)件提供超文本組織方式為構(gòu)造可復(fù)用構(gòu)件提供了友好、直觀的多媒體方式。由于網(wǎng)狀了友好、直觀的多媒體方式。由于網(wǎng)狀結(jié)構(gòu)比較自由、松散,因此,超文本方結(jié)構(gòu)比較自由、松散,因此,超文本方法更容易修改可復(fù)用構(gòu)件庫的

25、結(jié)構(gòu)。法更容易修改可復(fù)用構(gòu)件庫的結(jié)構(gòu)。 57可復(fù)用構(gòu)件的可復(fù)用構(gòu)件的3C模型模型58為了使得軟件構(gòu)件在新的軟件項(xiàng)目中為了使得軟件構(gòu)件在新的軟件項(xiàng)目中發(fā)揮作用,復(fù)用者必須在使用可復(fù)用發(fā)揮作用,復(fù)用者必須在使用可復(fù)用構(gòu)件庫時(shí)執(zhí)行以下工作:構(gòu)件庫時(shí)執(zhí)行以下工作:v檢索和提取構(gòu)件檢索和提取構(gòu)件v理解與評價(jià)構(gòu)件理解與評價(jià)構(gòu)件v修改構(gòu)件修改構(gòu)件v將構(gòu)件組裝到新的應(yīng)用系統(tǒng)中。將構(gòu)件組裝到新的應(yīng)用系統(tǒng)中。591.1. 軟件構(gòu)件的檢索與提取軟件構(gòu)件的檢索與提取構(gòu)件庫的檢索方法與庫的組織相關(guān)。構(gòu)件庫的檢索方法與庫的組織相關(guān)。1)1) 基于關(guān)鍵詞的檢索基于關(guān)鍵詞的檢索 系統(tǒng)在圖形用系統(tǒng)在圖形用戶界面上將戶界面上將可

26、復(fù)用構(gòu)件庫的關(guān)鍵詞樹可復(fù)用構(gòu)件庫的關(guān)鍵詞樹直觀地展示給用戶,用戶通過在樹上直觀地展示給用戶,用戶通過在樹上的逐級(jí)瀏覽尋找需要的關(guān)鍵詞并提取的逐級(jí)瀏覽尋找需要的關(guān)鍵詞并提取相應(yīng)的構(gòu)件。用戶也可以直接給出關(guān)相應(yīng)的構(gòu)件。用戶也可以直接給出關(guān)鍵詞鍵詞 ( (其中可含有通配符其中可含有通配符) ),由系統(tǒng),由系統(tǒng)自動(dòng)地給出合適的候選自動(dòng)地給出合適的候選606162636465 對于以對于以C或或C+源程序形式出現(xiàn)的構(gòu)件,源程序形式出現(xiàn)的構(gòu)件,用戶可借助于用戶可借助于CASE工具查詢標(biāo)識(shí)符的工具查詢標(biāo)識(shí)符的定義和引用。如果源程序中以結(jié)構(gòu)化注定義和引用。如果源程序中以結(jié)構(gòu)化注解的形式給出函數(shù)的前置條件、后置斷解的形式給出函數(shù)的前置條件、后置斷言、約束與異常情形、算法描述,用戶言、約束與異常情形、算法描述,用戶也可以實(shí)現(xiàn)對這些信息的直觀瀏覽。也可以實(shí)現(xiàn)對這些信息的直觀瀏覽。 逆向工程逆向工程是理解構(gòu)件的另一種重要手段。是理解構(gòu)件的另一種重要手段。通過對構(gòu)件進(jìn)行分析,結(jié)合領(lǐng)域知識(shí),通過對構(gòu)件進(jìn)行分析,結(jié)

溫馨提示

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

評論

0/150

提交評論