軟體工程學之軟體過程(軟體工程實踐之二)

2021-04-01 05:04:25 字數 4686 閱讀 8782

軟體工程學之軟體過程

--------軟體過程及過程模型

1.概述

2.軟體工程再定義

3.軟體工程與軟體過程

4.軟體過程模型

5.過程模型關係圖示

一、概述

軟體過程

-我很喜歡的解釋就是軟體從最初想法到使用滅亡的乙個過程。那麼很自然人們就會想到,軟體過程是就是軟體工程呢?答案是:不是,完成不是。下面就是筆者講述軟體過程的及軟體工程的一些理論。

二、軟體工程的再定義

1、為什麼使用軟體工程學來開發軟體的再定義:使用軟體工程來開發軟體  

的乙個根源是什麼呢?是為了提高軟體產品的質量,因為要求質量的保

證所以採用工程學方法來開發軟體。

2.軟體工程再定義:在《使用軟體工程學來開發軟體》一文中,曾經定義過

軟體工程是:使用工程學來開發軟體,工程學向來包括乙個過程,一組方

法和一系列的工具,我們稱之為軟體工程。現在我們仍然是這個概念,那

麼到底軟體工程學怎麼去組織產品開發的呢?

3、軟體工程是一種層次化的技術:過程是軟體工程的根基,它定義一組關

鍵的過程區域。方法,定義「如何做」,它貫穿了過程中每乙個步驟,

提供解決方案。工具,是用於是支援過程和方法自動和半自動化的工

作,它同樣貫穿過程中每乙個步驟。

4.軟體工程的一般檢視(1

)工程是對技術

(或社會

)實體的分析、設計、建造、驗證和管理。(2

)工程學是如何建立實體的?

<1>

要解決的問題是什麼?

<2>

要用於解決該問題的實體具有什麼特點?

<3>

如何實現該實體

(解決方案)?

<4>

如何建造該實體?

<5>

採用什麼方法去發現該實體設計和建造過程中產生的錯誤?(3

)軟體工程的一般檢視

:分為三個階段,

<1>

定義階段:解決「做什麼」?

<2>

開發階段:解決」如何做」?

<3>

維護階段:解決「改變」,一般包括「糾錯」,「適應」,「修改」,「增強」四種?(4

)其它的檢視,下面是補充的檢視,也應該附加到軟體工程:

·軟體專案追蹤和控制。

·正式的技術複審。

·軟體質量保證。

·軟體配置管理。

·文件的準備和產生。

·可復用管理。

·測試。

·風險管理

5.軟體工程學理論圖示

:三.

軟體工程與軟體過程三.

軟體工程與軟體過程三.

軟體工程與軟體過程三.

軟體工程與軟體過程三.

軟體工程與軟體過程

通過上面的說明

,我們可以完全清楚軟體過程只是軟體工程中的乙個層級

,也是軟體工程中重要的一層級

,是軟體工程的根基

.軟體工程與軟體過程是包括與被包括的關係.四

.軟體過程模型

1.為了解決產業環境中的實際問題,必須綜合出乙個開發策略,該策略能夠

覆蓋過程、方法和工具三個層次和(二2(3)所述的)軟體開發的一般階

段。這個策略常常被稱為過程模型或軟體工程范型。下面討論各種軟體範

型,每種范型都有各自的優點和缺點,也有各自己的使用場合。

2.所有軟體開發都可看成是乙個問題迴圈解決過程,其中包含四個截然不同

的階段:狀態描述,問題定義,技術開發和方案綜述。狀態描述「表示了事

物的當前狀態」;問題定義標識了要解決的特定問題;技術開發通過應用某

些技術來解決問題;方案綜述提交結果(如文件、程式、資料、新的商業功

能、新產品)給那些從一開始就需要方案的人。[注意:這四個階段可以貫

穿過程中每乙個開發的階段

]3.各種模型的描述

(1)線性順序模型:也稱為傳統生命週期(或瀑布模型),它定義軟體開

髮如流水線一樣,它包括如下階段:分析、設計、編碼、測試、維

護。<1>

特點:產品開發是成線性型的,雖然有迭代,但這種迭代是不明顯

的,也不清楚的,

而且使用者一定要等到產品開發完成才可以看

到軟體。

<2>

優點:提供一套開發的模板,也是老牌的開發過程模型。

<3>

缺點:首先,需求的變更時,軟體變更困難;其次,使用者不能跟進項

目,只有等;

再其次,軟體開發人員的浪費,因為整個組的人

員必須等到上面的階段完成

才可以進行下階段的工作。

<4>

實用環境:所有的環境都適應,但它多用於傳統開發中,但軟體模型的

使用不是一定

的,因些大型專案開發一般也遵守它的模板,

並配合其它的模型開發。

(2)原型模型:先和使用者一起,以快速的方法開發出乙個模擬系統(也稱為

拋棄型系統),這樣讓客戶和軟體開發人員一起來評估軟

件,以獲取總體的一些需求和軟體未來的藍圖。

<1>

