軟件工程導(dǎo)論(第1章)_第1頁
軟件工程導(dǎo)論(第1章)_第2頁
軟件工程導(dǎo)論(第1章)_第3頁
軟件工程導(dǎo)論(第1章)_第4頁
軟件工程導(dǎo)論(第1章)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件工程軟件工程( Software Engineering )課程介紹課程介紹課程主要內(nèi)容:課程主要內(nèi)容:第一部分:軟件工程的基本定義、基本原理和軟件過程模型第一部分:軟件工程的基本定義、基本原理和軟件過程模型(對應(yīng)第一章)(對應(yīng)第一章)第二部分:從可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)第二部分:從可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)、維護(hù)六個(gè)步驟來說明軟件開發(fā)過程中的具體、編碼實(shí)現(xiàn)、維護(hù)六個(gè)步驟來說明軟件開發(fā)過程中的具體問題和具體解決方法(對應(yīng)第二、三、四、五、六、七、問題和具體解決方法(對應(yīng)第二、三、四、五、六、七、八章)八章)結(jié)構(gòu)化分析設(shè)計(jì)結(jié)構(gòu)化分析設(shè)計(jì)第三部分:面向?qū)?/p>

2、象方法概論、面向?qū)ο蠓治觥⒃O(shè)計(jì)、實(shí)現(xiàn)第三部分:面向?qū)ο蠓椒ǜ耪?、面向?qū)ο蠓治觥⒃O(shè)計(jì)、實(shí)現(xiàn)(對應(yīng)第九、十、十一、十二章)(對應(yīng)第九、十、十一、十二章)第四部分:軟件項(xiàng)目管理基本概念(對應(yīng)第十三章)第四部分:軟件項(xiàng)目管理基本概念(對應(yīng)第十三章)課程學(xué)時(shí)分配課程學(xué)時(shí)分配課程總學(xué)時(shí)(理論總學(xué)時(shí)課程總學(xué)時(shí)(理論總學(xué)時(shí)/實(shí)驗(yàn)實(shí)驗(yàn)總學(xué)時(shí)):總學(xué)時(shí)):80(50/30)實(shí)驗(yàn)工具:實(shí)驗(yàn)工具:Microsoft Visio2007考核方式考核方式考試方法:采用百分制,滿分為考試方法:采用百分制,滿分為100分。分。(1)閉卷考試:占總評(píng)成績的)閉卷考試:占總評(píng)成績的50%。(2)期中考試:占總評(píng)成績的)期中考試:

3、占總評(píng)成績的30%。(3)課堂作業(yè)、平時(shí)考勤、提問:占總評(píng)成績的)課堂作業(yè)、平時(shí)考勤、提問:占總評(píng)成績的10%;課;課后作業(yè)、實(shí)驗(yàn)報(bào)告:占總評(píng)成績的后作業(yè)、實(shí)驗(yàn)報(bào)告:占總評(píng)成績的10%。第第1章:軟件工程學(xué)概述章:軟件工程學(xué)概述1.1 軟件危機(jī)軟件危機(jī) 60年代中期以前:通用硬件相當(dāng)普遍,軟件卻是為某個(gè)年代中期以前:通用硬件相當(dāng)普遍,軟件卻是為某個(gè)具體的應(yīng)用而編寫的。具體的應(yīng)用而編寫的。 60年代中期到年代中期到70年代中期:軟件作坊。這時(shí)軟件危機(jī)出年代中期:軟件作坊。這時(shí)軟件危機(jī)出現(xiàn),隨之而來人們開始研究消除危機(jī)的途徑,從而形成一現(xiàn),隨之而來人們開始研究消除危機(jī)的途徑,從而形成一門新的學(xué)科門

4、新的學(xué)科軟件工程學(xué)。軟件工程學(xué)。軟件危機(jī)軟件危機(jī):計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇:計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。(正常、不正常運(yùn)行軟件都到的一系列嚴(yán)重問題。(正常、不正常運(yùn)行軟件都具有這種問題)具有這種問題) 1.1.1 軟件危機(jī)的介紹軟件危機(jī)的介紹軟件危機(jī)的實(shí)質(zhì):軟件危機(jī)的實(shí)質(zhì):l如何開發(fā)軟件,以滿足對軟件日益增長的需求如何開發(fā)軟件,以滿足對軟件日益增長的需求l如何維護(hù)數(shù)量不斷膨脹的已有軟件如何維護(hù)數(shù)量不斷膨脹的已有軟件1)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;2)用戶對完成的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;)用戶對完成的軟件

5、系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;3)軟件產(chǎn)品的質(zhì)量往往靠不住;)軟件產(chǎn)品的質(zhì)量往往靠不??; 4)軟件常常是不可維護(hù)的;)軟件常常是不可維護(hù)的;5)軟件通常沒有適當(dāng)?shù)奈臋n資料;)軟件通常沒有適當(dāng)?shù)奈臋n資料;6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;7)軟件開發(fā)生產(chǎn)率提高的速度跟不上計(jì)算機(jī)應(yīng)用的發(fā)展)軟件開發(fā)生產(chǎn)率提高的速度跟不上計(jì)算機(jī)應(yīng)用的發(fā)展趨勢。趨勢。 軟件危機(jī)的典型表現(xiàn):軟件危機(jī)的典型表現(xiàn):1.1.2 產(chǎn)生軟件危機(jī)的原因產(chǎn)生軟件危機(jī)的原因1)軟件本身特點(diǎn)造成;)軟件本身特點(diǎn)造成; 程序規(guī)模龐大;程序規(guī)模龐大; 程序復(fù)雜性隨著程序規(guī)模的增

