第1章 軟件工程學(xué)概述1_第1頁
第1章 軟件工程學(xué)概述1_第2頁
第1章 軟件工程學(xué)概述1_第3頁
第1章 軟件工程學(xué)概述1_第4頁
第1章 軟件工程學(xué)概述1_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第第1章章 軟件工程學(xué)概述軟件工程學(xué)概述1.1 軟件危機軟件危機1.2 軟件工程軟件工程1.3 軟件生命周期軟件生命周期1.4 軟件過程軟件過程什么是軟件什么是軟件 軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。 程序是能夠完成預(yù)定功能和性能的可執(zhí)行的指程序是能夠完成預(yù)定功能和性能的可執(zhí)行的指令序列令序列 數(shù)據(jù)是使程序能夠適當(dāng)?shù)靥幚硇畔⒌臄?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)是使程序能夠適當(dāng)?shù)靥幚硇畔⒌臄?shù)據(jù)結(jié)構(gòu) 文檔是開發(fā)、使用和維護程序所需要的圖文資文檔是開發(fā)、使用和維護程序所需要的圖文資料料1.1.1 軟件危機的介紹軟件危機的介紹 定義:定義: 軟件危機是指在計算機軟件的開發(fā)和維護過程

2、中軟件危機是指在計算機軟件的開發(fā)和維護過程中 所遇到的一系列嚴重問題。所遇到的一系列嚴重問題。 軟件危機包含下述兩方面的問題:軟件危機包含下述兩方面的問題: 1) 如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何開發(fā)軟件,以滿足對軟件日益增長的需求; 2) 如何維護數(shù)量不斷膨脹的現(xiàn)有軟件。如何維護數(shù)量不斷膨脹的現(xiàn)有軟件。 軟件危機的特征:軟件危機的特征: 1) 長期性長期性 2) 癥狀不明顯癥狀不明顯1.1 軟件危機軟件危機 軟件危機主要有以下一些典型表現(xiàn):軟件危機主要有以下一些典型表現(xiàn): 1) 對軟件開發(fā)成本和進度的估計常常很不準確;對軟件開發(fā)成本和進度的估計常常很不準確; 2) 用戶不滿意用

3、戶不滿意“已完成的已完成的”軟件系統(tǒng);軟件系統(tǒng); 3) 軟件產(chǎn)品的質(zhì)量往往靠不住;軟件產(chǎn)品的質(zhì)量往往靠不??; 4) 軟件常常是不可維護的;軟件常常是不可維護的; 5) 軟件通常沒有適當(dāng)?shù)奈臋n資料;軟件通常沒有適當(dāng)?shù)奈臋n資料; 6) 軟件成本在計算機系統(tǒng)總成本中所占的比例逐年軟件成本在計算機系統(tǒng)總成本中所占的比例逐年 上升;上升; 7) 軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機 應(yīng)用迅速普及深入的趨勢。應(yīng)用迅速普及深入的趨勢。 1.1.2 產(chǎn)生軟件危機的原因產(chǎn)生軟件危機的原因 1. 與軟件本身的特點有關(guān)與軟件本身的特點有關(guān) 1)軟件是邏輯部件,不是物理

4、部件;)軟件是邏輯部件,不是物理部件; 2)軟件在運行過程中不會因為時間過長而被)軟件在運行過程中不會因為時間過長而被“用壞用壞” 3)規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而)規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而成指數(shù)上升。成指數(shù)上升。 2. 與軟件開發(fā)與維護的方法不正確有關(guān)與軟件開發(fā)與維護的方法不正確有關(guān) 1)歸因于計算機系統(tǒng)早期開發(fā)的)歸因于計算機系統(tǒng)早期開發(fā)的“個體化個體化”特特 點,重編程、輕維護、忽視需求分析。點,重編程、輕維護、忽視需求分析。 2)軟件生命周期:)軟件生命周期: 一個軟件從定義、開發(fā)、使用和維護,直一個軟件從定義、開發(fā)、使用和維護,直 到最終廢棄,

