軟件工程第一講教案_第1頁
軟件工程第一講教案_第2頁
軟件工程第一講教案_第3頁
軟件工程第一講教案_第4頁
軟件工程第一講教案_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

教案首頁

周次.................日期課時序

課題軟件工程概述

教學(xué)目的了解軟件工程相關(guān)概念

要求

重點軟件危機、軟件工程

難點軟件危機、軟件工程、軟件開辟模型

教學(xué)過程第一章軟件工程概述(2*459

設(shè)計第一節(jié)軟件(30')

及第二節(jié)軟件工程概念(30')

時間分配第三節(jié)軟件生存周期與軟件開辟模型(30')

教學(xué)場所使用

或者教學(xué)方教具

課后記

授課教師..................

1

第一章軟件工程概述

1.1牛

軟件是一種產(chǎn)品,同時又是開辟和運行產(chǎn)品的載體。作為一種產(chǎn)品,表達了

由計算機硬件體現(xiàn)的計算潛能。不管它是駐留在設(shè)備中,還是在主機中,軟件是

一個信息轉(zhuǎn)換器,能夠產(chǎn)生、管理、獲取、修改、顯示或者轉(zhuǎn)換信息。這些信息

可以很簡單,如一個bit,也可以很復(fù)雜,如多媒體信息。作為開辟運行產(chǎn)品

的載體,軟件是計算機工作的基礎(chǔ)、信息通信的基礎(chǔ),也是創(chuàng)建和控制其他程

序的基礎(chǔ)。

信息是21世紀最重要的產(chǎn)品,軟件充分地體現(xiàn)了這一點,軟件處理數(shù)據(jù),

使得這些數(shù)據(jù)更為實用;軟件管理商業(yè)信息增強了商業(yè)競爭力;它不僅提供了通

往全球信息網(wǎng)絡(luò)的途徑;而且也提供了以各種形式獲取信息的手段。

1.1.1軟件的產(chǎn)生與發(fā)展

1.程序設(shè)計階段

在計算機發(fā)展早期階段(20世紀50年代初期至20世紀60年代中期)為

程序設(shè)計階段。在這個階段硬件已經(jīng)通用化,而軟件的生產(chǎn)卻是個體化的。這時,

由于程序規(guī)模小,幾乎沒有什么系統(tǒng)化的標準方法可遵循。對軟件的開辟沒有任

何管理方法,一旦任務(wù)超時或者成本提高,程序員才開始彌補。在通用的硬件已

經(jīng)非常普遍的時候,軟件卻相反,對每一類應(yīng)用均需自行再設(shè)計,應(yīng)用范圍很有

限。軟件產(chǎn)品處在初級階段,大多數(shù)軟件都是由使用者自己開辟,例如書寫軟件,

使其運行,如果有問題,需要解決等等,因為是個人化的軟件環(huán)境。設(shè)計往往僅

是人們頭腦中的一種含糊想法,而根本就不存在文檔。

2.程序系統(tǒng)階段

計算機系統(tǒng)發(fā)展的第二階段(20世紀60年代中期到70年代末期)為程

序系統(tǒng)階段。多道程序設(shè)計、多用戶系統(tǒng)引入了人機交互的新概念。交互技術(shù)打

開了計算機應(yīng)用的新世界和硬件和軟件配合的新層次,浮現(xiàn)了實時系統(tǒng)和第一代

數(shù)據(jù)庫管理系統(tǒng)。這個階段另一個特點就是軟件產(chǎn)品的使用和軟件作坊的浮現(xiàn)。

開辟出軟件可以在較寬廣的范圍中應(yīng)用。主機和微機上的程序能夠有數(shù)百甚至上

千的用戶。

在軟件的使用中,當發(fā)現(xiàn)錯誤時需要糾正程序源代碼;當用戶需求發(fā)生變化

時需要修改;當硬件環(huán)境變化時需要適應(yīng),將這些活動統(tǒng)稱為軟件維護。在軟件

維護上所花費的精力以驚人的速度消耗資源。更為嚴重的是,許多程序的個人化

特性使得根本不能維護它們。于是“軟件危機”浮現(xiàn)了。

3.軟件工程階段

2

計算機系統(tǒng)發(fā)展的第三階段始于20世紀70年代中期并跨越了近十年,

稱為軟件工程階段。在這一階段,以軟件的產(chǎn)品叱、系列化、工程化、標準化為

特征的軟件產(chǎn)業(yè)發(fā)展起來,打破了軟件生產(chǎn)的個體化特征,有了軟件工程化的設(shè)

計原則、方法、標準可以遵循。在分布式系統(tǒng)中,各臺計算機同時地執(zhí)行某些功

能,并與其他計算機通訊,極大地提高了計算機系統(tǒng)的復(fù)雜性。廣域網(wǎng)、局域網(wǎng)、

高帶寬數(shù)字通信以及對即時數(shù)據(jù)訪問需求的增加都對軟件開辟提出了更高的要

求。

4.第四階段

計算機發(fā)展的第四階段已經(jīng)再也不著重于單臺計算機系統(tǒng)和程序,而是面向

計算機和軟件的綜合影響。由復(fù)雜的操作系統(tǒng)控制的強大的桌面機、廣域網(wǎng)絡(luò)

和局域網(wǎng)絡(luò),配以先進的軟件應(yīng)用已成為標準。計算機體系結(jié)構(gòu)迅速地從集中

的主機環(huán)境轉(zhuǎn)變?yōu)榉植嫉目蛻?服務(wù)器環(huán)境。世界范圍的信息網(wǎng)提供了一個基本

結(jié)構(gòu),信息高速公路卻網(wǎng)際空間連通已成為令人關(guān)注的熱點問題。事實上,

Internet可以看做是能夠被單個用戶訪問的軟件,計算機發(fā)展正朝著社會信息

化和軟件產(chǎn)業(yè)化方向發(fā)展,從技術(shù)的軟件工程階段過渡到社會信息化的計算機

系統(tǒng)。隨著第四階段的發(fā)展,一些新技術(shù)開始浮現(xiàn)。面向?qū)ο蠹夹g(shù)將在許多領(lǐng)

域中迅速取代傳統(tǒng)軟件開辟方法。

表1-1給出了四個發(fā)展階段典型技術(shù)的比較。

表1-1四個階段典型技術(shù)”

?

階段3第一階段一第二階段“第三階段,第四階段一

3AP

yPP

典”?面向批處理?,多用戶?分布式系統(tǒng)P?強大的桌面系統(tǒng),

型“?有限的分布.?實時/?嵌入“智能”。?面向?qū)ο蠹夹g(shù)

技―?自定義軟件??數(shù)據(jù)庫,?低成本硬件/?專家索林?

?軟件產(chǎn)品,?消費者的影響,?人工神經(jīng)網(wǎng)絡(luò)“

dy?并行計算,

p?網(wǎng)絡(luò)計其2

1.1.2軟件定義

計算機系統(tǒng)是通過運行程序來實現(xiàn)各種不同的應(yīng)用。把各種不同功能的程

序,包括用戶為自己的特定目的編寫的程序、檢查和診斷機器系統(tǒng)的程序、支持

用戶應(yīng)用程序運行的系統(tǒng)程序、管理和控制機器系統(tǒng)資源的程序等通常稱為軟

件。它是計算機系統(tǒng)中與硬件相互依存的另一部份,與硬件合為一體完成系統(tǒng)功

能。軟件定義如下:

(1)在運行中能提供所希翼的功能和性能的指令集(即程序);

(2)使程序能夠正確運行的數(shù)據(jù)結(jié)構(gòu);

3

(3)描述程序硼制過程、方法所用的文檔。

隨著計算機應(yīng)用的日益普及,軟件變得越來越復(fù)雜,規(guī)模也越來越大,這就

使得人與人、人與機器間相互溝通,保證軟件開辟與維護工作的順利進行顯得特

別重要,因此,文檔(即各種報告、說明、手冊的總稱)是不可缺少的。特殊是

在軟件日益成為產(chǎn)品的今天,文檔的作用就更加重要。

1.1.3軟件的特點

在計算機系統(tǒng)中,軟件是一個邏輯部件,而硬件是一個物理部件。因此,軟

件相對硬件而言有許多特點。為了能全面、正確地理解計算機軟件及軟件工程

的重要性,必需了解軟件的特點。軟件的特點可歸納如下。

1.軟件是一種邏輯實體,而不是具體的物理實體,于是它具有抽象性。這

個特點使它與計算機硬件、或者其他.匚程對象有著明顯的差別。人們可以把它

記錄在介質(zhì)上,但卻無法看到軟件的形態(tài),而必須通過測試、分析、思量、

判斷去了解它的功能、性能及其他特性。

2.軟件是通過人們的智力活動,把知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品,是

在研制、開辟中被創(chuàng)造出來的。一旦某一軟件項目研制成功,以后就可以大量

地復(fù)制同一內(nèi)容的副本。即其研制成本遠遠大于其生產(chǎn)成本。軟件故障往往是

在開辟時產(chǎn)生而在測試時沒有被發(fā)現(xiàn)的問題。所以要保證軟件的質(zhì)量,必須著

重于軟件開辟過程,加強管理和減少故障。

3.在軟件的運行和使用期間,沒有硬件那樣的機械磨損、老化問題。軟件

維護比硬件維護要復(fù)雜得多,與硬件的維護有著本質(zhì)的差別,參閱圖1-k圖

1-2和圖1-3o圖1-1所示的是硬件的故障率隨時間變化的曲線,圖1-2所示的

是在理想情況下軟件故障率隨時間變化的曲線,圖1-3所示的是軟件的實際故

障率曲線。

4.軟件的開辟和運行時常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同

程度的依賴關(guān)系。在軟件的開辟和運行中必須以硬件提供的條件為基礎(chǔ)。為了

消除這種依賴關(guān)系,在軟件開辟中提出了軟件移植的問題,并且把軟件的可移

植性作為衡量軟件質(zhì)量的因素之一。

5.軟件的開辟尚未徹底擺脫手工的開辟方式。由于傳統(tǒng)的手工開辟方式仍

然占領(lǐng)統(tǒng)治地位,軟件開辟的效率受到很大的限制。因此,應(yīng)促進軟件技術(shù)發(fā)

展,提出和采用新的開辟方法。例如近年來浮現(xiàn)的充分利用現(xiàn)有軟件的復(fù)用技

術(shù)、自動生成技術(shù)和其它一些有效的軟件開辟工具或者軟件開辟環(huán)境,既方便

了軟件開辟的質(zhì)量控制,還提高了軟件的開辟效率。

6.軟件的開辟費月越來越高,成本相當昂貴。軟件的研制工作需要投入大

量的、復(fù)雜的、高強度的腦力勞動,需要較高的成本。

7.軟件的開辟是一個復(fù)雜的過程,于是管理是軟件開辟過程中必不可少內(nèi)

4

容。

圖17硬件的故障率隨時間變化的曲線「

時間?

圖1-2理想情況下的軟件故障率隨時間變化的曲線

5

圖1-3軟件的實際故障率曲線〃

1.1.4軟件的分類

在工作和學(xué)習(xí)中,時常接觸到各式各樣的軟件。那末這些數(shù)量眾多的軟件究

竟歸為哪種類型,這就需要考慮對計算機軟件進行分類的依據(jù)。但事實上由于人

們與軟件的關(guān)系各不相同且所關(guān)心軟件的側(cè)重點也不相同,所以要給出計算機軟

件一個科學(xué)的、統(tǒng)一的嚴格分類標準是不現(xiàn)實的。但對軟件的類型進行必要的劃

分對于根據(jù)不同類型的工程對象采用不同的開辟和維護方法是很有價值的,因此

有必要從不同角度對計算機軟件做適當?shù)姆诸悺?/p>

