L-第一章_軟件工程概述_第1頁
L-第一章_軟件工程概述_第2頁
L-第一章_軟件工程概述_第3頁
L-第一章_軟件工程概述_第4頁
L-第一章_軟件工程概述_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1軟件工程教教 材:軟件工程與建模材:軟件工程與建模 王長元等編著王長元等編著 西安交通大學出版社西安交通大學出版社2課程概述一、軟件工程學科介紹一、軟件工程學科介紹二、學習目標二、學習目標三、參考資料三、參考資料四、課程特點和學習的注意事項四、課程特點和學習的注意事項五、教材簡介五、教材簡介六、課程考核方式六、課程考核方式3一、軟件工程學科介紹軟件程學科發(fā)展歷史軟件程學科發(fā)展歷史三個階段:概念提出、學科雛形、學科確立三個階段:概念提出、學科雛形、學科確立第一階段:概念提出第一階段:概念提出 1968 年年 NATO 會議會議(北大西洋公約組織的計算機科學家的國際會議)提提出出“軟件工程軟件工

2、程”概念。概念。當時對當時對“軟件工程軟件工程”代表性定義:為了經(jīng)濟地獲得代表性定義:為了經(jīng)濟地獲得在真實機器上可靠工作的軟件而制定和使用的合理在真實機器上可靠工作的軟件而制定和使用的合理工程原則和方法。工程原則和方法。 1972 年年 IEEE 學會的計算機分會學會的計算機分會 IEEE 一一 CS 第一第一次出版了次出版了“軟件工程學報軟件工程學報”4第二階段:學科雛形上世紀上世紀 70 年代末,美國將軟件工程教程列入研究年代末,美國將軟件工程教程列入研究生教育計劃。生教育計劃。 1980 年代末和年代末和 1990 年代初,軟件工程教育得到卡年代初,軟件工程教育得到卡內(nèi)基一梅隆大學軟件工