5、要經(jīng)歷一個漫長的時期,通到最終廢棄,要經(jīng)歷一個漫長的時期,通 常把這個漫長的時期稱為生命周期。常把這個漫長的時期稱為生命周期。 1.1.3 消除軟件危機的途徑消除軟件危機的途徑1. 正確的認識對計算機軟件,正確的認識對計算機軟件,2. 軟件開發(fā)不是個體勞動,而是一種組織良好、管理嚴密、軟件開發(fā)不是個體勞動,而是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。各類人員協(xié)同配合、共同完成的工程項目。3. 應(yīng)該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成應(yīng)該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成 功的技術(shù)和方法,并且研究探索更好更有效的技功的技術(shù)和方法,并且研究探索更好更有效的技 術(shù)和方法,

6、術(shù)和方法,4.開發(fā)和使用更好的軟件工具。開發(fā)和使用更好的軟件工具??傊嚎傊簽榱私鉀Q軟件危機,既要有技術(shù)措施,又要為了解決軟件危機,既要有技術(shù)措施,又要 有必要的組織管理措施。軟件工程正是從管有必要的組織管理措施。軟件工程正是從管 理和技術(shù)兩方面研究如何更好地開發(fā)和維護理和技術(shù)兩方面研究如何更好地開發(fā)和維護 計算機軟件的一門新興學(xué)科。計算機軟件的一門新興學(xué)科。 1. 定義:定義: 1)概括定義)概括定義 2)早期定義)早期定義 3)更全面更具體的定義)更全面更具體的定義1.2 軟件工程軟件工程 1.2.1 軟件工程的介紹軟件工程的介紹2. 軟件工程的本質(zhì)特性軟件工程的本質(zhì)特性1) 軟件工程關(guān)

7、注于大型程序的構(gòu)造軟件工程關(guān)注于大型程序的構(gòu)造,2) 軟件工程的中心課題是控制復(fù)雜性軟件工程的中心課題是控制復(fù)雜性,3) 軟件經(jīng)常變化軟件經(jīng)常變化,4) 開發(fā)軟件的效率非常重要開發(fā)軟件的效率非常重要,5) 和諧地合作是開發(fā)軟件的關(guān)鍵和諧地合作是開發(fā)軟件的關(guān)鍵,6) 軟件必須有效地支持它的用戶軟件必須有效地支持它的用戶,7) 在軟件工程領(lǐng)域中是由具有一種文化背景的人在軟件工程領(lǐng)域中是由具有一種文化背景的人 替具有另一種文化背景的人創(chuàng)造產(chǎn)品。替具有另一種文化背景的人創(chuàng)造產(chǎn)品。1. 用分階段的生命周期計劃嚴格管理,用分階段的生命周期計劃嚴格管理,2. 堅持進行階段評審,堅持進行階段評審,3. 實行嚴

8、格的產(chǎn)品控制,實行嚴格的產(chǎn)品控制,4. 采用現(xiàn)代程序設(shè)計技術(shù),采用現(xiàn)代程序設(shè)計技術(shù),5. 根據(jù)軟件開發(fā)項目的總目標及完成期限,規(guī)定開根據(jù)軟件開發(fā)項目的總目標及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標準,從而使所得到的結(jié)果能發(fā)組織的責(zé)任和產(chǎn)品標準,從而使所得到的結(jié)果能夠清楚地審查,夠清楚地審查,6. 開發(fā)小組的人員應(yīng)該少而精,開發(fā)小組的人員應(yīng)該少而精,7. 承認不斷改進軟件工程實踐的必要性。承認不斷改進軟件工程實踐的必要性。1.2.2 軟件工程的基本原理軟件工程的基本原理1. 什么是方法學(xué)?什么是方法學(xué)? 通常把在軟件生命周期全過程中使用的一整套技術(shù)方法通常把在軟件生命周期全過程中使用的一整套技術(shù)方

