件開發(fā)系統(tǒng)研發(fā)涉及的內(nèi)容比較復(fù)雜,可以包括生命周期模型、形式化流程、配置管理、各種運(yùn)籌學(xué)工具(PERT、GERT等)以及各種風(fēng)險(xiǎn)評(píng)估技術(shù)等,但其核心思想?yún)s很簡(jiǎn)單,引用亞歷山大的名言就是分而治之(divideandconquer), 即先把系統(tǒng)分解為適當(dāng)?shù)哪K并分別進(jìn)行開發(fā)或采購(gòu),再把各個(gè)模塊集成起來,從而完成整個(gè)系統(tǒng)的開發(fā)。
以下簡(jiǎn)單介紹一下系統(tǒng)工程的結(jié)構(gòu)化生命周期模型,作為我們后面討論軟件工程結(jié)構(gòu)化生命周期模型的基礎(chǔ)。結(jié)構(gòu)化生命周期模型也稱為瀑布模型(waterfallmodel) ,它從提出需求直到系統(tǒng)報(bào)廢為止,刻畫了一個(gè)工程系統(tǒng)工程從起始到完成的整個(gè)周期,是系統(tǒng)工程中最常用的生命周期模型。本書采用的瀑布模型包括需求分析、系統(tǒng)設(shè)計(jì)、子系統(tǒng)開發(fā)、系統(tǒng)集成、系統(tǒng)安裝、系統(tǒng)演化和系統(tǒng)退役共七個(gè)階段,如圖1所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖1系統(tǒng)工程生命周期模型的瀑布模型
1)需求分析(requirementsanalysis) 階段。需求分析也稱為需求定義。需求定義的內(nèi)容包括對(duì)功能需求和非功能需求的定義,后者包括前面介紹軟件質(zhì)量屬性時(shí)談到的有效性、可靠性、魯棒性、可伸縮性、可維護(hù)性等。需求定義也可以采用“減法’形式,即給出不符合需求的系統(tǒng)特征以及不可接受的系統(tǒng)行為。
2)系統(tǒng)設(shè)計(jì)(systemdcsign) 階段。如上所述,系統(tǒng)工程的核心思想是分而治之,系統(tǒng)設(shè)計(jì)階段完成的主要任務(wù)就是系統(tǒng)的分解。這- -階段的任務(wù)還包括子系統(tǒng)及其接口的定義以及系統(tǒng)的總體需求在各子系統(tǒng)中的分配。
3) 子系統(tǒng)開發(fā)(sub-systemdevelopment) 階段。子系統(tǒng)開發(fā)階段可包括多個(gè)并行的子系統(tǒng)開發(fā)項(xiàng)目,一般需要引入關(guān)鍵活動(dòng)路徑識(shí)別等方法對(duì)各子系統(tǒng)的開發(fā)時(shí)序進(jìn)行規(guī)劃,從而實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)開發(fā)進(jìn)度的控制。在很多情況下,通過COTS (CommercialOff-The-Shelf, 現(xiàn)貨軟件)采購(gòu)有利于加快開發(fā)進(jìn)度,節(jié)省開發(fā)經(jīng)費(fèi)。
4)系統(tǒng)集成(systemintegration)階段。在這個(gè)階段中,要根據(jù)系統(tǒng)的設(shè)計(jì)方案,把由上
一階段獲得的子系統(tǒng)合并,組成一個(gè)完整的系統(tǒng),并進(jìn)行聯(lián)調(diào)與測(cè)試。系統(tǒng)集成階段有時(shí)也稱為系統(tǒng)的場(chǎng)外聯(lián)試階段。
5) 系統(tǒng)安裝(systemintallation) 階段。許多系統(tǒng)經(jīng)過集成聯(lián)調(diào)和測(cè)試后,需要拆分運(yùn)到現(xiàn)場(chǎng),并在現(xiàn)場(chǎng)(即系統(tǒng)真正發(fā)揮效用的環(huán)境中)重新安裝就位。這個(gè)過程就是系統(tǒng)安裝階段,有時(shí)稱為系統(tǒng)的現(xiàn)場(chǎng)聯(lián)試階段。在這個(gè)階段中,往往會(huì)暴露—些未預(yù)見或不可預(yù)見的問題,包括物理不相容性問題、界面協(xié)調(diào)性問題以及數(shù)據(jù)轉(zhuǎn)換問題等。這些問題一般是由于設(shè)計(jì)階段對(duì)系統(tǒng)運(yùn)行環(huán)境所作的假設(shè)不正確而引起,多數(shù)可以采取彌補(bǔ)措施加以解決。不過,若在這個(gè)階段出現(xiàn)無法解決的問題,則有可能導(dǎo)致前功盡棄,即整個(gè)系統(tǒng)開發(fā)完全失敗或部分失敗。這是結(jié)構(gòu)化生命周期模型的-個(gè)重要弱點(diǎn)。
6)系統(tǒng)演化(systermevolution) 階段。引入系統(tǒng)演化階段的目的是延長(zhǎng)系統(tǒng)的生命周期,提高系統(tǒng)的效益。大型系統(tǒng)往往需要巨額投資,-般都具有較長(zhǎng)的預(yù)期生命周期。但隨著需求的變化和其他新系統(tǒng)的引入,系統(tǒng)與其運(yùn)行環(huán)境之間的耦合可能出現(xiàn)一些無法預(yù)測(cè)的問題,因而需要進(jìn)行必要的修改,這就是系統(tǒng)演化。系統(tǒng)演化過程是有限的。-方面,演化代價(jià)將隨著系統(tǒng)壽命期的延長(zhǎng)和原始設(shè)計(jì)資料的流失而迅速上升;另-方面,系統(tǒng)經(jīng)過反復(fù)修改之后,其基本結(jié)構(gòu)逐漸被破壞,繼續(xù)保留其殘余部分將失去意義。
7)系統(tǒng)退役(systemdecomissioning) 階段。系統(tǒng)退役階段指一-個(gè)系統(tǒng)停止服務(wù),并從
其工作環(huán)境中被去除的過程。系統(tǒng)退役階段也有許多重要的工作需要完成,例如:處理系統(tǒng)中可能污染環(huán)境的材料,回收系統(tǒng)中可以循環(huán)利用的部件甚至模塊,銷毀敏感數(shù)據(jù)等。