基于構(gòu)件的軟件工程_第1頁
基于構(gòu)件的軟件工程_第2頁
基于構(gòu)件的軟件工程_第3頁
基于構(gòu)件的軟件工程_第4頁
基于構(gòu)件的軟件工程_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第十章第十章軟件重用和構(gòu)件技術(shù)軟件重用技術(shù)10基于構(gòu)件的軟件工程全文共32頁,當前為第1頁。10.1軟件重用概述

軟件重用就是將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng),以達到提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率,降低開發(fā)成本的目的??芍赜玫能浖煞郑卜Q為可重用構(gòu)件(ReusableComponent)可從舊軟件中提取,也可以專門為重用而開發(fā)。軟件重用不僅是對程序的重用,它包括對軟件生產(chǎn)過程中任何活動所產(chǎn)生的制成品的重用。如:項目計劃、可行性報告、需求定義、分析模型、詳細說明、源程序和測試用例等等。基于構(gòu)件的軟件工程全文共32頁,當前為第2頁。代碼的重用設計結(jié)果的重用分析結(jié)果的重用測試信息的重用

高抽象程度

低10.1.1軟件重用的級別包括目標代碼,也包括文本形式的源代碼。受實際環(huán)境影響小,可重用機會多,所需修改少??杀恢赜玫姆治鼋Y(jié)果是針對問題域的某些事物或某些問題的抽象程度更高的解法。主要包括測試用例(testcase)的重用和測試過程信息的重用。三種方式重用:

從現(xiàn)有系統(tǒng)的分析結(jié)果中提取可重用構(gòu)件用于新系統(tǒng)的分析;用一份完整的分析文檔作為輸入,成生針對不通軟硬件平臺和其它實現(xiàn)條件的多項設計;獨立于具體應用,專門開發(fā)一些可重用的分析構(gòu)件?;跇?gòu)件的軟件工程全文共32頁,當前為第3頁。

軟件生產(chǎn)過程主要是正向過程,即軟件產(chǎn)品從抽象級別較高的形態(tài)向抽象級別較低的形態(tài)演化,所以較高級別的重用容易帶動較低級別的重用,反之則不然。重用級別越高,可得到的回報也越大,因此分析軟件(AnalysisWare)和設計軟件(DesignWare)的重用備受重視。軟件重用的優(yōu)點:

(1)提高軟件生產(chǎn)率,降低軟件生產(chǎn)代價;

(2)提高軟件質(zhì)量;

(3)互操作性好;

(4)推動標準化;

(5)支持原型開發(fā)。基于構(gòu)件的軟件工程全文共32頁,當前為第4頁。10.1.2軟件重用的形式一、按照重用活動所跨越的應用領(lǐng)域的類型分

1.橫向重用(horizontalreuse)也稱為水平重用,是指重用活動的范圍跨越了幾個不同的應用領(lǐng)域,重用的軟件產(chǎn)品主要包括數(shù)據(jù)結(jié)構(gòu)、通用算法、人機界面等軟件元素。

2.縱向重用(verticalreuse)也稱為垂直重用,是指重用活動的范圍限制在同一個應用領(lǐng)域或者是一類具有較多共性的應用領(lǐng)域內(nèi)。基于構(gòu)件的軟件工程全文共32頁,當前為第5頁。二、基于軟件重用的軟件開發(fā)過程的角度分1.生產(chǎn)者重用(productreuse)

指建立、獲取或者重新設計可重用構(gòu)件的活動。涉及到的活動包括:重用的規(guī)劃、領(lǐng)域分析、構(gòu)件的開發(fā)、構(gòu)件庫的組織和管理。2.消費者重用(consumerreuse)

指使用可重用的構(gòu)件建立新的系統(tǒng)的活動。涉及到的活動包括:應用系統(tǒng)的規(guī)劃、構(gòu)件的檢索和選擇、應用系統(tǒng)中非重用部分的開發(fā)、應用系統(tǒng)的組裝。建立構(gòu)件組裝應用

生產(chǎn)者重用消費者重用(為重用開發(fā)構(gòu)件)(使用構(gòu)件開發(fā)應用)生產(chǎn)者重用與消費者重用基于構(gòu)件的軟件工程全文共32頁,當前為第6頁。

