軟件工程方法與實踐第十章軟件工程高級課程_第1頁
軟件工程方法與實踐第十章軟件工程高級課程_第2頁
軟件工程方法與實踐第十章軟件工程高級課程_第3頁
軟件工程方法與實踐第十章軟件工程高級課程_第4頁
軟件工程方法與實踐第十章軟件工程高級課程_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程方法與實踐

第10章軟件工程高級課題

第10章軟件工程高級課題

O10.1軟件復(fù)用

O10.2新型的軟件工程

。10.3計算機輔助軟件工程

Q10.4小結(jié)

10.1.1軟件復(fù)用概述

軟件復(fù)用(Reuse),即由軟(構(gòu))件集成軟件,是借鑒

硬件集成而提出的,體現(xiàn)“從貨架上直接拿”的現(xiàn)代軟件

工程理念的一種技術(shù)、一種方法,也是一個過程。

軟件復(fù)用的重要性體現(xiàn)在:能更快、更好、成本更低地生

產(chǎn)軟件(產(chǎn)品)。

軟件復(fù)用定義:在構(gòu)造新的軟件系統(tǒng)的過程中,對已存在

的軟件人工制品的再次使用技術(shù)。定義可概括為:“開發(fā)

伴隨復(fù)用”,“開發(fā)為了復(fù)用”。

10.1.1軟件復(fù)用概述

實現(xiàn)復(fù)用的關(guān)鍵要素是軟件構(gòu)件技術(shù)??蓮?fù)用的構(gòu)件可以

包括軟件的技術(shù)表示、各種文檔、測試用例,以及與過程

相關(guān)的任務(wù)等。

軟件復(fù)用的層次從低到高有:

⑴源代碼復(fù)用

⑵軟件體系結(jié)構(gòu)復(fù)用

⑶應(yīng)用程序生成器

(4)領(lǐng)域特定的軟件體系結(jié)構(gòu)的復(fù)用

10.1.1軟件復(fù)用概述

軟件復(fù)用主要涉及到制造構(gòu)件技術(shù)和使用構(gòu)件技術(shù)。

制造構(gòu)件技術(shù)是指獨立于單個軟件系統(tǒng)開發(fā)的,可服務(wù)

于整個應(yīng)用領(lǐng)域的構(gòu)件生產(chǎn)技術(shù)。

使用構(gòu)件的技術(shù)是指在軟件系統(tǒng)開發(fā)中,使用已有構(gòu)件

的方法和技術(shù)。

提高軟件復(fù)用質(zhì)量和集成化程度的關(guān)鍵環(huán)節(jié)是,構(gòu)件的

參量化和可復(fù)用性能,以及完善的集成環(huán)境。

10.1.2軟件復(fù)用過程

軟件復(fù)用過程,即基于構(gòu)件的軟件工程

(CBSE)包含兩個并發(fā)的子過程:

領(lǐng)域工程(DE)

基于構(gòu)件的軟件開發(fā)(CBSD)

10.1.2軟件復(fù)用過程

領(lǐng)域

A領(lǐng)域分析》結(jié)構(gòu)開發(fā)?構(gòu)件開發(fā)

知識源X.______________

AA

可復(fù)用

領(lǐng)域模型結(jié)構(gòu)模型

領(lǐng)域工程構(gòu)件庫

圖10.1基于構(gòu)件的軟件工程(CBSE)的過程模型

10.1.3領(lǐng)域工程

領(lǐng)域工程(DE)是構(gòu)件的一系列開發(fā)工程,

是在特定的應(yīng)用領(lǐng)域中,以構(gòu)件庫形式標(biāo)識、

構(gòu)造、分類和傳播一組軟件制品——軟件構(gòu)

件。

根據(jù)復(fù)用活動所應(yīng)用的領(lǐng)域范圍,可劃分為橫

向復(fù)用和縱向復(fù)用兩種復(fù)用形式。

縱向復(fù)用領(lǐng)域工程的活動

⑴實施領(lǐng)域分析(步驟)

I①選擇特定的領(lǐng)域,定義應(yīng)用領(lǐng)域;

I②從中抽取具有可重復(fù)模式(結(jié)構(gòu)的、數(shù)據(jù)的、行

為的)的功能分類;