9、法 的集合稱為方法學(xué),也稱為范型。的集合稱為方法學(xué),也稱為范型。2. 軟件工程方法學(xué)中的軟件工程方法學(xué)中的3個要素:個要素: 方法:是完成軟件開發(fā)的各項任務(wù)的技術(shù)方法,方法:是完成軟件開發(fā)的各項任務(wù)的技術(shù)方法, 工具:是為運用方法而提供的自動的或半自動的軟件工具:是為運用方法而提供的自動的或半自動的軟件 工程支撐環(huán)境,工程支撐環(huán)境, 過程:過程是為了獲得高質(zhì)量的軟件所需要完成的一過程:過程是為了獲得高質(zhì)量的軟件所需要完成的一 系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工 作步驟。作步驟。1.2.3 軟件工程方法學(xué)軟件工程方法學(xué)目前使用最廣泛的軟件工程方法學(xué)是

10、:目前使用最廣泛的軟件工程方法學(xué)是:1. 傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)1)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型,)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型,2)它采用結(jié)構(gòu)化技術(shù))它采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實 現(xiàn)現(xiàn))來完成軟件開發(fā)的各項任務(wù),并使用適當(dāng)?shù)能浖ぞ邅硗瓿绍浖_發(fā)的各項任務(wù),并使用適當(dāng)?shù)能浖ぞ?或軟件工程環(huán)境來支持結(jié)構(gòu)化技術(shù)的運用。或軟件工程環(huán)境來支持結(jié)構(gòu)化技術(shù)的運用。3)傳統(tǒng)方法學(xué)的工作思路:把軟件生命周期的全過程依次)傳統(tǒng)方法學(xué)的工作思路:把軟件生命周期的全過程依次 劃分為若干劃分為若干個階段,然后順序地完成每個階段的任務(wù)。個階段,然后順序地完

11、成每個階段的任務(wù)。2. 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)1)來源:)來源: 當(dāng)軟件規(guī)模龐大或者對軟件的需求是模糊的或會隨時間變化而變化的當(dāng)軟件規(guī)模龐大或者對軟件的需求是模糊的或會隨時間變化而變化的時候,使用傳統(tǒng)方法學(xué)開發(fā)軟件往往不成功,而且傳統(tǒng)方法學(xué)把數(shù)據(jù)和時候,使用傳統(tǒng)方法學(xué)開發(fā)軟件往往不成功,而且傳統(tǒng)方法學(xué)把數(shù)據(jù)和操作人為地分離成兩個獨立的部分,自然會增加軟件開發(fā)與維護的難度。操作人為地分離成兩個獨立的部分,自然會增加軟件開發(fā)與維護的難度。 面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成是同等重要的,它是一種以數(shù)據(jù)位主面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成是同等重要的,它是一種以數(shù)據(jù)位主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合

12、起來的方法。線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合起來的方法。 2)面向?qū)ο蠓椒▽W(xué)具有的)面向?qū)ο蠓椒▽W(xué)具有的4個要點:個要點:把對象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟把對象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。件構(gòu)件。把所有對象都劃分為類把所有對象都劃分為類按照父類與子類的關(guān)系,把若干個相關(guān)類組成一個層次結(jié)按照父類與子類的關(guān)系,把若干個相關(guān)類組成一個層次結(jié)構(gòu)的系統(tǒng)。構(gòu)的系統(tǒng)。對象彼此間僅能通過發(fā)送消息互相聯(lián)系。對象彼此間僅能通過發(fā)送消息互相聯(lián)系。3)出發(fā)點和基本原則:)出發(fā)點和基本原則: 盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的 方

