一 軟件過(guò)程
-
軟件過(guò)程定義以下內(nèi)容
- 人員與分工
- 所執(zhí)行的活動(dòng)
- 活動(dòng)的細(xì)節(jié)與步驟
-
軟件過(guò)程通過(guò)一下方式組織和管理軟件生命周期
- 定義軟件生產(chǎn)過(guò)程中的活動(dòng)
- 定義這些活動(dòng)的順序及其關(guān)系
-
軟件過(guò)程的目的
- 標(biāo)準(zhǔn)化(可模仿)、可預(yù)見(jiàn)性(降低風(fēng)險(xiǎn))、提高開(kāi)發(fā)頻率、得到高質(zhì)量產(chǎn)品
- 提升制定時(shí)間和預(yù)算計(jì)劃的能力
黑盒過(guò)程和白盒過(guò)程

- 存在的問(wèn)題
- 要求開(kāi)發(fā)之前需求被充分理解
- 與客戶的交互只在開(kāi)始(需求)和最后(發(fā)布)--類(lèi)似于產(chǎn)品制造過(guò)程
- 而實(shí)際情況與這完全不同

- 優(yōu)點(diǎn)
- 可通過(guò)改進(jìn)可見(jiàn)性來(lái)減少風(fēng)險(xiǎn)
- 在開(kāi)發(fā)過(guò)程中,通過(guò)不斷地獲得顧客的回饋允許變更--類(lèi)似于服務(wù)過(guò)程
二 典型的軟件過(guò)程模型
- 瀑布模型
-
增量過(guò)程模型
- 增量模型
- 快速應(yīng)用程序開(kāi)發(fā)
-
演化過(guò)程模型
- 螺旋模型
- 原型模型
-
其他過(guò)程模型
- 形式化過(guò)程
- 基于復(fù)用的軟件過(guò)程
- 敏捷過(guò)程模型
瀑布模型

- 優(yōu)點(diǎn) -- 追求效率
- 缺點(diǎn) -- 過(guò)于理想化
增量過(guò)程模型
- 增量模型

** 軟件被作為一系列的增量來(lái)設(shè)計(jì)、實(shí)現(xiàn)、集成和測(cè)試,每一個(gè)增量是由多種相互作用的模塊所形成的提供功能的代碼片段構(gòu)成 **
本質(zhì): 「以迭代的方式運(yùn)用瀑布模型」
-
RAD模型
- 快速應(yīng)用開(kāi)發(fā)RAD(Rapid Application Development)
- 側(cè)重于短開(kāi)發(fā)周期(一般為60-90天)的增量過(guò)程模型
- 多個(gè)團(tuán)隊(duì)并行進(jìn)行開(kāi)發(fā)
- 缺點(diǎn)
- 需要大量的人力資源
- 如果沒(méi)有在短時(shí)間內(nèi)急速完成整個(gè)系統(tǒng)做好準(zhǔn)備,RAD項(xiàng)目將會(huì)失敗
- 如果系統(tǒng)不能被合理的模塊化,RAD將會(huì)帶來(lái)很多問(wèn)題
- 技術(shù)風(fēng)險(xiǎn)很高的情況下,不宜采用RAD
- 快速應(yīng)用開(kāi)發(fā)RAD(Rapid Application Development)
演化過(guò)程模型
- 快速原型法

「原型的類(lèi)型」
-
Throwaway prototyping(拋棄式原型)
- 最初的原型在完成并得到認(rèn)可后,將不會(huì)作為交付給用戶的最終系統(tǒng)的一部分,而是被拋棄,其目的只是為了收集與驗(yàn)證需求
- 該原型可能是不可執(zhí)行的
- Evolutionary prototyping(演化式原型)
- 最初構(gòu)造的原型將具備較高的質(zhì)量,包含了系統(tǒng)的核心功能,然后通過(guò)收集需求對(duì)其不斷進(jìn)行改善和精華
- 該類(lèi)原型是可執(zhí)行的,將成為最終系統(tǒng)的一部分
「快速原型法的優(yōu)缺點(diǎn)」
優(yōu)點(diǎn):提高和改善客戶/用戶的參與程度,最大程度響應(yīng)用戶的變化。
缺點(diǎn):為了盡快完成原型,開(kāi)發(fā)者沒(méi)有考慮整體軟件的質(zhì)量和長(zhǎng)期的可維護(hù)性,系統(tǒng)結(jié)構(gòu)通常較差;可能混淆原型系統(tǒng)與最終系統(tǒng);額外的開(kāi)發(fā)費(fèi)用。
螺旋式過(guò)程模型

- 螺旋模型沿著螺線旋轉(zhuǎn),在四個(gè)象限內(nèi)表達(dá)四個(gè)方面的活動(dòng)
- 制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的限制
- 風(fēng)險(xiǎn)分析:分析所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn)
- 實(shí)施工程:實(shí)施軟件開(kāi)發(fā)
- 客戶評(píng)估:評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議
「螺旋式過(guò)程模型的優(yōu)缺點(diǎn)」
- 出發(fā)點(diǎn):開(kāi)發(fā)過(guò)程中及時(shí)識(shí)別和分析風(fēng)險(xiǎn),并采取適當(dāng)措施以消除或減少風(fēng)險(xiǎn)來(lái)的危害。
- 優(yōu)點(diǎn):結(jié)合了原型的迭代性質(zhì)與瀑布模型的系統(tǒng)性和可控性,是一種風(fēng)險(xiǎn)驅(qū)動(dòng)型的過(guò)程模型。
- 缺點(diǎn):適用于大規(guī)模軟件項(xiàng)目,特別是內(nèi)部項(xiàng)目,周期長(zhǎng)、成本高。
三 總結(jié)
「軟件過(guò)程」存在黑盒過(guò)程、白盒過(guò)程。其中黑盒過(guò)程與客戶交流不夠,客戶只在開(kāi)始和結(jié)束才能接觸到產(chǎn)品開(kāi)發(fā);白盒過(guò)程則可以在產(chǎn)品過(guò)程開(kāi)發(fā)中獲得客戶的反饋,從而不斷的改進(jìn)開(kāi)發(fā)。
?? 「軟件過(guò)程模型」主要有「瀑布模型」、「增量過(guò)程模型」、「演化過(guò)程模型」?!钙俨寄P汀购茈y回溯,一般適用成熟的技術(shù)開(kāi)發(fā)。「增量過(guò)程模型」中有「增量模型」和「RAD模型」,從本質(zhì)上來(lái)講,「增量模型」是一種迭代方式運(yùn)用瀑布模型,「RAD模型」是一種并行的增量模型?!缚焖僭汀故菢?gòu)建一個(gè)原型,然后客戶據(jù)此原型提出進(jìn)一步的需求。「螺旋式過(guò)程模型」結(jié)合了原型的迭代性質(zhì)和瀑布模型的系統(tǒng)性和可控性,但周期長(zhǎng)、成本高。
??綜合各個(gè)模型,只有確定項(xiàng)目開(kāi)發(fā)的性質(zhì),才能合理選擇適合的軟件過(guò)程模型,使得軟件開(kāi)發(fā)正常的進(jìn)行。