I③收集應(yīng)用領(lǐng)域中有代表性的應(yīng)用樣本,標(biāo)識/描述

可復(fù)用的功能類;

I④建立領(lǐng)域分析模型;

I⑤定義需求規(guī)約,得出由需求規(guī)約構(gòu)件和若干連接

子配置構(gòu)成的領(lǐng)域模型。

縱向復(fù)用領(lǐng)域工程的活動

⑵開發(fā)可復(fù)用構(gòu)件

?開發(fā)的構(gòu)件應(yīng)該具有通用性、可變性、易組裝性和可

理解性描述等特性。

?設(shè)計構(gòu)件必須考慮領(lǐng)域的應(yīng)用特征,主要設(shè)計構(gòu)件的

標(biāo)準(zhǔn)數(shù)據(jù)、標(biāo)準(zhǔn)接口協(xié)議和程序模板。

?采用流行的構(gòu)件實現(xiàn)標(biāo)準(zhǔn)。例如,組件對象模型

(COM)技術(shù),對象鏈接與嵌入(OLE)結(jié)構(gòu)標(biāo)準(zhǔn),

公共對象請求代理體系結(jié)構(gòu)(CORBA)標(biāo)準(zhǔn),

OpenDoc開放式文檔接口標(biāo)準(zhǔn)等。

縱向復(fù)用領(lǐng)域工程的活動

⑶建立可復(fù)用構(gòu)件庫

領(lǐng)域構(gòu)件庫具有類似于數(shù)據(jù)庫管理系統(tǒng)的、基

于科學(xué)分類的構(gòu)件描述、檢索和管理的一系列

機制。

10.1.4基于構(gòu)件的軟件開發(fā)

構(gòu)件集成模型就是一個軟件復(fù)用過程的基于構(gòu)件的軟件

開發(fā)(CBSD)模型。

1014基于構(gòu)件的軟件開發(fā)

2.構(gòu)件的集成活動

第一,對一個構(gòu)件的匹配過程,包括構(gòu)件對象參數(shù)的提

取和相互匹配,以及根據(jù)需要進行構(gòu)件對象功能的刪減、

變換,使之匹配;

第二,對構(gòu)件的集成(連接)過程,即設(shè)計和實現(xiàn)應(yīng)用

系統(tǒng)與構(gòu)件的互連功能,這也可以看做是把構(gòu)件對象融

合到應(yīng)用系統(tǒng)中。

10.1.4基于構(gòu)件的軟件開發(fā)

3.應(yīng)用系統(tǒng)工程

CBSD支持的特定應(yīng)用系統(tǒng)的軟件工程,稱為應(yīng)用系統(tǒng)

工程(ASE)。ASE過程是從一個或多個構(gòu)件系統(tǒng)中選

擇構(gòu)件進行特化,裝配到某個特定應(yīng)用系統(tǒng)中。

①收集信息,制定應(yīng)用系統(tǒng)的用例模型。

②把用例模型作為輸入,組裝和特化分析構(gòu)件。

③把分析模型作為輸入,組裝和特化設(shè)計構(gòu)件。

④把設(shè)計模型作為輸入,組裝和特化實現(xiàn)構(gòu)件。

⑤組裝和特化測試構(gòu)件,測試應(yīng)用系統(tǒng)。n

⑥應(yīng)用系統(tǒng)打包,提供給運用制造商、安裝者或用戶L

10.2.1形式化方法

形式化軟件開發(fā)方法是一種基于形式化的、數(shù)學(xué)的規(guī)約

技術(shù)。

形式化軟件開發(fā)方法與傳統(tǒng)開發(fā)方法相比:

①形式化方法提供了規(guī)約環(huán)境的基礎(chǔ)。軟件需求描述被

精煉成一個用數(shù)學(xué)符號表達的、詳細(xì)的、形式化描述的

分析模型。這樣生成的模型更完整、一致和無二義性。

②設(shè)計、實現(xiàn)和單元測試等過程被一個形式化的轉(zhuǎn)換過

程所替代。轉(zhuǎn)換由比較小的一系列步驟組成,每次轉(zhuǎn)換

之間的距離小于描述和程序之間的距離,因而能更好地

跟蹤。

形式化軟件開發(fā)過程