1.基于軟件的功能劃分

(1)系統(tǒng)軟件:是與計算機硬件密切配合以使計算機的各個部件與相關(guān)軟件

及數(shù)據(jù)協(xié)調(diào)、高效工作的軟件。例如:操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等。系統(tǒng)軟件

在工作時頻繁地與硬件交往,以便為用戶服務(wù),共享系統(tǒng)資源,在這中間伴有著

復(fù)雜的進程管理和復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的處理。系統(tǒng)軟件是計算機系統(tǒng)必不可少的重

要組成部份。

(2)支撐軟件:它是協(xié)助用戶開辟軟件的工具性軟件,包括匡助程序人員開

發(fā)軟件產(chǎn)品的工具和匡助管理人員控制開辟的進程的工具。可劃分為:

?普通類型:包括文本編輯程序、文件格式化程序、程序庫系統(tǒng)等。

?支持需求分析:包括PSL/PSA問題描述語言、問題描述分析器、關(guān)系數(shù)

據(jù)庫系統(tǒng)、一致性檢驗程序等。

6

?支持設(shè)計:包括圖形軟件包、結(jié)構(gòu)化流程圖繪圖程序、設(shè)計分析程序、程

序結(jié)構(gòu)圖編輯程序等。

?支持實現(xiàn):包括編譯程序、交叉編譯程序、預(yù)編譯程序、連接編譯程序等。

?支持測試:包括靜態(tài)分析程序、符號執(zhí)行程序、摹擬程序、測試覆蓋檢驗

程序等。

?支持管理:包括PERT進度計劃評審方法、繪圖程序、標準檢驗程序和庫

管理程序等。

(3)應(yīng)用軟件:是在特定領(lǐng)域內(nèi)開辟的,為特定目的服務(wù)的一類軟件?,F(xiàn)

在兒乎所有的國民經(jīng)濟領(lǐng)域都使用了計算機,為這些計算機應(yīng)用領(lǐng)域服務(wù)的應(yīng)用

軟件種類繁多。其中商業(yè)數(shù)據(jù)處理軟件是占比例最大的一類,工程與科學(xué)計算軟

件大多屬于數(shù)值計算問題。應(yīng)用軟件還包括計算機輔助設(shè)計/計算機輔助創(chuàng)造

(CAD/CAM)>系統(tǒng)仿真、智能產(chǎn)品嵌入軟件(如汽車油耗控制、儀表盤數(shù)字

顯示、剎車系統(tǒng)),以及人工智能軟件(如專家系統(tǒng)、模式識別)等,此外,在

事務(wù)管理、辦公自動化,中文信息處理、計算機輔助教學(xué)(CAI)等方面的軟件

也得到了迅速發(fā)展,產(chǎn)生了驚人的生產(chǎn)效率和巨大的經(jīng)濟效益。

2.基于軟件工作方式劃分

?實時處理軟件:指在事件或者數(shù)據(jù)產(chǎn)生時,即將處理,并及時反饋信號,

控制需要監(jiān)測和控制的過程的軟件。主要包括數(shù)據(jù)采集、分析、輸出三部份,

其處理時間是應(yīng)嚴格限定的,如果在任何時間超出了這一限制,都將造成事故。

?分時軟件:允許多個聯(lián)機用戶同時使用計算機。系統(tǒng)把處理機時間輪流分

