1. 程式人生 > >【軟考】——軟體工程基礎知識(軟體過程模型)

【軟考】——軟體工程基礎知識(軟體過程模型)

軟體過程模型

軟體過程模型???——》

軟體過程模型???——》瀑布模型、增量模型、演化模型、噴泉模型、基於構建的開發模型、形式化方法模型、統一過程模型、敏捷方法;

瀑布模型???——》以文件為驅動、適合於軟體需求很明確的軟體專案的模型;

優點???——》

  1. 可強迫開發人員採用規範的方法;
  2. 嚴格規定了各階段必須提交的文件;
  3. 要求每個階段結束後,都要進行嚴格的評審;

缺點???——》

  1. 過於理想化,缺乏靈活性;
  2. 需求或設計中的錯誤往往到了專案後期才能夠被發現,對專案風險的控制能力較弱;

變體???——》V模型;???——》將驗證確認活動應用於早期軟體工程工作的方法;

V模型的優點:

  • 容易理解,管理成本低;
  • 強調開發的階段性再起計劃以及需求調查和產品測試;

V模型的缺點:

  • 客戶必須清晰的表達需求;???——》對於專案風險的控制能力較弱;

關鍵字:需求明確;

增量模型???——》融合了瀑布模型的基本成分和原型實現的迭代特徵;可以快速開發出核心產品

優點:

  1. 第一個可交付版本所需要的成本和時間很少
  2. 減少使用者需求的變更
  3. 開發由增量表示的小系統所承擔的風險不大。

  缺點:

  1. 如果沒有對使用者的變更要求進行規劃,那麼產生的初始變數可能會造成後來增量的不穩定;
  2. 如果需求不像早期思考的那樣穩定和完整,那麼一些增量就需要重新開發,重新發布;
  3. 管理髮生的成本、進度和配置的複雜性可能會超出組織的能力;

注意:

  1. 第一個增量往往是核心的產品;
  2. 每一增量可以分別開發;???——》將需求分段為一系列增量;
  3. 適用於軟體體系結構開發,加入新構件過程簡單;

演化模型???——》原型模式、螺旋模型;

原型模式???——》原型是預期系統的一個可執行的版本,反映系統性質的一個選定子集;

一個原型不必滿足目標軟體的所有約束???——》目的是快速、低成本的構建原型;

原型模式分類???——》探索型原型、實驗型原型、演化型原型;

  1. 探索型原型???——》弄清目標的要求確定縮寫的特性;
  2. 實驗型原型???——》驗證方案或演算法的合理性,是在大規模開發和實現前,用於考察方案是否合適;
  3. 演化型原型???——》將原型作為目標系統的一部分;通過多次對原型的完善得到最終的目標系統;

優點???——》能快速、低成本地構建原型;

缺點???——》必須要求具有技能高水平的原型化人員;

適用於:需求不夠明確的專案;

關鍵詞:需求不夠明確

螺旋模型???——》屬於瀑布模型和演化模型的結合;並加入風險分析;

注意:

  1. 支援風險分析;???——》瀑布模型與增量模型忽視了風險模型;
  2. 支援使用者需求的動態變化;

優點???——》提高軟體的適應能力;降低了軟體開發的風險。

不足???——》過多的迭代次數增加了開發成本,延遲了提交時間;

適用於???——》龐大、複雜並且具有高風險的系統。支援需求的動態變化

關鍵詞:風險;

噴泉模型???——》以使用者需求為動力,以物件作為驅動模型;???——》適合面向物件的開發方法;

優點???——》各階段沒有明顯的界線,可以同步開發,提高了軟體開發效率,節省了時間;

缺點???——》各開發階段是重疊的,不利於專案的管理;嚴格要求文件,使得稽核的難度加大;

注意:

各個開發階段是重疊???——》各個階段沒有明顯的界限;???——》開發人員可以同步進行;???——》需要大量的開發人員;???——》不利於專案的管理;