形式化開發(fā)方法是將軟件系統(tǒng)的需求描述,采用某種規(guī)

約的形式化方式,轉(zhuǎn)換成一個可執(zhí)行程序。

在轉(zhuǎn)換過程中,形式化描述被逐步求精地轉(zhuǎn)換成有嚴(yán)格

數(shù)學(xué)方法保證其正確的一系列系統(tǒng)表示,直到形式化描

述被轉(zhuǎn)換成一個對等的可執(zhí)行程序。

需求定義f形式化描述一形式化轉(zhuǎn)換f集成和系統(tǒng)驗證

圖10.2形式化的軟件開發(fā)過程

形式化方法的特點

①提供了規(guī)約環(huán)境的基礎(chǔ)——形式化描述的分

析模型。

②設(shè)計、實現(xiàn)和單元測試等過程被一個形式化

的、逐步求精的、正確性得到保證的轉(zhuǎn)換過程

所替代。

③形式化方法特別適合對安全性、可靠性、保

密性要求極高的系統(tǒng)開發(fā)。

形式化的轉(zhuǎn)換模型

轉(zhuǎn)換模型是結(jié)合形式化軟件開發(fā)方法和程序自動生成技術(shù)

的一種軟件開發(fā)模型。

實施轉(zhuǎn)換模型開發(fā)的常用技術(shù)有:

①基于模型的規(guī)格說明及其變換技術(shù);

②基于代數(shù)結(jié)構(gòu)的規(guī)格說明及其變換結(jié)構(gòu);

③基于時序邏輯的規(guī)格說明和驗證技術(shù);

④基于可視形式化的技術(shù),等等。

轉(zhuǎn)換模型開發(fā)過程

轉(zhuǎn)換模型的軟件開發(fā)過程中,程序變換系統(tǒng)由一系列程序

變換語言、相應(yīng)的編譯系統(tǒng)、分析和驗證工具、變換控制

工具,以及變換規(guī)則集等組成。

系統(tǒng)需求

圖10.3軟件轉(zhuǎn)換模型

形式化的凈室模型

“凈室”開發(fā)理念是通過嚴(yán)格的檢查(復(fù)審),在分析、

設(shè)計等開發(fā)單元(室)消除錯誤,力求在無(零)缺陷或

超潔凈的狀態(tài)(凈室)下實現(xiàn)軟件的開發(fā)。

凈室模型是一種基于增量式的、形式化的軟件開發(fā)模型。

凈室開發(fā)模型把軟件看成一系列逐步求精的增量開發(fā),每

個增量就是一個形式化表示的“盒”,對每個“盒”都采

用形式化方法驗證正確性。凈室模型的這種盒結(jié)構(gòu)是在一

個特定的抽象層次上對系統(tǒng)(或系統(tǒng)某些方面)的一次封

凈室模型開發(fā)過程

需求盒結(jié)構(gòu)規(guī)約形式化設(shè)計正確性驗證代碼檢查統(tǒng)計性

增量1:認(rèn)證

收集測試

測試計劃

需求盒結(jié)構(gòu)規(guī)約形式化設(shè)計正確性驗證代碼檢查統(tǒng)計性

增量2:認(rèn)證

收集測試

測試計劃

需求盒結(jié)構(gòu)規(guī)約形式化設(shè)計正確性驗證代碼檢查統(tǒng)計性

增量/7認(rèn)證

收集測試

測試計劃

圖10.4凈室模型增量(盒)的開發(fā)過程

凈室模型的特性

①一般采用狀態(tài)轉(zhuǎn)換模型形式化描述激勵及其響應(yīng)。

②軟件被分解成一個個增量開發(fā),對每個增量單獨采用凈

室過程進行有效性驗證。

③采用結(jié)構(gòu)化的、逐步精化的程序設(shè)計,保證從描述到程

序代碼的轉(zhuǎn)換是正確的。

④制定詳盡的測試計劃,通過嚴(yán)格的檢查過程對軟件進行

靜態(tài)測試。

⑤對完成的軟件增量進行統(tǒng)計性測試,測定它的可靠性。

⑥增量移交給系統(tǒng)時,還要進行系統(tǒng)集成測試,這又得到

一次有效性驗證。