重用具有許多明顯的優(yōu)點,目前應用不廣泛的主要原因是:(1)技術(shù)因素構(gòu)件與應用系統(tǒng)之間的差異;構(gòu)件要達到一定的規(guī)模,才能支持有效的重用;發(fā)現(xiàn)合用構(gòu)件的困難;基于重用的軟件開發(fā)方法和軟件過程需要一些新的理論、技術(shù)及支持環(huán)境。10.1.3軟件重用的困難(2)人的因素

喜歡自己創(chuàng)造而不喜歡使用別人的東西?;跇?gòu)件的軟件工程全文共32頁,當前為第7頁。

重用具有許多明顯的優(yōu)點,目前應用不廣泛的主要原因是:10.1.3軟件重用的困難(4)教育因素

軟件科學技術(shù)的教育與培訓中,缺乏關(guān)于軟件重用的內(nèi)容,缺少專門教材和課程。(3)管理因素

把重用構(gòu)件和一般軟件構(gòu)件同等看待,把重用看作可有可無的事。基于構(gòu)件的軟件工程全文共32頁,當前為第8頁。10.2軟件構(gòu)件與構(gòu)件工程

基于軟件構(gòu)件的軟件工程也稱為構(gòu)件工程,是以面向?qū)ο蟮姆椒榛A,實現(xiàn)軟件重用,構(gòu)造新系統(tǒng)的過程。為了實現(xiàn)軟件重用,基于軟件構(gòu)件的軟件工程強調(diào)領(lǐng)域工程與軟件工程同時進行。領(lǐng)域工程創(chuàng)建應用領(lǐng)域的模型,標識、構(gòu)造、分類和傳播一組可重用的軟件。基于構(gòu)件的軟件工程全文共32頁,當前為第9頁。圖2領(lǐng)域分析設計軟件體系結(jié)構(gòu)開發(fā)可重用的軟件成分中心庫可重用軟件成分/構(gòu)件領(lǐng)域模型結(jié)構(gòu)模型系統(tǒng)分析規(guī)格說明與設計建造系統(tǒng)規(guī)格說明分析與設計模型應用軟件用戶需求軟件工程領(lǐng)域工程重用的過程模型典型的重用的過程模型,描述了領(lǐng)域工程與軟件工程的關(guān)系?;跇?gòu)件的軟件工程全文共32頁,當前為第10頁。

一個軟件只有在多個系統(tǒng)中被使用才可稱為“可重用構(gòu)件”,必須具備的條件:

(1)獨立性

解決一個相對獨立的問題,或大問題中某個相對獨立的部分;

(2)完整性

提供較完整的解決,不要遺留很多缺口,讓重用者做大量補充;

(3)可標識性

構(gòu)件所解決的問題應該是可標識的,可命名,有簡要介紹,便于理解和使用。6.2.1可重用構(gòu)件

基于構(gòu)件的軟件工程全文共32頁,當前為第11頁。

一個軟件只有在多個系統(tǒng)中被使用才可稱為“可重用構(gòu)件”,必須具備的條件:

(4)通用性

構(gòu)件解決的問題,應在同類應用中具有一般性;

(5)適應性

應用場合有某些變化時,構(gòu)件仍是可用的,使構(gòu)件的某些數(shù)據(jù)參數(shù)化和數(shù)據(jù)類型參數(shù)化;

(6)可靠性

要求構(gòu)件對預計將要使用它的系統(tǒng)時可靠的;

(7)標準化

可重用構(gòu)件的標準化對于軟件重用是至關(guān)重要的。10.2.1可重用構(gòu)件

基于構(gòu)件的軟件工程全文共32頁,當前為第12頁。6.2.2基于構(gòu)件的軟件工程

基于構(gòu)件的軟件工程與傳統(tǒng)的或面向?qū)ο蟮能浖こ滔啾?,有顯著的差異。

它不是針對某個特定的軟件系統(tǒng),而是針對一類軟件系統(tǒng)的共同的特征、知識和需求。基于構(gòu)件的軟件的開發(fā)過程包括兩個并發(fā)的子過程,一個是領(lǐng)域工程,另一個是基于構(gòu)件的開發(fā)。領(lǐng)域工程完成一組可重用構(gòu)件的標示、構(gòu)造、分類和傳播;基于構(gòu)件的開發(fā)完成使用可重用構(gòu)件構(gòu)造新的軟件系統(tǒng)。基于構(gòu)件的軟件工程全文共32頁,當前為第13頁。