6、加而呈指數(shù)上程序復(fù)雜性隨著程序規(guī)模的增加而呈指數(shù)上升。升。2)軟件開發(fā)與維護(hù)的方法不正確。)軟件開發(fā)與維護(hù)的方法不正確。主要表現(xiàn):主要表現(xiàn): (a)忽視軟件需求分析;)忽視軟件需求分析; (b)認(rèn)為軟件開發(fā)就是寫程序并使之運(yùn)行;)認(rèn)為軟件開發(fā)就是寫程序并使之運(yùn)行; (c)輕視軟件維護(hù);)輕視軟件維護(hù); 在軟件開發(fā)的不同階段進(jìn)行修改需要付出的在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)很不相同:代價(jià)很不相同:高高中中低低早期早期中期中期后期后期軟件開發(fā)時(shí)期軟件開發(fā)時(shí)期代價(jià)代價(jià)引入同一修改的代價(jià)隨時(shí)間變化的趨勢引入同一修改的代價(jià)隨時(shí)間變化的趨勢1.組織管理:組織管理:軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技

7、巧,軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,軟件開發(fā)應(yīng)該是一種組織良好、管理嚴(yán)密、各類人軟件開發(fā)應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。員協(xié)同配合、共同完成的工程項(xiàng)目。2.方法:方法:應(yīng)該推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件應(yīng)該推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤概念和做法。形成的一些錯(cuò)誤概念和做法。3.工具:工具:應(yīng)該開發(fā)和使用更好的軟件工具。在軟件開應(yīng)該開發(fā)和使用更好的軟件工具。在軟

8、件開發(fā)的每個(gè)階段都有許多繁瑣重復(fù)的工作需要做,在發(fā)的每個(gè)階段都有許多繁瑣重復(fù)的工作需要做,在適當(dāng)?shù)能浖ぞ咻o助下,開發(fā)人員可以把這類工作適當(dāng)?shù)能浖ぞ咻o助下,開發(fā)人員可以把這類工作做得既快又好。做得既快又好。1.1.3 解決軟件危機(jī)的途徑解決軟件危機(jī)的途徑 如果把各個(gè)階段使用的軟件工具有機(jī)地集如果把各個(gè)階段使用的軟件工具有機(jī)地集合成一個(gè)整體,支持軟件開發(fā)的全過程,合成一個(gè)整體,支持軟件開發(fā)的全過程,則稱為則稱為軟件工程支撐環(huán)境。軟件工程支撐環(huán)境。 為了解決軟件危機(jī)產(chǎn)生的問題,軟件工程與為了解決軟件危機(jī)產(chǎn)生的問題,軟件工程與方法學(xué)逐漸形成,然后出現(xiàn)了兩個(gè)相互相承又方法學(xué)逐漸形成,然后出現(xiàn)了兩個(gè)相

9、互相承又各有側(cè)重的學(xué)科:各有側(cè)重的學(xué)科: 1)軟件工程學(xué)軟件工程學(xué):主要應(yīng)用工程的方法和技:主要應(yīng)用工程的方法和技術(shù)研究軟件開發(fā)與維護(hù)的方法、工具和管理的術(shù)研究軟件開發(fā)與維護(hù)的方法、工具和管理的一門交叉學(xué)科。一門交叉學(xué)科。 2)程序設(shè)計(jì)方法學(xué)程序設(shè)計(jì)方法學(xué):主要應(yīng)用數(shù)學(xué)的方法:主要應(yīng)用數(shù)學(xué)的方法研究程序的性質(zhì)以及程序設(shè)計(jì)的理論和方法的研究程序的性質(zhì)以及程序設(shè)計(jì)的理論和方法的學(xué)科。學(xué)科。 1.2 軟件工程軟件工程1.2.1 軟件工程的介紹軟件工程的介紹1968年年NATO會(huì)議:軟件工程就是為了經(jīng)濟(jì)地獲會(huì)議:軟件工程就是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,得可靠的且能在實(shí)際機(jī)器上

10、有效地運(yùn)行的軟件,而建立和使用完善的工程原理。而建立和使用完善的工程原理。1993年年IEEE:軟件工程是(:軟件工程是(1)把系統(tǒng)的、規(guī)范)把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程,也就是把工程應(yīng)用于軟件;(過程,也就是把工程應(yīng)用于軟件;(2)研究()研究(1)中提到的途徑。中提到的途徑。 1. 軟件工程關(guān)注于大型程序的構(gòu)造;軟件工程關(guān)注于大型程序的構(gòu)造; 2. 軟件工程的中心課題是控制復(fù)雜性;軟件工程的中心課題是控制復(fù)雜性; 3. 軟件經(jīng)常變化;軟件經(jīng)常變化; 4. 開發(fā)軟件的效率非常重要;開發(fā)軟件的效率非常重要; 5. 和諧地

11、合作是軟件開發(fā)的關(guān)鍵;和諧地合作是軟件開發(fā)的關(guān)鍵; 6. 軟件必須有效地支持它的用戶;軟件必須有效地支持它的用戶; 7. 在軟件工程領(lǐng)域中是由具有一種文化背景的在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。軟件工程的本質(zhì)特性:軟件工程的本質(zhì)特性:1.2.2 軟件工程的基本原理軟件工程的基本原理1. 用分階段的生命周期計(jì)劃嚴(yán)格管理;用分階段的生命周期計(jì)劃嚴(yán)格管理;2. 堅(jiān)持進(jìn)行階段評(píng)審;堅(jiān)持進(jìn)行階段評(píng)審;3. 實(shí)行嚴(yán)格的產(chǎn)品控制;實(shí)行嚴(yán)格的產(chǎn)品控制;4. 采用現(xiàn)代程序設(shè)計(jì)技術(shù);采用現(xiàn)代程序設(shè)計(jì)技術(shù);5. 結(jié)果能清楚地審查;結(jié)果能清楚

12、地審查;6. 開發(fā)小組的人員應(yīng)該少而精;開發(fā)小組的人員應(yīng)該少而精;7. 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。1.2.3 軟件工程方法學(xué)軟件工程方法學(xué)軟件工程軟件工程包括:技術(shù)和管理兩個(gè)方面的內(nèi)容,是技術(shù)和包括:技術(shù)和管理兩個(gè)方面的內(nèi)容,是技術(shù)和管理緊密結(jié)合所形成的工程學(xué)科。管理緊密結(jié)合所形成的工程學(xué)科。 通常把在軟件生命周期全過程中使用的一整套技術(shù)方法通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為的集合稱為方法學(xué)方法學(xué)(Methodology),也稱為范型),也稱為范型(Paradigm)。)。 軟件工程方法學(xué)的軟件工程方法學(xué)的3要素要素:方法方法、