10.2.2軟件再工程

軟件再工程(SR)是使用新的、現(xiàn)代方法和技

術(shù),修改和/或重建軟件系統(tǒng)的過程,以達到過

程的改善和軟件質(zhì)量的提高,所以,應(yīng)稱為軟

件過程再工程。

軟件再工程是一項針對軟件工程的業(yè)務(wù)過程和

管理過程的技術(shù)革命。

軟件再工程過程模型

軟件再工程的各項活動,形成了一個循環(huán)過程,每個活動

都可能重復(fù),對于一個特定的過程可以在任意一個活動之

后結(jié)束。

圖10.5軟件再工程的過程模型

逆向工程

軟件的逆向工程是

指從源代碼出發(fā),

重新恢復(fù)設(shè)計文檔

和需求規(guī)格文檔的

過程。

"72R*口目

圖10.6逆向工程過程

軟件重構(gòu)和正向工程

軟件重構(gòu)是應(yīng)用最新的設(shè)計和實現(xiàn)技術(shù)對老軟

件系統(tǒng)的源代碼和數(shù)據(jù)進行修改。軟件重構(gòu)分為

代碼重構(gòu)和數(shù)據(jù)重構(gòu)兩種。

如果對一個軟件(產(chǎn)品)版本進行結(jié)構(gòu)化翻新的

重新開發(fā)(可看做是一種預(yù)防性維護),就應(yīng)實

施軟件再工程的正向工程。

10.2.3客戶/服務(wù)器軟件工程

客戶-服務(wù)器(c/s)系統(tǒng)是一種基于分布式計算

機體系結(jié)構(gòu)的、對數(shù)據(jù)采用分布式管理的、特殊

的計算機體系結(jié)構(gòu)。

C/S系統(tǒng)的演化是與可視化桌面功能、新的存儲

技術(shù)、增強的數(shù)據(jù)庫技術(shù),以及先進的網(wǎng)絡(luò)通信

等各個方面的進展緊密聯(lián)系的O

C/S系統(tǒng)結(jié)構(gòu)示例

圖10.7客戶-服務(wù)器體系結(jié)構(gòu)示例

C/S系統(tǒng)的軟件構(gòu)件

?C/S系統(tǒng)有各種特定的請求和服務(wù)。C/S系統(tǒng)的軟件構(gòu)件

主要有用戶交互/表示構(gòu)件、數(shù)據(jù)庫管理構(gòu)件、應(yīng)用構(gòu)件和

中間件(包括網(wǎng)絡(luò)操作、支持?jǐn)?shù)據(jù)庫特定應(yīng)用、對象請求

代理、組件技術(shù)、通信管理等特殊應(yīng)用的軟件元素)等,

它們分布在客戶端或服務(wù)器端,或者同時分布在兩端。

?連接C/S系統(tǒng)各種構(gòu)件的機制有管道(Pipe)、遠(yuǎn)程過

程調(diào)用、客戶■服務(wù)器SQL交互和面向?qū)ο筮B接標(biāo)準(zhǔn)

(CORBA)等。這些連接機制都被結(jié)合到網(wǎng)絡(luò)管理和操

作系統(tǒng)中。

C/S系統(tǒng)的軟件工程

C/S系統(tǒng)開發(fā)工程,主要是從一組業(yè)務(wù)需求演化到一組

被確認(rèn)的、在客戶和服務(wù)器上實現(xiàn)的軟件構(gòu)件。

⑴C/S系統(tǒng)的分析建模。

⑵C/S系統(tǒng)的設(shè)計,根據(jù)所采用的計算機體系結(jié)構(gòu),考

慮特定的構(gòu)造環(huán)境,進行定制設(shè)計。

⑶C/S系統(tǒng)的測試,針對它的分布特性,主要在應(yīng)用功

能、服務(wù)器、數(shù)據(jù)庫、事務(wù)、網(wǎng)絡(luò)通信等方面進行。—

10.3.1軟件工程環(huán)境

?現(xiàn)代軟件開發(fā),無論技術(shù)活動還是管理活動,都離

不開軟件工程環(huán)境(SEE)的支持。

?SEE是實現(xiàn)軟件生產(chǎn)工程化的重要基礎(chǔ)。它建立在先