配給各聯(lián)機用戶,使各用戶都感到只是自己在使用計算機的軟件。

?交互式軟件,能實現(xiàn)人機通信的軟件。這種軟件接收用戶給出的信息,但

在時間上沒有嚴格的限定,這種工作方式賦予用戶很大的靈便性。

?批處理軟件:把一組輸入作業(yè)或者一批數(shù)據(jù)以成批處理的方式一次運行,

按順序逐個處理的軟件。

3.基于軟件規(guī)模的劃分

根據(jù)開辟軟件所需的人力、時間以及完成的源程序行數(shù),可劃分為下述六種

不同規(guī)模的軟件。

?微型軟件:指一個人在幾天之內(nèi)完成的、程序不超過500行語句且僅供個

人專用的軟件。通常這種軟件沒有必要做嚴格的分析,也不必要有完整的設(shè)計、

測試資料。

?小型軟件:一個人半年之內(nèi)完成的2000行以內(nèi)的程序。這種程序通常沒

有與其他程序的接口。但需要按一定的標準化技術(shù)、正規(guī)的資料書寫以及定期的

7

系統(tǒng)審查,只是沒有大題目那樣嚴格。

?中型軟件:5個人以內(nèi)在一年多時間里完成的5000、50000行的程序。中

型軟件開始浮現(xiàn)了軟件人員之間、軟件人員與用戶之間的聯(lián)系、協(xié)調(diào)的配合關(guān)系

問題。于是計劃、資料書寫以及技術(shù)審查需要比較嚴格地進行。在開辟中使用系

統(tǒng)的軟件工程方法是徹底必要的,這對提高軟件產(chǎn)品質(zhì)量和程序人員的工作效率

起著重要的作用。

?大型軟件:510個人在兩年多的時間里完成的50000^100000萬行的程

序。參加工作的軟件人員需要按二級管理。在任務(wù)完成過程中,人員調(diào)整往往不

可避免。因此會浮現(xiàn)對新手的培訓(xùn)和逐步熟悉工作的問題。對于這樣規(guī)模的軟件,

采用統(tǒng)一的標準,實行嚴格的審瓷是絕對必要的。由于軟件的規(guī)模龐大以及問題

的復(fù)雜性,往往在開辟的過程中浮現(xiàn)一些事先難于做出估計的不測事件。

?甚大型軟件:100?1000人參加用4~5年時間完成的具有100萬行程序

的軟件項目。這種甚大型項目可能會劃分成若干個子項目,每一個子項目都是一

個大型軟件。子項目之間具有復(fù)雜的接口。例如,實時處理系統(tǒng)、遠程通信系統(tǒng)、

多任務(wù)系統(tǒng)、大型操作系統(tǒng)、大型數(shù)據(jù)庫管理系統(tǒng)通常有這樣的規(guī)模。很顯然,

如果這種問題沒有軟件工程方法的支持,它的開辟工作是不可想象的。

?極大型軟件:2000^5000人參加,10年內(nèi)完成的1000萬行以內(nèi)的程序。

這種軟件很少見,往往是軍事指揮、彈道導(dǎo)彈謹防系統(tǒng)等。

可以看出,規(guī)模大、時間長、不少人參加的軟件項目,其開辟工作必須要有

軟件工程的知識做指導(dǎo)。而規(guī)模小、時間短、參加人員少的軟件項目也得用到軟

件工程概念,遵循一定的開辟規(guī)范,其基本原則是一樣的。

4.基于軟件失效的影響進行劃分

工作在不同領(lǐng)域的軟件,在運行中對可靠性乜有不同的要求。事實上,隨著

計算機進入國民經(jīng)濟等各個重要領(lǐng)域,其軟件的可靠性越來越顯得重要。人們一

般稱這種軟件為關(guān)鍵軟件,其特點在于:

(1)可靠性質(zhì)量要求高;

(2)常與完成重要功能的大系統(tǒng)的處理部件相聯(lián);

(3)含有的程序可能對人員、公眾、設(shè)備或者設(shè)施的安全造成影響。還可

影響到環(huán)境的質(zhì)量和關(guān)系到國家的安全和機密。

5.基于軟件服務(wù)對象的范圍劃分

軟件工程項目完成后可以有兩種情況提供給用戶:

.定制軟件:是受某個特定客戶(或者少數(shù)客戶)的委托,由一個或者多個

軟件開辟機構(gòu)在合同的約束下開辟出來的軟件。

8

.產(chǎn)品軟件,是由軟件開辟機構(gòu)開辟出來直接提供給市場,或者是為千百個

用戶服務(wù)的軟件。

1.2軟件工程概念

由于微電子學(xué)技術(shù)的進步,計算機硬件的性能有了很大的提高,而且質(zhì)量穩(wěn)

步提高;然而,計算機軟件成本卻不斷上升,質(zhì)量的保證也不盡如人意,軟件的

開辟的生產(chǎn)率也遠遠不能滿足計算機應(yīng)用的要求。軟件已經(jīng)成為限制計算機系統(tǒng)

進一步發(fā)展的關(guān)鍵因素。

更為嚴重的是計算機系統(tǒng)發(fā)展的早期所形成的一系列錯誤概念和做法,已經(jīng)

嚴重地妨礙了計算機軟件的開辟,甚至有的大型軟件根本無法維護,只能提前報

廢,造成大量人力、物力的浪費,從而導(dǎo)致軟件危機。為了研究解決軟件危機的

方法,計算機科學(xué)技術(shù)領(lǐng)域中的一門新興的學(xué)科逐步形成為了,這就是計算機軟

件工程學(xué)。

1.2.1軟件危機與軟件工程定義

1.軟件危機

軟件危機指的是軟件開辟和維護過程中遇到的一系列嚴重問題。軟件危機包

含下述兩方面的問題:如何開辟軟件,怎樣滿足對軟件的日益增長的需求;如何

維護數(shù)量不斷膨脹的已有軟件。具體地說,軟件危機主要有下列表現(xiàn):

?產(chǎn)品不符合用戶的實際需要。因為軟件開辟人員對用戶需求沒有深入準確

的了解,甚至對所要解決的問題還沒有正確認識,就著手編寫程序,而且軟件開

發(fā)人員和用戶之間的信息交流往往很不充分,導(dǎo)致用戶對軟件產(chǎn)品不滿意的現(xiàn)象

發(fā)生。

?軟件開辟生產(chǎn)率提高的速度遠遠不能滿足客觀需要,軟件的生產(chǎn)率遠遠低

于硬件生產(chǎn)率和計算機應(yīng)用的增長速度,使人們不能充分利用現(xiàn)代計算機硬件提

供的巨大潛力。

?軟件產(chǎn)品的質(zhì)量差。軟件可靠性和質(zhì)量保證的定量概念剛剛浮現(xiàn)不久,軟

件質(zhì)量保證技術(shù)(審查、復(fù)審和測試)沒有貫通到軟件開辟的全過程中,這些都

導(dǎo)致軟件產(chǎn)品發(fā)生質(zhì)量問題。

?對軟件開辟成本和進度的估計往往不許確。實際成本比估計成本有可能高

出一個數(shù)量級,實際進度比預(yù)期進度遲延幾個月甚至幾年。這種現(xiàn)象降低了軟件

開辟者的信譽。而為了趕進度和節(jié)約成本所采取的一些權(quán)宜之計又往往降低了軟

件產(chǎn)品的質(zhì)量,從而不可避免地會引起用戶的不滿。

?軟件的可維護性差。不少程序中的錯誤是難以改正的,實際上不能使這些