13、工具工具和和過程過程一一. 傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué) 也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。從時(shí)間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生命的漫長周期依次劃分為若干個(gè)階段,每個(gè)階段有相對獨(dú)立的任務(wù),然后逐步完成每個(gè)階段的任務(wù)。 文檔是通信的工具,它們清楚準(zhǔn)確地說明了到這個(gè)時(shí)候?yàn)橹梗P(guān)于該項(xiàng)工程已經(jīng)知道了什么,同時(shí)確立了下一步工作的基礎(chǔ)。此外,文檔也起備忘錄的作用,在完成生命周期每個(gè)階段的任務(wù)時(shí),應(yīng)該采用適合該階段任務(wù)特點(diǎn)的系統(tǒng)化的技術(shù)方法結(jié)構(gòu)分析或結(jié)構(gòu)設(shè)計(jì)技術(shù)。結(jié)構(gòu)化方法(結(jié)構(gòu)化方法(Structure Method)有:有: 1)結(jié)構(gòu)化設(shè)計(jì)方法()結(jié)構(gòu)化設(shè)計(jì)

14、方法(SD);); 2)結(jié)構(gòu)化分析方法(結(jié)構(gòu)化分析方法(SA);); 3)結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)()結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)(SADT) 4)JACKSON方法方法 5)WARNIER方法方法二二. 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué) 把數(shù)據(jù)和對數(shù)據(jù)的操作緊密結(jié)合起來的方法,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密結(jié)合起來的方法,模擬人類認(rèn)識(shí)世界解決問題的方法和過程。模擬人類認(rèn)識(shí)世界解決問題的方法和過程。 面向?qū)ο蟮姆椒嫦驅(qū)ο蟮姆椒?=對象(屬性與服務(wù)的封裝)對象(屬性與服務(wù)的封裝) +分類分類 +繼承繼承 +通過消息的通訊通過消息的通訊面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成同等重要,是一種以數(shù)據(jù)為主線,把數(shù)面向?qū)ο蠓椒ò褦?shù)據(jù)和

15、行為看成同等重要,是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合起來的方法。其具有如下?lián)蛯?shù)據(jù)的操作緊密地結(jié)合起來的方法。其具有如下4個(gè)要點(diǎn):個(gè)要點(diǎn):把對象把對象(Object)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。用對象分解取代傳統(tǒng)方法的功能分解。軟件構(gòu)件。用對象分解取代傳統(tǒng)方法的功能分解。把所有對象劃分為類把所有對象劃分為類(Class):每個(gè)類定義了一組數(shù)據(jù)和一組操:每個(gè)類定義了一組數(shù)據(jù)和一組操作。作。按照父類(基類)和子類(派生類)的關(guān)系,把若干個(gè)相關(guān)類按照父類(基類)和子類(派生類)的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的

16、系統(tǒng)。子類能夠繼承。組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。子類能夠繼承。對象彼此間僅能通過發(fā)送消息互相聯(lián)系。對象是數(shù)據(jù)處理的主對象彼此間僅能通過發(fā)送消息互相聯(lián)系。對象是數(shù)據(jù)處理的主體,具有封裝性特點(diǎn)。體,具有封裝性特點(diǎn)。復(fù)雜性降低、可理解性、簡化開發(fā)與維護(hù)、軟件重用。復(fù)雜性降低、可理解性、簡化開發(fā)與維護(hù)、軟件重用。1)適用于實(shí)時(shí)事物處理系統(tǒng)的有限狀態(tài)機(jī)方法)適用于實(shí)時(shí)事物處理系統(tǒng)的有限狀態(tài)機(jī)方法(FSM););2)適用于并發(fā)軟件系統(tǒng)的適用于并發(fā)軟件系統(tǒng)的PETRI網(wǎng)方法;網(wǎng)方法;3)以數(shù)學(xué)概念和理論為基礎(chǔ)的形式化方法,如)以數(shù)學(xué)概念和理論為基礎(chǔ)的形式化方法,如 SDC公司的形式化開發(fā)方法公司的形式化開發(fā)方法