領(lǐng)域分析是對特定應用領(lǐng)域中共同的特征、知識、需求的標識、分析和規(guī)約。領(lǐng)域分析是特定領(lǐng)域內(nèi)軟件重用的基礎,它的目標就是:發(fā)現(xiàn)和挖掘在特定領(lǐng)域內(nèi)可以被重用的構(gòu)件。領(lǐng)域分析活動中輸入和輸出如圖所示:10.2.3領(lǐng)域分析領(lǐng)域分析輸入信息技術(shù)文獻已有應用專家經(jīng)驗/建議當前與未來的需求輸出信息

領(lǐng)域語言重用標準分類方法功能/行為模型領(lǐng)域分析的輸入和輸出基于構(gòu)件的軟件工程全文共32頁,當前為第14頁。

領(lǐng)域分析(DomainAnalysis)是對一類應用系統(tǒng)的共同應用領(lǐng)域進行系統(tǒng)化分析,以發(fā)現(xiàn)該領(lǐng)域的共同知識、需求及其應用系統(tǒng)的共同特征。領(lǐng)域分析又稱領(lǐng)域工程(DomainEngineering),是軟件工程的發(fā)展與延伸。領(lǐng)域分析是一項比系統(tǒng)分析更難的工作。領(lǐng)域分析方法可采用結(jié)構(gòu)化方法和面向?qū)ο蠓椒?,而后者將成為主流?/p>

領(lǐng)域分析不是針對某個特定的軟件系統(tǒng),而是針對一類軟件系統(tǒng)的共同的特征、知識和需求。比需求分析更一般、更抽象、更廣泛的特征?;跇?gòu)件的軟件工程全文共32頁,當前為第15頁。10.3構(gòu)件的開發(fā)與構(gòu)件庫

構(gòu)件的開發(fā)

領(lǐng)域分析的結(jié)果為構(gòu)件的選取和開發(fā)提供了指導性的原則。除了有領(lǐng)域分析作為其基礎,構(gòu)件開發(fā)還需要遵循一定的設計概念和原則。構(gòu)件應該具有相當?shù)囊话阈院统橄笮?,能夠用于滿足一類相似的需求,一個過于特殊的構(gòu)件是很難被重復使用的。即使一個通用性很高的構(gòu)件也不可能完全適應用戶的需求和運行環(huán)境,所以在一個構(gòu)件被不同的應用重用時,對它的某些部分進行修改是不可避免的。所以構(gòu)件開發(fā)時,需要為用戶對構(gòu)件的調(diào)整和修改留出余地。例如繼承、參數(shù)化、模板和宏都是典型的提高構(gòu)件靈活性和可調(diào)整性的機制?;跇?gòu)件的軟件工程全文共32頁,當前為第16頁。10.3.1構(gòu)件庫

構(gòu)件庫(ComponentLibrary)用于對可重用構(gòu)件進行存儲和管理。它是支持軟件重用的必要設施。構(gòu)件庫必須有大量的可重用構(gòu)件。構(gòu)件庫系統(tǒng)應提供的主要功能:構(gòu)件的存儲、管理、檢索以及庫的瀏覽與維護等。關(guān)鍵是支持使用者高效而準確地發(fā)現(xiàn)所需的可重用構(gòu)件。相關(guān)的主要技術(shù)是分類方法和檢索方法。支持方便的、友好的用戶管理和使用界面。構(gòu)件分類構(gòu)件檢索涉及兩個基本問題:基于構(gòu)件的軟件工程全文共32頁,當前為第17頁。

大多數(shù)的構(gòu)件分類模式可以歸納為以下三種類型:(1)枚舉分類通過定義一個層次結(jié)構(gòu)來對構(gòu)件進行分類。構(gòu)件庫中的可重用構(gòu)件按照某種標準被分成了若干個大類,而每個大類中的構(gòu)件再被劃分成若干個小類,依此類推,這樣就形成了一個構(gòu)件分類的層次結(jié)構(gòu),圖形用戶界面類窗口類菜單類圖形窗口構(gòu)件文字窗口構(gòu)件系統(tǒng)菜單構(gòu)件彈出式菜單構(gòu)件普通菜單構(gòu)件枚舉分類的層次結(jié)構(gòu)10.3.2構(gòu)件的分類基于構(gòu)件的軟件工程全文共32頁,當前為第18頁。(2)刻面分類一個刻面描述構(gòu)件某一個方面的特征??堂娣诸悇t是從不同的側(cè)面對構(gòu)件進行分類,每一種分類方式稱為一個刻面。不同的刻面根據(jù)其重要性可以設置不同的優(yōu)先級。刻面應用領(lǐng)域?qū)ο蠊δ芫幊陶Z言刻面值圖形用戶界面編程菜單動態(tài)修改菜單項JAVA