程序適應(yīng)硬件環(huán)境的改變,也不能根據(jù)用戶的需要在原有程序中增加一些新的功

能。沒能實現(xiàn)軟件的可重用,人們?nèi)匀辉谥貜?fù)開辟功能類似的軟件。

9

?軟件文檔資料通常既不完整也不合格。計算機軟件不僅包括程序,還應(yīng)該

包括一整套文檔資料,這些文檔資料應(yīng)該是在軟件開辟過程中產(chǎn)生出來的,而且

應(yīng)該和程序代碼徹底一致。軟件開辟的管理人員可以用這些文檔資料來管理和評

價軟件開辟過程的發(fā)展狀況;軟件開辟人員可以利用它們作為通信工具,在軟件

開辟過程中準確地交流信息;對于軟件維護人員而言,這些文檔資料更是至關(guān)重

要和必不可少的。因為缺乏必要的文檔資料或者文檔資料不合格,必然給軟件開

發(fā)和維護帶來許多嚴重的艱難和問題。

?軟件的價格昂貴,軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。

由于微電子學(xué)技術(shù)的進步和生產(chǎn)自動化程度不斷提高,導(dǎo)致硬件成本逐年下降,

然而軟件開辟需要大量人力,軟件成本上升。

2.軟件工程的定義

首先,采用工程化方法和途徑來開辟與維護軟件。軟件開辟是一種組織良好、

管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。必須充分吸取和借鑒人類

長期以來從事各種工程項目所積累的行之有效的原理、概念、技術(shù)和方法。應(yīng)該

推廣使用在實踐中總結(jié)出來的開辟軟件的成功技術(shù)和方法,并旦研究探索更好更

有效的技術(shù)和方法,盡快消除在計算機系統(tǒng)早期發(fā)展階段形成的一些錯誤概念和

做法。將軟件的生成問題在時間上分成若干階段以便于分步而有計劃的分工合

作,在結(jié)構(gòu)上簡化若干邏輯模塊。把軟件作為工程產(chǎn)品來處理,按計劃、分析、

設(shè)計、實現(xiàn)、測試、維護的周期來進行生產(chǎn)。

其次,應(yīng)該開辟和使用更好的軟件工具。在軟件開辟的每一個階段都有許多

繁瑣重復(fù)的工作需要做,在適當?shù)能浖ぞ咻o助下,開辟人員可以把這種工作

做得既快又好。如果把各個階段使用的軟件工具有機地集合成一個整體,支持

軟件開發(fā)的全過程,則稱為軟件工程支撐環(huán)境。

最后,采取必要的管理措施。軟件產(chǎn)品是把思線、概念、算法、組織、流程、

效率、質(zhì)量等多方面問題融為一體的產(chǎn)品。但它本身是無形的,所以有不同于一

般的工程項目的管理。它必須通過人員組織管理,項目計劃管理,配置管理等來

保證軟件按時高質(zhì)量完成。

總之,為了解決軟件危機,既要有技術(shù)措施]包括方法和工具),又要有必

要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開辟和維

護計算機軟件的一門新興學(xué)科。

軟件工程是指導(dǎo)計算機軟件開辟和維護的一門工程學(xué)科。采用工程的概念、

原理、技術(shù)和方法來開辟與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和

當前能夠得到的最好的技術(shù)方法結(jié)合起來,這就是軟件工程。

1968年在聯(lián)邦德國召開的國際會議上正式提出并使用了軟件工程這個術(shù)

語,運用工程學(xué)的基本原理和方法來組織和管理軟件生產(chǎn)。后來還發(fā)展了與軟件

有關(guān)的心理學(xué)、生理學(xué)和經(jīng)濟學(xué)等方面的學(xué)科。在這期間,研究軟件工程的專家

學(xué)者們陸續(xù)提出了100多條關(guān)于軟件工程的準則。這100多條軟件工程準則可以

10

概括為下述六條基本原則。

(1)用分階段的生存周期計劃嚴格管理

一個軟件從定義、開辟、使用和維護,直到最終被廢棄,要經(jīng)歷一個漫長的

時期,通常把軟件經(jīng)歷的這個漫長的時期稱為生存周期。在軟件開辟與維護的漫

長過程中,需要完成許多不同性質(zhì)的工作,所以應(yīng)把軟件生存周期劃分為若干個

階段,并相應(yīng)的制定出可行的計劃然后按照這個計劃對軟件的開辟與維護工作進

行管理。不同層次的管理人員都必須嚴格按照計劃各盡其職地管理軟件開辟與維

護工作,絕不能受客戶或者上級人員的影響而擅自背離預(yù)定計劃。

(2)堅持進行階段評審

軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進行。其理由是:①大部

分錯誤是在編碼之前造成的,例如,根據(jù)統(tǒng)計,設(shè)計錯誤占軟件錯誤的63%,

編碼錯誤僅占37%;②錯誤發(fā)現(xiàn)與改正得越晚,所需付出的代價也越高。因此,

在每一個階段都進行嚴格的評審,以便及早發(fā)現(xiàn)在軟件開辟過程中所犯的錯誤,

是一條必須遵循的重要原則。

(3)實行嚴格的產(chǎn)品控制

在軟件開辟過程中不應(yīng)隨意改變需求,因為改變一項需求往往需要付出較高

的代價。但是,在軟件開辟過程中改變需求又是難免的,由于外部環(huán)境的變化,

相應(yīng)地改變用戶需求是一種客觀需要,顯然不能硬性禁止客戶提出改變需求的要

求,而只能依靠科學(xué)的產(chǎn)品控制技術(shù)來順應(yīng)這種要求。也就是說,當改變需求時,

為了保持軟件各個配置成份的一致性,必須實行嚴格的產(chǎn)品控制,其中主要是實

行基準配置管理。所謂基準配置又稱為基線配置,它們是經(jīng)過階段評審后的軟件

配置成份(各個階段產(chǎn)生的文檔或者程序代碼)?;鶞逝渲霉芾碛煞Q為變動控制:

一切有關(guān)修改軟件的建議,特殊是涉及到對基準配置的修改建議,都必須按照嚴

格的規(guī)程進行評審,獲得批準以后才干實施修改,絕對不能隨意進行修改。

(4)采用現(xiàn)代程序設(shè)計技術(shù)

從提出軟件工程的概念開始,人們向來把主要精力用于研究各種新的程序設(shè)

計技術(shù)。20世紀60年代末提出的結(jié)構(gòu)程序設(shè)計技術(shù),其風(fēng)格為清晰第一,效率

第二,已經(jīng)成為絕大多數(shù)人公認的先進的程序設(shè)計技術(shù)。以后又進一步發(fā)展出各

種結(jié)構(gòu)分析(SA)與結(jié)構(gòu)設(shè)計(SD)技術(shù)。實踐表明,采用先進的技術(shù)既可提

高軟件開辟的效率,又可提高軟件維護的效率。

(5)應(yīng)能清晰地審查結(jié)果

軟件產(chǎn)品不同于普通的物理產(chǎn)品,它是看不見摸不著的邏輯產(chǎn)品。軟件開辟

人員(或者開辟小組)的工作發(fā)展情況可見性差,難以準確度量,從而使得軟

件產(chǎn)品的開辟過程比普通產(chǎn)品的開辟過程更難于評價和管理。為了提高軟件開

辟過程的可見性,更好地進行管理,應(yīng)該根據(jù)軟件開辟項目的總目標及完成期限,

規(guī)定

11

開辟組織的責(zé)任和產(chǎn)品標準,從而使得所得到的結(jié)果能夠清晰地被審查。

(6)合理安排軟件開辟小組的人員