特點:它由使用者參與並快速開發出乙個用於評估和獲取需求的系統作

為根基的,而

且他所有的過程是採用迭代方式來開發的,因此

需求的完整性會很強,而且

也適合使用者的習慣。

<2>

優點:系統開發真正的開發出來後,使用者非常滿意。

<3>

缺點:首先,原型應該是拋棄的,但大部分人不會這麼做,那麼這個

系統就會導致

的一些不必要的缺點出現;其次,原型是採用快

速開發方法開發出來的,所

以沒考慮到各種系統的穩定和優化

性,但如果系統不拋棄,那麼真正的系統

可能採用原來低效的

東西,因此系統也會低效出現在使用者面前。

<4>

實用環境:主要是研發全新的產品時最實用。

(3)rad

模型:一種「線性順序模型」的變種。採用軟體復用技術開發,主要

是能在短時間內開發出軟體產品,它包括如下幾個過程:業務

建模,資料建模,處理模型,應用生成,測試及反覆。

<1>

特點:節省時間

<2>

優點:採用原有的元件,能快速開發出應用,一般用於資訊化系統的

開發,如企業

管理系統等。

<3>

缺點:軟體的伸縮性受到很大的限制,而且效能調整及架構調整不方

便,要去更改

原來的介面。

<4>

實用環境:要求快速開發出軟體產品的環境。

(4)演化軟體過程模型:採用演化的概念,使軟體一步步完善的一種開發模

型,跟線性順序模型相比完全是不同的一種開發方

法,採用的思想就是迭代的開發。它包括增量開發

模型、螺旋開發模型、構件組裝模型和併發開發模

型四種。下面分別介紹:

增量開發模型:一種結合線性順序模型基本成分和原型開發模型迭代特

徵的一種模型,它採用增量式的開發,每次發布乙個增

強功能的版本,而且是可評估的產品。

<1>

特點:首先開發出核的框架,每次可以少量或大量在上面增加功能。

<2>

優點:可以在人少時開發專案,當人員增加時又可擴充套件,是一種很好

的開發模型。

<3>

缺點:<4>

實用環境:物件導向的專案開發。

螺旋開發模型:將原型化模型的迭代特徵和線性模型中控制的和系統化

的方面結合起來的一種模型,它包括下面六大任務區域:1

、使用者通訊——建立開發者和使用者之間有效通訊

所需要的任務。

2、計畫——定義資源、進度及其他相

關專案資訊所需要的任務。

3、風險分析——評估技術

的及管理的風險所需要的任務。

4、工程——建立應用

的乙個或多個表示所需要的任務。

5、建造及發布——

建造、測試、安裝和提供使用者支援

(如文件及培訓)所需

要的任務。

6、使用者評估——基於在工程階段產生的或

在安裝階段實現的軟體表示的評估。

<1>

特點:能夠在關鍵點上控制風險,適合大專案的開發。

<2>

優點:能夠控制關鍵點的風險。

<3>

缺點:使用者可信度比較低,因為它比較新的模型,而且評估風險的技

術要求比較高。

<4>

實用環境

:大專案的開發,風險比較高的專案。

構件組裝模型:實現軟體復用技術。

<1>

特點:採用類的復用來實現軟體開發。

<2>

優點:能夠復用原來的構件。

<3>

缺點:<4>

實用環境:元件式的開發。

併發開發模型

(5)形式化方法模型:採用數學的方法用自動化的控制軟體開發每乙個過

程,淨室軟體工程就是它的變種

<1>

特點:採用數學的方法控制,有一系列的自動化工具檢測

<2>

優點:軟體開發出來準確

<3>

缺點:成本很高,對技術人員的要求也特別高

<4>

實用環境:軟體質量要求特別高,精度要求特別高的專案。

五.過程模型關係圖示

《使用軟體工程學開發軟體(軟體工程實踐之一)》

軟體工程導論 軟體工程學概述

軟體工程關注於大型程式的構造 軟體工程的中心課題是控制複雜性 軟體經常變化 開發軟體的效率非常重要 和諧的合作是開發軟體的關鍵 軟體必須有效地支援它的使用者 在軟體工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品 用分階段的生命週期計畫嚴格管理 堅持進行階段評審 實行嚴格的產品控...

軟體工程學概述

第一章 軟體工程學概述 1.1軟體危機 表現 對軟體開發成本和進度估計不準確 使用者對已完成的軟體常常不滿意 軟體質量不可靠 軟體不可維護 軟體缺乏適當文件 軟體成本佔計算機系統總成本比例逐年上公升 軟體開發生產率提高的速度更不上計算機應用普及的速度 原因 軟體 軟體維護通常意味著改正或者修改原來的...

軟體工程學簡述

軟體危機是指計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。考試中名詞解釋或者選擇題為主 1 對軟體開發成本和進度的估計常常很不準確。2 使用者對 已完成的 軟體系統不滿意的現象經常發生。3 軟體產品的質量往往靠不住。4 軟體通常沒有適當的文件資料。5 軟體成本在計算機系統總成本中所佔的比例逐年...