13、法與過程盡可能接近人類認識世界、解決問方法與過程盡可能接近人類認識世界、解決問 題的方法與過程,從而使描述問題的問題空間題的方法與過程,從而使描述問題的問題空間 與實現(xiàn)解法的解空間在結(jié)構(gòu)上盡可能一致。與實現(xiàn)解法的解空間在結(jié)構(gòu)上盡可能一致。6. 兩種方法的比較:兩種方法的比較: 降低了軟件產(chǎn)品的復(fù)雜性,提高了軟件的可理降低了軟件產(chǎn)品的復(fù)雜性,提高了軟件的可理 解性,簡化了軟件的開發(fā)和維護工作;解性,簡化了軟件的開發(fā)和維護工作; 促進了軟件的可重用性。促進了軟件的可重用性。 軟件生命周期:軟件生命周期: 概括地說,軟件生命周期由軟件定義、軟件開發(fā)概括地說,軟件生命周期由軟件定義、軟件開發(fā) 和運行維

14、護和運行維護( (也稱為軟件維護也稱為軟件維護)3)3個時期組成;個時期組成; 每個時期又進一步劃分成若干個階段:每個時期又進一步劃分成若干個階段: 軟件定義軟件定義 = 問題定義問題定義 + 可行性研究可行性研究 + 需求分析:需求分析: 軟件開發(fā)軟件開發(fā) = 總體設(shè)計總體設(shè)計 + 詳細設(shè)計詳細設(shè)計 + 編碼和單元測試編碼和單元測試 + 綜合測試;綜合測試; 運行維護運行維護1.3 軟件生命周期軟件生命周期1. 問題定義問題定義 要解決的問題是什么要解決的問題是什么2. 可行性研究可行性研究 對于確定的問題有解決辦法嗎對于確定的問題有解決辦法嗎3. 需求分析需求分析 為了解決問題,目標系統(tǒng)應(yīng)

15、該做什么為了解決問題,目標系統(tǒng)應(yīng)該做什么4. 總體設(shè)計總體設(shè)計 應(yīng)該怎樣實現(xiàn)目標系統(tǒng)應(yīng)該怎樣實現(xiàn)目標系統(tǒng)5. 詳細設(shè)計詳細設(shè)計 怎樣具體實現(xiàn)系統(tǒng)怎樣具體實現(xiàn)系統(tǒng)6. 編碼和單元測試編碼和單元測試 寫出程序模塊寫出程序模塊7. 綜合測試綜合測試 通過各種類型的測試使軟件達到預(yù)定的要通過各種類型的測試使軟件達到預(yù)定的要求求8. 軟件維護軟件維護 使系統(tǒng)持久地滿足用戶的需要使系統(tǒng)持久地滿足用戶的需要 改正性維護,適應(yīng)性維護,改正性維護,適應(yīng)性維護, 完善性維護,預(yù)防性維護。完善性維護,預(yù)防性維護。1 1、什么是軟件過程?、什么是軟件過程? 軟件過程是為了獲得高質(zhì)量軟件所需要完成的軟件過程是為了獲得高

16、質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。步驟。ISO 9000ISO 9000把過程定義為:使用資源將輸入轉(zhuǎn)化為把過程定義為:使用資源將輸入轉(zhuǎn)化為輸出的活動所構(gòu)成的系統(tǒng)。輸出的活動所構(gòu)成的系統(tǒng)。過程定義了:運用方法的順序、應(yīng)該交付的文檔過程定義了:運用方法的順序、應(yīng)該交付的文檔資料、管理措施,以及標志軟件開發(fā)各個階段任務(wù)資料、管理措施,以及標志軟件開發(fā)各個階段任務(wù)完成的里程碑。完成的里程碑。1.4 軟件過程軟件過程通常使用生命周期模型簡潔地描述軟件過程。通常使用生命周期模型簡潔地描述軟件過程。 生命周期模型規(guī)定了把生命周