軟件開辟小組的人員合理安排的原則是人員應(yīng)該少而精,即小組的組成人員

的素質(zhì)應(yīng)該好,而人數(shù)不應(yīng)過多。高素質(zhì)的人員會大大提高軟件的開辟效率,且

明顯減少軟件中的錯誤。止匕外,隨著開辟開小組人員數(shù)目的增加,因交流問題和

討論情況而造成的通信開消也急劇增加,所以要保證軟件開辟小組人員少而精。

最后要強調(diào)的足:必須不斷靈便改進軟件工程實踐。要按照軟件工程的基本

原理實現(xiàn)軟件的工程化生產(chǎn),僅遵循上述這六條基本原則是不夠的。因為,這樣

并不能保證軟件開辟的過程跟上時代的前進和技術(shù)的進步,因此必須不斷靈便改

進軟件工程實踐。按照這個要求,就要積極主動的采用新的軟件技術(shù),而且要注

意不斷總結(jié)經(jīng)驗。例如:采集出錯類型和問題報告等數(shù)據(jù),這些數(shù)據(jù)不僅可以用

來評價軟件技術(shù)的效果,而且也可以用來指明必須重點開辟的軟件工具和應(yīng)該優(yōu)

先研究的技術(shù)。

1.2.2軟件工程研究的基本內(nèi)容與目標

從內(nèi)容上劃分,軟件工程學(xué)可分為理論,結(jié)構(gòu),方法,工具,環(huán)境,管理,

規(guī)范等。理論與結(jié)構(gòu)是軟件開辟的技術(shù)基礎(chǔ),包括程序正確性證明理論,軟件可

靠性理論,軟件成本估算模型,軟件開辟模型,模塊劃分原理等。軟件開辟技術(shù)

包括軟件開辟方法學(xué),軟件工具和軟件開辟環(huán)境。良好的軟件工具可促進方法的

研制,而先進的軟件開辟方法能改進工具。軟件工具的集成構(gòu)成軟件開辟環(huán)境。

管理技術(shù)是提高開辟質(zhì)量的保證,軟件工程管理包括軟件開辟管理和軟件經(jīng)濟管

理,前者包括人員分配,制定計劃,確定標準與配置,而后者的主要內(nèi)容有成本

估算和質(zhì)量評價。

軟件工程學(xué)研究的基本目標:

(1)定義面向計?劃、開辟維護整個軟件生存周期的良好的方法學(xué)。

(2)確定的軟件成份,記錄軟件生存周期每一步的軟件文件資料,按步顯

示軌跡。

(3)可預(yù)測的結(jié)果,在生存周期中,每隔一定時間可以進行復(fù)審。

軟件工程學(xué)的最終目的,是以較少投資獲得易維護、易理解、可靠、高效率

的軟件產(chǎn)品。軟件工程學(xué)是研究軟件結(jié)構(gòu)、軟件設(shè)計與維護方法、軟件工具與環(huán)

境、軟件工程標準與規(guī)范、軟件開辟技術(shù)與管理技術(shù)的相關(guān)理論。

1.2.3軟件工程的原則

為了開辟出低成本高質(zhì)量的軟件產(chǎn)品,軟件工程學(xué)應(yīng)遵守以下基本原見。

1.分解

12

分解是人類分析解決復(fù)雜問題的重要手段和基本原則,其基本思想是從時間

上或者是從空間上將一個復(fù)雜抽象問題分成若干個較小的、相對獨立的、容易求

解的子問題,然后分別求解。軟件瀑布模型,結(jié)構(gòu)化分析方法,結(jié)構(gòu)化設(shè)計方

法,Jackson方法,模塊化設(shè)計都運用了分解的原則。

2.抽象和信息隱蔽

盡量將可變因素隱敏在一個模塊內(nèi),將怎樣做的細節(jié)隱臧在下層,而將做什

么抽象到上一層做簡化,從而保證模塊的獨立性。這就是軟件設(shè)計獨立性要遵守

的基本原則。模塊化和局部性的設(shè)計過程使用了抽象和信息隱蔽的原則。

3.一致性

研究軟件工程方法的目的之一,就是要使開辟過程標準化,使軟件產(chǎn)品設(shè)計

有共同遵循的原則。要求軟件文件格式一致,工作流程一致,軟件開辟過程要標

準化,統(tǒng)一化。

4.確定性

軟件開辟過程要用確定的形式表達需求,表達的軟件功能應(yīng)該是可預(yù)測的,

用可測試性,易維護性,易理解性,高效率的指標來具體度量軟件質(zhì)量。

組織實施軟件工程項目,從技術(shù)和管理上采取了多項措施后,項目的成功

主要要達到的目標有:開辟成本較低,軟件功能能達到用戶要求并具有較好的性

能,軟件具有良好的可移植性,易于維護且維護費用較低,軟件的開辟工作能按

時完成及時交付實用。

1.3軟件生存周期與軟件開辟模型

軟件工程采用的生存周期方法就是從時間角度對軟件的開辟與維護這個復(fù)

雜問題進行分解,將軟件生存漫長的時期分為若干階段,每一個階段都有其相對

獨立的任務(wù),然后逐步完成各個階段的任務(wù)。

1.3.1軟件生存周期

軟件生存周期就是從提出軟件產(chǎn)品開始,直到該軟件產(chǎn)品被淘汰的全過程。

研究軟件生存周期是為了更科學(xué)地、有效地組織和管理軟件的生產(chǎn),從而使軟件

產(chǎn)品更可靠、更經(jīng)濟。采用軟件生存周期來劃分軟件的工程化開辟,是軟件開辟

分階段挨次進行。前一個階段任務(wù)的完成是后一個階段的前提和基礎(chǔ),而后一個

階段通常是將前一個階段提出的方案進一步具體化。每一個階段的開始與結(jié)束都

有嚴格的標準。前一個階段結(jié)束的標準就是與其相鄰的后一個階段開始的標準。

每一個階段結(jié)束之前都要接受嚴格的技術(shù)和管理評審。不能通過評審時,就要重

復(fù)前一階段的工作直至通過上述評審后才干結(jié)束。采用軟件生存周期的劃分方

法,是每一階段的任務(wù)相對獨立,有利于簡化整個問題且便于不同人員分工協(xié)作。

而且其嚴格而科學(xué)的評審制度保證了軟件的質(zhì)量,提高了軟件的可維護性。從而

13

大大提高了軟件開辟的成功率和生產(chǎn)率。

軟件生存周期普通可分為以下階段:

S1:問題定義

S2:可行性研究

S3:需求分析

S4:概要設(shè)計

S5:詳細設(shè)計

S6:編碼

S7:測試

S8:運行與維護

在軟件的研制和開辟過程中':①要了解和分析用戶的問題,以及經(jīng)濟、技

術(shù)和時間等方面的可行性。②將用戶的需求規(guī)范化、形式化。編寫成需求說明書

及初步的系統(tǒng)用戶手冊,提交評審。③將軟件需求設(shè)計為軟件過程描述,即設(shè)計

人員將以確定的各項需求轉(zhuǎn)化成一個相應(yīng)的體系結(jié)構(gòu)。結(jié)構(gòu)的每一組成部份都是

意義明確的模塊,每一個模塊都與某些需求相對應(yīng)(概要設(shè)計)。然后對每一個

模塊的具體任務(wù)進行具體的描述(詳細設(shè)計)。④編代碼,就是把過程描述編

為機器可執(zhí)行的代碼。⑤測試,發(fā)現(xiàn)錯誤,進行改正。⑥維護,包括故障的排

