瀑布式模型 (Waterfall Model) 古典生命週期 (Classic life cycle) 線性序列模型 (linear sequential model) 將軟體開發的生命週期分為6個階段:
(1) 系統規劃 (System Planning) 考慮整個系統的大部規劃,由上而下設計。
(2) 需求分析 (Requirement Analysis) 蒐集使用者對於系統的需求。
(3) 設計 (Design) 設計工程師將需求轉化成軟體,通常在程式碼產生前瞭解其設計品質如何。
(4) 建置 (Implement) 程式開始Coding ,設計工程師將程式轉變成機器碼。
(5) 測試 (Testing) 開始測試所設計的程式碼。
(6) 維護 (Support) 軟體交付給客戶之後,針對客戶反應的問題,需求的變更等,提供調整與改變。
雛形式模型 (Prototyping Model) 設計者先以經濟有效的方式快速建立一個可操作的系統模型,完成系統部分的關鍵功能供使用者評估,藉以展示或的客戶的認同或意見後再逐步修改雛形系統,反覆客戶意見回饋與雛形修改後,最後完成所有正式的系統功能。
優點: (1)允許使用者隨時改變需求(2)與使用者互動中可以隨時協助發現使用者新的需求(3)隨著系統開發,可以充分瞭解使用者需求(4)系統開發迅速、應變性高,可以降低風險。
缺點:(1)缺少有效的設計評估準則以決定軟體開發成熟與否。(2)缺少嚴謹的分析與設計,系統執行效率差(3)因雛形系統改變快速,文件製作管理落後,造成維護上的困難(4)使用者必須不斷的參與,如果使欲者無法配合將造成開發中斷或延遲
快速開發模型 (RAD Model) 線性順序軟體開發模型的變種,強調快速,利用基礎元件建造快速開發,如果對於需求掌握清楚,可以在短時間發展出功能完善的系統。分為5個開發階段:
(1) 企業流程建模 將企業活動中的資訊流模型化,決定需要產生哪些資訊,資訊的傳遞流程,資訊的使用者。
(2) 資料模型建立 將資訊流簡化,並建立所需資料的物件,標出物件的特徵與定義物件之間的關係。
(3) 處理建模 資料物件導入資訊流,再加以描述其操作如增加、修改、刪除或查詢等功能。
(4) 應用程式生成 利用自動化輔助軟體來建造模型,與4GL程式語言來編寫系統程式。
(5) 測試與反覆 RAD過程強調重複使用,大多數持繩原都已經測試與驗證過,可大幅縮短開發時間。
優點:系統在節省成本下快速被開發,具有瀑布式模型的優點,模型件過程循序漸進,且標準化流程。
缺點:需有足夠人力建立RAD小組。快速開發的結果,難免影響到品質。並非適用於所有型態的應用程式開發。技術性風險高時不適用。
漸增式模型 結合了瀑布型模型與雛形式模型的觀念,時間進行時交錯的使用線性序列,使得每個線性序列都能夠產生可交付的軟體與版次。例如:第一版產出基礎的檔案管理,第二版再產出版面編排功能,第三版產出拼字校對語文法見查,第四版產出頁面設定,每一次漸增式營的軟體的產出都是完整的軟體系統。
優點:每一層都是序列性開發,因此解決了雛形法維護困難的問題。開發過程可以即時接受使用者的回饋,於下一層開發時做修改。
缺點:開放式體系,會使設計效率變差。
螺旋式模型 結合線性序列模型與雛形模型,並加入風險分析。以螺線形式,由內往外發展,每旋轉一圈便開發出新的一個更完善的版本。在旋轉的圓圈切成若干扇形區,稱為任務區。分為(1)需求溝通(2)專案計畫(3)風險分析(4)工程執行(5)建構與釋出(6)客戶評估 此六階段如圓圈般週而復始,每轉一圈便完成一個新的版本。
軟體能力成熟度模型 CMMI (Capability Maturity Model) 卡耐基美隆軟體工程學院將軟體開發目前的程序的成熟度定義了5個等級:
(1) 初始級 (Initial)
(2) 可重複級 (Repeatable)
(3) 已定義級 (Defined)
(4) 已管理級 (Managed)
(5) 優化級 (Optimized)
沒有留言:
張貼留言