17、期劃分成哪些生命周期模型規(guī)定了把生命周期劃分成哪些 階段及各個階段的執(zhí)行順序,因此,也稱為階段及各個階段的執(zhí)行順序,因此,也稱為 過程模型。過程模型。 瀑布模型瀑布模型 快速原型模型快速原型模型 增量模型增量模型 螺旋模型螺旋模型 噴泉模型噴泉模型1、歷史、歷史1970年由溫斯頓年由溫斯頓羅伊斯提出。羅伊斯提出。在在20世紀世紀80年代之前,瀑布模型一直是惟一被年代之前,瀑布模型一直是惟一被廣泛采用的生命周期模型,現(xiàn)在它仍然是軟件工程廣泛采用的生命周期模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得最廣泛的過程模型。中應(yīng)用得最廣泛的過程模型。傳統(tǒng)軟件工程方法學(xué)的軟件過程,基本上可以傳統(tǒng)軟件工程方法學(xué)的軟件過

18、程,基本上可以用瀑布模型來描述。用瀑布模型來描述。1.4.1 瀑布模型瀑布模型2、特點、特點 階段間具有順序性和依賴性階段間具有順序性和依賴性 推遲實現(xiàn)的觀點推遲實現(xiàn)的觀點 質(zhì)量保證的觀點質(zhì)量保證的觀點圖圖1.2 傳統(tǒng)的瀑布模型傳統(tǒng)的瀑布模型3 實際的瀑布模型實際的瀑布模型實際的瀑布模型是帶“反饋環(huán)”的,實線箭頭表示開發(fā)過程,虛線箭頭表示維護過程,當(dāng)后面階段發(fā)現(xiàn)前面階段的錯誤時,需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再回來繼續(xù)完成后面階段的任務(wù)。4、優(yōu)點、優(yōu)點 可強迫開發(fā)人員采用規(guī)范的方法開發(fā)結(jié)構(gòu)化可強迫開發(fā)人員采用規(guī)范的方法開發(fā)結(jié)構(gòu)化 技術(shù)技術(shù); 嚴格地規(guī)定了每個階段必

19、須提交的文檔;嚴格地規(guī)定了每個階段必須提交的文檔; 每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保 證小組的仔細驗證。證小組的仔細驗證。5、缺點、缺點 “瀑布模型是由文檔驅(qū)動的瀑布模型是由文檔驅(qū)動的”這個事實也是它這個事實也是它 的一個主要缺點。的一個主要缺點。 由于瀑布模型幾乎完全依賴于書面的規(guī)格說由于瀑布模型幾乎完全依賴于書面的規(guī)格說 明,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能明,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能 真正滿足用戶的需要。真正滿足用戶的需要。1、什么是快速原型模型、什么是快速原型模型所謂快速原型是快速建立起來的可以在計算所謂快速原型是快速建立起來的可

20、以在計算機上運行的程序,它所能完成的功能往往是最終機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。產(chǎn)品能完成的功能的一個子集。 快速原型模型的第一步是快速建立一個能反快速原型模型的第一步是快速建立一個能反映用戶主要需求的原型系統(tǒng),讓用戶在計算機上映用戶主要需求的原型系統(tǒng),讓用戶在計算機上試用它,通過實踐來了解目標系統(tǒng)的概貌。試用它,通過實踐來了解目標系統(tǒng)的概貌。1.4.2 快速原型模型快速原型模型圖圖1.4 快速原型模型快速原型模型2、優(yōu)點、優(yōu)點1) 不帶反饋環(huán);不帶反饋環(huán);2) 基本上按線性順序開發(fā)基本上按線性順序開發(fā)3、總結(jié)、總結(jié)1)開發(fā)人員應(yīng)該盡可能快地建造出原型系