3、程研究所(內(nèi)基一梅隆大學軟件工程研究所( CMU / SEI )的)的支持。支持。 1991 年,年,“軟件工程軟件工程”被被 ACM (美國計算機協(xié)會)和和 IEEE / CS 列為計算學科的九個知識領域之一。列為計算學科的九個知識領域之一。 1993 年,年, IEEE 一一 CS 和和ACM 為了把軟件工程建為了把軟件工程建設成為一個專業(yè),建立了設成為一個專業(yè),建立了 IEEE 一一 CS / ACM 聯(lián)合聯(lián)合指導委員會。指導委員會。5第三階段:學科確立2004 年年 8 月,月,IEEE 一一 CS 和和 ACM 給出:給出:軟件工程知識體(軟件工程知識體( SWEBOK , Soft

4、ware Engineering Body of Knowledge ) 軟件工程教育知識體軟件工程教育知識體( SEEK ) 最終版,標志著軟最終版,標志著軟件工程學科在世界范圍正式確件工程學科在世界范圍正式確 立。立。軟件工程、計算機科學、計算機工程、信息系統(tǒng)、軟件工程、計算機科學、計算機工程、信息系統(tǒng)、信息技術并列成為計算學科下的獨立學科。信息技術并列成為計算學科下的獨立學科。軟件工程知識體軟件工程知識體( SWEBOK ) :全面描述了軟件:全面描述了軟件工程實踐所需的知識。工程實踐所需的知識。6SWEBOK (軟件工程知識體 10 個領域l軟件需求軟件需求l軟件設計軟件設計l軟件構造

5、軟件構造l軟件測試軟件測試 l軟件維護軟件維護l軟件配置管理軟件配置管理l軟件工程管理軟件工程管理l軟件工程過程軟件工程過程l軟件工程工具和方法軟件工程工具和方法l軟件質量軟件質量參考資料:參考資料:1 白征白征 SWEBOK :軟件工程知識體,計:軟件工程知識體,計算機科學,算機科學, 2001 年年 07 期期 2 萬江平軟件工程知識體系指南綜述,萬江平軟件工程知識體系指南綜述,計算機應用研究,計算機應用研究, 2006 年年 10 期期7SWEBOK詳細結構(詳細結構(1)89軟件工程與其他學科的關系1 、軟件工程是計算學科、軟件工程是計算學科 9 個領域之一個領域之一算法和數(shù)據(jù)結構算法

6、和數(shù)據(jù)結構計算機系統(tǒng)結構計算機系統(tǒng)結構人工智能和機器人學人工智能和機器人學數(shù)據(jù)庫和信息檢索數(shù)據(jù)庫和信息檢索人一機交互人一機交互操作系統(tǒng)操作系統(tǒng)程序設計語言程序設計語言軟件方法學和軟件工程軟件方法學和軟件工程數(shù)字和符號計算數(shù)字和符號計算10計算學科中12個重復出現(xiàn)的基本概念l綁定綁定l概念和形式模型概念和形式模型l效率效率l抽象層次抽象層次l按時間排序按時間排序l安全性安全性l大問題的復雜性大問題的復雜性l一致性和完備性一致性和完備性l演化演化l按空間排序按空間排序l重用重用l折衷與決策折衷與決策F軟件工程是計算學科的分支,這軟件工程是計算學科的分支,這 12 12 個概念同樣將個概念同樣將貫穿

7、軟件工程學科,是學科的精髓。貫穿軟件工程學科,是學科的精髓。112 、 8 個相關學科知識域l計算機工程計算機工程l計算機科學計算機科學l數(shù)學數(shù)學l管理學管理學l項目管理項目管理l質量管理質量管理l系統(tǒng)工程學系統(tǒng)工程學l軟件人類工程學軟件人類工程學 其中:計算機科學、數(shù)學是基礎工程學科、管理其中:計算機科學、數(shù)學是基礎工程學科、管理學科也非常重要學科也非常重要12軟件程是一門什么樣的學科? 是是指導計算機軟件開發(fā)與維護指導計算機軟件開發(fā)與維護的一門的一門工程工程學科。學科。工程:將科學及數(shù)學原理運用于實際用途的應用手段,如:設計、制造、機器操縱、構架等。典型的傳統(tǒng)工程:建筑工程、機械工程、電力

8、工程等。 概括的說,軟件工程即用工程、科學和數(shù)概括的說,軟件工程即用工程、科學和數(shù)學的原則和方法研制、維護計算機軟件的有學的原則和方法研制、維護計算機軟件的有關技術及方法,其優(yōu)點是以較小的代價開發(fā)關技術及方法,其優(yōu)點是以較小的代價開發(fā)高質量的軟件并有效地維護它。高質量的軟件并有效地維護它。13二、學習目標(1) 掌握軟件工程的基礎知識和理論,對軟件掌握軟件工程的基礎知識和理論,對軟件工程學有一個全貌的了解;工程學有一個全貌的了解; 熟悉軟件項目開發(fā)和維護的一般過程;熟悉軟件項目開發(fā)和維護的一般過程; 熟練掌握軟件需求分析、設計、編碼和測熟練掌握軟件需求分析、設計、編碼和測試等階段的主要思想和技

9、術方法;試等階段的主要思想和技術方法;14二、學習目標(2) 通過學習,特別是通過課程練習,真正運通過學習,特別是通過課程練習,真正運用和深刻體會軟件工程的思想方法,轉變對用和深刻體會軟件工程的思想方法,轉變對軟件開發(fā)的認識:從個人的單純編程活動轉軟件開發(fā)的認識:從個人的單純編程活動轉移到進行系統(tǒng)分析與設計方面上來移到進行系統(tǒng)分析與設計方面上來轉變思維定式:轉變思維定式:程序員程序員 系統(tǒng)工程師(系統(tǒng)分析員)系統(tǒng)工程師(系統(tǒng)分析員)15三、部分參考資料l軟件工程導論(第五版)張海藩軟件工程導論(第五版)張海藩,清華大學清華大學出版社出版社;l 軟件工程理論與實踐軟件工程理論與實踐 許家冶等編著

10、,許家冶等編著,高等教育出版社,高等教育出版社, 2005 年年 l 軟件工程軟件工程 (第二版),齊治昌等,高(第二版),齊治昌等,高等教育出版社,等教育出版社, 2004 年年 l 面向對象的系統(tǒng)分析面向對象的系統(tǒng)分析 ,楊芙清等編著,楊芙清等編著,清華大學出版社,清華大學出版社, 2001 年年l UML 用戶指南用戶指南 G Booch 等著,邵維等著,邵維忠等譯,機械工業(yè)出版社忠等譯,機械工業(yè)出版社 2002 年年16四、課程特點和學習的注意事項1 、知易行難、知易行難 要將理論知識與實踐運用結合,進行對照,以加要將理論知識與實踐運用結合,進行對照,以加深理解和掌握。深理解和掌握。

11、2 、內(nèi)容紛雜、內(nèi)容紛雜 軟件工程涉及計算機科學、數(shù)學、工程科學和管軟件工程涉及計算機科學、數(shù)學、工程科學和管理科學等多個領域。其中:理科學等多個領域。其中:計算機科學和數(shù)學用于構造模型與算法;計算機科學和數(shù)學用于構造模型與算法;工程科學用于制定規(guī)范、設計范型、評估成本及確定工程科學用于制定規(guī)范、設計范型、評估成本及確定權衡權衡管理科學用于計劃、資源、質量和成本的管理。管理科學用于計劃、資源、質量和成本的管理。17五、教材總目錄第第 1 章軟件工程學概述章軟件工程學概述第第 2 章可行性研究章可行性研究第第 3 章需求工程章需求工程第第 4 章軟件體系結構基礎章軟件體系結構基礎第第 5 章軟件

12、設計章軟件設計第第 6 章編碼章編碼第第 7 章測試章測試第第 8 章面向對象技術章面向對象技術第第9 章面向對象分析與章面向對象分析與設計設計第第 10 章信息系統(tǒng)建模章信息系統(tǒng)建模第第 11 章統(tǒng)一建模語言章統(tǒng)一建模語言(UML)18六、課程考核方式分數(shù)組成:分數(shù)組成:平時成績:以作業(yè)、到課率、課堂表現(xiàn)為主。平時成績:以作業(yè)、到課率、課堂表現(xiàn)為主。期末考試。期末考試。19第 1 章 軟件工程學概述1 軟件危機軟件危機 2 軟件工程軟件工程 3 軟件生命周期軟件生命周期 4 軟件過程軟件過程5 小結小結習題習題20學習重點學習重點1、軟件危機、軟件工程產(chǎn)生的原因、軟件危機、軟件工程產(chǎn)生的原因

13、2、軟件工程過程和軟件生命周期、軟件工程過程和軟件生命周期3、軟件生命周期模型、軟件生命周期模型掌握幾個基本概念掌握幾個基本概念軟件危機軟件危機軟件工程軟件工程軟件過程軟件過程軟件生命周期軟件生命周期軟件生命周期模型軟件生命周期模型21軟件危機與軟件工程學軟件工程學的產(chǎn)生要從軟件工程學的產(chǎn)生要從“軟件危機軟件危機”說起說起 1968 年,第一屆年,第一屆 NAT0 (北大西洋公約組織的計算機科學家的國際會議)會議,會議,“軟件工程軟件工程”的慨念作為一種的慨念作為一種有效解決有效解決“軟件危機軟件危機”的途徑被正式提出。的途徑被正式提出。l什么是軟件危機?什么是軟件危機?l軟件危機有什么典型表

14、現(xiàn)?軟件危機有什么典型表現(xiàn)?l為什么會產(chǎn)生軟件危機?為什么會產(chǎn)生軟件危機?l怎么解決軟件危機?怎么解決軟件危機?221 軟件危機 1 . 1 . 1 軟件危機介紹軟件危機介紹什么是軟件危機?什么是軟件危機? 軟件危機指在計算機軟件的軟件危機指在計算機軟件的開發(fā)和維護開發(fā)和維護過過程中,所遇到的一系列嚴重問題。程中,所遇到的一系列嚴重問題。軟件危機主要包括的問題(兩方面)軟件危機主要包括的問題(兩方面) : 如何開發(fā)軟件如何開發(fā)軟件 如何維護軟件如何維護軟件23軟件危機有什么典型表現(xiàn)?(1)開發(fā)費用和進度難以估算和控制,大大超過開發(fā)費用和進度難以估算和控制,大大超過預期的資金和規(guī)定日期;預期的資

15、金和規(guī)定日期;軟件需求分析不夠充分,用戶不滿意軟件需求分析不夠充分,用戶不滿意“已經(jīng)已經(jīng)完成完成”的軟件系統(tǒng)。的軟件系統(tǒng)。軟件質量難于保證;軟件質量難于保證;軟件維護困難;軟件維護困難;難以改正程序中的錯誤;難以改正程序中的錯誤;難以根據(jù)用戶的需要在原有程序中增加一些新難以根據(jù)用戶的需要在原有程序中增加一些新的功能。的功能。24軟件危機有什么典型表現(xiàn)?通常沒有保留適當?shù)奈臋n資料。通常沒有保留適當?shù)奈臋n資料。文檔的作用:文檔的作用:軟件開發(fā)管理人員:用于管理和評價軟件開發(fā)工程的軟件開發(fā)管理人員:用于管理和評價軟件開發(fā)工程的進展狀況進展狀況軟件開發(fā)人員:用于開發(fā)人員對各個階段的工作都進軟件開發(fā)人員

16、:用于開發(fā)人員對各個階段的工作都進行周密思考、全盤權衡、從而減少返工。并且可在開發(fā)行周密思考、全盤權衡、從而減少返工。并且可在開發(fā)早期發(fā)現(xiàn)錯誤和不一致性,便于及時加以糾正早期發(fā)現(xiàn)錯誤和不一致性,便于及時加以糾正軟件維護人員軟件維護人員:軟件維護的依據(jù)軟件維護的依據(jù) 開發(fā)成本逐年上升,軟件開發(fā)生產(chǎn)率提高的速度,開發(fā)成本逐年上升,軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。遠遠跟不上計算機應用迅速普及深入的趨勢。2526幾個軟件危機的著名案例 1966 1966年,年,IBM 360 IBM 360 機的操作系統(tǒng)?;ㄙM機的操作系統(tǒng)?;ㄙM 5000 5000 人一年的人一年的工

17、作量,寫了近工作量,寫了近 1 1 萬行代碼。錯誤百出,每次的新版本就萬行代碼。錯誤百出,每次的新版本就是從前一版本中找是從前一版本中找 1 0001 000個程序錯誤而修正的結果。個程序錯誤而修正的結果。 1963 1963 年,美國用于控制火星探測器的計算機軟件中的一年,美國用于控制火星探測器的計算機軟件中的一個個 “ “ , ”, ”號被誤寫為號被誤寫為“.”.”,而致使飛往火星的探測器發(fā),而致使飛往火星的探測器發(fā)生爆炸,造成高達數(shù)億美元的損失。生爆炸,造成高達數(shù)億美元的損失。 美國丹佛新國際機場自動化行李系統(tǒng)軟件。投資美國丹佛新國際機場自動化行李系統(tǒng)軟件。投資 1. 93 1. 93

18、億美元,計劃億美元,計劃 1993 1993 年萬圣節(jié)啟用。但開發(fā)人員一直為系統(tǒng)年萬圣節(jié)啟用。但開發(fā)人員一直為系統(tǒng)錯誤困擾,屢次推后啟用時間,直到錯誤困擾,屢次推后啟用時間,直到 1994 1994 年年 6 6 月,機場月,機場計劃者承認無法預測何時能啟用。計劃者承認無法預測何時能啟用。 1996 1996 年,歐洲阿里亞納年,歐洲阿里亞納 5 5 型運載火箭墜毀,造成型運載火箭墜毀,造成 5 5 億美元損失。原因是控制軟件中的一個錯誤。億美元損失。原因是控制軟件中的一個錯誤。271 . 1 . 2 產(chǎn)生軟件危機的原因主要兩個原因:主要兩個原因: 1 、與軟件本身的特點有關、與軟件本身的特點

19、有關 2 、與軟件開發(fā)與維護的方法不正確有關。、與軟件開發(fā)與維護的方法不正確有關。28一 、軟件本身的特點 ( 1)軟件與硬件、一般程序存在很多不同之處。軟件與硬件、一般程序存在很多不同之處。 1 、軟件與硬件不同、軟件與硬件不同抽象性。抽象性。軟件生產(chǎn)沒有明顯的制造過程,難軟件生產(chǎn)沒有明顯的制造過程,難以衡量開發(fā)進展,也難以控制軟件質量。以衡量開發(fā)進展,也難以控制軟件質量。問題的隱蔽性。問題的隱蔽性。沒有硬件的磨損、老化問題,沒有硬件的磨損、老化問題,但存在開發(fā)早期在分析、設計階段的錯誤,但存在開發(fā)早期在分析、設計階段的錯誤,修改難度較大。修改難度較大。29失效率曲線30改正一個問題需付出的

20、代價312 、軟件與一般程序不同(1) 軟件遠比一般程序規(guī)模龐大,復雜性高軟件遠比一般程序規(guī)模龐大,復雜性高軟件所反映的實際問題的復雜性軟件所反映的實際問題的復雜性程序邏輯結構的復雜性。程序邏輯結構的復雜性。例例 1 : Windows95 , 1000 萬行代碼;萬行代碼; Windows2000, 5000 萬行代碼萬行代碼例例 2 : Exchange 2000 和和 windows 2000 開開發(fā)人員發(fā)人員32軟件的規(guī)模F軟件產(chǎn)品的特殊性和人類智力的局限性,軟件產(chǎn)品的特殊性和人類智力的局限性,導致人們無力處理導致人們無力處理“復雜問題復雜問題”。332 、軟件與一般程序不同( 2 )

21、 大型軟件開發(fā)既有技術問題,還有社會問大型軟件開發(fā)既有技術問題,還有社會問題。題。社會因素:組織機構、體制、管理方式、觀念、社會因素:組織機構、體制、管理方式、觀念、人的心理素等。人的心理素等。開發(fā)團隊成員分工合作開發(fā)團隊成員分工合作技術與管理的矛盾技術與管理的矛盾軟件開發(fā)人員對軟件應用的領域知識的了解軟件開發(fā)人員對軟件應用的領域知識的了解34二、軟件開發(fā)維護方法中存在的問題(1) 對用戶需求的獲取不正確對用戶需求的獲取不正確用戶的原因用戶的原因分析人員的原因分析人員的原因 對分析人員的要求:溝通能力、歸納總結能力、經(jīng)驗對分析人員的要求:溝通能力、歸納總結能力、經(jīng)驗越是早期產(chǎn)生的錯誤,付出的代

22、價越大。越是早期產(chǎn)生的錯誤,付出的代價越大。圖:不同時期引入同一變圖:不同時期引入同一變 動動 的代價的代價35二、軟件開發(fā)維護方法中存在的問題( 2 ) 軟件開發(fā)就是編寫程序。軟件開發(fā)就是編寫程序。一個完整的軟件產(chǎn)品由一整套完整的配置組成,程序一個完整的軟件產(chǎn)品由一整套完整的配置組成,程序只是其中的一個組成部分。只是其中的一個組成部分。軟件開發(fā)過程包括多個階段,每個階段的產(chǎn)品都是最軟件開發(fā)過程包括多個階段,每個階段的產(chǎn)品都是最終的完整的軟件產(chǎn)品的一部分。終的完整的軟件產(chǎn)品的一部分。 軟件開發(fā)只要依靠個別編程高手就能完成。軟件開發(fā)只要依靠個別編程高手就能完成。 輕視軟件維護輕視軟件維護軟件維護

23、約占軟件費用軟件維護約占軟件費用 55 一一 75 % ,包括修改軟件運,包括修改軟件運行的錯誤;對軟件進行改進和功能擴充。行的錯誤;對軟件進行改進和功能擴充。36軟件維護在軟件費用的比例37三、其他產(chǎn)生軟件危機的原因軟件開發(fā)尚未完全擺脫手工藝的開發(fā)方式。軟件開發(fā)尚未完全擺脫手工藝的開發(fā)方式。 軟件成本相當昂貴,主要依靠大量復雜的、軟件成本相當昂貴,主要依靠大量復雜的、高強度的腦力勞動高強度的腦力勞動 軟件的開發(fā)和運行常常受到計算機系統(tǒng)的軟件的開發(fā)和運行常常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性。限制,對計算機系統(tǒng)有著不同程度的依賴性。軟件的軟件的“可移植性可移植性”就是指的軟

24、件對硬件的依就是指的軟件對硬件的依賴程度。好的可移植性依賴少。賴程度。好的可移植性依賴少。38消除軟件危機的途徑1 、徹底消除、徹底消除“軟件就是程序軟件就是程序”的錯誤觀念。的錯誤觀念。2 、充分認識到軟件開發(fā)是一種組織良好、充分認識到軟件開發(fā)是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的管理嚴密、各類人員協(xié)同配合、共同完成的工程項目,不是個人獨立的勞動。工程項目,不是個人獨立的勞動。 3 、推廣和使用在實踐中總結出來的軟件開、推廣和使用在實踐中總結出來的軟件開發(fā)的成功技術和方法。發(fā)的成功技術和方法。 4 、開發(fā)和使用更好的軟件工具、開發(fā)和使用更好的軟件工具39總結:總結:“軟件工程

25、軟件工程”的方法理論是擺脫軟件的方法理論是擺脫軟件危機的一個主要出路。危機的一個主要出路。計算機和軟件科學家為解決軟件危機問題,嘗計算機和軟件科學家為解決軟件危機問題,嘗試將在其它領域中行之有效的工程學知識運用到試將在其它領域中行之有效的工程學知識運用到軟件開發(fā)工作中來,經(jīng)過不斷實踐和總結,軟件開發(fā)工作中來,經(jīng)過不斷實踐和總結,最后最后得出一個結論;得出一個結論;按工程化的原則和方法組織軟件按工程化的原則和方法組織軟件開發(fā)工作是有效的,是擺脫軟件危機的一個主要開發(fā)工作是有效的,是擺脫軟件危機的一個主要出路。出路。40思考題( 1 )1 )只要是編程高手,即使是不懂軟件工程,)只要是編程高手,即

