瀑布模型
描述:每個軟體過程順序銜接、一次性通過,最常用。
優點:由文件和風險驅動,利於提高大型專案開發的質量和效率。
缺點:建設週期長、風險大、難以滿足使用者需求。
適用場合:需求明確且很少變更的專案,如二次開發或公升級型專案。
螺旋模型
描述:以原型為基礎沿螺線旋轉、每轉一圈都經過計畫/風險分析/實施/評估等過程且得到相應新版本、經過若干次螺旋上公升得到最終版本。
優點:由文件和風險驅動,利於提高大型專案開發的質量和效率。
缺點:建設週期長、風險大、難以滿足使用者需求。
適用場合:需求經常變化的大型複雜系統。
增量模型:
描述:採用隨時間進展而交錯的線性序列、每個序列產生乙個可發布的增量、每個增量產生乙個可操作的產品、第乙個增量是核心產品。
優點:開始時不用投入大量人力資源、可以先推出核心產品以穩定使用者、可以有計畫的管理技術風險。
缺點:需要開放式體系結構,可能會產生設計效果差、開發效率低的情況。
適用場合:需求經常發生改變的軟體開發過程。
快速原型模型
描述:快速構建可執行的軟體模型,以便理解和澄清問題,進一步細化需求,在新獲取需求基礎上進行系統開發。
優點:避免由於使用者需求不明帶來的開發風險。
缺點:快速建立的模型加上連續的修改可能造成產品質量低下。
適用場合:使用者需求模糊不明的情況下。
迭代模型
描述:一次迭代過程包括了所有軟體開發流程、每一次迭代均產生乙個可發布的產品、該產品為最終產品的乙個子集。
適用於事先不能完整定義產品的所有需求,計畫多期開發的專案。
噴泉模型
描述:以使用者需求為動力、以物件為驅動的模型,支援軟體復用及多項開發活動的整合,主要支援物件導向的開發方法。
v模型
描述:以測試為中心,為軟體生命週期的每乙個階段指定了相應的測試級別:編碼階段單元測試;詳細設計階段整合測試;概要設計階段系統測試;需求分析階段驗收測試。
敏捷方法(最著名的是極限程式設計:xp)
一種輕量、高效、低風險、更強調團隊協作和溝通的開發方式,適合於中小型開發團隊,客戶需求模糊或多變。
統一過程
即up/rup,基於構件,具有用例驅動、以基本架構為中心、迭代和增量的特點;在時間上分為四個連續的階段,即初始階段、細化階段、構建階段和交付階段。
常用開發模型總結歸納:
瀑布模型(生命週期法,是生命週期法中最常用的開發模型),它將開發的過程分成軟體計畫、需求分析、軟體設計、程式編碼、軟體測試和執行維護6個階段,規定了它們自上而下,適用於大型軟體開發過程。
變換模型(演化模型)是在快速開發乙個原型的基礎上,根據使用者提出的反饋和建議,對原型進行改進,直到演化成最終軟體產品。
螺旋模型:將瀑布模型和變換模型相結合,並增加了風險分析;
噴泉模型:為軟體復用和生存週期中多項開發活動的整合提供了支援,是一種物件導向的開發方法;
智慧型模型:基於知識的軟體開發模型,與專家系統結合在一起,是一種基於規則的系統;
v模型:以測試為中心的開發模型;
增量模型:融合了瀑布模型的基本成分(重複應用)和原型實現的迭代特徵;它採用隨著時間的進展而交錯的線性序列。其最大優點是人員分配靈活;
rad(快速應用開發)模型,是乙個增量型的軟體開發過程模型,強調極短的開發周期。它是採用基於構件的開發方法。
cbsd(基於構件的開發)模型,是利用模組化方法,將整個系統模組化。整個過程分為需示分析和定義、體系結構設計、構件庫的建立、應用軟體構建、測試和發布5個階段。
構件工具常見的有microsoft的dcom , sun的ejb和omg的corba.
原型方法模型,是適用於產品開發的早期階段需求不確定時採用。其常分為水平原型(功能導航)和垂直原型(實現部分功能,重點在複雜演算法的實現)兩種
xp方法模型,是一種輕量(敏捷)、高效、低風險、柔性、可**、科學且充滿樂趣的軟體開發方式。它由價值觀(溝通、簡單、反饋、勇氣)、原則(小步快走)、實踐和行為四個部分組成
rup(rationalunified process)方法模型,是乙個統一的軟體開發過程,也是乙個通用過程框架,能應用於多領域的專案開發,它也是基於構件,使用的建模語言是uml,它有三個特點:用例驅動、以基本架構為中心、迭代和增量。其軟體過程在時間上分為四個階段:初始階段—細化階段—-構建階段—-交付階段。
軟體開發模型對比
軟體開發模型(software development model)是指軟體開發全部過程、活動和任務的結構框架。軟體開發包括需求、設計、編碼和測試等階段,有時也包括維護階段。
軟體開發模型能清晰、直觀地表達軟體開發全過程,明確規定了要完成的主要活動和任務,用來作為軟體專案工作的基礎
下面對瀑布模型 增量模型 快速原型模型 螺旋模型 噴泉模型做簡要分析。
1.瀑布模型
軟體過程模型
瀑布模型是經典的軟體開發模型,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生迴圈反饋,因此,如果有資訊未被覆蓋或者發現了問題,那麼最好 「返回」上乙個階段並進行適當的修改,專案開發程序從乙個階段「流動」到下乙個階段,每個階段之間的依賴性強
優點:1)為專案提供了按階段劃分的檢查點 2) 當前一階段完成後,只需要去關注後續階段
缺點:1) 各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量;
2) 與使用者見面晚,從而增加了開發的風險;
3) 早期的錯誤可能要等到開發後期的測試階段才能發現,發現問題越晚代價越高
適用範圍:需求很明確的軟體開發專案;
在開發時間內需求沒有或很少變化;
分析設計人員應對應用領域很熟悉;
低風險專案(對目標、環境很熟悉);
使用者使用環境很穩定;
使用者除提出需求以外,很少參與開發工作
2.增量模型
增量模型是一種非整體開發的模型,分為兩種形式:基於瀑布模型的漸增模型;基於原型的快速原型模型
軟體過程模型
缺點: 1) 由於各個構件是逐漸併入已有的軟體體系結構中的,所以加入構件必須不破壞已構造好的系統部分,這需要軟體具備開放式的體系結構。
2) 在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟體過程的控制失去整體性。
軟體開發模型對比
快速原型模型又稱原型模型,它是增量模型的另一種形式;它是在開發真實系統之前,構造乙個原型,在該原型的基礎上,逐漸完成整個系統的開發工作。快速原型模型的第一步是建造乙個快速原型,實現客戶或未來的使用者與系統的互動,使用者或客戶對原型進行評價,進一步細化待開發軟體的需求。通過逐步調整原型使其滿足客戶的要求,開發人員可以確定客戶的真正需求是什麼;第二步則在第一步的基礎上開發客戶滿意的軟體產品。
優點:減少由於軟體需求不明確帶來的開發風險。
缺點:所選用的開發技術和工具不一定符合主流的發展;快速建立起來的系統結構加上連續的修改可能會導致產品質量低下。
3.螺旋模型
軟體開發模型對比
螺旋模型將瀑布模型和增量模型結合起來,並加入了風險分析,主要分為四個工作步驟:
(1)制定計畫:確定軟體目標,選定實施方案,弄清專案開發的限制條件;
(2)風險分析:分析評估所選方案,考慮如何識別和消除風險;
(3)實施工程:實施軟體開發和驗證;
(4)客戶評估:評價開發工作,提出修正建議,制定下一步計畫。
優點:1)設計上的靈活性,可以在專案的各個階段進行變更。
2)以小的分段來構建大型系統,使成本計算變得簡單容易。
3)客戶始終參與每個階段的開發,保證了專案不偏離正確方向以及專案的可控性。
4)隨著專案推進,客戶始終掌握專案的最新資訊 , 從而他或她能夠和管理層有效地互動。
5)客戶認可這種公司內部的開發方式帶來的良好的溝通和高質量的產品
缺點:1)採用螺旋模型需要具有相當豐富的風險評估經驗和專門知識,在風險較大的專案開發中,如果未能夠及時標識風險,勢必造成重大損失。
2)過多的迭代次數會增加開發成本,延遲提交時間。
4.噴泉模型
軟體開發模型對比
噴泉模型是一種以使用者需求為動力,以物件為驅動的模型,主要用於描述物件導向的軟體開發過程。
優點:該模型的各個階段沒有明顯的界限,開發人員可以同步進行開發。其優點是可以提高軟體專案開發效率,節省開發時間,適應於物件導向的軟體開發過程。
缺點:由於噴泉模型在各個開發階段是重疊的,因此在開發過程中需要大量的開發人員,因此不利於專案的管理。此外這種模型要求嚴格管理文件,使得審核的難度加大,尤其是面對可能隨時加入各種資訊、需求與資料的情況。
9 25 軟體開發模型及開發流程
一 軟體開發模型 軟體開發模型指的是軟體開發的全部過程 活動和任務的框架。軟體開發模型的作用 能清晰直觀的表達出軟體開發的全部過程,明確規定了軟體開發的具體活動和任務,是企業級軟體開發專案的基礎和保障。二 開發模型種類 1.瀑布模型 核心思想 是按工序將問題簡化,將功能的實現和設計分開 便於實現分工...
模型建立流程
資料預處理 當接收到資料以後,我們應該使用print pddata.describe 觀察資料,是否有缺失值,使用pddata.head 方法,去檢視有哪些特徵值進行數值轉換,將字串變成0,1。資料缺失 數值型採用均值填充,字串型採用眾數填充。pddata age fillna pddata age...
開發模型 瀑布模型
1 是線性模型的一種,在所有模型中占有重要的位置,是其他模型的乙個基礎。2 每乙個階段執行一次,按線性順序進行軟體開發。測試切入點 測試階段屬於軟體後期階段,必須在 完成時留出足夠的時間給測試活動,否則導致測試不充分,很多問題在後期暴漏。瀑布模型優點 1 開發各個階段比較清晰 2 強調早期計畫及需求...