1. 程式人生 > >【軟體工程】第二章 軟體過程

【軟體工程】第二章 軟體過程

2.1 軟體生存週期過程的概念

2.1.1 引入

  1. 軟體開發有哪些活動?(要做哪些對映?)
  2. 應如何正確組織開發活動,形成求解軟體的邏輯?

2.1.2 軟體生存週期過程在軟體工程知識框架中的位置

  • 介於軟體開發本質和形成軟體生存週期模型與軟體工程生存週期過程之間。

2.1.3 軟體生存週期與軟體生存週期的過程(軟體過程)的比較

  • 軟體生存週期:軟體產品或系統的一系列活動的全週期,從形成概念開始(即有做某個軟體產品的想法開始),歷經開發、交付、修訂、演化,最後淘汰。
  • 軟體生存週期的過程:軟體生存週期中的一系列相關過程。
  • 引入表述軟體開發需要做什麼?(對映)的三個概念:
  1. 過程是活動的集合(即過程包含活動)。
  2. 活動是任務的集合(即活動包含任務)。
  3. 任務是把輸入轉換為輸出的操作。

2.2 軟體生存週期過程的分類

2.2.1 分類

其中基本過程中的開發過程又包括:

注意區分:開發過程並不是軟體生存週期過程,而是軟體生存週期過程中的子部分。

基本過程間的聯絡:

  • 支援過程與組織過程貫穿於整個軟體生存週期過程。

2.3 軟體生存週期模型的概念

  • 軟體生存週期模型:特殊的,也稱為“軟體開發模型”,指軟體過程、活動、任務的結構框架。

2.4 常見的軟體生存週期模型

2.4.1 瀑布模型

  • 依次經過:需求、設計、編碼、單元測試、整合、維護的路徑。
  • “正向”步驟流:需提交軟體需求規約、設計文件、實際程式碼、測試用例、最終產品等。
  • “反向”步驟流:對前一個可提交產品的重複變更(即返工,可發生在當前正在進行的工作、下一個階段、或更後的階段)。

優點:

  1. 存在設計之前的規約 ,能夠明確需求,為後續的開發打下良好基礎。
  2. 存在建造構件之前的設計階段,即編碼前的設計。
  3. 每一階段的複審,保證了軟體質量問題。
  4. 允許基線和配置早期接收控制。

缺點:

  1. 客戶必須完整清晰的表達需求,開發人員必須理解很好的理解需求。
  2. 缺乏靈活性。易造成偏差從而導致開發出的軟體不能滿足需求。
  3. 可能在早期階段需要花費大量時間建立用處不大的文件。
  4. 直至專案結束,無法演示系統,風險較大。

2.4.2 增量模型

  • 該模型有一個假設,即需求可以分段,成為一系列增量產品,每一個增量可以分別的開發。

優點:

  1. 具有瀑布模型的所有優點。
  2. 第一個可交付版本所需時間較少。
  3. 各個小系統承擔的風險不大。
  4. 允許在專案開始時僅對一兩個增量投資,稱為增量投資。

缺點:

  1. 產生的初始增量可能造成後來增量的不穩定。
  2. 如果需求不像早期思考的那樣穩定和完整,可能需要重新開發釋出增量。
  3. 管理髮生的成本較高,進度和配置較複雜。

2.4.3 演化模型

  • 彈性的過程模式,由小開發部組成,每一步歷經需求分析、設計、實現和驗證,通過對每個增量的這種迭代,完成最終軟體產品的開發。

特點:

  • 針對事先不能完整地定義需求的軟體開發。
  • 針對使用者的核心需求,開發核心系統。
  • 根據使用者的反饋,實施活動的迭代。

2.4.4 噴泉模型

特徵:迭代、無縫
與面向物件技術聯絡緊密。

(完)