除以及為適應(yīng)使用環(huán)境的變化和用戶對軟件提出新的要求所作的修改。

軟件生存期也可以分為三個大的階段:計劃階段。開辟階段和維護階段。

⑴計劃階段

這里又可分兩步:軟件計劃和需求分析。第一步,因為軟件是計算機系統(tǒng)中

一個子系統(tǒng),這樣非但要從確定的軟件子系統(tǒng)出發(fā),確定工作域,即確定軟件總

的目標、功能等;開辟這樣的軟件系統(tǒng)需要哪些資源(人力和設(shè)備)。作出成本

估算,面且還要求作出可行性分析,即在現(xiàn)有資源與技術(shù)的條件下能否實現(xiàn)這樣

的目標;最后要提出進度安排,并寫出軟件計劃文檔。上述問題都要進行管理評

審。第二步,在管理評審?fù)ㄟ^以后,要確定系統(tǒng)定義和有效性標準(軟件驗收標

準),寫出軟件需求說明書。還要開辟一個初步用戶手冊,這里要進行技術(shù)評審。

技術(shù)評審?fù)ㄟ^以后。再進行一次對軟件計劃的評審,因為這時對問題有了進一步

的了解。而計劃制定時,數(shù)據(jù)較少,且經(jīng)驗不足,所以對制定的計劃需要進行多

次修改,以盡量滿足各種要求,然后再進入到開辟階段。

⑵開辟階段

14

開辟階段要經(jīng)三個步驟:設(shè)計、編礙和測試。首先對軟件進行結(jié)構(gòu)設(shè)計,定義

接口,建立數(shù)據(jù)結(jié)構(gòu),規(guī)定標記。接著對每一個模塊進行過程設(shè)計、編碼和單元

測試。最后進行組合測試和有效性測試,對每一個測試用例和結(jié)果都要進行評

審。

(3)維護階段

首先要做的工作,就是配置評審,檢查軟件文檔利代碼是否齊全,兩者是否

一致,是否可以維護、確定維護組織和職責(zé),并定義表明系統(tǒng)錯誤和修改報告的

格式等。維護可分為改正性維護、完善性維護和適應(yīng)性維護等。維護內(nèi)容廣泛,

有人把維護看成是第二次開辟。要適應(yīng)環(huán)境的變化,就要擴充和改進,但不是建

立新系統(tǒng)。維護的內(nèi)容應(yīng)該通知用戶,要得到用戶的認可。然后則可進入修改,

修改不只是代碼修改,必須要有齊全的修改計劃、詳細過程以及測試等文檔。

以上簡要的介紹了軟件生存周期各個階段的主要任務(wù)和評審標準。以后本書

將環(huán)繞軟件生存周期的各個階段詳細講述其所要完成的任務(wù)、完成這些任務(wù)所需

的技術(shù)方法和輔助工具、軟件開辟和維護的主要管理技術(shù)。

1.3.2軟件開辟模型

為了反映軟件生存周期內(nèi)各種工作應(yīng)如何組織及周期各個階段應(yīng)如何銜接,

需要用軟件開辟模型給出直觀的圖示表達。軟件開辟模型是軟件工程思想的具體

化,是實施于過程模型中的軟件開辟方法和工具,是在軟件開辟實踐中總結(jié)出來

的軟件開辟方法和步驟??偟恼f來,軟件開辟模型是跨越整個軟件生存周期的系

統(tǒng)開辟、運作、維護所實施的全部工作和任務(wù)的結(jié)構(gòu)框架。

1.瀑布模型

瀑布模型乂稱生存周期模型,由B.M.Boehm提出,是軟件工程的基礎(chǔ)模型。

其核心思想是按工序?qū)栴}化簡,將功能的實現(xiàn)與設(shè)計分開,便于分工協(xié)作。采

用結(jié)構(gòu)化的分析與設(shè)計方法,將邏輯實現(xiàn)與物理實現(xiàn)分開。瀑布模型規(guī)定了各項

軟件工程活動,包括:制定開辟計劃,進行需求分析和說明,軟件設(shè)計,程序編

碼,測試及運行維護。并且規(guī)定了軟件生存周期的各個階段如同瀑布流水,逐級

下落,自上而下、相互銜接的固定次序。參閱圖1-4,每項開辟活動均應(yīng)具有下

述特征。

(1)從上一項活動接收該項活動的工作對象,作為輸入;

(2)利用這一輸入實施該項活動應(yīng)完成的內(nèi)容;

(3)給出該項活動的工作結(jié)果,作為輸出傳給下一項活動;

(4)對該項活動實施的工作進行評審。若其工作得到確認,則繼續(xù)進行下

一項活動,否則返回前項,甚至更前項的活動進行返工。

15

圖1-4瀑布模型。

瀑布模型為軟件開辟和軟件維護提供了一種有效的管理圖式。根據(jù)這一圖式

制定開辟計劃、進行成本預(yù)算、組織開辟力量,以項目的階段評審和文檔控制為

手段有效地對整個開辟過程進行指導(dǎo),從而保證了軟件產(chǎn)品及時交付,并達到預(yù)

期的質(zhì)量要求。與此同時,瀑布模型在大量的軟件開辟實踐中也逐漸暴露出它的

嚴重缺點。其中最為突出的缺點是該模型缺乏靈便性,特殊是無法解決軟件需求

不明確或者不許確的問即。這些問題的存在對軟件開辟會帶來嚴重影響,最終可

能導(dǎo)致開辟出的軟件并非用戶真正需要的軟件,并且,由于瀑布開辟模型具有

順序性和相關(guān)性,凡后一階段浮現(xiàn)的問題需要通過前一階段的重新確認來解決,

所以這一點在開辟過程完成后才有所察覺,因此其代價十分高昂。而且,隨著

軟件開辟項目規(guī)模的口益龐大,由于瀑布模型不夠靈便等缺點引起出的上述問

題顯得更為嚴重。軟件開辟需要人們合作完成,因這人員之間的通訊和軟件工

具之間的聯(lián)系以及開辟工作之間的并行和串行等都是必要的,但瀑布模型中并

沒有體現(xiàn)出這一點。

2.螺旋模型

為克服瀑布模型的不足,近年來已經(jīng)提出了多種其他模型。對于復(fù)雜的大型

軟件,開辟一個原型往往達不到要求。螺旋模型將瀑布模型與演化模型結(jié)合起來,

并且加入兩種模型均忽略了的風(fēng)險分析,彌補了兩者的不足。

軟件風(fēng)險是普遍存在于任何軟件開辟項目中的實際問題。對于不同的項目,

其差別只是風(fēng)險有大有小而已,在制定軟件開辟計劃時,系統(tǒng)分析員必須回答:

項目的需求是什么,需要投入多少資源以及如何安排開辟進度等一系列問題。然

而,要他們當即給出準確無誤的回答是不容易的,甚至幾乎是不可能的。但系統(tǒng)

分析員又不可能徹底叵避這一問題。憑借經(jīng)驗的估計出發(fā)給出初步的設(shè)想便難免

帶來一定風(fēng)險。實踐表明,項目規(guī)模越大,問題越復(fù)雜。資源、成本、進度等因

16

素的不確定性越人,承擔項目所冒的風(fēng)險也越人。總之,風(fēng)險是軟件開辟不可忽

視的潛在不利因素,它可能在不同程度上傷害到軟件開辟過程或者軟件產(chǎn)品的

質(zhì)量。軟件風(fēng)險駕馭的目標是在造成危害之前及時對風(fēng)險進行識別、分析,采

取對策,進而消除或者減少風(fēng)險的傷害。螺旋模型沿著螺線旋轉(zhuǎn),如圖1?5

