軟件過程的教學實例_第1頁
軟件過程的教學實例_第2頁
軟件過程的教學實例_第3頁
軟件過程的教學實例_第4頁
軟件過程的教學實例_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、本章講述在軟件生命周期全過程中應該完成本章講述在軟件生命周期全過程中應該完成的基本任務,并介紹各種常用的過程模型。的基本任務,并介紹各種常用的過程模型。 過程(過程(ISO 9000):): 把輸入轉化為輸出的一組彼此相關的資源和活動。把輸入轉化為輸出的一組彼此相關的資源和活動。 軟件過程:軟件過程: 是一個將用戶需求轉化為軟件系統(tǒng)所需要的活動集合是一個將用戶需求轉化為軟件系統(tǒng)所需要的活動集合 過程模型:過程模型: 經典模型、現(xiàn)代模型、敏捷過程、專業(yè)過程模型經典模型、現(xiàn)代模型、敏捷過程、專業(yè)過程模型第二章第二章 軟件過程軟件過程過程模型過程模型 過程模型過程模型 經典模型:瀑布、原型、增量、螺

2、旋、噴泉經典模型:瀑布、原型、增量、螺旋、噴泉 現(xiàn)代模型:統(tǒng)一過程、能力成熟度模型現(xiàn)代模型:統(tǒng)一過程、能力成熟度模型 敏捷過程:極限編程、敏捷過程:極限編程、SCRUM 專業(yè)過程模型:專業(yè)過程模型: 基于構件的開發(fā)基于構件的開發(fā)復用構件復用構件 形式化方法模型形式化方法模型無缺陷產品無缺陷產品 面向方面的軟件開發(fā)面向方面的軟件開發(fā)橫向切片橫向切片2.1 2.1 軟件生命周期的基本任務軟件生命周期的基本任務 軟件生命周期軟件生命周期(Software Life Cycle) 即軟件從定義、開發(fā)、維護直到報廢、結束其使用的即軟件從定義、開發(fā)、維護直到報廢、結束其使用的全過程。全過程。 由軟件定義、

3、軟件開發(fā)和運行維護三個時期組成。由軟件定義、軟件開發(fā)和運行維護三個時期組成。 軟件生命周期各階段的基本任務軟件生命周期各階段的基本任務軟件生命周期的基本任務軟件生命周期的基本任務 軟件定義:軟件定義:確定軟件開發(fā)工程必須完成的總目標確定軟件開發(fā)工程必須完成的總目標 問題定義:要解決的問題是什么?問題定義:要解決的問題是什么? 可行性研究:上階段所確定的問題是否有可行的解決辦可行性研究:上階段所確定的問題是否有可行的解決辦法?法? 需求分析:目標系統(tǒng)必須做什么?需求分析:目標系統(tǒng)必須做什么? 軟件開發(fā)軟件開發(fā):具體設計和實現(xiàn)在前一個時期定義的軟件。具體設計和實現(xiàn)在前一個時期定義的軟件。 概要設計

4、:怎樣宏觀地解決問題?概要設計:怎樣宏觀地解決問題? 詳細設計:應如何具體地實現(xiàn)這個系統(tǒng)?詳細設計:應如何具體地實現(xiàn)這個系統(tǒng)? 編碼和單元測試:寫出正確的、易理解、易維護的程序編碼和單元測試:寫出正確的、易理解、易維護的程序 綜合測試:通過各類型測試使達到預定要求。綜合測試:通過各類型測試使達到預定要求。軟件生命周期的基本任務(續(xù))軟件生命周期的基本任務(續(xù)) 運行維護:運行維護:修正錯誤,使軟件持久地滿足用戶需要。修正錯誤,使軟件持久地滿足用戶需要。 改正性維護:診斷和改正使用中的錯誤改正性維護:診斷和改正使用中的錯誤 適應性維護:修改以適應環(huán)境變化適應性維護:修改以適應環(huán)境變化 完善性維護