17、FDM: (Formal Development Methodology) IBM公司的維也納開發(fā)方法公司的維也納開發(fā)方法VDM: (Vienna Development Method ) 三三. 其他開發(fā)方法其他開發(fā)方法 1.3 軟件生命周期軟件生命周期軟件生命周期軟件生命周期:指軟件從提出到最終被淘汰的這個(gè)存在期。指軟件從提出到最終被淘汰的這個(gè)存在期。軟件生命周期由軟件生命周期由軟件定義軟件定義、軟件開發(fā)軟件開發(fā)和和運(yùn)行運(yùn)行維護(hù)維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又劃分若干個(gè)三個(gè)時(shí)期組成,每個(gè)時(shí)期又劃分若干個(gè)階段。階段。 軟件生命周期組成:軟件生命周期組成: 1)軟件定義時(shí)期的主要任務(wù)為:)軟件定義

18、時(shí)期的主要任務(wù)為: A.問題定義問題定義 B.可行性研究可行性研究 C.需求分析需求分析 2)軟件開發(fā)時(shí)期的主要任務(wù)為:)軟件開發(fā)時(shí)期的主要任務(wù)為: D.總體設(shè)計(jì)總體設(shè)計(jì) E.詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) F.編碼和單元測試編碼和單元測試 G.綜合測試綜合測試 3)運(yùn)行維護(hù)時(shí)期的主要任務(wù)為:)運(yùn)行維護(hù)時(shí)期的主要任務(wù)為: H. 使軟件持久地滿足用戶的需要使軟件持久地滿足用戶的需要問題定義問題定義問題定義階段必須回答的關(guān)鍵問題是:問題定義階段必須回答的關(guān)鍵問題是:“要解決的問題是什么要解決的問題是什么?”。通過問題定義階段的工作,通過問題定義階段的工作,系統(tǒng)分析系統(tǒng)分析員應(yīng)該提出關(guān)于員應(yīng)該提出關(guān)于問題性質(zhì)問題

19、性質(zhì)、工程目標(biāo)和規(guī)模工程目標(biāo)和規(guī)模的書面報(bào)告。通過訪問調(diào)查,分析員扼要地寫的書面報(bào)告。通過訪問調(diào)查,分析員扼要地寫出他對問題的理解,并在用戶和使用部門負(fù)責(zé)人的會(huì)議上認(rèn)真出他對問題的理解,并在用戶和使用部門負(fù)責(zé)人的會(huì)議上認(rèn)真討論這份書面報(bào)告,得出一份雙方都滿意的文檔。討論這份書面報(bào)告,得出一份雙方都滿意的文檔??尚行匝芯靠尚行匝芯窟@個(gè)階段要回答的關(guān)鍵問題是:這個(gè)階段要回答的關(guān)鍵問題是:“對上一階段所確定的問題有行得對上一階段所確定的問題有行得通的解決辦法嗎?通的解決辦法嗎?” 系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡化系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡化了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較抽象的高層次

20、上進(jìn)行了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較抽象的高層次上進(jìn)行的分析和設(shè)計(jì)的過程??尚行匝芯繎?yīng)該比較簡短,的分析和設(shè)計(jì)的過程??尚行匝芯繎?yīng)該比較簡短,這個(gè)階段的這個(gè)階段的任務(wù)不是具體解決問題,而是研究問題的范圍,探索這個(gè)問題任務(wù)不是具體解決問題,而是研究問題的范圍,探索這個(gè)問題是否值得去解,是否有可行的解決辦法是否值得去解,是否有可行的解決辦法。在問題定義階段提出的對工程目標(biāo)和規(guī)模的報(bào)告通常比較含糊??尚行匝芯侩A段應(yīng)該導(dǎo)出系統(tǒng)的高層邏輯模型(通常用數(shù)據(jù)流圖表示),并且在此基礎(chǔ)上更準(zhǔn)確、更具體地確定工程規(guī)模和目標(biāo)。然后分析員更準(zhǔn)確地估計(jì)系統(tǒng)的成本和效益,對建議的系對建議的系統(tǒng)進(jìn)行仔細(xì)的成本效益分析

21、是這個(gè)階段的主要任務(wù)之一統(tǒng)進(jìn)行仔細(xì)的成本效益分析是這個(gè)階段的主要任務(wù)之一。軟件定義軟件定義可行性研究的結(jié)果是使用部門負(fù)責(zé)人做出是否繼續(xù)進(jìn)行這項(xiàng)工程的可行性研究的結(jié)果是使用部門負(fù)責(zé)人做出是否繼續(xù)進(jìn)行這項(xiàng)工程的決定的重要依據(jù)決定的重要依據(jù),一般說來,只有投資可能取得較大效益的那些工程項(xiàng)目才值得繼續(xù)進(jìn)行下去??尚行匝芯恳院蟮哪切╇A段將需要投入更多的人力物力。及時(shí)終止不值得投資的工程項(xiàng)目,可以避免更大的浪費(fèi)。需求分析需求分析這個(gè)階段的任務(wù)仍然不是具體地解決問題,而是準(zhǔn)確地確定“為了為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么”,主要是確定目標(biāo)系統(tǒng)必須具備哪些功能功能。用戶了解他

22、們所面對的問題,知道必須做什么,但是通常不能完整準(zhǔn)確地表達(dá)出他們的要求,更不知道怎樣利用計(jì)算機(jī)解決他們的問題;軟件開發(fā)人員知道怎樣用軟件實(shí)現(xiàn)人們的要求,但是對特定用戶的具體要求并不完全清楚。因此,系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和簡要的算法表示系統(tǒng)的邏輯模型和簡要的算法表示系統(tǒng)的邏輯模型。在需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的在需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),因此必須準(zhǔn)確