26、使是不懂軟件工程,也能編出很好的軟件。也能編出很好的軟件。軟件是服務于大眾,卻是由個性化的開發(fā)人員軟件是服務于大眾,卻是由個性化的開發(fā)人員完成的。如果個性化太強,程序就無法閱讀,其完成的。如果個性化太強,程序就無法閱讀,其他人員也就無法維護。他人員也就無法維護。例:國內(nèi)例:國內(nèi) 80 年代涌現(xiàn)出來的眾多漢字操作系年代涌現(xiàn)出來的眾多漢字操作系統(tǒng)均是由編程高手完成的。統(tǒng)均是由編程高手完成的。41思考題( 2 )2 )只要擁有一套講述如何開發(fā)軟件的書籍,)只要擁有一套講述如何開發(fā)軟件的書籍,并了解了書中的標準與示例,就可以解決軟并了解了書中的標準與示例,就可以解決軟件開發(fā)中遇到的任何問題。件開發(fā)中遇

27、到的任何問題。軟件是用來解決現(xiàn)實問題的,現(xiàn)實問題的特殊軟件是用來解決現(xiàn)實問題的,現(xiàn)實問題的特殊性對規(guī)范提出了挑戰(zhàn)(要進行適應)。性對規(guī)范提出了挑戰(zhàn)(要進行適應)。軟件技術是發(fā)展的,沒有祖?zhèn)髅胤?。軟件技術是發(fā)展的,沒有祖?zhèn)髅胤?。就像擁有食譜并不能成為名廚一樣,軟件開發(fā)就像擁有食譜并不能成為名廚一樣,軟件開發(fā)需要實踐。需要實踐。42思考題( 3 )3 )只要擁有最好的開發(fā)工具、最好的計算)只要擁有最好的開發(fā)工具、最好的計算機,一定能做出優(yōu)秀的軟件。機,一定能做出優(yōu)秀的軟件。硬件環(huán)境只是必要條件,人才是充分條件,軟硬件環(huán)境只是必要條件,人才是充分條件,軟件是人在一定的約束條件下創(chuàng)造出來的。因人因件是