所示,在笛卡爾坐標的四個象限上分別表達了四個方面的活動,即:

⑴制]定計劃:確定軟件目標,選定實施方案,弄清項目開辟的限制條件;

(2)風(fēng)險分析:分析所選方案,考慮如何識別和消除風(fēng)險;

(3)實施工程:實施軟件開辟;

(4)客戶評估:評價開辟工作,提出修正建議。

初的需求索集

與項罰計"

荔于用戶

度里的計

創(chuàng)

、初始軟件用型

唱戶畀俗4

二”原

工程最統(tǒng)

圖1-5螺旋模型

沿螺線自內(nèi)向外每旋轉(zhuǎn)一圈便開辟出更為完善的一個新的軟件版本。例如,

在第一圈,確定了初步的目標、方案和限制條件以后,轉(zhuǎn)入右上象限,對風(fēng)險進

行識別和分析。如果風(fēng)險分析表明,需求有不確定性,那末在右下的工程象限內(nèi),

所建的原型會匡助開辟人員和客戶,考慮其他開辟模型,并對需求做進一步修正。

客戶對工程成果做出評吩之后,給出修正建議。在此基礎(chǔ)上需再次計劃,并進行

風(fēng)險分析。在每一圈螺線上,做出風(fēng)險分析的終點是否繼續(xù)下去的判斷。假如風(fēng)

險過大,開辟者和用戶無法承受,項目有可能終止。多數(shù)情況下沿螺線的活動會

繼續(xù)下去,自內(nèi)向外,逐步延伸,最終得到所期望的系統(tǒng)。

如果軟件開辟人員對所開辟項目的需求已有了較好的理解或者較大的把握,

則無需開辟原型可采用普通的瀑布模型,這在螺旋模型中可認為是單圈螺線。

與此相反,如果對所開辟項目需求理解較差,則需要開辟原型,甚至需要不止

一個原型的匡助,那就需要經(jīng)歷多圈螺線。在種情況下,外圈的開辟包含了更多

的活動。也可能某些開辟采用了不同的模型。

螺旋模型適合于大型軟件的開辟,應(yīng)該說它是最為實際的方法,它吸收了軟

件工程“演化”既念,使得開辟人員和客戶對每一個演化層浮現(xiàn)的風(fēng)險有所了解,

繼而做出應(yīng)有的反映。螺旋模型的優(yōu)越性比起其他模型來說是明顯的,但并非

17

絕對的。要求許多客戶接受和相自化方法并不容易。這個模型的使用需要具有相

當豐富的風(fēng)險評估經(jīng)驗和專門知識,如果目風(fēng)險較大,又未能及時發(fā)現(xiàn),勢必造

成重大損失。此外,螺旋模型是浮現(xiàn)較晚的新模型,遠矚瀑布模型普及,要讓廣

大軟件人員和用戶充分肯定它,還有待于更多的實踐。

3.第四代技術(shù)模型

第四代技術(shù)(4GT)包含了一系列的軟件工具,它們的共同點是:能使軟件

設(shè)計者在較高級別上說明軟件的某些特征。然后軟件工具根據(jù)說明自動生成源代

碼。在越高的級別上說明軟件,就能越快地構(gòu)造出程序。軟件工程的笫四代技術(shù)

模型的應(yīng)用關(guān)鍵在于軟件描述的能力,它用一種特定的語言來完成或者以一種用

戶可以理解的問題描述方法來描述須解決的問題。

目前,一個支持第四代技術(shù)模型的軟件開辟環(huán)境及工具如下:數(shù)據(jù)庫查詢的

非過程語言,報告生成器,數(shù)據(jù)控制,屏幕交互及定義,以及代碼生成;高級圖

形功能;電子表格功能。最初,上述的許多工具僅能用于特定應(yīng)用領(lǐng)域,但今天,

第四代技術(shù)環(huán)境已經(jīng)擴展,能夠滿足許多軟件應(yīng)用領(lǐng)域的需要。

像其他模型一樣,第四代技術(shù)模型也是從需求分析開始,理想情況下,用戶

能夠描述出需求,而且這些需求能被直接轉(zhuǎn)換成可操作原型。但這是不現(xiàn)實的,

因為用戶可能不能確定需要什么;在說明已知的事實時;可能浮現(xiàn)二義性;可能

不能夠或者是不愿意采用一個第四代技術(shù)工具可以理解的形式來說明信息,因此,

其他模型中所描述的用戶對話方式在第四代技術(shù)模型中仍是一個必要的組成部

分。

對于較小型的應(yīng)用軟件,使用一個非過程的第四代語言有可能直接從需求分

析過渡到實現(xiàn)。但對于較大的應(yīng)用軟件,就有必要制訂一個系統(tǒng)的設(shè)計策略。對

于較大項目,如果沒有很好地設(shè)計,即使使用笫四代技術(shù)也會產(chǎn)生不用任何方法

來開辟軟件所遇到的同樣的問題,這些問題包括:低質(zhì)量、差的可維護性、難以

被用戶接受等。

應(yīng)用第四代技術(shù)的生成功能使得軟件開辟者能夠以一種方式表示期望的輸

出,這種方式使得可以自動生成產(chǎn)生該輸出的代碼。很顯然,相關(guān)信息的數(shù)據(jù)結(jié)

構(gòu)必須已經(jīng)存在,且能夠被第四代技術(shù)訪問。

要將一個第四代技術(shù)模型生成的功能變成最終產(chǎn)品,開辟者還必須進行測

試,寫出故意義的文檔,并完成其他軟件工程模型中同樣要求的所有集成活動。

此外,采用第四代技術(shù)開辟的軟件還必須考慮維護是否能夠迅速實現(xiàn)。

像其他所有軟件工程模型一樣,第四代技術(shù)模型也有優(yōu)點和缺點。其優(yōu)點是

極大地降低了軟件的開辟時間,并顯著提高了構(gòu)迨軟件的生產(chǎn)率。缺點是目前的

第四代技術(shù)并不比程序設(shè)計語言更容易使用,而且這種工具生成的結(jié)果源代碼是

,氐效的”,使用第四代技術(shù)開辟的大型軟件系統(tǒng)的可維護性是令人懷疑的,

綜上所述,概括如下:

18

(1)在過去十余年中,第四代技術(shù)模型的使用發(fā)展得很快,且目前已成為

合用于多個不同的應(yīng)用領(lǐng)域的方法。與計算機輔助軟件工程(CASE)工具和代

碼生成器結(jié)合起來,第四代技術(shù)為許多軟件問題提供了可靠的解決方案。

(2)從使用第四代技術(shù)模型的公司采集來的數(shù)據(jù)表明:在小型和中型的應(yīng)

用軟件開辟中,它使軟件的生產(chǎn)所需的時間大大降低,且使小型應(yīng)用軟件的分析

和設(shè)計所需的時間也降低了。

(3)在大型軟件項目中使用第四代技術(shù),需要同樣的甚至更多的分析、設(shè)

計和測試才干獲得實際的時間節(jié)省。主要是通過編碼量的減少獲得時間的節(jié)省。

因此,第四代技術(shù)模型已經(jīng)成為軟件開辟的一個重要方法。

4.原型模型

原型模型如圖1-6所示,從需求分析開始。軟件開辟者和用戶在一起定義軟

件的總目標,說明需求,并規(guī)劃出定義的區(qū)域。然后快速設(shè)計軟件中對用戶/客

戶可見部份的表示??焖僭O(shè)計導(dǎo)致了原形的建造,原形由用戶/客戶評估,并進