23、完整地體現(xiàn)用戶的要求基礎(chǔ),因此必須準(zhǔn)確完整地體現(xiàn)用戶的要求。 總體設(shè)計(jì)總體設(shè)計(jì)這個(gè)階段必須回答的關(guān)鍵問題是:“概括地說,應(yīng)該如何解決概括地說,應(yīng)該如何解決這個(gè)問題?這個(gè)問題?”??傮w設(shè)計(jì)階段的第一項(xiàng)主要任務(wù)就是應(yīng)該考慮幾種可能的解決方案。(1)低成本的解決方案。系統(tǒng)只能完成最必要的工作,不能多做一點(diǎn)額外的工作。(2)中等成本的解決方案。這樣的系統(tǒng)不僅能夠很好地完成預(yù)定的任務(wù),而且可能還具有用戶沒有具體指定的某些功能和特點(diǎn)。雖然用戶沒有提出這些具體要求,但是系統(tǒng)分析員根據(jù)自己的知識(shí)和經(jīng)驗(yàn)斷定,這些附加的能力在實(shí)踐中將證明是很有價(jià)值的。(3)高成本的“十全十美”的系統(tǒng)。系統(tǒng)分析員應(yīng)該使用系統(tǒng)流程圖

24、系統(tǒng)分析員應(yīng)該使用系統(tǒng)流程圖或其他工具描述每種可能的系統(tǒng),估計(jì)每種方案的成本和效益,還或其他工具描述每種可能的系統(tǒng),估計(jì)每種方案的成本和效益,還應(yīng)該在充分權(quán)衡各種方案的利弊的基礎(chǔ)上,推薦一個(gè)較好的系統(tǒng)應(yīng)該在充分權(quán)衡各種方案的利弊的基礎(chǔ)上,推薦一個(gè)較好的系統(tǒng)(最佳方案),并且制定實(shí)現(xiàn)所推薦的系統(tǒng)的詳細(xì)計(jì)劃(最佳方案),并且制定實(shí)現(xiàn)所推薦的系統(tǒng)的詳細(xì)計(jì)劃。軟件設(shè)計(jì)的一條基本原理就是程序應(yīng)該模塊化,也就是一個(gè)大程序應(yīng)該由許多規(guī)模適中的模塊按合理的層次結(jié)構(gòu)組織而成。總體設(shè)計(jì)階段的第二項(xiàng)主要任務(wù)就是設(shè)計(jì)軟件的結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。通常用層次圖或結(jié)構(gòu)圖描繪軟件的結(jié)構(gòu)。 軟件開

25、發(fā)軟件開發(fā)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化,也就是回答下面這個(gè)關(guān)鍵詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化,也就是回答下面這個(gè)關(guān)鍵問題:問題:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”這個(gè)階段的任務(wù)還不是編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說明設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。這種規(guī)格說明的作用很類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,它們應(yīng)該包含必要的細(xì)節(jié),程序員可以根據(jù)它們寫出實(shí)際的程序代碼。通常用 HIPO圖(層次圖加輸入處理輸出圖)或 PDL語言(過程設(shè)計(jì)語言)描述詳細(xì)設(shè)計(jì)的結(jié)果。編碼和單元測試編碼和單元測試這個(gè)階段的關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護(hù)

26、的程序模塊寫出正確的容易理解、容易維護(hù)的程序模塊。程序員應(yīng)該根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和實(shí)際環(huán)境,選取一種適當(dāng)?shù)母呒?jí)程序設(shè)計(jì)語言(必要時(shí)用匯編語言),把詳細(xì)設(shè)計(jì)的結(jié)果翻譯翻譯成用選定的語言書寫的程序,并且仔細(xì)測試編寫出的每一個(gè)模塊。綜合測試綜合測試這個(gè)階段的關(guān)鍵任務(wù)是通過各種類型的測試(及相應(yīng)的調(diào)試)使軟通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求件達(dá)到預(yù)定的要求。最本的測試是集成測試和驗(yàn)收測試。所謂集成測試集成測試是根據(jù)設(shè)計(jì)的軟件結(jié)構(gòu),把經(jīng)過單元測試檢驗(yàn)的模塊按某種選定的策略裝配起來,在裝配過程中對程序進(jìn)行必要的測試。所謂驗(yàn)收測試則是按照規(guī)格說明書的規(guī)定(通常在需求分析階段確定),由用戶(

27、或在用戶積極參加下)對目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收。必要時(shí)還可以再通過現(xiàn)場測試或平行運(yùn)行等方法對目標(biāo)系統(tǒng)進(jìn)一步測試檢驗(yàn)。通常需要以正式的或非正式的方式對用戶進(jìn)行培訓(xùn)。通過對軟件測試結(jié)果的分析可以預(yù)測軟件的可靠性;反之,根據(jù)對軟件可靠性的要求,也可以決定測試和調(diào)試過程什么時(shí)候可以結(jié)束。應(yīng)該用正式的文檔資料把測試計(jì)劃、詳細(xì)測試方案以及實(shí)際測試結(jié)應(yīng)該用正式的文檔資料把測試計(jì)劃、詳細(xì)測試方案以及實(shí)際測試結(jié)果保存下來,做為軟件配置的一個(gè)組成部分果保存下來,做為軟件配置的一個(gè)組成部分。軟件維護(hù)軟件維護(hù)維護(hù)階段的關(guān)鍵任務(wù)是通過通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要用戶的需要。

