一、典型的軟體過程
1、定義:瀑布過程模型(wiston royce):又稱經典的生命週期模型,是乙個系統的,順序的
軟體開發方法,以使用者需求分析開始,通過策劃,建模,構建和部署的過程,最終提
供完整的軟體支援
2、特定:
1、各階段相互分離的,且相互之間有順序性和依賴性
前一段工作完成之後,後一階段的工作才能開始
後乙個階段的工作結果依賴於前乙個階段工作的正確結果輸出
2、推遲編碼:嚴格先設計和編碼
3、文件驅動,保證質量
3、侷限性:
1)阻塞狀態:等待的時間要遠超實際開發時間
2)實際上軟體專案很少遵循瀑布模型的順序的:
客戶通常很難清楚的描述所有的需求,而瀑布模型卻要求必須開始就明確。。。
架構設計很難一開始就設計完美。。
3)客戶必須有足夠的耐心,因為只能等待接近尾聲的時候才能看到專案結果:
系統存在重大的問題/系統不滿足使用者的預期
4、適用專案
專案定義的需求非常穩定,且正確性非常重要每一步都需要驗證的專案
5、為wiston royce正名:
1)相鄰的步驟間需要回溯
2)模型要走兩遍,先有乙個模擬版本,再次基礎之上手機反饋,改進各個步驟,
並交付乙個最終的版本。
二、增量模型(1996 史蒂夫. 麥可康奈爾)
1、採用瀑布模型,如果你的客戶要求你在乙個不可能完成的時間上提交產品,你改怎麼辦?
–》首先實現乙個核心(基本),然後在後續版本中細化和擴充
–》將待開發的軟體模組化,將每個模組作為乙個增量元件,從而分批次的分析,設計,
編碼和測試增量元件。
2、特點:
(1)縮短使用者使用時間的時間
(2)有利於開發者逐步積累開發經驗,由於於技術復用
(3)以元件的形式進行開發的,降低風險,乙個週期(構件)內的錯誤不會影響下乙個
週期(構件)中的錯誤
(4)核心元件最先被開發的,每個構件整合,不斷的測試,
保證了核心元件的可靠性
(5)需求是明確的,體系結構明確的。
3、缺點:
(1)、待開發的軟體必須可以被模組化,如果不能模組化/很難模組化。。。
4、難點:
(1)、必須要有乙個開放式的體系結構(把心的增量構件整合到現有體系結構中
不會破壞原有的產品)
5、適用專案:
(1)可分批進行交付
(2)可被模組化
(3)開發人員對應用領域不熟悉,難以一次性進行系統開發
三、演化模型:快速原型
系統需求不明確,交付時間嚴格限制
增量模型:功能的數量上去迭代的
演化模型:功能的深度和細化程度上
1、定義:利用原型輔助軟體開發的一種新思想,經過簡單的快速分析,快速實現乙個原型,
使用者與開發者在試用了原型過程中加強溝通和反饋,通過反覆的複審,評價和
改進,較少誤解,彌補抖動,適應需求的變化。
–》明確需求+可執行的原型系統。
2、可執行的原型系統確定了需求之後,它應該被如何處理?
構建第乙個系統通常都是不好用的,很慢,太多,很難用,或者兼而有之。
—丟棄掉,重新設計。
–》稍作修改,成為真實系統(幾乎很少)。
3、優點:
較少風險:需求不明確的風險
4、缺點:
(1)利用相關者看到你的軟體產品(原型)之後–》隨便搭建,並沒有考慮質量
和長期的可維護性,不願意重建了,要求稍作修改投入使用。
(2)軟體工程師為了快速搭建乙個原型系統,選用的技術或者工具都是他所熟悉,
可能這些技術或者工具都是付符合技術走向的。使用的演算法低效的。。。
5、適用的專案
(1)需求不明確
(2)開發工程師可能對演算法的效率,作業系統的適用性,人機互動的形式沒有把握。
6、說明:
當做一門技術使用。
四、演化模型:螺旋模型(1988 barray beohm)
1、定義:
一種風險驅動型的過程模型,將快速原型和瀑布模型進行了迭代式的融合。
顯著特點:1、採用迴圈的方式逐步加深系統的定義和實現的深度
2、確定了一系列的里程碑作為支撐,快速得到使用者認可
2、描述:
(1)若干個螺旋線組成,每個迴路表示軟體過程的乙個階段,從裡到外,概要設計-》
需求-》設計-》。。。
(2)每個迴路分為4分小階段
a)指定計畫:為專案的這個階段定義目標,指定一些可選的實施方案,
弄清專案的開發限制(軟體)
b)風險分析:分析評估所選方案,考慮如何識別和消除風險,構建原型
c)實施階段:開發與驗證
d)客戶的評價:修改,指定下乙個工作計畫
3、優點:
(1)對可選方案的構建條件的強調,有助於該方案的重用
(2)減少了過多的測試(浪費資源)和測試不足(故障多)帶來的風險
4、缺點:
(1)強調風險分析,要求客戶接受和相信這種分析,並作出反應–》不容易
(2)如何風險分析極大的影響了專案的利潤。。。
(3)風險評估需要豐富的風險經驗和專門的知識,如果沒有及時發現,,,,
(4)過多迭代增加成本,延遲交付時間
5、適用專案:
(1)大型的,內部的,高風險的專案中
五、演化模型:噴泉模型(1990 b.h soller/ j.m edwards)
1.定義:一種以需求動動力,以物件為驅動的模型,主要用於描述物件導向的軟體
開發過程,強調迭代和無間隙(各個活動間沒有明確的邊界)的特點。
2、優點:各階段可同步進行,提高開發效率,節省時間
3、缺點:
(1)各階段重合,需要大量開發人員
(2)嚴格管理文件,審核難度比較大。
4,適用專案:
rational 統一過程
敏捷開發:極限過程
微軟的解決方案。
軟體過程模型
瀑布模型是將軟體生存週期中的各項活動規定為一種線性順序連線的若干階段的模型,包括需求分析 設計 編碼 測試 執行與維護。它規定了由前至後 相互銜接的固定次序,如同瀑布流水逐級下落,瀑布模型為軟體的開發和維護提供了一種有效的管理模式,根據這一模式制定開發計畫,進行成本預算,組織開發力量,以專案的階段評...
軟體過程模型
軟體過程模型習慣上也稱為軟體開發模型,他是軟體開發全部過程 活動和任務的結構框架。典型的軟體過程有瀑布模型 增量模型 演化模型 原型模型 螺旋,模型 噴泉模型 基於構件的開發模型和形式化方法模型等。定義 瀑布模型是將軟體生產週期中的各個活動規定為依線性順序連線的若干階段的模型,包括需求分析 設計 編...
軟體過程模型
軟體過程是為了獲得高質量軟體所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。通常使用生命週期模型簡潔地描述軟體過程。生命週期模型規定了把生命週期劃分成哪些階段及各個階段的執行順序,因此,也稱為過程模型。常見的過程模型有瀑布模型 快速原型模型 增量模型 螺旋模型 噴泉模型等。1.瀑布模型...