28、人在一定的約束條件下創(chuàng)造出來的。因人因事而異。事而異。43思考題 (4)4 )軟件開發(fā)時,如果進度慢,落后于計劃,)軟件開發(fā)時,如果進度慢,落后于計劃,可以增加更多的程序員來解決。可以增加更多的程序員來解決。增加人力可以減少開發(fā)時間嗎?增加人力可以減少開發(fā)時間嗎?新手!任務的重新劃分!溝通更加復雜!新手!任務的重新劃分!溝通更加復雜!必須依靠科學地計劃來解決這樣的問題。必須依靠科學地計劃來解決這樣的問題。44思考題(5)5 )爭議:如果軟件運行較慢,是換一臺更)爭議:如果軟件運行較慢,是換一臺更快的計算機,還是設計一種更快的算法?快的計算機,還是設計一種更快的算法?軟件的性能問題;軟件的性能問

29、題;應用級別應用級別算法的合理性;算法的合理性;系統(tǒng)級別系統(tǒng)級別操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、系統(tǒng)軟操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、系統(tǒng)軟件等;件等;硬件級別硬件級別機器性能機器性能451 . 2 軟件工程蓋一幢大樓,過程?蓋一幢大樓,過程?砌磚和壘墻砌磚和壘墻對建筑進行主體設計、繪制圖紙、估算建筑對建筑進行主體設計、繪制圖紙、估算建筑成本、安排任務、驗收建筑質量等成本、安排任務、驗收建筑質量等.軟件開發(fā)過程軟件開發(fā)過程所涉及的環(huán)節(jié)和活動也不僅僅所涉及的環(huán)節(jié)和活動也不僅僅是編寫代碼這樣簡單:實現(xiàn)什么樣的功能;是編寫代碼這樣簡單:實現(xiàn)什么樣的功能;系統(tǒng)架構;減少軟件系統(tǒng)中存在的錯誤;維系統(tǒng)架構;減少軟件系統(tǒng)中存在

