(软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型
文章目錄
- 一:軟件過程概念
- (1)定義
- (2)構(gòu)成
- 二:主要模型
- (1)瀑布模型
- A:定義
- B:特點
- C:優(yōu)缺點
- D::適用范圍
- E:實際的瀑布模型
- (2)快速原型模型
- A:定義
- B:原理
- C:優(yōu)缺點
- D:適用范圍
- (3)增量模型(了解)
- A:定義
- B:優(yōu)缺點
- C:風(fēng)險更大的增量模型
- (4)螺旋模型(了解)
- A:定義
- B:優(yōu)缺點
- (5)噴泉模型
- (6)其他模型
一:軟件過程概念
(1)定義
軟件過程:是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)框架,它規(guī)定了完成任務(wù)的工作步驟。通常用軟件生命周期模型來描述軟件過程。常見模型有:
- 瀑布模型
- 快速原型模型
- 增量模型
- 螺旋模型
- 噴泉模型
- 其他模型
(2)構(gòu)成
科學(xué)、有效的軟件過程應(yīng)該定義一-組適合于所承擔(dān)的項目特點的任務(wù)集合。一個任務(wù)集合包括一組軟件工程任務(wù)、里程碑和應(yīng)該交付的產(chǎn)品。
二:主要模型
(1)瀑布模型
A:定義
瀑布模型:將軟件生命周期的各項活動規(guī)定為依照固定順序連接的若干階段工作,最終得到軟件產(chǎn)品
B:特點
①階段間具有順序性和依懶性
- 必須等前一階段的工作完成之后,才能開始后一階段的工作;
- 前一階段的輸出文檔是后一階段的輸入文檔
- 只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果
②推遲實現(xiàn)的觀點
- 瀑布模型在編碼之前設(shè)置了系統(tǒng)分析與系統(tǒng)設(shè)計的各個階段,分析與設(shè)計階段的基本任務(wù)規(guī)定,在這兩個階段主要考慮目標系統(tǒng)的邏輯模型,不涉及軟件的物理實現(xiàn)。
- 清楚地區(qū)分邏輯設(shè)計與物理設(shè)計,盡可能推遲程序的物理實現(xiàn),是按照瀑布模型開發(fā)軟件的一-條重要的指導(dǎo)思想。
③質(zhì)量保證的觀點
- 為了保證所開發(fā)的軟件的質(zhì)量,在瀑布模型的每個階段都必須完成規(guī)定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務(wù)。
- 完整、準確的合格文檔不僅是軟件開發(fā)時期各類人員之間相互通信的媒介,也是運行時期對軟件進行維護的重要依據(jù)。
- 越是早期階段犯下的錯誤,暴露出來的時間就越晚,排除故障改正錯誤所需付出的代價也越高。
- 因此,及時審查,是保證軟件質(zhì)量、降低軟件成本的重要措施。每個階段結(jié)束前都要對所完成的文檔進行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。
C:優(yōu)缺點
優(yōu)點:
- 強迫開發(fā)人員使用規(guī)范的方法
- 嚴格規(guī)定了每個階段提交的文檔
- 要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗證
- 對文檔的約束,使軟件維護變得容易一些,且能降低軟件預(yù)算
缺點:
- 在軟件開發(fā)的初期階段就要求作出正確的、全面的、完整的需求分析對許多應(yīng)用軟件來說是極其困難的
- 在需求分析階段,當(dāng)需求確定后,無法及時驗證需求是否正確、完整
- 作為整體開發(fā)的瀑布模型,由于不支持產(chǎn)品的演化,缺乏靈活性,對開發(fā)過程中很難發(fā)現(xiàn)的錯誤,只有在最終產(chǎn)品運行時才能暴露出來,從而使軟件產(chǎn)品難以維護
D::適用范圍
- 用戶的需求非常清楚全面,且在開發(fā)過程中沒有或很少變化;
- 開發(fā)人員對軟件的應(yīng)用領(lǐng)域很熟悉;
- 用戶的使用環(huán)境非常穩(wěn)定;
- 開發(fā)工作對用戶參與的要求很低。.
E:實際的瀑布模型
在設(shè)計階段可能發(fā)現(xiàn)規(guī)格說明文檔中的錯誤,而設(shè)計上的缺陷或錯誤可能在實現(xiàn)過程中顯現(xiàn)出來,在綜合測試階段將發(fā)現(xiàn)需求分析、設(shè)計或編碼階段的許多錯誤。因此,實際的瀑布模型是帶“反饋環(huán)”的,如下圖所示(圖中實線箭頭表示開發(fā)過程,虛線箭頭表示維護過程)。當(dāng)在后面階段發(fā)現(xiàn)前面階段的錯誤時,需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再回來繼續(xù)完成后面階段的任務(wù)。
(2)快速原型模型
A:定義
快速原型模型:快速建立可運行的程序,它完成的功能往往是最終產(chǎn)品功能的一個子集
B:原理
快速原型模型的第一步是快速建立一個能反映用戶主要需求的原型系統(tǒng),讓用戶通過實踐來了解目標系統(tǒng)的概貌。通常,用戶試用原型系統(tǒng)之后會提出許多修改意見,開發(fā)人員按照用戶的意見快速地修改原型系統(tǒng),然后再次請用戶試用,一旦用戶認為這個原型系統(tǒng)確實能做他們所需要的工作,開發(fā)人員便可據(jù)此書寫規(guī)格說明文檔,根據(jù)這份文檔開發(fā)出的軟件便可以滿足用戶的真實需求。
C:優(yōu)缺點
優(yōu)點:
- 開發(fā)的軟件產(chǎn)品通常滿足用戶需求
- 軟件產(chǎn)品開發(fā)基本是線性過程
缺點:
- 準確原型設(shè)計困難
- 原型理解可能不同
- 不利于開發(fā)人員創(chuàng)新
D:適用范圍
- 對所開發(fā)的領(lǐng)域比較熟悉而且有快速的原型開發(fā)工具;
- 項目招投標時,可以以原型模型作為軟件的開發(fā)模型;
- 進行產(chǎn)品移植或升級時,或?qū)σ延挟a(chǎn)品原型進行客戶化工作時。
(3)增量模型(了解)
A:定義
增量模型:先完成一個系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加功能,如此遞增下去直至滿足全部系統(tǒng)需求
- 每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。使用增量模型時,
第一個增量構(gòu)件往往實現(xiàn)軟件的基本需求,提供最核心的功能。把軟件產(chǎn)品分解成增量構(gòu)件時,應(yīng)該使構(gòu)件的規(guī)模適中。分解時唯一必須遵守的約束條件是:當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中時,所形成的產(chǎn)品必須是可測試的
B:優(yōu)缺點
優(yōu)點:
- 短時間內(nèi)可提交完成部分功能
- 逐漸增加產(chǎn)品功能,用戶適應(yīng)產(chǎn)品快
缺點:
- 增量構(gòu)件劃分以及集成困難
- 容易退化為邊做邊改模型
C:風(fēng)險更大的增量模型
下圖是一種風(fēng)險更大的增量模型。用這種方式開發(fā)軟件,不同的構(gòu)件將并行地構(gòu)建,因此有可能加快工程進度。但是,這種方法將有構(gòu)件無法集成到一起的風(fēng)險,除非密切地監(jiān)控整個開發(fā)過程,否則整個工程可能毀于一旦。
(4)螺旋模型(了解)
A:定義
螺旋模型:在每個階段之前都增加了風(fēng)險分析過程的快速原型模型
B:優(yōu)缺點
優(yōu)點:
- 利于把軟件質(zhì)量作為軟件的開發(fā)目標
- 減少測試
- 維護和開發(fā)不分開
缺點:
- 風(fēng)險估計困難
(5)噴泉模型
噴泉模型:典型的面向?qū)ο?/font>軟件過程模型。體現(xiàn)了迭代和無縫的特性
(6)其他模型
- Rational統(tǒng)一過程
- 敏捷過程與極限編程
- 微軟過程
總結(jié)
以上是生活随笔為你收集整理的(软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android EditText 控件中
- 下一篇: mysql优化之sakila测试数据库