1. 程式人生 > >軟體工程(二)——過程模型

軟體工程(二)——過程模型

筆者正在學習《軟體工程-實踐者的研究方法》這本書,記錄下一些讀書筆記,共勉!

軟體過程:一個為建造高質量軟體所需要完成的活動、動作和任務的框架。

1.通用過程模型

軟體工程的通用過程框架定義了五種框架活動:溝通、策劃、建模、構建和部署。軟體過程中的過程流描述了在執行順序和執行時間上,如何組織框架中的活動、動作和任務。

1.1 定義框架活動

1.2 明確任務集

任務集:定義了為達到一個軟體工程動作的目標所需要完成的工作。

1.3 過程模式

過程模式描述了軟體工程工作中遇到的過程相關的問題、明確了問題環境並給出了針對該問題的一種或幾種可證明的解決方案。通俗的說,過程模式提供了一個模板——一種在軟體過程的背景下,統一描述問題解決方案的方法。
在這裡插入圖片描述

2.慣用過程模型

2.1瀑布模型

瀑布模型,又稱為經典生命週期(classic life cycle),提出了一個系統的、順序的軟體開發方法,從使用者需求規格說明開始,通過計劃、建模、構建和部署的過程,最終提供一個完整的軟體並提供持續的技術支援。
在這裡插入圖片描述

2.2增量過程模型

許多情況下,初始的軟體需求有明確的定義,但是整個開發過程卻不宜單純運用線性模型;同時,可能迫切需要為使用者迅速提供一套功能有限的軟體產品,然後在後續版本中再進行細化和擴充套件功能。這時候可採用增量過程模型。增量過程模型在每個階段運用線性序列,每個線性序列以一種演化過程流生產增量類似的方式生產出一個可交付增量。
在這裡插入圖片描述


注意:運用增量模型的時候,第一個增量往往是核心產品,滿足了基本的需求,但是許多附加的特性(已知的和未知的)沒有提供。客戶使用該核心產品或進行仔細評價,並根據評價結果制定下一個增量。增量模型側重於每一個增量都提交一個可以執行的產品。

2.3演化過程模型

軟體開發過程中,商業和產品需求常常發生變化,直接導致最終產品難以實現;嚴格的交付時間使開發團隊不可能圓滿完成任務。演化模型是迭代的過程模型,軟體開發人員能夠逐步開發出更完整的軟體版本。

2.3.1原型開發模型

在這裡插入圖片描述
兩種情況下可以使用原型開發模型:
①客戶提出了一些基本功能,但是沒有詳細定義功能和特性需求;
②開發人員可能對演算法效率、作業系統的相容性和人機互動的形式等情況不確定。

2.3.2螺旋模型

在這裡插入圖片描述
螺旋模型是一種演進式軟體過程模型,結合了原型的迭代性質和瀑布模型的系統性和可控性的特點,具有快速開發越來越完善軟體版本的潛力。

3.專用過程模型

專用過程模型應用面比較單一,只適用於某些特定的軟體工程方法。

3.1基於構件的開發

基於構件的開發模型具有許多螺旋模型的特點,本質上是演化模型,需要以迭代的方式構件軟體。基於構件開發模型採用預先打包的軟體構件開發應用系統。
基於構件的開發模型由以下步驟組成:
①對於該問題領域研究和評估可用的基於構件的產品;
②考慮構件整合的問題;
③設計軟體架構容納這些構件;
④將構建整合到架構中;
⑤進行充分的測試以保證功能正常。

3.2形式化方法模型

形式化方法模型的主要活動是生成計算機軟體形式化的數學規格說明,形式化方法使軟體開發人員可以應用嚴格的數學符號來說明、開發和驗證基於計算機的系統。

3.3面向方面的軟體開發

面向方面的軟體開發(Aspect-Oriented Programming, AOP),為定義、說明、設計和構建方面(aspect)提供過程和方法,是對橫切關注點區域性表示的一種機制。(橫切關注點:Crossing Concern,涉及系統多個方面的功能、特性和資訊的關注點)