21、統(tǒng),以)開發(fā)人員應(yīng)該盡可能快地建造出原型系統(tǒng),以 加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。2)原型的用途是獲知用戶的真正需求,一旦需求)原型的用途是獲知用戶的真正需求,一旦需求 確定了,原型將被拋棄。確定了,原型將被拋棄。3)因此,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的)因此,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的 是,必須迅速地構(gòu)建原型然后根據(jù)用戶意見迅是,必須迅速地構(gòu)建原型然后根據(jù)用戶意見迅 速地修改原型。速地修改原型。1、簡介、簡介增量模型也稱為漸增模型,如下圖所示。增量模型也稱為漸增模型,如下圖所示。1.4.3 增量模型增量模型1)使用增量模型開發(fā)軟件時,把軟件

22、產(chǎn)品作為一使用增量模型開發(fā)軟件時,把軟件產(chǎn)品作為一 系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。2)使用增量模型時,第一個增量構(gòu)件往往實現(xiàn)使用增量模型時,第一個增量構(gòu)件往往實現(xiàn) 軟件的基本需求,提供最核心的功能。第二軟件的基本需求,提供最核心的功能。第二 個;第三個等等增量構(gòu)件進行補充、完善。個;第三個等等增量構(gòu)件進行補充、完善。3)把軟件產(chǎn)品分解成增量構(gòu)件時,應(yīng)該使構(gòu)件把軟件產(chǎn)品分解成增量構(gòu)件時,應(yīng)該使構(gòu)件 規(guī)模適中,規(guī)模過大或過小都不好。最佳分規(guī)模適中,規(guī)模過大或過小都不好。最佳分 解方法因軟件產(chǎn)品特點和開發(fā)人員的習(xí)慣而解方法因軟件產(chǎn)品特點和開發(fā)人員的習(xí)

23、慣而 異。異。4)分解時惟一必須遵守的約束條件是,當(dāng)把新構(gòu)分解時惟一必須遵守的約束條件是,當(dāng)把新構(gòu) 件集成到現(xiàn)有軟件中時,所形成的產(chǎn)品必須是可測件集成到現(xiàn)有軟件中時,所形成的產(chǎn)品必須是可測試的。試的。2、比較、比較1)采用瀑布模型或快速原型模型開發(fā)軟件,)采用瀑布模型或快速原型模型開發(fā)軟件,都是一次就把一個滿足所有需求的產(chǎn)品交給用都是一次就把一個滿足所有需求的產(chǎn)品交給用戶;戶;2)增量模型則是逐步地、分批地、向用戶)增量模型則是逐步地、分批地、向用戶提交產(chǎn)品。提交產(chǎn)品。3、優(yōu)點、優(yōu)點1)能在較短時間內(nèi)向用戶提交可完成部分工)能在較短時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品,是增量模型的一個優(yōu)點;作

24、的產(chǎn)品,是增量模型的一個優(yōu)點;2)逐步增加產(chǎn)品功能可以使用戶有較充裕的)逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個全新的軟時間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。件可能給客戶組織帶來的沖擊。4、困難、困難1)軟件體系結(jié)構(gòu)必須是開放式的;軟件體系結(jié)構(gòu)必須是開放式的;2)在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。5、注意、注意增量模型本身是自相矛盾的。增量模型本身是自相矛盾的。1)它一方面要求開發(fā)人員把軟件看作一個整體,)它

25、一方面要求開發(fā)人員把軟件看作一個整體, 另一方面又要求開發(fā)人員把軟件看作構(gòu)件序另一方面又要求開發(fā)人員把軟件看作構(gòu)件序 列,每個構(gòu)件本質(zhì)上都獨立于另一個構(gòu)件。列,每個構(gòu)件本質(zhì)上都獨立于另一個構(gòu)件。2)除非開發(fā)人員有足夠的技術(shù)能力協(xié)調(diào)好這一)除非開發(fā)人員有足夠的技術(shù)能力協(xié)調(diào)好這一 明顯的矛盾,否則用增量模型開發(fā)出的產(chǎn)品明顯的矛盾,否則用增量模型開發(fā)出的產(chǎn)品 可能并不令人滿意??赡懿⒉涣钊藵M意。6 、一種風(fēng)險更大的增量模型、一種風(fēng)險更大的增量模型一旦確定了用戶需求之后,就著手擬定第一個構(gòu)件的規(guī)格說明文檔,完成后規(guī)格說明組將轉(zhuǎn)向第二個構(gòu)件的規(guī)格說明,與此同時設(shè)計組開始設(shè)計第一個構(gòu)件用這種方式開發(fā)軟件,