具有迭代性無間隙性

適用於???——》面向物件的開發方法

基於構建的開發模型???——》利用預先包裝的構件來構造應用系統;

優點???——》構件組裝模型導致軟體的複用,提高了開發效率;允許多個專案同時開發,降低了費用,提高了可維護性;

缺點???——》構件的引入具有較大的風險;過分依賴於構件,構件的質量影響產品的質量;需要精幹的、有經驗的分析人員和開發人員,客戶的滿意度低;

適用於???——》需要一定的構件模型支援的軟體專案;

注意:

  1. 需要以迭代的方式構建構件???——》本質上是演化模型;
  2. 不同之處在於基於構建的開發模型採用預先打包的軟體構件開發應用系統;

形式化方法模型???——》建立在嚴格數學基礎上的一種軟體開發方法;

主要活動???——》生成計算機軟體形式化的數學規格說明;

優點???——》易於發現需求的歧義性、不完整性和不一致性;易於對分析模型、設計模型和程式進行驗證;

缺點???——》需要通過嚴密的數學演算;

適用於???——》需要生成計算機軟體形式化的數學規格說明;

敏捷方法

極限程式設計XP???——》近似螺旋的開發方法,把整個開發過程分解為相對比較小而簡單的週期,通過大家積極的溝通反饋,開發人員和客戶都比較清楚當前的開發進度、需要解決的問題等等,根據這些實際情況去調整開發過程,這是極限程式設計的思想;

並列爭球法???——》Scurm是一個增量、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代週期組成,一個短的迭代週期稱為一個Sprint,每個Sprint的建議長度是2到4周;在Scrum中,使用產品Backlog來管理產品的需求,產品團隊總是先開發對客戶具有較高價值的需求。挑選的需求在Sprint計劃會議上經過討論、分析和估算得到相應的任務列表,我們稱它為Sprint backlog。在每個迭代結束時,Scrum團隊將遞交潛在的可交付的產品增量;

水晶法???——》發展一種提倡“機動性的”方法,包含具有共性的核心元素,每個都含有獨特的角色、過程模式、工作產品和實踐;Crystal 家族實際上是一組經過證明、對不同型別專案非常有效的敏捷過程,它的發明使得敏捷團隊可以根據其專案和環境選擇最合適的 Crystal 家族成員;

自適應軟體開發???——》是一種適合對需求多變、開發期短的軟體專案管理的軟體工程方法;

敏捷統一過程(AUP)

瞭解下真題???——》

【題目1】某專案組擬開發一個大規模系統,且具備了相關領域及類似規模系統的開發經驗。下列過程模型中,(  )最適合開發此專案。

A.原型模型        B.瀑布模型          C.V模型        D.螺旋模型

【題目2】為了有效地捕獲系統需求,應採用(  )。

A.瀑布模型        B.V模型        C.原型模型        D.螺旋模型

【題目3】若全面採用新技術開發一個大學記賬系統,以替換原有系統,則宜選擇採用()進行開發。

A.瀑布模型  B.演化模型  C.螺旋模型  D.原型模型

【題目4】某開發小組欲開發一個規模較大、需求較明確的專案。開發小組對專案領域熟悉且該專案與小組開發的某一專案相似,則適宜採用(  )開發過程模型。

A.瀑布模型  B.演化模型  C.螺旋模型  D.噴泉模型

【題目5】(  )開發過程模型最不適用於開發初期對軟體需求缺乏準確全面認識的情況。

A.瀑布模型  B.演化模型  C.螺旋模型  D.增量模型

【題目6】某公司計劃開發一產品,技術含量很高,與客戶相關的風險也很多,則最適於採用(  )開發過程模型。

A.瀑布模型  B.原型模型  C.增量模型  D.螺旋模型

大家給個贊,就是給我最大的鼓勵!!!

注意:“贊”位於右上角;