30、的錯誤;維護;保證質量。護;保證質量。461 . 2 軟件工程1 . 2 . 1 軟件工程介紹軟件工程介紹一、一、“軟件工程軟件工程”的典型定義的典型定義 1 )1968 年,第一屆年,第一屆 NATO 會議會議為了經(jīng)濟地獲得可靠的且能在實際機器上有效地運為了經(jīng)濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的行的軟件,而建立和使用完善的工程工程原理。原理。 2 ) IEEE/CS(電氣電子工程師協(xié)會計算機科學分會)(電氣電子工程師協(xié)會計算機科學分會) 1993 年,將系統(tǒng)化的、規(guī)范的、可度量的方法年,將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將應用

31、于軟件的開發(fā)、運行和維護的過程,即將工程工程化化應用于軟件中。應用于軟件中。 對對 中提到的各種方法的研究中提到的各種方法的研究473 ) 其他學者的定義Boehm :運用現(xiàn)代科學技術知識來設計并構:運用現(xiàn)代科學技術知識來設計并構造計算機程序及為開發(fā)、運行和維護這些程造計算機程序及為開發(fā)、運行和維護這些程序所必需的相關文件資料。序所必需的相關文件資料。Fritz Bauer: 建立并使用完善的建立并使用完善的工程化工程化原則,原則,以較經(jīng)濟的手段獲得能在實際機器上有效運以較經(jīng)濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法行的可靠軟件的一系列方法所有定義都強調(diào)在軟件開發(fā)過程中,應用工所

32、有定義都強調(diào)在軟件開發(fā)過程中,應用工程化原則的重要性程化原則的重要性48幾個關于軟件工程本質特性和基本原理的問題問題一:問題一: 軟件工程適用范圍?軟件工程適用范圍? 問題二:軟件工程如何控制系統(tǒng)開發(fā)的復雜問題二:軟件工程如何控制系統(tǒng)開發(fā)的復雜性的?性的?問題三:以你的經(jīng)驗,舉例說明一個成熟的問題三:以你的經(jīng)驗,舉例說明一個成熟的軟件通常采用什么方法來適應現(xiàn)實世界的變軟件通常采用什么方法來適應現(xiàn)實世界的變化的?化的?49幾個關于軟件工程本質特性和基本原理的問題問題四:假設某軟件公司,能為同一個用戶問題四:假設某軟件公司,能為同一個用戶開發(fā)兩個不同層次的軟件:一個層次的軟件開發(fā)兩個不同層次的軟件

33、:一個層次的軟件功能非常強大,在滿足用戶所有需求的基礎功能非常強大,在滿足用戶所有需求的基礎上,還能提供大大超過用戶需求的其他更多上,還能提供大大超過用戶需求的其他更多更強的功能;另一個層次的軟件僅僅能滿足更強的功能;另一個層次的軟件僅僅能滿足用戶需求,但沒有提供其他額外的功能。請用戶需求,但沒有提供其他額外的功能。請問如果你是項目負責人,你會選擇為客戶開問如果你是項目負責人,你會選擇為客戶開發(fā)那個層次的軟件?發(fā)那個層次的軟件?問題五:協(xié)同工作有什么重要性?問題五:協(xié)同工作有什么重要性?50幾個關于軟件工程本質特性和基本原理的問題問題五:怎樣理解問題五:怎樣理解“在軟件工程領域中是由具有一在軟

34、件工程領域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品品”這句話?這句話?問題六:某軟件開發(fā),由于時間和資金都非常緊迫,問題六:某軟件開發(fā),由于時間和資金都非常緊迫,在需求分析人員非常認真、仔細地做完需求分析之在需求分析人員非常認真、仔細地做完需求分析之后,說:我們可以保證我們的需求分析正確性,不后,說:我們可以保證我們的需求分析正確性,不用花時間檢查了,設計人員可以直接拿著這份分析用花時間檢查了,設計人員可以直接拿著這份分析報告,馬上開始設計。如果你是項目負責人,你會報告,馬上開始設計。如果你是項目負責人,你會如何決定?為什么?如何決

35、定?為什么?問題七:在需求分析完成并獲得了用戶的肯定,也問題七:在需求分析完成并獲得了用戶的肯定,也通過了評審,進入軟件設計階段之后,用戶的想法通過了評審,進入軟件設計階段之后,用戶的想法有了改變,提出了一個新的要求,此時如果你是項有了改變,提出了一個新的要求,此時如果你是項目負責人,應該怎樣做?目負責人,應該怎樣做?51二、軟件工程本質特性(2)1 )軟件工程關注于大型程序的構造。)軟件工程關注于大型程序的構造。 2 )軟件工程的中心課題是控制復雜性)軟件工程的中心課題是控制復雜性主要考慮:如何分解和集成主要考慮:如何分解和集成為什么要分解:為什么要分解: G .Miller, “7士士 2

