软件开发模型2:增量模型/螺旋模型/敏捷模型
文章目錄
- 4 增量模型(Incremental Model)
- 4.1 優點
- 4.2 缺點
- 5 螺旋模型(Spiral Model)
- 6 敏捷模型(Agile Modeling)
轉載自博文:
軟件開發的11種模式
https://blog.csdn.net/xi_gua_gua/article/details/53107283
軟件開發流程與模式
https://blog.csdn.net/oscar999/article/details/79168778
4 增量模型(Incremental Model)
在增量模型中,軟件被作為一系列的增量構件來設計、實現、集成和測試,每一個構件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構成。
增量模型在各個階段并不交付一個可運行的完整產品,而是交付滿足客戶需求的一個子集的可運行產品。整個產品被分解成若干個構件,開發人員逐個構件地交付產品,這樣做的好處是軟件開發可以較好地適應變化,客戶可以不斷地看到所開發的軟件,從而降低開發風險。但是,增量模型也存在以下缺陷:
①由于各個構件是逐漸并入已有的軟件體系結構中的,所以加入構件必須不破壞已構造好的系統部分,這需要軟件具備開放式的體系結構。
②在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而使軟件過程的控制失去整體性。
在使用增量模型時,第一個增量往往是實現基本需求的核心產品。核心產品交付用戶使用后,經過評價形成下一個增量的開發計劃,它包括對核心產品的修改和一些新功能的發布。這個過程在每個增量發布后不斷重復,直到產生最終的完善產品。
例如,使用增量模型開發文字處理軟件。可以考慮,第一個增量發布基本的文件管理、編輯和文檔生成功能,第二個增量發布更加完善的編輯和文檔生成功能,第三個增量實現拼寫和文法檢查功能,第四個增量完成高級的頁面布局功能。
也可以這樣理解(來自唐老師課件):
①將系統功能分解為互不重疊的子功能,它引進了增量包的概念,無須等到所有需求都出來, 只要某個需求的增量包出來即可進行開發。雖然某個增量包可能還需要進一步適應客戶的需求并且更改,但只要這個增量包足夠小,其影響對整個項目來說是可以承受的。
②每次全力實現一個子功能。 由于每次只提交用戶部分功能,用戶有較充分的時間學習和適應新的產品。
③增量模型融合了瀑布模型的基本成分(重復應用)和原型實現的迭代特征。該模型采用隨著日程時間的進展而交錯的線性序列,每一個線性序列產生軟件的一個可發布的“增量”。當使用增量模型時,第1個增量往往是核心的產品,即第1個增量實現了基本的需求,但很多補充的特征還沒有發布。客戶對每一個增量的使用和評估都作為下一個增量發布的新特征和功能,這個過程在每一個增量發布后不斷重復,直到產生了最終的完善產品
④子功能全部完成后系統開發結束。
4.1 優點
①人員分配靈活,一開始不需要投入大量人力
②先推出核心的產品,在后續增加相應的功能
③增量能夠有計劃的管理技術風險
④適用于需求經常變更的軟件開發過程
4.2 缺點
①如果增量包之間存在相交的情況未很好的處理,則必須做全盤的系統分析
5 螺旋模型(Spiral Model)
1988年,巴利·玻姆(Barry Boehm)正式發表了軟件系統開發的“螺旋模型”,它將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合于大型復雜的系統。
螺旋模型沿著螺線進行若干次迭代,圖中的四個象限代表了以下活動:
①制定計劃:確定軟件目標,選定實施方案,弄清項目開發的限制條件;
②風險分析:分析評估所選方案,考慮如何識別和消除風險;
③實施工程:實施軟件開發和驗證;
④客戶評估:評價開發工作,提出修正建議,制定下一步計劃。
螺旋模型由風險驅動,強調可選方案和約束條件從而支持軟件的重用,有助于將軟件質量作為特殊目標融入產品開發之中。但是,螺旋模型也有一定的限制條件,具體如下:
①螺旋模型強調風險分析,但要求許多客戶接受和相信這種分析,并做出相關反應是不容易的,因此,這種模型往往適應于內部的大規模軟件開發。
②如果執行風險分析將大大影響項目的利潤,那么進行風險分析毫無意義,因此,螺旋模型只適合于大規模軟件項目。
③軟件開發人員應該擅長尋找可能的風險,準確地分析風險,否則將會帶來更大的風險
一個階段首先是確定該階段的目標,完成這些目標的選擇方案及其約束條件,然后從風險角度分析方案的開發策略,努力排除各種潛在的風險,有時需要通過建造原型來完成。如果某些風險不能排除,該方案立即終止,否則啟動下一個開發步驟。最后,評價該階段的結果,并設計下一個階段。
螺旋模型很大程度上是一種風險驅動的方法體系,因為在每個階段之前及經常發生的循環之前,都必須首先進行風險評估
關于此模型,簡單總結如下(來自唐老師課件):
①.采用一種迭代的方法來進行系統開發,它將瀑布模型和快速原型模型結合起來
②.軟件項目分解成多個不同的版本完成
③.每個版本的開發過程都需要用戶參與
④.根據前一個版本的反饋計劃下一個版本
⑥.風險驅動的螺旋模型適用于內部開發的大型軟件項目,但是,只有在開發人員具有風險分析和排除風險的經驗及專門知識時,使用這種模型才會獲得成功。
6 敏捷模型(Agile Modeling)
敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,軟件項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特征。換言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態。
敏捷開發小組主要的工作方式:
①作為一個整體工作;
②按短迭代周期工作;
③每次迭代交付一些成果,關注業務優先級,檢查與調整。
敏捷開發的4個核心思想:
①強調面對面的溝通,人和人的相互交流勝于任何流程和工具
②把精力集中在可執行的程序上,可以運行的產品勝于編制綜合性文檔,強調了原型、模型、demo等的重要性
③團隊合作和團隊激勵,合作勝于談判,敏捷開發能將需求、開發、測試等全部團隊成員融合成一個整體,大家都是一條線上的螞蚱
④超強的適應能力,適應變化勝于按部就班,敏捷開發的特點就是快速
敏捷軟件開發要注意項目規模,規模增長,團隊交流成本就上去了,因此敏捷軟件開發暫時適合不是特別大的團隊開發,比較適合一個組的團隊使用。
簡而言之,就是:
①一切從簡 ②擁抱變化 ③高效工作 ④持續開發
總結
以上是生活随笔為你收集整理的软件开发模型2:增量模型/螺旋模型/敏捷模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: codeblocks安装后提示找不到编译
- 下一篇: 移动iptv安装三方软件