28、通常有四類維護(hù)活動(dòng):改正性維護(hù),也就是診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化完善性維護(hù),即根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件使它更完善預(yù)防性維護(hù),即修改軟件為將來的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。每一項(xiàng)維護(hù)活動(dòng)都應(yīng)該經(jīng)過l提出維護(hù)要求(或報(bào)告問題)、分析維護(hù)要求、提出維護(hù)方案、提出維護(hù)要求(或報(bào)告問題)、分析維護(hù)要求、提出維護(hù)方案、審批維護(hù)方案、確定維護(hù)計(jì)劃、修改軟件設(shè)計(jì)、修改程序、測審批維護(hù)方案、確定維護(hù)計(jì)劃、修改軟件設(shè)計(jì)、修改程序、測試程序、復(fù)查驗(yàn)收試程序、復(fù)查驗(yàn)收等一系列步驟,因此實(shí)質(zhì)上是經(jīng)歷了一次壓縮和簡化了的軟件定義和開發(fā)的全過程。每一項(xiàng)維護(hù)活動(dòng)都應(yīng)每一項(xiàng)維護(hù)活動(dòng)都

29、應(yīng)該準(zhǔn)確地記錄下來,做為正式的文檔資料加以保存該準(zhǔn)確地記錄下來,做為正式的文檔資料加以保存。運(yùn)行維護(hù)運(yùn)行維護(hù)表表1.1結(jié)構(gòu)分析設(shè)計(jì)過程小結(jié)結(jié)構(gòu)分析設(shè)計(jì)過程小結(jié) 階段階段關(guān)鍵問題關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)結(jié)束標(biāo)準(zhǔn)問題定義問題是什么?關(guān)于規(guī)模和目標(biāo)的報(bào)告書可行性研究有可行的解嗎?系統(tǒng)的高層邏輯模型:數(shù)據(jù)流圖、成本效益分析需求分析系統(tǒng)必須做什么?系統(tǒng)的邏輯模型:數(shù)據(jù)流圖、數(shù)據(jù)字典、算法描述總體設(shè)計(jì)概括地說,應(yīng)該如何解決這個(gè)問題?可能的解法: 系統(tǒng)流程圖、成本/效益分析推薦的系統(tǒng)結(jié)構(gòu):層次圖或結(jié)構(gòu)圖詳細(xì)設(shè)計(jì)怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)?編碼規(guī)格說明:HIPO圖或 PDL編碼/單元測試 正確的程序模塊源程序清單;單元測

30、試方案和結(jié)果綜合測試符合要求的軟件綜合測試方案和結(jié)果;完整一致的軟件配置維護(hù)持久地滿足用戶需要的軟件完整準(zhǔn)確的維護(hù)記錄1.4 軟件過程軟件過程軟件過程軟件過程:為了獲得高質(zhì)量軟件所需要完成的一:為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。步驟。軟件過程(軟件過程(ISO9000):使用資源將輸入轉(zhuǎn)化為使用資源將輸入轉(zhuǎn)化為輸出的活動(dòng)所構(gòu)成的系統(tǒng)。輸出的活動(dòng)所構(gòu)成的系統(tǒng)。輸入:如軟件需求輸入:如軟件需求輸出:如軟件產(chǎn)品輸出:如軟件產(chǎn)品1.4.1 瀑布模型瀑布模型傳統(tǒng)瀑布型模型開發(fā)軟傳統(tǒng)瀑布型模型開發(fā)軟件的三大特點(diǎn):件的三

31、大特點(diǎn):1. 階段間具有順序性和階段間具有順序性和依賴性依賴性2. 推遲實(shí)現(xiàn)的觀點(diǎn)推遲實(shí)現(xiàn)的觀點(diǎn)3.質(zhì)量保證的觀點(diǎn)質(zhì)量保證的觀點(diǎn)優(yōu)點(diǎn)優(yōu)點(diǎn):采用規(guī)范的方法;:采用規(guī)范的方法;嚴(yán)格規(guī)定每個(gè)階段提交的嚴(yán)格規(guī)定每個(gè)階段提交的文檔;要求每個(gè)階段交出文檔;要求每個(gè)階段交出的產(chǎn)品必須經(jīng)過驗(yàn)證。的產(chǎn)品必須經(jīng)過驗(yàn)證。缺點(diǎn):缺點(diǎn):由文檔驅(qū)動(dòng)的,在由文檔驅(qū)動(dòng)的,在軟件交付給用戶之前,用軟件交付給用戶之前,用戶只能通過文檔來了解產(chǎn)戶只能通過文檔來了解產(chǎn)品,這樣導(dǎo)致用戶很難全品,這樣導(dǎo)致用戶很難全面認(rèn)識(shí)軟件產(chǎn)品,導(dǎo)致開面認(rèn)識(shí)軟件產(chǎn)品,導(dǎo)致開發(fā)出的產(chǎn)品不能真正滿足發(fā)出的產(chǎn)品不能真正滿足用戶的需要用戶的需要1.4.2 快速

32、原型模型快速原型模型快速原型快速原型是快速建立起來的是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)終產(chǎn)品能完成的功能的一個(gè)子集。子集。優(yōu)點(diǎn)優(yōu)點(diǎn):不帶反饋環(huán),基本上:不帶反饋環(huán),基本上是線性順序進(jìn)行。原型能夠是線性順序進(jìn)行。原型能夠快速與用戶進(jìn)行交互而得到快速與用戶進(jìn)行交互而得到驗(yàn)證;開發(fā)人員從原型中獲驗(yàn)證;開發(fā)人員從原型中獲得經(jīng)驗(yàn),從而避免犯錯(cuò)誤。得經(jīng)驗(yàn),從而避免犯錯(cuò)誤。1.4.3 增量模型增量模型增量模型開發(fā)軟件時(shí)把軟件產(chǎn)品作為一系列增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。增量模型開發(fā)軟件時(shí)把軟件產(chǎn)品作為