一步求精待開辟軟件的需求。逐步調(diào)整原形使之滿足用戶需,這個過程是迭代的。

原型模型的優(yōu)點和缺點如下所述。

(1)優(yōu)點

?原型模型法在得到良好的需求定義上比傳統(tǒng)生存周期法好得多,不僅可以處

理含糊需求,而且開辟者和用戶可充分通信。

?原型模型系統(tǒng)可作為培訓(xùn)環(huán)境,有利于用戶培訓(xùn)和開辟同步,開辟過程也是

學(xué)習(xí)過程。

?原型模型給用戶以機會更改心中原先設(shè)想的、不盡合理的最終系統(tǒng)。

?原型模型可以低風(fēng)險開辟柔性較大的計算機系統(tǒng)。

?原型模型使系統(tǒng)更易維護、對用戶更友好的機會。

?原型模型使總的開辟費用降低,時間縮短。

19

(2)缺點

?“模型效應(yīng)”或者“管中窺豹”。對于開辟者不熟悉的領(lǐng)域把次要部份當做主

要框架,做出不切題的原型。

?原型迭代不收斂于開辟者預(yù)先的目標。為了消除錯誤,每次更改,次要部份

越來越大,“淹沒”了主要部份。

-原型過快收斂于需求集合,而忽略了一些基本點。

?資源規(guī)劃和管理較為艱難,隨時更新文檔也帶來麻煩。

?長期在原型環(huán)境二開辟,只注意得到滿意的原型,容易“遺忘”用戶環(huán)境和

原型環(huán)境的差異。

(3)合用范圍

?特殊合用需求分析與定義規(guī)格說明

?設(shè)計人機界面

?充作同步培訓(xùn)工具

?“一次性”的應(yīng)用

20

?低風(fēng)險引入新技術(shù)

(4)不合用范圍

?嵌入式軟件

?實時控制軟件

?科技數(shù)值計算軟件

(5)步驟

S1:弄清用戶/設(shè)計者的基本信息需求,本步驟的目標是:

?討論構(gòu)造原型的過程

-寫出簡明的框架式說明性報告,反映用戶/設(shè)計者的信息需求方面的基本看

法和要求。

?列出數(shù)據(jù)元素和它們之間的關(guān)系

?確定所需數(shù)據(jù)的可用性

?概括出業(yè)務(wù)原型的任務(wù)并估計其成本

?考慮業(yè)務(wù)原型的可能使用

用戶/設(shè)計者的基本責(zé)任是根據(jù)系統(tǒng)的輸出來清嘶地描述自己的基本需要。

設(shè)計者和構(gòu)造者共同偵責(zé)來規(guī)定系統(tǒng)的范圍,確定數(shù)據(jù)的口」用性。系統(tǒng)/構(gòu)造者

的基本責(zé)任是確定現(xiàn)實的設(shè)計者期望,估價開辟原型的成本。這個步驟的中心是

設(shè)計者和構(gòu)造者定義基本的信息需求。討論的焦點是數(shù)據(jù)的提取、過程摹擬。

S2:開辟初始原型系統(tǒng)

目標:建立一個能運行的交互式應(yīng)用系統(tǒng)來滿足用戶/設(shè)計者的基本信息需

求。

在這一步驟中設(shè)計者沒有責(zé)任,由構(gòu)造者去負責(zé)建立一個初始原型,其中包

括與設(shè)計者的需求及能力相適應(yīng)的對話,還包括采集設(shè)計者對初始原型的反映的

設(shè)施。

主要工作包括:

?邏輯設(shè)計所需的數(shù)據(jù)庫

?構(gòu)造數(shù)據(jù)變換或者生成模塊

21

?開辟和安裝原型數(shù)據(jù)庫

?建立合適的菜單或者語言對話來提高友好的用戶輸入/輸出接口。

?裝配或者編寫所需的應(yīng)用程序模塊

?把初始原型交付給用戶/設(shè)計者,并且演示如何工作、確定是否滿足設(shè)計者

的基本需求、解釋接口和特點、確定用戶/設(shè)計者是否能很舒適地使用系統(tǒng)。

本步驟的原則:

?建立模型的速度是關(guān)鍵因素,而不是運行的效率。

?初始原型必須滿足用戶/設(shè)計者的基本需求。

?初始原型不求完善,它只響應(yīng)設(shè)計者的基本已知需求。

?設(shè)計者使用原型必須要很舒適

?裝配和修改模塊,構(gòu)造者不應(yīng)編寫傳統(tǒng)的程序

?構(gòu)造者必須利用可用的技術(shù)

?用戶與系統(tǒng)接口必須盡可能簡單,使設(shè)計者在用初始原型工作時不致于受

礙。

S3:用原型系統(tǒng)完善用戶/設(shè)計者的需求

目標:

?讓用戶/設(shè)計者能獲得有關(guān)系統(tǒng)的親身經(jīng)驗,必須使之更好地理解實際內(nèi)信

息需求和最能滿足這些需要的系統(tǒng)種類。

?掌握設(shè)計者做什么,更重要的是掌握設(shè)計者對原型系統(tǒng)不滿意些什么。

?確定設(shè)計者是否滿足于現(xiàn)有的原型

原則:

?對實際系統(tǒng)的親身經(jīng)驗?zāi)墚a(chǎn)生對系統(tǒng)的真實理解。

?用戶/設(shè)計者總會找到系統(tǒng)第一個版本的問題

?讓用戶/設(shè)計者確定什么時候更改是必需的,并控制總開辟時間。

?如果用戶/設(shè)計者在一定時間里(比如說一個月)沒有和構(gòu)造者聯(lián)系,那末

22

用戶可能是對系統(tǒng)表示滿意,也可能是遇到某些麻煩,構(gòu)造者應(yīng)該與用戶/設(shè)計

者聯(lián)系。

責(zé)任劃分:

系統(tǒng)/構(gòu)造者在這一步中沒有什么責(zé)任,除非設(shè)計者需要匡助或者需要信息,

或者設(shè)計者在一個相當長的時間里沒有和構(gòu)造者接觸。用戶/設(shè)計者負責(zé)把那些

不適合的地方,不合要求的特征和他在現(xiàn)有系統(tǒng)中看到所缺少的信息建立文檔。

這一步驟的關(guān)鍵是得到用戶/設(shè)計者關(guān)于系統(tǒng)的想法,有兒種技術(shù)可達到這一

目的:

?讓用戶/設(shè)計者鍵入信息,使用原型本身來得到他們的想法。

?利用系統(tǒng)特點,來鍵入信息

?使用日記來記錄信息

當設(shè)計者認為進行某些更改是適當?shù)臅r候,他就與構(gòu)造者聯(lián)系,安排一次會

議來討論所需要的更改。

S4:修改和完善原型系統(tǒng)

目的:

修改原型以便糾正那些由用戶/設(shè)計者指出的不需要的或者錯誤的信息。

原則:

?裝配和修改程序模塊,而不是編寫程序。

?如果模塊更改很艱難,則把它拋卻并重新編寫模塊。

?不改變系統(tǒng)的作用范圍,除非業(yè)務(wù)原型的成本估計有相應(yīng)的改變。

?修改并把系統(tǒng)返回給用戶/設(shè)計者的速度是關(guān)鍵。

?如果構(gòu)造者不能進行任何所需要的更改,如必須即將與用戶/設(shè)計者進行對

話。

?設(shè)計者必須能很舒適地使用改進的原型。

責(zé)任劃分同步驟S2

5.構(gòu)件組裝模型

23

構(gòu)件組裝模型導(dǎo)致了軟件的復(fù)

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論