36、 ” 原則原則 3 )軟件經(jīng)常變化)軟件經(jīng)常變化 4 )開發(fā)軟件的效率非常重要)開發(fā)軟件的效率非常重要 5 )和諧地合作是開發(fā)軟件的關鍵)和諧地合作是開發(fā)軟件的關鍵 6 )軟件必須有效地支持它的用戶)軟件必須有效地支持它的用戶 7 )在軟件工程領域中是由具有一種文化背景的人)在軟件工程領域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品替具有另一種文化背景的人創(chuàng)造產(chǎn)品擴展定義:擴展定義:軟件軟件=知識程序知識程序+數(shù)據(jù)數(shù)據(jù)+文檔文檔52軟件工程的基本原理B.W.Boehm, 1983 年提出:年提出: 1 )用分階段的生命周期計劃嚴格管理)用分階段的生命周期計劃嚴格管理 2 )堅持進

37、行階段評審)堅持進行階段評審 3 )實行嚴格的產(chǎn)品控制基線)實行嚴格的產(chǎn)品控制基線 基線(基線(baseline)控制)控制 4 )采用現(xiàn)代程序設計技術)采用現(xiàn)代程序設計技術 5 )結果應能清楚地審查)結果應能清楚地審查 6 )開發(fā)小組的人員應該少而精)開發(fā)小組的人員應該少而精 7 )承認不斷改進軟件工程實踐的必要性)承認不斷改進軟件工程實踐的必要性53軟件工程方法學l軟件工程包括軟件工程包括“管理管理”和和“技術技術”兩方面內(nèi)兩方面內(nèi)容:容:管理管理 對人、財、物的合理使用和配置;對人、財、物的合理使用和配置;技術技術 指軟件開發(fā)中采用的方法、工具和指軟件開發(fā)中采用的方法、工具和過程。過程。

38、l什么是什么是軟件工程方法學軟件工程方法學?通常把在軟件生命周期全過程中使用的一整套通常把在軟件生命周期全過程中使用的一整套技術方法技術方法的集合稱為方法學的集合稱為方法學(methodology),也稱為范型也稱為范型(paradigm)。)。54一、軟件工程方法學三要素:工具、方法和過程要素一:軟件工程過程要素一:軟件工程過程規(guī)定了完成各項任務的工作規(guī)定了完成各項任務的工作步驟。步驟。要素二:軟件工程方法要素二:軟件工程方法完成軟件開發(fā)的各項任務的完成軟件開發(fā)的各項任務的技術方法,為軟件開發(fā)提供技術方法,為軟件開發(fā)提供了了“如何做如何做”的技術。的技術。如項目計劃與估算、軟件系如項目計劃與

39、估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結構、系統(tǒng)統(tǒng)需求分析、數(shù)據(jù)結構、系統(tǒng)總體結構的設計、算法過程的總體結構的設計、算法過程的設計、編碼、測試以及維護等。設計、編碼、測試以及維護等。要素三:軟件工程工具要素三:軟件工程工具計算機輔助軟件工程計算機輔助軟件工程 CASE ( computer Aided sottware Engineering ) ,為軟件工,為軟件工程方法提供自動或半自動的程方法提供自動或半自動的軟件支撐環(huán)境。軟件支撐環(huán)境。55二、軟件工程方法學思想兩種:兩種:1、 傳統(tǒng)方法學(生命周期方法學或結構化傳統(tǒng)方法學(生命周期方法學或結構化范型)范型) 2、面向對象方法、面向對象方法561.

40、傳統(tǒng)方法學(生命周期方法學或結構化范型)l采用結構化技術(結構化分析、結構化設采用結構化技術(結構化分析、結構化設計和結構化實現(xiàn))來完成軟件開發(fā)的各項任計和結構化實現(xiàn))來完成軟件開發(fā)的各項任務;務;l把軟件生命周期劃分為若干個階段,按順把軟件生命周期劃分為若干個階段,按順序完成每個階段的任務;序完成每個階段的任務;l每個階段開始和結束都有嚴格的標準,對每個階段開始和結束都有嚴格的標準,對任何兩個相鄰的階段而言,前一個階段的結任何兩個相鄰的階段而言,前一個階段的結束標準就是后一階段的開始標準;束標準就是后一階段的開始標準;l每一個階段結束之前都必須進行正式嚴格每一個階段結束之前都必須進行正式嚴格

41、的技術審查和管理復審的技術審查和管理復審57傳統(tǒng)方法學的優(yōu)點:l分解任務,分工合作,降低整個軟件開發(fā)分解任務,分工合作,降低整個軟件開發(fā)工程的困難;工程的困難;l采用科學的管理技術和良好的技術方法對采用科學的管理技術和良好的技術方法對每個階段成果都進行嚴格的每個階段成果都進行嚴格的審查審查。保證了軟。保證了軟件的質量。件的質量。傳統(tǒng)方法學的缺點:傳統(tǒng)方法學的缺點:把數(shù)據(jù)和操作人為地分離成兩個獨立的部分,把數(shù)據(jù)和操作人為地分離成兩個獨立的部分,增加了軟件開發(fā)與維護的難度。增加了軟件開發(fā)與維護的難度。582 、面向對象方法學( OO,Object- oriented ) 模擬人類習慣的思維方式,使