26、不同的構(gòu)件將并行地構(gòu)件,因此有可能加快工程進度。但是,使用這種方法將冒構(gòu)件無法集成到一起的風(fēng)險,除非密切地監(jiān)控整個開發(fā)過程,否則整個工程可能毀于一旦。1、風(fēng)險分析:、風(fēng)險分析:軟件風(fēng)險是任何軟件開發(fā)項目中都普遍存在的軟件風(fēng)險是任何軟件開發(fā)項目中都普遍存在的實際問題,項目越大,軟件越復(fù)雜,承擔(dān)該項目所實際問題,項目越大,軟件越復(fù)雜,承擔(dān)該項目所冒的風(fēng)險也越大。因此,在軟件開發(fā)過程中必須及冒的風(fēng)險也越大。因此,在軟件開發(fā)過程中必須及時識別和分析風(fēng)險,并且采取適當(dāng)措施以消除或減時識別和分析風(fēng)險,并且采取適當(dāng)措施以消除或減少風(fēng)險的危害。少風(fēng)險的危害。2、螺旋模型的基本思想、螺旋模型的基本思想 使用原型

27、使用原型+風(fēng)險分析的方法來盡量降低風(fēng)險。風(fēng)險分析的方法來盡量降低風(fēng)險。 就是把它看作:在快速原型模型的每個階段就是把它看作:在快速原型模型的每個階段之前都增加了風(fēng)險分析過程的快速原型模型,之前都增加了風(fēng)險分析過程的快速原型模型, 如下圖示:如下圖示:1.4.4 螺旋模型螺旋模型圖圖1.7 簡化的螺旋模型簡化的螺旋模型圖圖1.8 完整的螺旋模型完整的螺旋模型螺旋模型分析螺旋模型分析 螺旋模型有許多優(yōu)點:對可選方案和約束條件的螺旋模型有許多優(yōu)點:對可選方案和約束條件的強調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)強調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標,減少了過多測量作為

28、軟件開發(fā)的一個重要目標,減少了過多測試或測試不足所帶來的風(fēng)險;更重要的是,在螺試或測試不足所帶來的風(fēng)險;更重要的是,在螺旋模型中維護只是模型的另一個周期,在維護和旋模型中維護只是模型的另一個周期,在維護和開發(fā)之間并沒有本質(zhì)區(qū)別。開發(fā)之間并沒有本質(zhì)區(qū)別。 螺旋模型是風(fēng)險驅(qū)動的,除非軟件開發(fā)人員具有螺旋模型是風(fēng)險驅(qū)動的,除非軟件開發(fā)人員具有豐富的風(fēng)險評估經(jīng)驗和這方面的專門知識,否則豐富的風(fēng)險評估經(jīng)驗和這方面的專門知識,否則將出現(xiàn)真正的風(fēng)險:當(dāng)項目實際上正在走向災(zāi)難將出現(xiàn)真正的風(fēng)險:當(dāng)項目實際上正在走向災(zāi)難時,開發(fā)人員可能還認為一切正常。時,開發(fā)人員可能還認為一切正常。1.4.5 噴泉模型噴泉模型