33、一系列增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。優(yōu)點(diǎn)優(yōu)點(diǎn):能較短時(shí)間內(nèi)提交可完成部分工作的產(chǎn)品;逐步增加產(chǎn)品功能可以使用戶有充裕的:能較短時(shí)間內(nèi)提交可完成部分工作的產(chǎn)品;逐步增加產(chǎn)品功能可以使用戶有充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。缺點(diǎn):把每個(gè)構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞已經(jīng)開發(fā)出來的產(chǎn)品,必須缺點(diǎn):把每個(gè)構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞已經(jīng)開發(fā)出來的產(chǎn)品,必須在軟件體系結(jié)構(gòu)設(shè)計(jì)得便于按照這種方式進(jìn)行擴(kuò)充。即:軟件系統(tǒng)是開放的在軟件體系結(jié)構(gòu)設(shè)計(jì)得便于按照這種方式進(jìn)行擴(kuò)充。即:軟件系統(tǒng)是開放的一種風(fēng)險(xiǎn)更大的增量模型:一種風(fēng)險(xiǎn)更大的增量模型:1.4.4 螺旋模型螺旋

34、模型其基本思想其基本思想是使用原是使用原型及其他方法來盡量型及其他方法來盡量降低風(fēng)險(xiǎn)。降低風(fēng)險(xiǎn)。 可把它看作在每個(gè)階可把它看作在每個(gè)階段之前都增加風(fēng)險(xiǎn)分段之前都增加風(fēng)險(xiǎn)分析的快速原型模型。析的快速原型模型。優(yōu)點(diǎn):優(yōu)點(diǎn):該模型是風(fēng)險(xiǎn)該模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的。驅(qū)動(dòng)的。1.4.5 噴泉模型噴泉模型 典型的面向?qū)ο筌浖湫偷拿嫦驅(qū)ο筌浖_發(fā)過程模型之一。開發(fā)過程模型之一。優(yōu)點(diǎn):優(yōu)點(diǎn):由于整個(gè)開發(fā)過由于整個(gè)開發(fā)過程中都是圍繞對象組成程中都是圍繞對象組成的,所以在生命周期的的,所以在生命周期的各個(gè)階段區(qū)分不明顯,各個(gè)階段區(qū)分不明顯,在各個(gè)開發(fā)步驟反復(fù)迭在各個(gè)開發(fā)步驟反復(fù)迭代,每次反復(fù)都會(huì)增加代,每次反復(fù)都會(huì)增加

35、或明確一些目標(biāo)系統(tǒng)的或明確一些目標(biāo)系統(tǒng)的性質(zhì),這樣減少了不一性質(zhì),這樣減少了不一致性,降低了出錯(cuò)的可致性,降低了出錯(cuò)的可能性。能性。1.4.6 Rational 統(tǒng)一過程統(tǒng)一過程1. RUP軟件開發(fā)經(jīng)驗(yàn)軟件開發(fā)經(jīng)驗(yàn)最佳實(shí)踐最佳實(shí)踐(1)迭代式開發(fā)迭代式開發(fā),每次迭代以完成可執(zhí)行版本結(jié)束。,每次迭代以完成可執(zhí)行版本結(jié)束。(2)管理需求管理需求,根據(jù)用戶需求制定迭代計(jì)劃。,根據(jù)用戶需求制定迭代計(jì)劃。(3)使用基于構(gòu)件的體系結(jié)構(gòu)使用基于構(gòu)件的體系結(jié)構(gòu),體系結(jié)構(gòu)要開放,以,體系結(jié)構(gòu)要開放,以適應(yīng)需求的變化。適應(yīng)需求的變化。(4)可視化建??梢暬?,能夠精確表達(dá)系統(tǒng)。,能夠精確表達(dá)系統(tǒng)。(5)貫穿于開

36、發(fā)過程的軟件質(zhì)量驗(yàn)證貫穿于開發(fā)過程的軟件質(zhì)量驗(yàn)證,確保軟件質(zhì)量。,確保軟件質(zhì)量。(6)控制軟件變更控制軟件變更,確保每次修改是可接受的和能被,確保每次修改是可接受的和能被跟蹤的。跟蹤的。2. RUP軟件開發(fā)生命周期軟件開發(fā)生命周期縱軸代表核心工作軸,橫軸代表時(shí)間縱軸代表核心工作軸,橫軸代表時(shí)間核心工作軸:核心工作軸:業(yè)務(wù)建模:深入了解使用目標(biāo)系統(tǒng)的機(jī)構(gòu)及其商業(yè)運(yùn)作,評(píng)估目標(biāo)系統(tǒng)對使用它業(yè)務(wù)建模:深入了解使用目標(biāo)系統(tǒng)的機(jī)構(gòu)及其商業(yè)運(yùn)作,評(píng)估目標(biāo)系統(tǒng)對使用它的機(jī)構(gòu)的影響的機(jī)構(gòu)的影響需求:捕獲客戶的需求,并且使開發(fā)人員和用戶達(dá)成對需求描述的共識(shí)需求:捕獲客戶的需求,并且使開發(fā)人員和用戶達(dá)成對需求描述

