件開發系統研發涉及的(de)内容比較複雜(zá),可(kě)以包括生命周期模型、形式化(huà)流程、配置管理(lǐ)、各種運籌學工具(PERT、GERT等)以及各種風險評估技術等,但其核心思想卻很簡單,引用(yòng)亞曆山大(dà)的(de)名言就是分(fēn)而治之(divideandconquer), 即先把系統分(fēn)解爲适當的(de)模塊并分(fēn)别進行開發或采購(gòu),再把各個(gè)模塊集成起來(lái),從而完成整個(gè)系統的(de)開發。
以下(xià)簡單介紹一下(xià)系統工程的(de)結構化(huà)生命周期模型,作爲我們後面討(tǎo)論軟件工程結構化(huà)生命周期模型的(de)基礎。結構化(huà)生命周期模型也(yě)稱爲瀑布模型(waterfallmodel) ,它從提出需求直到系統報廢爲止,刻畫(huà)了(le)一個(gè)工程系統工程從起始到完成的(de)整個(gè)周期,是系統工程中最常用(yòng)的(de)生命周期模型。本書(shū)采用(yòng)的(de)瀑布模型包括需求分(fēn)析、系統設計、子系統開發、系統集成、系統安裝、系統演化(huà)和(hé)系統退役共七個(gè)階段,如圖1所示。
圖1系統工程生命周期模型的(de)瀑布模型
1)需求分(fēn)析(requirementsanalysis) 階段。需求分(fēn)析也(yě)稱爲需求定義。需求定義的(de)内容包括對(duì)功能需求和(hé)非功能需求的(de)定義,後者包括前面介紹軟件質量屬性時(shí)談到的(de)有效性、可(kě)靠性、魯棒性、可(kě)伸縮性、可(kě)維護性等。需求定義也(yě)可(kě)以采用(yòng)“減法’形式,即給出不符合需求的(de)系統特征以及不可(kě)接受的(de)系統行爲。
2)系統設計(systemdcsign) 階段。如上所述,系統工程的(de)核心思想是分(fēn)而治之,系統設計階段完成的(de)主要任務就是系統的(de)分(fēn)解。這(zhè)- -階段的(de)任務還(hái)包括子系統及其接口的(de)定義以及系統的(de)總體需求在各子系統中的(de)分(fēn)配。
3) 子系統開發(sub-systemdevelopment) 階段。子系統開發階段可(kě)包括多(duō)個(gè)并行的(de)子系統開發項目,一般需要引入關鍵活動路徑識别等方法對(duì)各子系統的(de)開發時(shí)序進行規劃,從而實現對(duì)整個(gè)系統開發進度的(de)控制。在很多(duō)情況下(xià),通(tōng)過COTS (CommercialOff-The-Shelf, 現貨軟件)采購(gòu)有利于加快(kuài)開發進度,節省開發經費。
4)系統集成(systemintegration)階段。在這(zhè)個(gè)階段中,要根據系統的(de)設計方案,把由上
一階段獲得(de)的(de)子系統合并,組成一個(gè)完整的(de)系統,并進行聯調與測試。系統集成階段有時(shí)也(yě)稱爲系統的(de)場(chǎng)外聯試階段。
5) 系統安裝(systemintallation) 階段。許多(duō)系統經過集成聯調和(hé)測試後,需要拆分(fēn)運到現場(chǎng),并在現場(chǎng)(即系統真正發揮效用(yòng)的(de)環境中)重新安裝就位。這(zhè)個(gè)過程就是系統安裝階段,有時(shí)稱爲系統的(de)現場(chǎng)聯試階段。在這(zhè)個(gè)階段中,往往會暴露—些未預見或不可(kě)預見的(de)問題,包括物(wù)理(lǐ)不相容性問題、界面協調性問題以及數據轉換問題等。這(zhè)些問題一般是由于設計階段對(duì)系統運行環境所作的(de)假設不正确而引起,多(duō)數可(kě)以采取彌補措施加以解決。不過,若在這(zhè)個(gè)階段出現無法解決的(de)問題,則有可(kě)能導緻前功盡棄,即整個(gè)系統開發完全失敗或部分(fēn)失敗。這(zhè)是結構化(huà)生命周期模型的(de)-個(gè)重要弱點。
6)系統演化(huà)(systermevolution) 階段。引入系統演化(huà)階段的(de)目的(de)是延長(cháng)系統的(de)生命周期,提高(gāo)系統的(de)效益。大(dà)型系統往往需要巨額投資,-般都具有較長(cháng)的(de)預期生命周期。但随著(zhe)需求的(de)變化(huà)和(hé)其他(tā)新系統的(de)引入,系統與其運行環境之間的(de)耦合可(kě)能出現一些無法預測的(de)問題,因而需要進行必要的(de)修改,這(zhè)就是系統演化(huà)。系統演化(huà)過程是有限的(de)。-方面,演化(huà)代價将随著(zhe)系統壽命期的(de)延長(cháng)和(hé)原始設計資料的(de)流失而迅速上升;另-方面,系統經過反複修改之後,其基本結構逐漸被破壞,繼續保留其殘餘部分(fēn)将失去意義。
7)系統退役(systemdecomissioning) 階段。系統退役階段指一-個(gè)系統停止服務,并從
其工作環境中被去除的(de)過程。系統退役階段也(yě)有許多(duō)重要的(de)工作需要完成,例如:處理(lǐ)系統中可(kě)能污染環境的(de)材料,回收系統中可(kě)以循環利用(yòng)的(de)部件甚至模塊,銷毀敏感數據等。