29、“噴泉”體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。 圖中代表不同階段的圓圈相互重疊,表明兩個活動之間存在交迭,保證了在各項開發(fā)活動之間的無縫過渡。 圖中在一個階段內(nèi)的向下箭頭代表該階段內(nèi)的迭代。圖中較小的圓圈代表維護,圓圈較小象征著采用了面向?qū)ο蠓缎椭缶S護時間縮短了。1.4.6 Rational 統(tǒng)一過程統(tǒng)一過程 Rational統(tǒng)一過程(統(tǒng)一過程(RUP)是由)是由Rational軟件軟件公司推出的一種完整而且完美的軟件過程。公司推出的一種完整而且完美的軟件過程。 RUP總結(jié)了經(jīng)過多年商業(yè)化驗證的總結(jié)了經(jīng)過多年商業(yè)化驗證的6條最有效條最有效的軟件開發(fā)經(jīng)驗,這些經(jīng)驗被稱為的軟件開發(fā)經(jīng)驗,這

30、些經(jīng)驗被稱為“最佳實踐最佳實踐”。 1.迭代式開發(fā)迭代式開發(fā) 2.管理需求管理需求 3.使用基于構(gòu)件的體系結(jié)構(gòu)使用基于構(gòu)件的體系結(jié)構(gòu) 4.可視化建??梢暬?5.驗證軟件質(zhì)量驗證軟件質(zhì)量 6.控制軟件變更控制軟件變更RUP軟件開發(fā)生命周期軟件開發(fā)生命周期 RUP軟件開發(fā)生命周期是一個二維的生命周期模軟件開發(fā)生命周期是一個二維的生命周期模型,如圖型,如圖1.10所示,途中縱軸代表核心工作流,所示,途中縱軸代表核心工作流,橫軸代表時間。橫軸代表時間。 工作階段工作階段 4個工作階段的工作目標個工作階段的工作目標 初始階段初始階段 精化階段精化階段 構(gòu)建階段構(gòu)建階段 移交階段移交階段 RUP迭代式

31、開發(fā)迭代式開發(fā) RUP強調(diào)采用迭代和漸增的方式來開發(fā)軟件,整個項強調(diào)采用迭代和漸增的方式來開發(fā)軟件,整個項目開發(fā)過程由多個迭代過程組成。在每次迭代中只考目開發(fā)過程由多個迭代過程組成。在每次迭代中只考慮系統(tǒng)的一部分需求,針對這部分需求進行分析、設(shè)慮系統(tǒng)的一部分需求,針對這部分需求進行分析、設(shè)計、實現(xiàn)、測試和部署等工作,每次迭代都是在系統(tǒng)計、實現(xiàn)、測試和部署等工作,每次迭代都是在系統(tǒng)已完成部分的基礎(chǔ)上進行的,每次給系統(tǒng)增加一些新已完成部分的基礎(chǔ)上進行的,每次給系統(tǒng)增加一些新的功能,如此循環(huán)往復(fù)地進行下去,直至完成最終項的功能,如此循環(huán)往復(fù)地進行下去,直至完成最終項目。目。 目前全球已有上千家軟件公

32、司在使用目前全球已有上千家軟件公司在使用RUP。這些公司。這些公司分布在不同的應(yīng)用領(lǐng)域,開發(fā)著或大或小的項目,這分布在不同的應(yīng)用領(lǐng)域,開發(fā)著或大或小的項目,這表明了表明了RUP的多功能性和廣泛適用性。的多功能性和廣泛適用性。1.4.7 敏捷過程與極限編程敏捷過程與極限編程 為了使軟件開發(fā)團隊具有高效工作和快速響應(yīng)變?yōu)榱耸管浖_發(fā)團隊具有高效工作和快速響應(yīng)變化的能力,化的能力,17位著名的軟件專家于位著名的軟件專家于2001年年2月聯(lián)合月聯(lián)合起草了敏捷軟件開發(fā)宣言,該宣言由下述起草了敏捷軟件開發(fā)宣言,該宣言由下述4個簡單個簡單的價值觀聲明組成:的價值觀聲明組成: 個體和交互勝過過程和工具個體和交互勝過過程和工具 可以工作的軟件勝過面面俱到的文檔可以工作的軟件勝過面面俱

溫馨提示

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

最新文檔

評論

0/150

提交評論