37、的共識(shí)分析與設(shè)計(jì):把需求分析的結(jié)果轉(zhuǎn)化成分析模型與設(shè)計(jì)模型分析與設(shè)計(jì):把需求分析的結(jié)果轉(zhuǎn)化成分析模型與設(shè)計(jì)模型實(shí)現(xiàn):把設(shè)計(jì)模型轉(zhuǎn)換成實(shí)現(xiàn)結(jié)果實(shí)現(xiàn):把設(shè)計(jì)模型轉(zhuǎn)換成實(shí)現(xiàn)結(jié)果測試:檢查各個(gè)子系統(tǒng)的交互與集成,驗(yàn)證所有需求是否都被正確的實(shí)現(xiàn)了,識(shí)測試:檢查各個(gè)子系統(tǒng)的交互與集成,驗(yàn)證所有需求是否都被正確的實(shí)現(xiàn)了,識(shí)別、確認(rèn)缺陷并確保軟件部署之前消除缺陷。別、確認(rèn)缺陷并確保軟件部署之前消除缺陷。部署:成功地生成目標(biāo)系統(tǒng)的可運(yùn)行版本。部署:成功地生成目標(biāo)系統(tǒng)的可運(yùn)行版本。配置與變更管理:跟蹤并維護(hù)在軟件開發(fā)過程中產(chǎn)生的所有制品的完整性和一致配置與變更管理:跟蹤并維護(hù)在軟件開發(fā)過程中產(chǎn)生的所有制品的完整性

38、和一致性。性。項(xiàng)目管理:提供項(xiàng)目管理框架,為軟件開發(fā)項(xiàng)目執(zhí)行計(jì)劃、人員配備、執(zhí)行和監(jiān)項(xiàng)目管理:提供項(xiàng)目管理框架,為軟件開發(fā)項(xiàng)目執(zhí)行計(jì)劃、人員配備、執(zhí)行和監(jiān)控等方面的使用準(zhǔn)則,并為風(fēng)險(xiǎn)管理提供框架控等方面的使用準(zhǔn)則,并為風(fēng)險(xiǎn)管理提供框架環(huán)境:向軟件開發(fā)機(jī)構(gòu)提供軟件開發(fā)環(huán)境,包括:過程管理和工具支持環(huán)境:向軟件開發(fā)機(jī)構(gòu)提供軟件開發(fā)環(huán)境,包括:過程管理和工具支持工作階段:工作階段:初始階段:建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,并且確定項(xiàng)目的范圍初始階段:建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,并且確定項(xiàng)目的范圍精化階段:設(shè)計(jì)并確定系統(tǒng)的體系結(jié)構(gòu),制定項(xiàng)目計(jì)劃,確定資源需求精化階段:設(shè)計(jì)并確定系統(tǒng)的體系結(jié)構(gòu),制定

39、項(xiàng)目計(jì)劃,確定資源需求構(gòu)建階段:開發(fā)出所有構(gòu)件和應(yīng)用程序,把它們集成為客戶需要的產(chǎn)品,并且詳構(gòu)建階段:開發(fā)出所有構(gòu)件和應(yīng)用程序,把它們集成為客戶需要的產(chǎn)品,并且詳盡地測試所有功能盡地測試所有功能移交階段:把開發(fā)出的產(chǎn)品提交給用戶使用。移交階段:把開發(fā)出的產(chǎn)品提交給用戶使用。1.4.7 敏捷過程與極限編程敏捷過程與極限編程1.敏捷過程敏捷過程 具有高效、快速響應(yīng)變化的開發(fā)過程。具有高效、快速響應(yīng)變化的開發(fā)過程。(1)個(gè)體和交互勝過過程和工具;)個(gè)體和交互勝過過程和工具;(2)可以工作的軟件勝過面面俱到的文檔;)可以工作的軟件勝過面面俱到的文檔;(3)客戶合作勝過合同談判;)客戶合作勝過合同談判;

40、(4)響應(yīng)變化勝過遵循計(jì)劃。)響應(yīng)變化勝過遵循計(jì)劃。2.極限編程極限編程 敏捷過程中最著名的一種,指把好的開發(fā)實(shí)踐運(yùn)用到極致,敏捷過程中最著名的一種,指把好的開發(fā)實(shí)踐運(yùn)用到極致,多應(yīng)用于軟件需求模糊的場合。多應(yīng)用于軟件需求模糊的場合??蛻糇鳛殚_發(fā)團(tuán)隊(duì)的成員客戶作為開發(fā)團(tuán)隊(duì)的成員使用用戶素材使用用戶素材短交付時(shí)間短交付時(shí)間驗(yàn)收測試驗(yàn)收測試結(jié)對編程結(jié)對編程測試驅(qū)動(dòng)開發(fā)測試驅(qū)動(dòng)開發(fā)集體所有集體所有持續(xù)集成持續(xù)集成開持續(xù)的開發(fā)速度開持續(xù)的開發(fā)速度開放的工作空間開放的工作空間及時(shí)調(diào)整計(jì)劃及時(shí)調(diào)整計(jì)劃簡單的設(shè)計(jì)簡單的設(shè)計(jì)重構(gòu)重構(gòu)使用隱喻使用隱喻極限編程的整體開發(fā)過程:極限編程的整體開發(fā)過程:圖1.11 XP項(xiàng)目的整體開發(fā)過程極限編程的迭代過

溫馨提示

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

評(píng)論

0/150

提交評(píng)論