對構(gòu)件的每個刻面賦予相應的值,用以描述該構(gòu)件。刻面分類具有較好的靈活性,易于加入新的刻面值,因此刻面分類比枚舉分類更易于擴展和修改。該方法首先是為構(gòu)件庫中的所有構(gòu)件定義一組屬性,并賦予相應的屬性值。開發(fā)人員通過指定一組屬性值在構(gòu)件庫中對構(gòu)件進行檢索。基于構(gòu)件的軟件工程全文共32頁,當前為第19頁??堂娣诸惙?FacetedClassification):

支持多重觀點對構(gòu)件進行分類,例如從構(gòu)件的應用領(lǐng)域、構(gòu)件所描述的對象、構(gòu)件的觀點和編程語言等不同的方式來分類。每一種分類方式稱為一個刻面。每個刻面把構(gòu)件集合劃分為一個子集,各刻面所劃分的子集形成一些較小的交集。一個構(gòu)件對每個每個刻面有一個刻面值,例如:

應用領(lǐng)域=計算機繪圖對象=橢圓 功能=彩色填充,編程語言=C++基于構(gòu)件的軟件工程全文共32頁,當前為第20頁。

檢索一個構(gòu)件時,給出一組刻面值,將確定一組子集合,構(gòu)件應該在這些子結(jié)合的交集中,從其中確認所需的構(gòu)件就比較容易。構(gòu)件可用屬性描述,例如構(gòu)件類型、開發(fā)單位、作者、提交日期等屬性。檢索時通過構(gòu)件的屬性可以縮小搜索范圍??堂婧蛯傩远疾簧婕皹?gòu)件內(nèi)部實現(xiàn),只是為了便于構(gòu)件的管理、檢索和使用。如果把構(gòu)件比作一只箱子,其內(nèi)容如同箱子中裝的東西,刻面和屬性則如同箱子外邊的標簽??堂娣诸惙梢钥醋鲗哟畏诸惙ǖ臄U充?;跇?gòu)件的軟件工程全文共32頁,當前為第21頁。(3)屬性-值分類該方法首先是為構(gòu)件庫中的所有構(gòu)件定義一組屬性,并賦予相應的屬性值。開發(fā)人員通過指定一組屬性值在構(gòu)件庫中對構(gòu)件進行檢索。該分類方法與刻面分類方法有幾點不同之處:屬性的數(shù)量沒有限制,而刻面描述一般限制在7或8個刻面;屬性沒有優(yōu)先級,而刻面根據(jù)其重要程度,有相應的優(yōu)先級;基于構(gòu)件的軟件工程全文共32頁,當前為第22頁。

構(gòu)件庫中檢索一個構(gòu)件和在數(shù)據(jù)庫中檢索一個記錄是不同的。構(gòu)件庫檢索的不確定性帶來兩種相互矛盾的結(jié)果:檢索的結(jié)果可能是一個較大的構(gòu)件集合,要從中找到所需的構(gòu)件仍然很費力;檢索得到的集合沒有把真正需要的構(gòu)件包括在內(nèi)。解決方法:

(一)一般構(gòu)件庫系統(tǒng)能對提出的檢索條件作廣義解釋。建立同義詞對照表,例如“商品銷售”、“售貨”、“賣貨”看作一組同義詞;建立近意詞對照表,例如把“商業(yè)”、“商場”、“連鎖店”看作一組近意詞。系統(tǒng)首先匹配同義詞,再匹配近意詞,都可以被包括到廣義結(jié)果集合中。10.3.3構(gòu)件檢索基于構(gòu)件的軟件工程全文共32頁,當前為第23頁。(二)使檢索得到的構(gòu)件集合盡可能不包括對用戶無用的構(gòu)件。增加更多的刻面與構(gòu)件屬性:較多的刻面和屬性值,將得到更小的子集合文集,減輕最終發(fā)現(xiàn)和確認所需構(gòu)件的難度;建立構(gòu)件關(guān)鍵詞:根據(jù)構(gòu)件內(nèi)容提煉關(guān)鍵詞,如同學術(shù)論文的關(guān)鍵詞,反映有關(guān)構(gòu)件內(nèi)容的一些主要信息。例如,找功能構(gòu)件的關(guān)鍵詞有“壓入”、“彈出”、“后進先出”等等。如果通過刻面和構(gòu)件屬性得到的構(gòu)件子集較大,可用關(guān)鍵詞作進一步的檢索,以縮小搜索范圍。改進構(gòu)件檢索的其它措施:

(1)記錄用戶使用構(gòu)件庫的經(jīng)驗,并根據(jù)這些經(jīng)驗改經(jīng)構(gòu)件檢索系統(tǒng);

(2)對每個構(gòu)件給出一段文字的簡要介紹;

(3)提供較強的人機對話功能;

(4)引導用戶對自己需求的表達不斷精化?;跇?gòu)件的軟件工程全文共32頁,當前為第24頁。10.3.4基于構(gòu)件的開發(fā)

基于構(gòu)件的開發(fā)是使用可重用構(gòu)件組裝開發(fā)新的應用系統(tǒng)。一、開發(fā)過程1、構(gòu)件的鑒定

構(gòu)件的鑒定是對打算用于軟件開發(fā)的構(gòu)件能否滿足應用的需要,達到應用所需要的性能、可靠性、質(zhì)量的保證進行相應的考察。2、構(gòu)件的調(diào)整

通常在將構(gòu)件重用到應用中時,構(gòu)件需要進行必要的調(diào)整和修改才能適應應用的需要。3、

構(gòu)件的組裝

構(gòu)件的組裝是將經(jīng)過鑒定和調(diào)整以后的構(gòu)件組裝到應用系統(tǒng)中。通常為了達到此目的,還必須建一個基礎設施提供構(gòu)件協(xié)同的模型和使構(gòu)件能夠交互并完成共同任務的的特定服務?;跇?gòu)件的軟件工程全文共32頁,當前為第25頁。二、基于構(gòu)件的軟件開發(fā)特點

1、開發(fā)的質(zhì)量基于構(gòu)件的軟件開發(fā)的一個明顯的優(yōu)點就是提高了軟件的質(zhì)量。

可重用的構(gòu)件在開發(fā)過程中,都經(jīng)過嚴格的測試。

基于構(gòu)件的軟件工程全文共32頁,當前為第26頁。

在同一個領(lǐng)域的應用系統(tǒng)之間,不但可以找到其共同的軟件構(gòu)件,而且可以發(fā)現(xiàn)共同的或相似的軟件體系結(jié)構(gòu)(SoftwareArchitecture)。專向領(lǐng)域的重用開拓了一種新的重用境界,被重用的不僅是可實現(xiàn)某種局部功能的軟件構(gòu)件,而且可以是一些形成系統(tǒng)總體結(jié)構(gòu),并把各個可重用構(gòu)件連接到一起的軟件構(gòu)架(SoftwareFramework)。電子產(chǎn)品的主電路板可看成該產(chǎn)品可重用的構(gòu)架,它把許多可重用的電子器件連接在一起。軟件構(gòu)架是一種由特定領(lǐng)域的軟件體系結(jié)構(gòu)所決定的軟件構(gòu)造框架。

10.3.5可重用的軟件構(gòu)架基于構(gòu)件的軟件工程全文共32頁,當前為第27頁。

軟件構(gòu)架不是解決軟件的某個局部問題,而是描述了軟件的總體結(jié)構(gòu)。它描述了一類軟件的總體構(gòu)成情況,包括該軟件有哪些主要部件以及各部件之間的關(guān)系,但是不涉及每個部件的細節(jié)??芍赜玫能浖?gòu)架給出一類應用系統(tǒng)在總體構(gòu)造上的共性或相似性,忽略了各個系統(tǒng)的局部差異。例如,一個超級市場的銷售管理系統(tǒng)的軟件構(gòu)架,它包括的類有收款機、商品一覽表、商品、供貨員、銷售事件、帳冊和上級系統(tǒng)接口等。它只表明一般情況下系統(tǒng)應由哪些類構(gòu)成,并指出這些類之間的關(guān)系。但沒有定義每個類,在每個具體情況的系統(tǒng)中,各個類的內(nèi)部特征可能是不同的。

基于構(gòu)件的軟件工程全文共

溫馨提示

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

評論

0/150

提交評論