42、開發(fā)軟件的模擬人類習慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世界解決問方法與過程盡可能接近人類認識世界解決問題的方法與過程,從而使描述問題的問題空題的方法與過程,從而使描述問題的問題空間(也稱為問題域)與實現(xiàn)解法的解空間間(也稱為問題域)與實現(xiàn)解法的解空間(也稱為求解域)在結構上盡可能一致。(也稱為求解域)在結構上盡可能一致。59面向對象方法學 4 要點l把對象(把對象( object )作為融合了數(shù)據(jù)及在數(shù))作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構件。據(jù)上的操作行為的統(tǒng)一的軟件構件。l把所有對象都劃分成類(把所有對象都劃分成類(class )。)。l按照父類(或稱為基類

43、)與子類(或稱為按照父類(或稱為基類)與子類(或稱為派生類)的關系,把若干個相關類組成一個派生類)的關系,把若干個相關類組成一個層次結構的系統(tǒng)(也稱為類等級)。層次結構的系統(tǒng)(也稱為類等級)。l對象彼此間僅能通過發(fā)送消息互相聯(lián)系。對象彼此間僅能通過發(fā)送消息互相聯(lián)系。60二者區(qū)別l傳統(tǒng)方法學:強調(diào)自頂向下順序地完成軟傳統(tǒng)方法學:強調(diào)自頂向下順序地完成軟件開發(fā)的各階段任務。件開發(fā)的各階段任務。l面向對象方法:是主動地多次反復迭代的面向對象方法:是主動地多次反復迭代的演化過程演化過程613 軟件生命周期一、什么是軟件生命周期(一、什么是軟件生命周期( life cycle)指軟件孕育、誕生、成長、成

44、熟、衰亡的生存過程指軟件孕育、誕生、成長、成熟、衰亡的生存過程 GB 一一 8567 中將軟件生命周期分為中將軟件生命周期分為 7 個階段個階段:可行性研究和項目開發(fā)計劃;需求分析;慨要設計;可行性研究和項目開發(fā)計劃;需求分析;慨要設計;詳細設計;編碼;測試;維護詳細設計;編碼;測試;維護其他分法,其他分法, 5 個階段個階段:需求定義、設計、編碼、測試及維護;需求定義、設計、編碼、測試及維護;需求定義階段包括可行性研究和項目開發(fā)計劃、需需求定義階段包括可行性研究和項目開發(fā)計劃、需求分析;求分析;設計階段包括慨要設計和詳細設計。設計階段包括慨要設計和詳細設計。62本教材對軟件生命周期的劃分63

45、1 、軟件定義時期任務:任務:確定軟件開發(fā)工程必須完成的總目標;確定軟件開發(fā)工程必須完成的總目標;確定工程的可行性;確定工程的可行性;導出實現(xiàn)工程目標應該采用的策略及系統(tǒng)必導出實現(xiàn)工程目標應該采用的策略及系統(tǒng)必須完成的功能;須完成的功能;估計完成該項工程需要的資源和成本,并且估計完成該項工程需要的資源和成本,并且制定工程進度表。制定工程進度表。通常分為通常分為問題定義、可行性研究和需求分析問題定義、可行性研究和需求分析三個階段。三個階段。64軟件定義時期的三個階段 問題定義階段回答:問題定義階段回答: 回答:回答:“要解決的問題是什么?要解決的問題是什么?” 可行性研究階段可行性研究階段回答:

46、回答:“對于上一個階段所確定的問題有行得通的對于上一個階段所確定的問題有行得通的解決辦法嗎?解決辦法嗎? 需求分析(需求分析(Requirement Analysis)回答回答“為了解決這個問題,目標系統(tǒng)必須做什么為了解決這個問題,目標系統(tǒng)必須做什么 ? 用正式文檔準確地記錄對目標系統(tǒng)的需求,這份文用正式文檔準確地記錄對目標系統(tǒng)的需求,這份文檔通常稱為規(guī)格說明書(檔通常稱為規(guī)格說明書( specification )。)。652 、軟件開發(fā)時期具體設計和實現(xiàn)前一個時期定義的軟件,通常分為具體設計和實現(xiàn)前一個時期定義的軟件,通常分為四個階段:四個階段: 總體設計(概要設計)總體設計(概要設計)回

47、答:回答:“概括地說概括地說,應該怎樣實現(xiàn)目標系統(tǒng)?,應該怎樣實現(xiàn)目標系統(tǒng)? ” 根據(jù)需求分析,根據(jù)需求分析,設計軟件的設計軟件的體系結構;體系結構;定義結構中定義結構中的的組成模塊。組成模塊。 詳細設計(模塊設計)詳細設計(模塊設計)回答:回答:“應該怎樣應該怎樣具體地具體地實現(xiàn)這個系統(tǒng)呢?實現(xiàn)這個系統(tǒng)呢? ” 對每個模塊要完成的工作進行具體的描述,為源程對每個模塊要完成的工作進行具體的描述,為源程序編寫打下基礎。編寫設計說明書,提交評審。序編寫打下基礎。編寫設計說明書,提交評審。 二者統(tǒng)稱二者統(tǒng)稱系統(tǒng)設計系統(tǒng)設計 66軟件開發(fā)時期四個階段 程序編寫(程序編寫( Coding, Progra

48、mming ) :把軟件設計轉換成計算機可以接受的程序代把軟件設計轉換成計算機可以接受的程序代碼。碼。 軟件測試(軟件測試(Testing ) : 按規(guī)定的各項需求,按規(guī)定的各項需求,逐項進行有效性測試,決定已開發(fā)的軟件是逐項進行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用,包括否合格,能否交付用戶使用,包括單元測試單元測試和組裝測試。和組裝測試。二者統(tǒng)稱二者統(tǒng)稱系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn)673、運行維護(軟件維護)時期( Running/Maintenance )使軟件持久的滿足用戶的需要。包括:使軟件持久的滿足用戶的需要。包括:l改正性維護:改正性維護:運行中發(fā)現(xiàn)了軟件中的錯誤運行中發(fā)現(xiàn)了

49、軟件中的錯誤需要修正。需要修正。l適應性維護:適應性維護:為了適應變化了的軟件工作為了適應變化了的軟件工作環(huán)境,需做適當變更。環(huán)境,需做適當變更。l完善性維護:完善性維護:當用戶有新的要求時,應該當用戶有新的要求時,應該及時改進軟件以滿足用戶的要求。及時改進軟件以滿足用戶的要求。l預防性維護預防性維護: 即修改軟件為將來的維護活動即修改軟件為將來的維護活動預先做準備。預先做準備。681.2.4 軟件過程( Software Process )1 、什么是軟件過程、什么是軟件過程 為了獲得高質量軟件所需要完成的為了獲得高質量軟件所需要完成的一系列一系列任務的框架任務的框架,它規(guī)定了完成各項任務的

50、,它規(guī)定了完成各項任務的工作工作步驟步驟。 ISO 9000的定義:的定義:使用資源將輸入轉化為輸出的活動所構成的使用資源將輸入轉化為輸出的活動所構成的系系統(tǒng)統(tǒng)。 “系統(tǒng)系統(tǒng)”是相互關聯(lián)或相互作用的一組要是相互關聯(lián)或相互作用的一組要素。素。過程過程是軟件工程三要素之一。是軟件工程三要素之一。通常用通常用軟件生命周期模型軟件生命周期模型來描述來描述。692 、什么是軟件生命周期模型又稱:軟件開發(fā)模型軟件過程模型軟件又稱:軟件開發(fā)模型軟件過程模型軟件工程范型。工程范型。指軟件項目從指軟件項目從需求定義需求定義直至直至軟件經(jīng)使用后廢軟件經(jīng)使用后廢棄棄為止,跨越整個生存周期的系統(tǒng)開發(fā)、運為止,跨越整個

51、生存周期的系統(tǒng)開發(fā)、運作和維護所實施的全部過程、活動和任務的作和維護所實施的全部過程、活動和任務的結構框架結構框架。常見的有:瀑布模型、演化模型、螺旋模型、常見的有:瀑布模型、演化模型、螺旋模型、噴泉模型、智能模型噴泉模型、智能模型70 瀑布模型(waterfall model)19701970年年, ,由由W.RoyceW.Royce提出提出 一、瀑布模型的過程一、瀑布模型的過程 1 、傳統(tǒng)的瀑布模型、傳統(tǒng)的瀑布模型 從上一階段接受本階段從上一階段接受本階段的工作對象,作為輸?shù)墓ぷ鲗ο螅鳛檩?入;入; 利用輸入,完成本階段活利用輸入,完成本階段活動的內(nèi)容動的內(nèi)容 本階段的工作成果作為輸出本

52、階段的工作成果作為輸出傳入下一階段。傳入下一階段。71瀑布模型 實際的瀑布模型 需求分析需求分析驗證驗證規(guī)格說明規(guī)格說明驗證驗證設計設計驗證驗證編碼編碼測試測試綜合測試綜合測試維護維護變化的需求變化的需求驗證驗證 增加了一個評審活動,增加了一個評審活動,評審每個階段完成的活評審每個階段完成的活動,若得到確認,則進動,若得到確認,則進行下一階段的活動;否行下一階段的活動;否則返回前一階段,甚至則返回前一階段,甚至更前階段返工;更前階段返工;72二、瀑布模型特點F 階段間具有順序性和依賴性階段間具有順序性和依賴性F 推遲實現(xiàn)的觀點推遲實現(xiàn)的觀點F 質量保證的觀點質量保證的觀點73三、瀑布模型優(yōu)缺點

53、優(yōu)點:優(yōu)點:l 可強迫開發(fā)人員采用規(guī)范的方法;可強迫開發(fā)人員采用規(guī)范的方法;l 嚴格地規(guī)定了每個階段必須提交的文檔;嚴格地規(guī)定了每個階段必須提交的文檔;l 要求每個階段的所有產(chǎn)品都必須經(jīng)過質量保證要求每個階段的所有產(chǎn)品都必須經(jīng)過質量保證小組的仔細驗證;小組的仔細驗證;缺點:缺點: 無法解決軟件需求無法解決軟件需求不明確或不準確不明確或不準確的問題;可能的問題;可能導致最終開發(fā)的產(chǎn)品不能真正滿足用戶需要。導致最終開發(fā)的產(chǎn)品不能真正滿足用戶需要。 瀑布模型比較適合開發(fā)瀑布模型比較適合開發(fā)需求明確的軟件需求明確的軟件。74 快速原型模型1 、什么是、什么是“原型原型” ? 原型是快速實現(xiàn)和運行的早期

54、版本,反映原型是快速實現(xiàn)和運行的早期版本,反映最終系統(tǒng)部分重要特性。最終系統(tǒng)部分重要特性。 常見的原型實例:人機界面;系統(tǒng)主要功常見的原型實例:人機界面;系統(tǒng)主要功能。能。 優(yōu)點:優(yōu)點: 1 、通常能反映用戶真實需求;、通常能反映用戶真實需求; 2 、軟件產(chǎn)品的開發(fā)基本上是線性順序進行、軟件產(chǎn)品的開發(fā)基本上是線性順序進行的。的。752 、快速原型的過程如右圖。如右圖。獲得用戶的基本需求說明,據(jù)此獲得用戶的基本需求說明,據(jù)此快速建立一個小型軟件系統(tǒng)快速建立一個小型軟件系統(tǒng)用戶試用,對其評價;用戶試用,對其評價;開發(fā)人員按照用戶的意見快速地開發(fā)人員按照用戶的意見快速地修改原型系統(tǒng),獲得新的原型版修

55、改原型系統(tǒng),獲得新的原型版本,再請用戶試用,如此反復,本,再請用戶試用,如此反復,直到滿足用戶的要求;直到滿足用戶的要求;用戶確認原型系統(tǒng)之后,開發(fā)人用戶確認原型系統(tǒng)之后,開發(fā)人員據(jù)此書寫規(guī)格說明文檔,進行員據(jù)此書寫規(guī)格說明文檔,進行下一步開發(fā)。下一步開發(fā)。76增量(漸增)模型 把軟件產(chǎn)品作為一把軟件產(chǎn)品作為一系列的增量構件系列的增量構件來設計、來設計、編碼、集成和測試。每個構件由多個相互作編碼、集成和測試。每個構件由多個相互作用的用的模塊模塊構成,并且能夠完成特定的功能。構成,并且能夠完成特定的功能。 使用增量模型時,第一個階段的增量構件使用增量模型時,第一個階段的增量構件往往實現(xiàn)軟件的往往實現(xiàn)軟件的基本需求基本需求,提供,提供最核心最核心的功的功能;后面的增量構架能;后面的增量構架逐漸添加逐漸添加系統(tǒng)的系統(tǒng)的功能功能。77圖:增量(漸增)模型需求分析需求分析驗證驗證規(guī)格說明規(guī)格說明驗證驗證設計設計驗證驗證維護維護針對每個構件完成針對每個構件完成詳細設計、編碼和詳細設計、編碼和集成,經(jīng)測試后交集成,經(jīng)測試后交付給用戶付給用戶78增量模型注意事項l增量構件規(guī)模適中;增量構件規(guī)模適中;l分解的約束條件是當把新構件集成到現(xiàn)有分解的約束條件是

溫馨提示

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

評論

0/150

提交評論