5、:根據(jù)用戶的要求改進和擴充以完善完善性維護:根據(jù)用戶的要求改進和擴充以完善 預防性維護:修改以為將來的維護作準備預防性維護:修改以為將來的維護作準備軟件生命周期模型軟件生命周期模型 軟件生命周期模型軟件生命周期模型 又稱軟件過程模型,是軟件開發(fā)模型的直觀表達。又稱軟件過程模型,是軟件開發(fā)模型的直觀表達。 規(guī)定了把生命周期劃分成哪些階段及各階段的執(zhí)行規(guī)定了把生命周期劃分成哪些階段及各階段的執(zhí)行順序。順序。 定義(定義(What)開發(fā)(開發(fā)(How)維護(維護(Change) 典型的軟件生命周期模型包括瀑布模型、原型模型、典型的軟件生命周期模型包括瀑布模型、原型模型、增量模型、螺旋模型等。增量模型

6、、螺旋模型等。2.2 瀑布模型(瀑布模型(Waterfall Model) 傳統(tǒng)的瀑布模型傳統(tǒng)的瀑布模型 模型:模型: 特點:特點: 階段間具有順序性和依賴性階段間具有順序性和依賴性 推遲實現(xiàn)推遲實現(xiàn) 質量保證質量保證 文檔文檔 缺點:太理想化缺點:太理想化2.2 瀑布模型(瀑布模型(Waterfall Model) 實際的瀑布模型實際的瀑布模型 模型:加入模型:加入“反饋環(huán)反饋環(huán)” 優(yōu)點:優(yōu)點: 強迫開發(fā)人員采用規(guī)范方法強迫開發(fā)人員采用規(guī)范方法 嚴格規(guī)定每階段必須提交的文檔嚴格規(guī)定每階段必須提交的文檔 “文檔驅動文檔驅動” 要求每階段的所有產品必須經過質量評審要求每階段的所有產品必須經過質量

7、評審 缺點:缺點: 幾乎完全依賴于書面規(guī)格說明,可能導致產品不能滿足需求。幾乎完全依賴于書面規(guī)格說明,可能導致產品不能滿足需求。如需回溯,則導致成本急劇上升。如需回溯,則導致成本急劇上升。2.2 瀑布模型(瀑布模型(Waterfall Model) 適用范圍適用范圍 一種整體開發(fā)模型一種整體開發(fā)模型 適用于適用于功能和性能明確、完整、無重大變化的軟件開功能和性能明確、完整、無重大變化的軟件開發(fā)發(fā)。例如:編譯系統(tǒng)、。例如:編譯系統(tǒng)、DBMS、OS等。等。 即在開發(fā)前均可完整、準確、一致和無二義性地定義即在開發(fā)前均可完整、準確、一致和無二義性地定義其目標功能和性能等。其目標功能和性能等。2.3 快

8、速原型模型快速原型模型(Rapid Prototype Model) 原型原型:是指模擬某種產品的:是指模擬某種產品的原始模型。原始模型。 原型系統(tǒng)原型系統(tǒng)僅包括未來系統(tǒng)的僅包括未來系統(tǒng)的主要功能,以及系統(tǒng)的重要主要功能,以及系統(tǒng)的重要接口。接口。 為了盡快向用戶提供原型,為了盡快向用戶提供原型,開發(fā)原型系統(tǒng)時應盡量使用開發(fā)原型系統(tǒng)時應盡量使用能縮短開發(fā)周期的語言和工能縮短開發(fā)周期的語言和工具。具。 快速原型模型快速原型模型是利用原型輔是利用原型輔助軟件開發(fā)的一種新思想。助軟件開發(fā)的一種新思想。加工加工原型原型原型原型快速分析快速分析和設計和設計建造建造原型原型客戶客戶評價原型評價原型快速原型

9、模型快速原型模型2.3 快速原型模型快速原型模型 特點:特點:快速快速 軟件產品開發(fā)基本上是線性順序進行。軟件產品開發(fā)基本上是線性順序進行。 降低了規(guī)格說明文檔變化的可能性。降低了規(guī)格說明文檔變化的可能性。 減少了后續(xù)階段錯誤的可能性。減少了后續(xù)階段錯誤的可能性。 運用方式:運用方式: 原型用途:用于獲知用戶的真正需求。原型用途:用于獲知用戶的真正需求。 運用方式:拋棄策略。需求確定后,即拋棄原型。運用方式:拋棄策略。需求確定后,即拋棄原型。 適用范圍:適用范圍: 一種非整體開發(fā)模型。一種非整體開發(fā)模型。 適合于初期用戶需求不明確、具有一定風險的軟件項目適合于初期用戶需求不明確、具有一定風險的

10、軟件項目的開發(fā)?;蚩蛻粲幸粋€合理的需求,但對細節(jié)沒有思路的開發(fā)。或客戶有一個合理的需求,但對細節(jié)沒有思路2.4 增量模型(增量模型(Incremental Model) 融合了瀑布模型的基本成分(重復應用)和原融合了瀑布模型的基本成分(重復應用)和原型實現(xiàn)的迭代特征,采用隨著日程時間的進展型實現(xiàn)的迭代特征,采用隨著日程時間的進展而交錯的線性序列,每一個線性序列產生軟件而交錯的線性序列,每一個線性序列產生軟件的一個可發(fā)布的的一個可發(fā)布的“增量增量”。當使用增量模型時,。當使用增量模型時,第第1個增量往往是核心的產品,即第個增量往往是核心的產品,即第1個增量個增量實現(xiàn)了基本的需求,但很多補充的特征

11、還沒有實現(xiàn)了基本的需求,但很多補充的特征還沒有發(fā)布。客戶對每一個增量的使用和評估都作為發(fā)布??蛻魧γ恳粋€增量的使用和評估都作為下一個增量發(fā)布的新特征和功能,這個過程在下一個增量發(fā)布的新特征和功能,這個過程在每一個增量發(fā)布后不斷重復,直到產生了最終每一個增量發(fā)布后不斷重復,直到產生了最終的完善產品。的完善產品。增量模型表示增量模型表示2.4 增量模型增量模型 優(yōu)點優(yōu)點: 人員分配靈活,剛開始不用投入大量人力資源。人員分配靈活,剛開始不用投入大量人力資源。 當配備的人員不能在設定的期限內完成產品時,它當配備的人員不能在設定的期限內完成產品時,它提供了一種先推出核心產品的途徑。提供了一種先推出核心產

12、品的途徑。 增量能夠有計劃地管理技術風險。增量能夠有計劃地管理技術風險。 缺點缺點: 要求構件具備開放式的體系結構。要求構件具備開放式的體系結構。 易退化為邊做邊改模型,從而使軟件過程的控制失易退化為邊做邊改模型,從而使軟件過程的控制失去整體性。去整體性。2.4 增量模型增量模型 適用范圍適用范圍: 一種非整體開發(fā)模型一種非整體開發(fā)模型 客戶要求在一個不可能完成的時間提供產品,故可客戶要求在一個不可能完成的時間提供產品,故可向他建議只提供一個或幾個增量,以后再提交軟件向他建議只提供一個或幾個增量,以后再提交軟件的其他增量。例如:文字處理軟件的其他增量。例如:文字處理軟件 如果在項目既定的商業(yè)期

13、限之前不可能找到足夠的如果在項目既定的商業(yè)期限之前不可能找到足夠的開發(fā)人員,這種情況下則特別有用。開發(fā)人員,這種情況下則特別有用。2.5 螺旋模型(螺旋模型(Spiral Model) 目的主要是克服瀑布模型的缺點,在應對變化的靈活目的主要是克服瀑布模型的缺點,在應對變化的靈活性上很有優(yōu)勢,并通過一系列瀑布模型的不斷循環(huán)來性上很有優(yōu)勢,并通過一系列瀑布模型的不斷循環(huán)來逐步規(guī)避風險。逐步規(guī)避風險。 采用一種采用一種周期性的方法周期性的方法來進行系統(tǒng)開發(fā)。每個周期都來進行系統(tǒng)開發(fā)。每個周期都包括制定計劃、風險分析、實施工程和客戶評估包括制定計劃、風險分析、實施工程和客戶評估4個階個階段,由這段,由

14、這4個階段進行迭代。每迭代一次,軟件開發(fā)又個階段進行迭代。每迭代一次,軟件開發(fā)又前進一個層次。前進一個層次。 風險驅動風險驅動。在每個階段之前及經常發(fā)生的循環(huán)之前,。在每個階段之前及經常發(fā)生的循環(huán)之前,都必須首先進行風險評估。都必須首先進行風險評估。 模型表示:模型表示:螺旋模型模型表示螺旋模型模型表示 采用一種采用一種周期性的方法周期性的方法來進行系統(tǒng)開發(fā)。每個周期都來進行系統(tǒng)開發(fā)。每個周期都包括需求定義、風險分析、工程實現(xiàn)和評審包括需求定義、風險分析、工程實現(xiàn)和評審4個階段,個階段,由這由這4個階段進行迭代。每迭代一次,軟件開發(fā)又前個階段進行迭代。每迭代一次,軟件開發(fā)又前進一個層次。進一個

15、層次。 風險驅動風險驅動。在每個階段之前及經常發(fā)生的循環(huán)之前,。在每個階段之前及經常發(fā)生的循環(huán)之前,都必須首先進行風險評估。都必須首先進行風險評估。 模型表示:模型表示:螺旋模型的優(yōu)缺點螺旋模型的優(yōu)缺點 優(yōu)點優(yōu)點: 客戶始終參與每個階段的開發(fā),保證了項目不偏離客戶始終參與每個階段的開發(fā),保證了項目不偏離正確方向以及項目的可控性。正確方向以及項目的可控性。 客戶認可這種公司內部的開發(fā)方式帶來的良好的溝客戶認可這種公司內部的開發(fā)方式帶來的良好的溝通和高質量的產品。通和高質量的產品。 缺點缺點: 風險評估依賴專家。風險評估依賴專家。 建設周期長,而軟件技術發(fā)展比較快,所以經常出建設周期長,而軟件技術

16、發(fā)展比較快,所以經常出現(xiàn)軟件開發(fā)完畢后,和當前的技術水平有了較大的現(xiàn)軟件開發(fā)完畢后,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。差距,無法滿足當前用戶需求。2.5 螺旋模型(螺旋模型(Spiral Model) 限制條件限制條件: 因強調風險分析,但要求許多客戶接受和相信這種因強調風險分析,但要求許多客戶接受和相信這種分析,并做出相關反應是不容易的,因此,這種模分析,并做出相關反應是不容易的,因此,這種模型往往適應于型往往適應于內部的大規(guī)模軟件內部的大規(guī)模軟件開發(fā)。開發(fā)。 如果執(zhí)行風險分析將大大影響項目的利潤,那么進如果執(zhí)行風險分析將大大影響項目的利潤,那么進行風險分析毫無意義,因此

17、,只適合于行風險分析毫無意義,因此,只適合于大規(guī)模大規(guī)模軟件軟件項目。項目。 軟件開發(fā)人員應該擅長尋找可能的風險,準確地分軟件開發(fā)人員應該擅長尋找可能的風險,準確地分析風險,否則將會帶來更大的風險。析風險,否則將會帶來更大的風險。 適用范圍適用范圍: 對于新近開發(fā),需求不明確的情況下,適合用螺旋對于新近開發(fā),需求不明確的情況下,適合用螺旋模型進行開發(fā),便于風險控制和需求變更。模型進行開發(fā),便于風險控制和需求變更。2.6 噴泉模型(噴泉模型(Fountain Model) 是一種是一種以用戶需求為動力,以對象為驅動的模型以用戶需求為動力,以對象為驅動的模型, 主主要要用于描述面向對象的軟件開發(fā)過

18、程用于描述面向對象的軟件開發(fā)過程。 該模型認為軟件開發(fā)過程自下而上周期的各階段是相該模型認為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙的特性?;サ蜔o間隙的特性。 軟件的某個部分常常被重復工作多次,相關對象在每次迭代軟件的某個部分常常被重復工作多次,相關對象在每次迭代中隨之加入漸進的軟件成分。無間隙指在各項活動之間無明中隨之加入漸進的軟件成分。無間隙指在各項活動之間無明顯邊界,如分析和設計活動之間沒有明顯的邊界,則于對象顯邊界,如分析和設計活動之間沒有明顯的邊界,則于對象概念的引入,表達分析、設計、實現(xiàn)等活動只用對象類和關概念的引入,表達分析、設計、實現(xiàn)等活動只用對象類和關系,從而可

19、以較為容易地實現(xiàn)活動的迭代和無間隙,使其開系,從而可以較為容易地實現(xiàn)活動的迭代和無間隙,使其開發(fā)自然地包括復用。發(fā)自然地包括復用。 模型表示:模型表示:噴泉模型的優(yōu)缺點噴泉模型的優(yōu)缺點 優(yōu)點優(yōu)點: 各個階段沒有明顯的界限,開發(fā)人員可以同步進行各個階段沒有明顯的界限,開發(fā)人員可以同步進行開發(fā)。開發(fā)。 可提高軟件項目開發(fā)效率,節(jié)省開發(fā)時間??商岣哕浖椖块_發(fā)效率,節(jié)省開發(fā)時間。 缺點缺點: 由于噴泉模型在各個開發(fā)階段是重疊的,因此在開由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的管理。管理。 要求嚴格管理文檔,使

20、得審核的難度加大,尤其是要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。面對可能隨時加入各種信息、需求與資料的情況。 適用范圍適用范圍:適應于面向對象的軟件開發(fā)過程。適應于面向對象的軟件開發(fā)過程。2.7 Rational統(tǒng)一過程統(tǒng)一過程 RUP(Rational Unified Process),是一個面向對),是一個面向對象且基于網絡的程序開發(fā)方法論。象且基于網絡的程序開發(fā)方法論。 是軟件工程的過程。它提供了在開發(fā)組織中分派任務是軟件工程的過程。它提供了在開發(fā)組織中分派任務和責任的紀律化方法。它的目標是在可預見的日程和和責任的紀律化方法。它的目標是在可

21、預見的日程和預算前提下,確保滿足最終用戶需求的高質量產品。預算前提下,確保滿足最終用戶需求的高質量產品。 是一種是一種“用例驅動,以體系結構為核心,迭代及增量用例驅動,以體系結構為核心,迭代及增量”的軟件過程框架,由的軟件過程框架,由UML方法和工具支持。方法和工具支持。 主要分五個階段:起始階段,細化階段,構建階段,主要分五個階段:起始階段,細化階段,構建階段,轉化階段,生產階段。轉化階段,生產階段。Rational統(tǒng)一過程的五個階段統(tǒng)一過程的五個階段 起始階段:起始階段:包括用戶溝通和計劃活動兩個方面,強包括用戶溝通和計劃活動兩個方面,強調定義和細化用例,并將其作為主要模型。調定義和細化用

22、例,并將其作為主要模型。 細化階段:細化階段:包括用戶溝通和建?;顒?,重點是創(chuàng)建包括用戶溝通和建模活動,重點是創(chuàng)建分析和設計模型,強調類的定義和體系結構的表示。分析和設計模型,強調類的定義和體系結構的表示。 構建階段:構建階段:細化設計模型,并將設計模型轉化為軟細化設計模型,并將設計模型轉化為軟件構建實現(xiàn)。件構建實現(xiàn)。 轉化階段:轉化階段:將軟件從開發(fā)人員傳遞給最終用戶,并將軟件從開發(fā)人員傳遞給最終用戶,并由用戶完成由用戶完成beta測試和驗收測試。測試和驗收測試。 生產階段:生產階段:持續(xù)地監(jiān)控軟件的運作,并提供技術支持續(xù)地監(jiān)控軟件的運作,并提供技術支持。持。Rational統(tǒng)一過程的優(yōu)缺點

23、統(tǒng)一過程的優(yōu)缺點 優(yōu)點優(yōu)點:提高了團隊生產力,在迭代的開發(fā)過程、需求管提高了團隊生產力,在迭代的開發(fā)過程、需求管理、基于組件的體系結構、可視化軟件建模、驗證軟件理、基于組件的體系結構、可視化軟件建模、驗證軟件質量及控制軟件變更等方面,針對所有關鍵的開發(fā)活動質量及控制軟件變更等方面,針對所有關鍵的開發(fā)活動為每個開發(fā)成員提供了必要的準則、模板和工具指導,為每個開發(fā)成員提供了必要的準則、模板和工具指導,并確保全體成員共享相同的知識基礎。它建立了簡潔和并確保全體成員共享相同的知識基礎。它建立了簡潔和清晰的過程結構,為開發(fā)過程提供較大的通用性。清晰的過程結構,為開發(fā)過程提供較大的通用性。 不足不足:RU

24、P只是一個開發(fā)過程,并沒有涵蓋軟件過程的只是一個開發(fā)過程,并沒有涵蓋軟件過程的全部內容,例如它缺少關于軟件運行和支持等方面的內全部內容,例如它缺少關于軟件運行和支持等方面的內容;此外,它沒有支持多項目的開發(fā)結構,這在一定程容;此外,它沒有支持多項目的開發(fā)結構,這在一定程度上降低了在開發(fā)組織內大范圍實現(xiàn)重用的可能性??啥壬辖档土嗽陂_發(fā)組織內大范圍實現(xiàn)重用的可能性??梢哉f以說RUP是一個非常好的開端,但并不完美,在實際的是一個非常好的開端,但并不完美,在實際的應用中可以根據(jù)需要對其進行改進并可以用應用中可以根據(jù)需要對其進行改進并可以用OPEN和和OOSP等其他軟件過程的相關內容對等其他軟件過程的相

25、關內容對RUP進行補充和完進行補充和完善。善。 2.8 敏捷開發(fā)與極限編程敏捷開發(fā)與極限編程 敏捷開發(fā)敏捷開發(fā):是一種以人為核心、迭代、秩序漸進的開發(fā)是一種以人為核心、迭代、秩序漸進的開發(fā)方法。把一個大項目分為多個相互聯(lián)系,但也可獨立運方法。把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。使用狀態(tài)。 2001年,為了解決許多公司的軟件團隊陷入不斷增長的年,為了解決許多公司的軟件團隊陷入不斷增長的過程泥潭,一批業(yè)界專家一起概括出了一些可以讓軟件過程泥潭,一批業(yè)界專家一起概括出了一些可以讓軟件開發(fā)團隊具有快速工作、響應變化能力的價值觀和原則,開發(fā)團隊具有快速工作、響應變化能力的價值觀和原則,他們稱自己為敏捷聯(lián)盟,敏捷開發(fā)過程的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論