進軟件開發(fā)方法的基礎(chǔ)上,正影響和改變著軟件生產(chǎn)

方式,反過來又進一步促進了軟件方法的推廣與流行。

?SEE包括“生產(chǎn)一個軟件系統(tǒng)所需要的過程、方法和

自動化的集合”。建立一個開發(fā)環(huán)境首先要確定一種

開發(fā)過程模型,提出成套的、有效的開發(fā)方法,然后

在這一基礎(chǔ)上利用各種軟件工具實現(xiàn)開發(fā)活動的自動

化。

10.3.1軟件工程環(huán)境

?SEE有一套包括數(shù)據(jù)集成、控制集成和界面集成的集成

機制,讓各個工具使用統(tǒng)一的規(guī)范存取環(huán)境信息庫,采

用統(tǒng)一的用戶界面,同時為各個工具或開發(fā)活動之間的

通信、切換、調(diào)度和協(xié)同工作提供支持。

?SEE用于輔助軟件開發(fā)、運行、維護和管理等各種活

動的軟件(程序),是一個軟件工具集(或工具包)。

這不僅意味著SEE支持開發(fā)功能的擴大,也反映了工具集

成化程度的提高。

10.3.2CASE環(huán)境

I計算機輔助軟件工程(CASE)是通過一組集成

化的工具,輔助軟件開發(fā)者實現(xiàn)各項活動的全部

自動化,使軟件產(chǎn)品在整個生存周期中,開發(fā)和

維護生產(chǎn)率得到提高,質(zhì)量得到保證。

CASE環(huán)境、CASE工具、集成化CASE(I-

CASE)等,實際是一切現(xiàn)代化軟件開發(fā)環(huán)境

(SEE)的代名詞。

CASE環(huán)境

軟件工

程信息。

②每一個信息項的改變,可以追蹤到其他相關(guān)信息項。

③對所有軟件工程信息提供版本控制和配置管理。

④對環(huán)境中任何工具,可進行直接的、非順序的訪問。

⑤在標(biāo)準(zhǔn)的分解結(jié)構(gòu)中提供工具和數(shù)據(jù)的自動支持。

⑥使每個工具的用戶,共享人機界面所有的功能。

⑦收集能夠改善過程和產(chǎn)品的各項度量指標(biāo)。

⑧支持軟件工程師們之間的通信。

CASE環(huán)境的組成構(gòu)件

CASE工具

1.集成化工具層

集成化框架

為可移植性服務(wù)的機構(gòu),可移植服務(wù)層

操作系統(tǒng)n、

硬件平臺I環(huán)境基礎(chǔ)層

環(huán)境體系結(jié)構(gòu)

1

圖10.8CASE環(huán)境的組成構(gòu)件

CASE的工具及其分類

II

過程/階段

編輯工具字處理器、文本編輯器、圖表編輯器軟件開發(fā)全過程

編寫文檔工具頁面輸出程序、圖像編輯器軟件開發(fā)全過程

規(guī)劃與估算工具PERT工具、估算工具、電子表格工具軟件開發(fā)全過程

變更管埋工具需求跟蹤工具、變更控制系統(tǒng)軟件開發(fā)全過程

方法支持工具設(shè)計編輯器、數(shù)據(jù)字典、代碼生成器描述、設(shè)計

原型建立工具高端語言、用戶界面生成器描述、測試、有效性驗證

語言處理工具編譯器、解釋器設(shè)計、實現(xiàn)

配置管理工具版本管理系統(tǒng)、細(xì)節(jié)建立工具設(shè)計、實現(xiàn)

程序分析工具交叉索引生成器、靜態(tài)/動態(tài)分析器實現(xiàn)、測試、有效性驗證

測試工具測試數(shù)據(jù)生成器、文件比較器實現(xiàn)、測試、有效性驗證

調(diào)試工具交互式調(diào)試系統(tǒng)實現(xiàn)、測試、有效性驗證

再工程工具交叉索引系統(tǒng)、程序重構(gòu)系統(tǒng)實現(xiàn)

集成化CASE的框架結(jié)構(gòu)

用戶界面層

界面工具箱

表示協(xié)議

工且層

三具管理服務(wù)

CASECASECASECASECASE

工具工具

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論