一 軟件過程
-
軟件過程定義以下內(nèi)容
- 人員與分工
- 所執(zhí)行的活動
- 活動的細節(jié)與步驟
-
軟件過程通過一下方式組織和管理軟件生命周期
- 定義軟件生產(chǎn)過程中的活動
- 定義這些活動的順序及其關(guān)系
-
軟件過程的目的
- 標準化(可模仿)疼鸟、可預(yù)見性(降低風險)捂人、提高開發(fā)頻率、得到高質(zhì)量產(chǎn)品
- 提升制定時間和預(yù)算計劃的能力
黑盒過程和白盒過程
黑盒過程
- 存在的問題
- 要求開發(fā)之前需求被充分理解
- 與客戶的交互只在開始(需求)和最后(發(fā)布)--類似于產(chǎn)品制造過程
- 而實際情況與這完全不同
白盒過程
- 優(yōu)點
- 可通過改進可見性來減少風險
- 在開發(fā)過程中刷允,通過不斷地獲得顧客的回饋允許變更--類似于服務(wù)過程
二 典型的軟件過程模型
- 瀑布模型
-
增量過程模型
- 增量模型
- 快速應(yīng)用程序開發(fā)
-
演化過程模型
- 螺旋模型
- 原型模型
-
其他過程模型
- 形式化過程
- 基于復用的軟件過程
- 敏捷過程模型
瀑布模型
瀑布模型
- 優(yōu)點 -- 追求效率
- 缺點 -- 過于理想化
增量過程模型
- 增量模型
增量模型
** 軟件被作為一系列的增量來設(shè)計摹察、實現(xiàn)恩掷、集成和測試,每一個增量是由多種相互作用的模塊所形成的提供功能的代碼片段構(gòu)成 **
本質(zhì): 「以迭代的方式運用瀑布模型」
-
RAD模型
- 快速應(yīng)用開發(fā)RAD(Rapid Application Development)
- 側(cè)重于短開發(fā)周期(一般為60-90天)的增量過程模型
- 多個團隊并行進行開發(fā)
- 缺點
- 需要大量的人力資源
- 如果沒有在短時間內(nèi)急速完成整個系統(tǒng)做好準備供嚎,RAD項目將會失敗
- 如果系統(tǒng)不能被合理的模塊化黄娘,RAD將會帶來很多問題
- 技術(shù)風險很高的情況下峭状,不宜采用RAD
- 快速應(yīng)用開發(fā)RAD(Rapid Application Development)
演化過程模型
- 快速原型法
快速原型法
「原型的類型」
-
Throwaway prototyping(拋棄式原型)
- 最初的原型在完成并得到認可后,將不會作為交付給用戶的最終系統(tǒng)的一部分逼争,而是被拋棄优床,其目的只是為了收集與驗證需求
- 該原型可能是不可執(zhí)行的
- Evolutionary prototyping(演化式原型)
- 最初構(gòu)造的原型將具備較高的質(zhì)量,包含了系統(tǒng)的核心功能誓焦,然后通過收集需求對其不斷進行改善和精華
- 該類原型是可執(zhí)行的胆敞,將成為最終系統(tǒng)的一部分
「快速原型法的優(yōu)缺點」
優(yōu)點:提高和改善客戶/用戶的參與程度,最大程度響應(yīng)用戶的變化杂伟。
缺點:為了盡快完成原型移层,開發(fā)者沒有考慮整體軟件的質(zhì)量和長期的可維護性,系統(tǒng)結(jié)構(gòu)通常較差稿壁;可能混淆原型系統(tǒng)與最終系統(tǒng)幽钢;額外的開發(fā)費用歉备。
螺旋式過程模型
螺旋式過程模型
- 螺旋模型沿著螺線旋轉(zhuǎn)傅是,在四個象限內(nèi)表達四個方面的活動
- 制定計劃:確定軟件目標,選定實施方案蕾羊,弄清項目開發(fā)的限制
- 風險分析:分析所選方案喧笔,考慮如何識別和消除風險
- 實施工程:實施軟件開發(fā)
- 客戶評估:評價開發(fā)工作,提出修正建議
「螺旋式過程模型的優(yōu)缺點」
- 出發(fā)點:開發(fā)過程中及時識別和分析風險龟再,并采取適當措施以消除或減少風險來的危害书闸。
- 優(yōu)點:結(jié)合了原型的迭代性質(zhì)與瀑布模型的系統(tǒng)性和可控性,是一種風險驅(qū)動型的過程模型利凑。
- 缺點:適用于大規(guī)模軟件項目浆劲,特別是內(nèi)部項目,周期長哀澈、成本高牌借。
三 總結(jié)
「軟件過程」存在黑盒過程、白盒過程割按。其中黑盒過程與客戶交流不夠膨报,客戶只在開始和結(jié)束才能接觸到產(chǎn)品開發(fā);白盒過程則可以在產(chǎn)品過程開發(fā)中獲得客戶的反饋适荣,從而不斷的改進開發(fā)现柠。
?? 「軟件過程模型」主要有「瀑布模型」、「增量過程模型」弛矛、「演化過程模型」够吩。「瀑布模型」很難回溯丈氓,一般適用成熟的技術(shù)開發(fā)废恋√革「增量過程模型」中有「增量模型」和「RAD模型」,從本質(zhì)上來講鱼鼓,「增量模型」是一種迭代方式運用瀑布模型拟烫,「RAD模型」是一種并行的增量模型∑荆「快速原型」是構(gòu)建一個原型硕淑,然后客戶據(jù)此原型提出進一步的需求〖问辏「螺旋式過程模型」結(jié)合了原型的迭代性質(zhì)和瀑布模型的系統(tǒng)性和可控性置媳,但周期長、成本高公条。
??綜合各個模型拇囊,只有確定項目開發(fā)的性質(zhì),才能合理選擇適合的軟件過程模型靶橱,使得軟件開發(fā)正常的進行寥袭。