第1章軟件工程概述_第1頁
第1章軟件工程概述_第2頁
第1章軟件工程概述_第3頁
第1章軟件工程概述_第4頁
第1章軟件工程概述_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1軟件工程軟件工程第一章第一章 軟件工程概述軟件工程概述 第第1章章 軟件工程概述軟件工程概述1.1 軟件工程的發(fā)展軟件工程的發(fā)展1.2 軟件工程的概念軟件工程的概念1.3 軟件生存周期軟件生存周期1.4 軟件開發(fā)模型軟件開發(fā)模型 1.1 軟件工程的發(fā)展軟件工程的發(fā)展一、軟件的概念及特點(diǎn)一、軟件的概念及特點(diǎn) 思考:什么是軟件?思考:什么是軟件? 軟件是由計(jì)算機(jī)程序的發(fā)展而形成的一種概念。軟件是由計(jì)算機(jī)程序的發(fā)展而形成的一種概念。 軟件軟件(software)(software)是計(jì)算機(jī)系統(tǒng)中與硬件是計(jì)算機(jī)系統(tǒng)中與硬件(hardware)(hardware)相互依存的相互依存的另一部分,它包括程

2、序另一部分,它包括程序(program)(program)、相關(guān)數(shù)據(jù)、相關(guān)數(shù)據(jù)(data)(data)及其說明及其說明文檔文檔(document)(document)。 其中其中程序是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列程序是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)數(shù)據(jù)是是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文資料。維護(hù)和使用有關(guān)的各種圖文資料。 軟件軟件= =程序程序+ +數(shù)據(jù)數(shù)據(jù)+ +文檔文檔 軟件概念拓展軟件概念拓展 軟件(Software)是計(jì)算機(jī)系統(tǒng)運(yùn)行的指令、數(shù)據(jù)和資料的集合,包括指令程

3、序、數(shù)據(jù)、相關(guān)文檔和完善的售后服務(wù)的完整集合。即: 軟件=程序 + 數(shù)據(jù) + 文檔 + 服務(wù)。2、軟件的特點(diǎn)、軟件的特點(diǎn)(1) 智能性。軟件是人類智能勞動的產(chǎn)物、代替和延伸。(2) 抽象性。軟件屬于邏輯實(shí)體,無形性和智能性致使軟件難以認(rèn)識和理解。(3) 人工方式。軟件的開發(fā)、維護(hù)及設(shè)置管理等方面目前尚未完全脫離手工方式。(4) 復(fù)雜性和系統(tǒng)性。(5) 泛域性。軟件應(yīng)用很廣泛,在信息化中可服務(wù)于各種領(lǐng)域、行業(yè)和層面。(6) 復(fù)制性。軟件成本相對比較昂貴,計(jì)算機(jī)軟件是人類創(chuàng)造性的特殊產(chǎn)品。(7) 非損及更新性。軟件不存在物理性磨損和老化問題,但可以退化需要更新升級。 1.1 軟件工程的發(fā)展軟件工程

4、的發(fā)展二、軟件工程的發(fā)展過程二、軟件工程的發(fā)展過程50年代初期年代初期60年代初期:程序設(shè)計(jì)階段(個(gè)性年代初期:程序設(shè)計(jì)階段(個(gè)性化軟件環(huán)境)化軟件環(huán)境)60年代中期年代中期70年代末期:程序系統(tǒng)階段(軟件年代末期:程序系統(tǒng)階段(軟件作坊)作坊)70年代中期年代中期 80年代末期年代末期:軟件工程階段:軟件工程階段80年代末期至今:創(chuàng)新完善軟件工程階段年代末期至今:創(chuàng)新完善軟件工程階段 IBM公司的公司的 OS/360OS/360,共約,共約100100萬條指令,花費(fèi)了萬條指令,花費(fèi)了50005000個(gè)人個(gè)人年;經(jīng)費(fèi)達(dá)數(shù)億美元,而結(jié)果卻令人沮喪,錯(cuò)誤多達(dá)年;經(jīng)費(fèi)達(dá)數(shù)億美元,而結(jié)果卻令人沮喪,錯(cuò)

5、誤多達(dá)20002000個(gè)以個(gè)以上,系統(tǒng)根本無法正常運(yùn)行。上,系統(tǒng)根本無法正常運(yùn)行。 OS/360OS/360系統(tǒng)的負(fù)責(zé)人系統(tǒng)的負(fù)責(zé)人BrooksBrooks這樣這樣描述開發(fā)過程的困難和混亂:描述開發(fā)過程的困難和混亂:“像巨獸在泥潭中作垂死掙扎,像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個(gè)野獸能夠逃脫淹掙扎得越猛,泥漿就沾得越多,最后沒有一個(gè)野獸能夠逃脫淹沒在泥潭中的命運(yùn)。沒在泥潭中的命運(yùn)?!?1.1 軟件工程的發(fā)展軟件工程的發(fā)展三、軟件危機(jī)三、軟件危機(jī) 開發(fā)軟件所需的高成本同產(chǎn)品低質(zhì)量之間開發(fā)軟件所需的高成本同產(chǎn)品低質(zhì)量之間有著尖銳的矛盾,即計(jì)算機(jī)軟件的開發(fā)和維護(hù)有著尖銳

6、的矛盾,即計(jì)算機(jī)軟件的開發(fā)和維護(hù)中遇到的一系列嚴(yán)重問題。中遇到的一系列嚴(yán)重問題。 軟件危機(jī)主要包含兩方面的問題:軟件危機(jī)主要包含兩方面的問題: 一是開發(fā)的軟件如何滿足社會對軟件日益增長一是開發(fā)的軟件如何滿足社會對軟件日益增長的各種需求,的各種需求, 二是怎樣維護(hù)和管理不斷快速增長的已有軟件。二是怎樣維護(hù)和管理不斷快速增長的已有軟件。1、軟件危機(jī)產(chǎn)生的原因(1)(1)軟件開發(fā)規(guī)模逐漸變大、復(fù)雜度和軟件的需求量不軟件開發(fā)規(guī)模逐漸變大、復(fù)雜度和軟件的需求量不斷增加;斷增加;(2)(2)沒有按照工程化方式運(yùn)作,開發(fā)過程沒有統(tǒng)一的標(biāo)沒有按照工程化方式運(yùn)作,開發(fā)過程沒有統(tǒng)一的標(biāo)準(zhǔn)和準(zhǔn)則、規(guī)范的指導(dǎo)方法;準(zhǔn)

7、和準(zhǔn)則、規(guī)范的指導(dǎo)方法;(3)(3)軟件需求分析與設(shè)計(jì)考慮不周,軟件開發(fā)、維護(hù)和軟件需求分析與設(shè)計(jì)考慮不周,軟件開發(fā)、維護(hù)和管理不到位;管理不到位;(4)(4)開發(fā)人員與用戶或開發(fā)人員之間互相的交流溝通不開發(fā)人員與用戶或開發(fā)人員之間互相的交流溝通不夠,文檔資料不完備;夠,文檔資料不完備;(5)(5)軟件測試調(diào)試不規(guī)范不細(xì)致,提交的軟件質(zhì)量不達(dá)軟件測試調(diào)試不規(guī)范不細(xì)致,提交的軟件質(zhì)量不達(dá)標(biāo);標(biāo);(6)(6)忽視軟件運(yùn)行過程中的正常維護(hù)和管理。忽視軟件運(yùn)行過程中的正常維護(hù)和管理。2、軟件危機(jī)的表現(xiàn)、軟件危機(jī)的表現(xiàn)對開發(fā)成本和進(jìn)度估計(jì)不準(zhǔn)確對開發(fā)成本和進(jìn)度估計(jì)不準(zhǔn)確用戶對已完成的軟件不滿意用戶對已完

8、成的軟件不滿意軟件產(chǎn)品的質(zhì)量往往靠不住軟件產(chǎn)品的質(zhì)量往往靠不住軟件常常是不可維護(hù)的軟件常常是不可維護(hù)的軟件通常沒有合適的文檔資料軟件通常沒有合適的文檔資料軟件成本在計(jì)算機(jī)系統(tǒng)總成本中比例逐年上升軟件成本在計(jì)算機(jī)系統(tǒng)總成本中比例逐年上升軟件開發(fā)生產(chǎn)率提高的速度,跟不上計(jì)算機(jī)普軟件開發(fā)生產(chǎn)率提高的速度,跟不上計(jì)算機(jī)普及速度。及速度。3、解決軟件危機(jī)的途徑、解決軟件危機(jī)的途徑 要解決軟件危機(jī),既要有技術(shù)措施(方法和要解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。工具),又要有必要的組織管理措施。 軟件工程正是從管理和技術(shù)兩方面研究如何軟件工程正是從管理和技術(shù)兩方面研究如何更好

9、地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。 1968 1968年,北大西洋公約組織(年,北大西洋公約組織(NATONATO)在聯(lián)邦)在聯(lián)邦德國召開的一次會議上有人首次提出德國召開的一次會議上有人首次提出“軟件工程軟件工程”這一術(shù)語,從此將軟件開發(fā)納入了工程化的軌道,這一術(shù)語,從此將軟件開發(fā)納入了工程化的軌道,基本形成了軟件工程的概念、框架、技術(shù)和方法。基本形成了軟件工程的概念、框架、技術(shù)和方法。 案例分析案例分析課堂討論課堂討論(1)上述案例項(xiàng)目的開發(fā)過程是否存在軟件危機(jī)問題? (2)從案例項(xiàng)目的組織和管理等方面分析導(dǎo)致該項(xiàng)目失敗的主要原因有哪些?(3)你

10、認(rèn)為應(yīng)當(dāng)吸取那些教訓(xùn),采取的主要措施有哪些?返回目錄1.2 1.2 軟件工程的概念軟件工程的概念 一、軟件工程的定義 按照中國國家標(biāo)準(zhǔn)GB/T 114571995軟件工程術(shù)語的定義:軟件工程(Software Engineering)是軟件開發(fā)、運(yùn)行、維護(hù)和引退的系統(tǒng)方法。 計(jì)算機(jī)科學(xué)技術(shù)百科全書中對軟件工程的定義是:應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型(paradigm)、評估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。1.2 1.2

11、 軟件工程的概念軟件工程的概念 軟件工程是采用工程的概念、原理、技術(shù)軟件工程是采用工程的概念、原理、技術(shù)和方法,在計(jì)劃、開發(fā)、運(yùn)行、維護(hù)與管理軟和方法,在計(jì)劃、開發(fā)、運(yùn)行、維護(hù)與管理軟件的過程中,將科學(xué)的管理和最佳的技術(shù)方法件的過程中,將科學(xué)的管理和最佳的技術(shù)方法緊密結(jié)合,以比較經(jīng)濟(jì)的手段獲得滿足用戶需緊密結(jié)合,以比較經(jīng)濟(jì)的手段獲得滿足用戶需求的可靠軟件的一系列方法。求的可靠軟件的一系列方法。 軟件工程 = 工程原理+技術(shù)方法 + 管理技術(shù)二、軟件工程的特點(diǎn)二、軟件工程的特點(diǎn) 軟件工程是計(jì)算機(jī)科學(xué)中的一個(gè)重要分支,是軟件工程是計(jì)算機(jī)科學(xué)中的一個(gè)重要分支,是一門指導(dǎo)計(jì)算機(jī)軟件系統(tǒng)開發(fā)、運(yùn)行、維護(hù)

12、和管理一門指導(dǎo)計(jì)算機(jī)軟件系統(tǒng)開發(fā)、運(yùn)行、維護(hù)和管理技術(shù)的技術(shù)的工程學(xué)科工程學(xué)科,不僅具有一般工程學(xué)科的共性,不僅具有一般工程學(xué)科的共性,以及智能性、抽象性、復(fù)雜性和更新性等特性,還以及智能性、抽象性、復(fù)雜性和更新性等特性,還具有軟件工程學(xué)科的系統(tǒng)性、工程化、綜合性和學(xué)具有軟件工程學(xué)科的系統(tǒng)性、工程化、綜合性和學(xué)科交叉性的基本特點(diǎn)。科交叉性的基本特點(diǎn)。 軟件工程學(xué)科的主要特點(diǎn)是軟件工程學(xué)科的主要特點(diǎn)是實(shí)踐性實(shí)踐性和和發(fā)展性發(fā)展性,軟件工程的問題來源并應(yīng)用于實(shí)踐,最終目的是,軟件工程的問題來源并應(yīng)用于實(shí)踐,最終目的是有效地生產(chǎn)軟件產(chǎn)品。有效地生產(chǎn)軟件產(chǎn)品。 其特點(diǎn)體現(xiàn)為其特點(diǎn)體現(xiàn)為“3多多”:一是

13、:一是多學(xué)科多學(xué)科,涉及計(jì),涉及計(jì)算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)等多個(gè)學(xué)科算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)等多個(gè)學(xué)科;二是;二是多目標(biāo)多目標(biāo),不僅關(guān)心項(xiàng)目產(chǎn)品及其功能,還注,不僅關(guān)心項(xiàng)目產(chǎn)品及其功能,還注重質(zhì)量、成本、進(jìn)度、性能、可靠性、安全性、通重質(zhì)量、成本、進(jìn)度、性能、可靠性、安全性、通用性、可維護(hù)性、有效性和界面等;三是用性、可維護(hù)性、有效性和界面等;三是多階段多階段,軟件開發(fā)不只是編程,而是由可行性研究、計(jì)劃立軟件開發(fā)不只是編程,而是由可行性研究、計(jì)劃立項(xiàng)、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測試項(xiàng)、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測試、運(yùn)行、維護(hù)等階段構(gòu)成完整過程。、運(yùn)行、

14、維護(hù)等階段構(gòu)成完整過程。三、軟件工程學(xué)的主要內(nèi)容三、軟件工程學(xué)的主要內(nèi)容軟件工程學(xué)軟件開發(fā)技術(shù)軟件工程管理軟件工程方法軟件工具軟件開發(fā)環(huán)境軟件工程經(jīng)濟(jì)學(xué)軟件管理學(xué)軟件度量學(xué)1、軟件工程方法學(xué)、軟件工程方法學(xué)軟件工程方法學(xué)包含軟件工程方法學(xué)包含3個(gè)要素:方法、工具和個(gè)要素:方法、工具和過程。過程。方法是完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,方法是完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答回答“怎樣做怎樣做”的問題;的問題;工具是為運(yùn)用方法而提供的自動的或半自動的工具是為運(yùn)用方法而提供的自動的或半自動的軟件工程支撐環(huán)境;軟件工程支撐環(huán)境;過程是為了獲得高質(zhì)量的軟件所需要完成的一過程是為了獲得高質(zhì)量的軟件所

15、需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。作步驟。2、軟件工程方法學(xué)、軟件工程方法學(xué)1)面向功能方法()面向功能方法(Structured Analysis and Design Technique) 1978年由E.Yourdon和L.L.Constantine提出的,即結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)。2)面向數(shù)據(jù)方法)面向數(shù)據(jù)方法(Jackson system development method) 1975年,M.A.Jackson提出了面向數(shù)據(jù)(結(jié)構(gòu))的軟件開發(fā)方法,也叫Jackson方法。從目標(biāo)系統(tǒng)輸入、輸出數(shù)據(jù)的結(jié)構(gòu),導(dǎo)出程序框架結(jié)構(gòu)

16、,再補(bǔ)充其他細(xì)節(jié),得到完整的程序結(jié)構(gòu)圖。此方法也可與其他方法結(jié)合,用于模塊的詳細(xì)設(shè)計(jì)和數(shù)據(jù)處理等。對輸入輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)很有效,如商用文件表格處理等3)面向?qū)ο蠓椒ǎǎ┟嫦驅(qū)ο蠓椒ǎ∣bject-Oriented Method,OOM) 是一種將面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動的系統(tǒng)方法。 面向?qū)ο?對象+類+繼承+消息通信4)面向問題方法()面向問題方法(Problem Analysis Method, PAM) 是80年代末由日立公司提出的,是在Yourdon方法、Jackson方法和自底向上的軟件開發(fā)方法基礎(chǔ)上揚(yáng)長避短改進(jìn)的。其基本思想是:以輸入輸出數(shù)據(jù)結(jié)構(gòu)指

17、導(dǎo)系統(tǒng)的問題分解,經(jīng)過系統(tǒng)分析逐步綜合。5)面向方面的開發(fā)方法)面向方面的開發(fā)方法(Aspect-Oriented Programming, AOP) 是面向?qū)ο笙到y(tǒng)的擴(kuò)展,在現(xiàn)有的AOP實(shí)現(xiàn)技術(shù)中,可通過創(chuàng)建Aspect庫或?qū)S肁spect語言實(shí)現(xiàn)面向方面的編程。6)基于構(gòu)件的開發(fā)方法()基于構(gòu)件的開發(fā)方法(Component-Based Development, CBD)或叫基于構(gòu)件的軟件工程(Component-Based Software Engineering, CBSE)方法,是軟件開發(fā)新范型。以軟件復(fù)用(Software Reuse)或軟件重用技術(shù)為基礎(chǔ)。軟件復(fù)用是指將已有的軟件

18、構(gòu)件用于構(gòu)造新的軟件系統(tǒng)的過程。7)可視化方法()可視化方法(Visual development method) 20世紀(jì)90年代隨著可視化技術(shù)的興起發(fā)展起來的開發(fā)方法。3、軟件工具 軟件工具(軟件工具(Software tools)是指支持軟件的開發(fā)、維護(hù)、管理)是指支持軟件的開發(fā)、維護(hù)、管理而專門研發(fā)的計(jì)算機(jī)程序系統(tǒng)。目的是提高軟件開發(fā)的質(zhì)量和效率,降低軟件開發(fā)、維護(hù)和管理的成本, 支持特定的軟件工程方法,減少手工方式管理的負(fù)擔(dān)。 軟件工具種類繁多、涉及面廣軟件工具種類繁多、涉及面廣,可組成可組成“工具箱工具箱”或或“集成工具集成工具”,如編輯、編譯、正文格式處理,靜態(tài)分析、動態(tài)跟蹤、需

19、求分析、設(shè)計(jì)分析、測試、模擬和圖形交互等。按照應(yīng)用階段分為:計(jì)劃工具、分析工具、設(shè)計(jì)工具、測試工具等,按照功能分為:分析設(shè)計(jì)、Web開發(fā)、界面開發(fā)、項(xiàng)目管理、軟件配置、質(zhì)量保證、軟件維護(hù)等。4、軟件過程及開發(fā)過程、軟件過程及開發(fā)過程 ISO9000將軟件過程軟件過程(software process)定義為:“將輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動”。軟件過程通常包括軟件過程通常包括4類基本過程類基本過程:(1)軟件規(guī)格說明:規(guī)定軟件的功能、性能、可靠性及其運(yùn)行環(huán)境等。 (2)軟件開發(fā):研發(fā)滿足規(guī)格說明的具體軟件。(3)軟件確認(rèn):確認(rèn)軟件能夠完成客戶提出的需求(4)軟件演進(jìn):為滿足用戶的變

20、更要求,軟件必須在使用過程中引進(jìn)新技術(shù)新方法并根據(jù)新業(yè)務(wù)及時(shí)升級更新。案例分析討論案例分析討論【案例】“企業(yè)人事管理信息系統(tǒng)”總體功能需求和目標(biāo)要求。主要功能是用于支持企事業(yè)單位完成勞動人事管理工作,實(shí)現(xiàn)的主要目標(biāo)包括:(1)支持企業(yè)高效率完成勞動人事管理的日常業(yè)務(wù),包括新職員調(diào)入時(shí)人事的管理,職員調(diào)出、辭職、退休等。(2)支持企業(yè)進(jìn)行勞動人事管理及其相關(guān)方面的科學(xué)決策,如企事業(yè)單位領(lǐng)導(dǎo)根據(jù)現(xiàn)有的崗位員工需求情況決定招聘的崗位及人數(shù)等。 根據(jù)新系統(tǒng)總體功能需求等要求,討論確定系統(tǒng)開發(fā)過程的總體框架。四、軟件工程的基本原理及原則四、軟件工程的基本原理及原則 著名的軟件工程專家著名的軟件工程專家B

21、.W.Boehm綜合這些綜合這些學(xué)者們的意見并總結(jié)了學(xué)者們的意見并總結(jié)了TRW(美國湯普森(美國湯普森-拉莫拉莫-伍爾德里奇)公司多年開發(fā)軟件的經(jīng)驗(yàn),于伍爾德里奇)公司多年開發(fā)軟件的經(jīng)驗(yàn),于1983年在一篇論文中提出了軟件工程的年在一篇論文中提出了軟件工程的7條基本條基本原理。他認(rèn)為這原理。他認(rèn)為這7條原理是確保軟件產(chǎn)品質(zhì)量和條原理是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原理的最小集合。開發(fā)效率的原理的最小集合。1、軟件工程的基本原理、軟件工程的基本原理u用分階段的生命周期計(jì)劃嚴(yán)格管理用分階段的生命周期計(jì)劃嚴(yán)格管理u堅(jiān)持進(jìn)行階段評審堅(jiān)持進(jìn)行階段評審u實(shí)行嚴(yán)格的產(chǎn)品控制實(shí)行嚴(yán)格的產(chǎn)品控制u采用現(xiàn)代程序設(shè)計(jì)

22、技術(shù)采用現(xiàn)代程序設(shè)計(jì)技術(shù)u結(jié)果應(yīng)能清楚地審查結(jié)果應(yīng)能清楚地審查u開發(fā)小組的人員應(yīng)該少而精開發(fā)小組的人員應(yīng)該少而精u承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2、軟件工程的基本原則 (1) 選取適宜的開發(fā)模型。 (2) 采用合適的設(shè)計(jì)方法。 (3) 提供高質(zhì)量的工程支撐。 (4) 重視軟件工程的管理。 在實(shí)際開發(fā)過程中,同時(shí)還應(yīng)兼顧具體開發(fā)原則:抽象、信息隱藏、模塊化、局部化、一致性、完整性和可預(yù)測性。返回目錄1、 軟件生存周期的概念 軟件生存周期(軟件生存周期(Software life cycle)是從開始研發(fā)軟件到軟件停止使用的整個(gè)過程。是指軟件產(chǎn)品從用戶提出開發(fā)需求

23、開始,經(jīng)過開發(fā)、使用和維護(hù),直到最后淘汰的整個(gè)周期,因此,也稱為軟件生命周期或軟件生存期,是軟件工程的一個(gè)重要概念。 軟件工程中的過程對應(yīng)軟件生存周期中的階段階段(Phase) ,也是實(shí)現(xiàn)軟件生產(chǎn)工程化的重要步驟,并賦予各階段相對獨(dú)立的任務(wù)。1.3 1.3 軟件生存周期軟件生存周期 2、軟件生存周期的階段劃分、軟件生存周期的階段劃分 軟件生存周期階段劃分的原則: (1)各階段的任務(wù)相對獨(dú)立。便于分階段計(jì)劃、逐步完成。 (2)同一階段的工作任務(wù)性質(zhì)盡量相同。有利于軟件開發(fā)和組織管理,明確開發(fā)人員的分工與職責(zé),以便協(xié)同工作、保證質(zhì)量。u可行性研究與計(jì)劃:調(diào)查用戶需求及處理過程,進(jìn)行可可行性研究與計(jì)

24、劃:調(diào)查用戶需求及處理過程,進(jìn)行可行性分析研究行性分析研究u需求分析:分析用戶需求,建立目標(biāo)系統(tǒng)邏輯模型。需求分析:分析用戶需求,建立目標(biāo)系統(tǒng)邏輯模型。u系統(tǒng)設(shè)計(jì):分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),概要設(shè)計(jì)建立目系統(tǒng)設(shè)計(jì):分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),概要設(shè)計(jì)建立目標(biāo)系統(tǒng)的總體結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì);詳細(xì)設(shè)計(jì)對模塊進(jìn)行標(biāo)系統(tǒng)的總體結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì);詳細(xì)設(shè)計(jì)對模塊進(jìn)行過程描述,確定模塊間的詳細(xì)接口。過程描述,確定模塊間的詳細(xì)接口。u程序設(shè)計(jì):按詳細(xì)設(shè)計(jì)說明書為每個(gè)模塊編寫程序。程序設(shè)計(jì):按詳細(xì)設(shè)計(jì)說明書為每個(gè)模塊編寫程序。u系統(tǒng)測試:檢查和調(diào)試程序的正確性,排除錯(cuò)誤。系統(tǒng)測試:檢查和調(diào)試程序的正確性,排除錯(cuò)誤。u維護(hù)

25、運(yùn)行:運(yùn)行軟件;對程序擴(kuò)充修改;修改有關(guān)的文維護(hù)運(yùn)行:運(yùn)行軟件;對程序擴(kuò)充修改;修改有關(guān)的文檔。檔。 返回目錄3、軟件生存周期各階段的任務(wù)、軟件生存周期各階段的任務(wù)課堂討論課堂討論 結(jié)合結(jié)合“企業(yè)人事管理信息系統(tǒng)企業(yè)人事管理信息系統(tǒng)”案例進(jìn)行案例進(jìn)行階段劃分,并指出各階段的主要任務(wù)。階段劃分,并指出各階段的主要任務(wù)。步步 驟驟任務(wù)及說明任務(wù)及說明參與者參與者生成文檔或程序生成文檔或程序可行性分析可行性分析對項(xiàng)目的技術(shù),功能需求和市場進(jìn)行調(diào)研和初步分析,對項(xiàng)目的技術(shù),功能需求和市場進(jìn)行調(diào)研和初步分析,確定是否需要啟動項(xiàng)目確定是否需要啟動項(xiàng)目部門主管部門主管核心技術(shù)人員核心技術(shù)人員可行性分析報(bào)告可

26、行性分析報(bào)告技術(shù)調(diào)研報(bào)告技術(shù)調(diào)研報(bào)告啟動項(xiàng)目啟動項(xiàng)目正式啟動項(xiàng)目,有部門主管制定項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理制正式啟動項(xiàng)目,有部門主管制定項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理制定初步計(jì)劃,初步計(jì)劃包括設(shè)計(jì)和開發(fā)時(shí)間的初步估計(jì)定初步計(jì)劃,初步計(jì)劃包括設(shè)計(jì)和開發(fā)時(shí)間的初步估計(jì)部門主管部門主管核心技術(shù)人員核心技術(shù)人員項(xiàng)目計(jì)劃書項(xiàng)目計(jì)劃書項(xiàng)目合同項(xiàng)目合同需求分析需求分析對項(xiàng)目詳細(xì)需求分析,編寫需求文檔,對對項(xiàng)目詳細(xì)需求分析,編寫需求文檔,對B/S B/S 結(jié)構(gòu)的系結(jié)構(gòu)的系統(tǒng)應(yīng)制作靜態(tài)演示頁面。需求分析文檔和靜態(tài)演示頁面統(tǒng)應(yīng)制作靜態(tài)演示頁面。需求分析文檔和靜態(tài)演示頁面需要通過部門主管審批才能進(jìn)行到下一步驟需要通過部門主管審批才能進(jìn)

27、行到下一步驟項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理項(xiàng)目小組核心成員項(xiàng)目小組核心成員需求分析說明書需求分析說明書靜態(tài)演示頁面靜態(tài)演示頁面項(xiàng)目計(jì)劃修訂版本項(xiàng)目計(jì)劃修訂版本概要設(shè)計(jì)概要設(shè)計(jì)根據(jù)需求分析進(jìn)行概要設(shè)計(jì)。編寫目的是說明對系統(tǒng)的根據(jù)需求分析進(jìn)行概要設(shè)計(jì)。編寫目的是說明對系統(tǒng)的設(shè)計(jì)考慮,包括程序系統(tǒng)流程、組織結(jié)構(gòu)、模塊劃分、設(shè)計(jì)考慮,包括程序系統(tǒng)流程、組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計(jì)。運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)功能分配、接口設(shè)計(jì)。運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為詳細(xì)設(shè)計(jì)提供基礎(chǔ)。概要設(shè)計(jì)經(jīng)過評審處理設(shè)計(jì)等,為詳細(xì)設(shè)計(jì)提供基礎(chǔ)。概要設(shè)計(jì)經(jīng)過評審后,項(xiàng)目經(jīng)理通過部門主管一起指定項(xiàng)目小組成員。后,項(xiàng)目經(jīng)

28、理通過部門主管一起指定項(xiàng)目小組成員。項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理項(xiàng)目小組核心成員項(xiàng)目小組核心成員概要設(shè)計(jì)說明書概要設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)編制目的是說明一個(gè)軟件各個(gè)層次中的每一個(gè)詳細(xì)設(shè)計(jì)編制目的是說明一個(gè)軟件各個(gè)層次中的每一個(gè)程序(每個(gè)模塊或子程序)的設(shè)計(jì)考慮,如果一個(gè)軟件程序(每個(gè)模塊或子程序)的設(shè)計(jì)考慮,如果一個(gè)軟件系統(tǒng)比較簡單,層次很少,可以不單獨(dú)編寫,有關(guān)內(nèi)容系統(tǒng)比較簡單,層次很少,可以不單獨(dú)編寫,有關(guān)內(nèi)容合并入概要設(shè)計(jì)說明書。合并入概要設(shè)計(jì)說明書。項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理項(xiàng)目小組成員項(xiàng)目小組成員詳細(xì)設(shè)計(jì)文檔詳細(xì)設(shè)計(jì)文檔項(xiàng)目計(jì)劃確定版本項(xiàng)目計(jì)劃確定版本編碼實(shí)現(xiàn)編碼實(shí)現(xiàn)根據(jù)設(shè)計(jì)開發(fā)項(xiàng)目,同時(shí)有美工

29、對操作界面進(jìn)行美化根據(jù)設(shè)計(jì)開發(fā)項(xiàng)目,同時(shí)有美工對操作界面進(jìn)行美化項(xiàng)目經(jīng)理、程序設(shè)計(jì)項(xiàng)目經(jīng)理、程序設(shè)計(jì)員、美工員、美工項(xiàng)目計(jì)劃修訂版本項(xiàng)目計(jì)劃修訂版本調(diào)試調(diào)試項(xiàng)目經(jīng)理提交測試申請,由測試部門對項(xiàng)目進(jìn)行測試,項(xiàng)目經(jīng)理提交測試申請,由測試部門對項(xiàng)目進(jìn)行測試,項(xiàng)目小組配合測試部門修改軟件中的錯(cuò)誤項(xiàng)目小組配合測試部門修改軟件中的錯(cuò)誤項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理程序開發(fā)人員程序開發(fā)人員測試部門測試部門測試申請測試申請測試計(jì)劃測試計(jì)劃測試報(bào)告測試報(bào)告項(xiàng)目驗(yàn)收項(xiàng)目驗(yàn)收項(xiàng)目驗(yàn)收歸檔項(xiàng)目驗(yàn)收歸檔部門主管部門主管項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理項(xiàng)目所有文檔和程序項(xiàng)目所有文檔和程序1.4 1.4 開發(fā)模型開發(fā)模型 瀑布模型瀑布模型演化模型演化模

30、型螺旋模型螺旋模型噴泉模型噴泉模型RUP開發(fā)開發(fā)敏捷過程與極限編程敏捷過程與極限編程微軟過程微軟過程開發(fā)時(shí)期運(yùn)行維護(hù)時(shí)期計(jì)劃時(shí)期(目標(biāo)與范圍說明書)(可行性論證論告)(維護(hù)報(bào)告)(測試報(bào)告)(程序)(設(shè)計(jì)文檔)(需求說明書)瀑布模型瀑布模型軟件開發(fā)具有以下幾個(gè)特征:瀑布模型軟件開發(fā)具有以下幾個(gè)特征:1 1階段間的順序性和依賴性階段間的順序性和依賴性 順序性是指:只有等前一階段的工作完成以后,后一順序性是指:只有等前一階段的工作完成以后,后一階段的工作才能開始;前一階段的輸出文檔,就是后一階段的工作才能開始;前一階段的輸出文檔,就是后一階段的輸入文檔。依賴性又同時(shí)表明了,只有前一階段階段的輸入文

31、檔。依賴性又同時(shí)表明了,只有前一階段有正確的輸出時(shí),后一階段才可能有正確的結(jié)果。有正確的輸出時(shí),后一階段才可能有正確的結(jié)果。2 2推遲實(shí)現(xiàn)的觀點(diǎn)推遲實(shí)現(xiàn)的觀點(diǎn) 過早地考慮程序的實(shí)現(xiàn),常常導(dǎo)致大量返工,有時(shí)甚過早地考慮程序的實(shí)現(xiàn),常常導(dǎo)致大量返工,有時(shí)甚至給開發(fā)人員帶來災(zāi)難性的后果。至給開發(fā)人員帶來災(zāi)難性的后果。 瀑布模型在編碼以前安排了分析階段和設(shè)計(jì)階段,并瀑布模型在編碼以前安排了分析階段和設(shè)計(jì)階段,并且明確宣布,這兩個(gè)階段都只考慮目標(biāo)系統(tǒng)的邏輯模型,且明確宣布,這兩個(gè)階段都只考慮目標(biāo)系統(tǒng)的邏輯模型,不涉及軟件的物理實(shí)現(xiàn)。不涉及軟件的物理實(shí)現(xiàn)。 把邏輯設(shè)計(jì)與物理設(shè)計(jì)清楚地劃分開來,盡可能推把邏

32、輯設(shè)計(jì)與物理設(shè)計(jì)清楚地劃分開來,盡可能推遲程序的物理實(shí)現(xiàn),這是瀑布型軟件開發(fā)的一條重要的遲程序的物理實(shí)現(xiàn),這是瀑布型軟件開發(fā)的一條重要的指導(dǎo)思想。指導(dǎo)思想。3 3質(zhì)量保證的觀點(diǎn)質(zhì)量保證的觀點(diǎn) 為了保證質(zhì)量,瀑布型軟件開發(fā)在各個(gè)階段堅(jiān)持了兩為了保證質(zhì)量,瀑布型軟件開發(fā)在各個(gè)階段堅(jiān)持了兩個(gè)重要的做法:個(gè)重要的做法: (1 1)每一階段都要完成規(guī)定的文檔。沒有完成文檔,)每一階段都要完成規(guī)定的文檔。沒有完成文檔,就認(rèn)為沒有完成該階段的任務(wù)。就認(rèn)為沒有完成該階段的任務(wù)。 (2 2)每一階段都要對完成的文檔進(jìn)行復(fù)審,以便盡早)每一階段都要對完成的文檔進(jìn)行復(fù)審,以便盡早發(fā)現(xiàn)問題,消除隱患。發(fā)現(xiàn)問題,消除隱

33、患。1.4.2 1.4.2 快速原型模型(快速原型模型(Rapid Prototype modelRapid Prototype model) 所謂快速原型是快速建立起來的可以在計(jì)算所謂快速原型是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成功能的一個(gè)子集。產(chǎn)品能完成功能的一個(gè)子集。1.4.2 快速原型模型快速原型模型1.4.2 快速原型模型快速原型模型 快速原型模型是不帶反饋環(huán)的,軟件產(chǎn)品的快速原型模型是不帶反饋環(huán)的,軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的。主要原因如下:開發(fā)基本上是線性順序進(jìn)行的。主要原因如下:(1)原型

34、系統(tǒng)已經(jīng)通過與用戶交互而得到驗(yàn)證,據(jù))原型系統(tǒng)已經(jīng)通過與用戶交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說明文檔正確地描述了用戶需求;此產(chǎn)生的規(guī)格說明文檔正確地描述了用戶需求;(2)開發(fā)人員通過建立系統(tǒng)原型已經(jīng)了解了許多與)開發(fā)人員通過建立系統(tǒng)原型已經(jīng)了解了許多與構(gòu)建系統(tǒng)有關(guān)的內(nèi)容,因此在后面設(shè)計(jì)和編碼階構(gòu)建系統(tǒng)有關(guān)的內(nèi)容,因此在后面設(shè)計(jì)和編碼階段犯錯(cuò)的可能性大大降低。段犯錯(cuò)的可能性大大降低。1.4.3 增量模型(增量模型(Increment Model) 使用增量模型開發(fā)軟件時(shí),把軟件產(chǎn)品作為使用增量模型開發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成

35、和測試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。完成特定的功能。把軟件產(chǎn)品分解成增量構(gòu)件時(shí),應(yīng)該使構(gòu)件把軟件產(chǎn)品分解成增量構(gòu)件時(shí),應(yīng)該使構(gòu)件的規(guī)模適中,規(guī)模過大或過小都不好。分解時(shí)必的規(guī)模適中,規(guī)模過大或過小都不好。分解時(shí)必須遵守的約束條件是,當(dāng)把新構(gòu)件集成到現(xiàn)有軟須遵守的約束條件是,當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中時(shí),所形成的產(chǎn)品必須是可測試的。件中時(shí),所形成的產(chǎn)品必須是可測試的。 1.4.41.4.4螺旋模型螺旋模型(Spiral Model) (Spiral Model) 對于大型軟件,只對于大型軟件,只開發(fā)一個(gè)原型往往達(dá)不到要求。螺

36、旋模型將瀑布模型和增量模型開發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來,并加入了風(fēng)險(xiǎn)分析。結(jié)合起來,并加入了風(fēng)險(xiǎn)分析。螺旋模型將開發(fā)過程螺旋模型將開發(fā)過程分為幾個(gè)螺旋周期,分為幾個(gè)螺旋周期,每個(gè)螺旋周期可分為每個(gè)螺旋周期可分為4 4個(gè)工作步驟:個(gè)工作步驟: 1.1.確定目標(biāo)、方案確定目標(biāo)、方案和限制條件;和限制條件; 2.2.評估方案、標(biāo)識評估方案、標(biāo)識風(fēng)險(xiǎn)和解決風(fēng)險(xiǎn);風(fēng)險(xiǎn)和解決風(fēng)險(xiǎn); 3.3.開發(fā)確認(rèn)產(chǎn)品;開發(fā)確認(rèn)產(chǎn)品; 4.4.計(jì)劃下一周期工計(jì)劃下一周期工作。作。 螺旋模型分分 析析系統(tǒng)系統(tǒng) 設(shè)計(jì)設(shè)計(jì)軟件軟件 設(shè)計(jì)設(shè)計(jì)實(shí)實(shí) 現(xiàn)現(xiàn)圖1.5 噴泉模型該模型是由該模型是由B.

37、H.Sollers和和J.M.Edwards于于1990年提出的一年提出的一種新的開發(fā)模型。主要用于采用對象技術(shù)的軟件開發(fā)項(xiàng)目。它種新的開發(fā)模型。主要用于采用對象技術(shù)的軟件開發(fā)項(xiàng)目。它克服了瀑布模型不支持軟件重用和多項(xiàng)開發(fā)活動集成的局限性,克服了瀑布模型不支持軟件重用和多項(xiàng)開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。噴泉模型使開發(fā)過程具有迭代性和無間隙性。 其特點(diǎn)如下:其特點(diǎn)如下: 、開發(fā)過程有分析、系統(tǒng)設(shè)計(jì)、軟件開發(fā)過程有分析、系統(tǒng)設(shè)計(jì)、軟件設(shè)計(jì)和實(shí)現(xiàn)設(shè)計(jì)和實(shí)現(xiàn)4個(gè)階段。個(gè)階段。、各階段相互重疊,它反映了軟件過、各階段相互重疊,它反映了軟件過程并行性的特點(diǎn)。程并行性的特點(diǎn)。

38、 、以分析為基礎(chǔ),資源消耗成塔型。、以分析為基礎(chǔ),資源消耗成塔型。、反映了軟件過程迭代性的自然特性,、反映了軟件過程迭代性的自然特性,從高層返回低層無資源消耗。從高層返回低層無資源消耗。 、強(qiáng)調(diào)增量開發(fā),整個(gè)過程是一個(gè)迭、強(qiáng)調(diào)增量開發(fā),整個(gè)過程是一個(gè)迭代的逐步提煉的過程。代的逐步提煉的過程。 1.4.6 RUP軟件開發(fā)(軟件開發(fā)(1)RUP總結(jié)了經(jīng)過多年商業(yè)化驗(yàn)證的總結(jié)了經(jīng)過多年商業(yè)化驗(yàn)證的6條最有效的條最有效的軟件開發(fā)經(jīng)驗(yàn),這些經(jīng)驗(yàn)被稱為最佳實(shí)踐:軟件開發(fā)經(jīng)驗(yàn),這些經(jīng)驗(yàn)被稱為最佳實(shí)踐:n迭代式開發(fā)n管理需求n使用基于構(gòu)件的體系結(jié)構(gòu)n可視化建模n驗(yàn)證軟件質(zhì)量n控制軟件變更1.4.6 RUP(2

39、)RUP軟件開發(fā)生命周期軟件開發(fā)生命周期核心工作流:核心工作流:RUP有有9個(gè)核心工作流,前個(gè)核心工作流,前6個(gè)為核心過程工個(gè)為核心過程工作流程,后作流程,后3個(gè)位核心支持工作流程。個(gè)位核心支持工作流程。n業(yè)務(wù)建模n需求n分析與設(shè)計(jì)n實(shí)現(xiàn)n測試n部署n配置與變更管理n項(xiàng)目管理n環(huán)境1.4.6 RUP(3)RUP工作階段工作階段n初始階段:建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,并且確定項(xiàng)目的范圍n精化階段:設(shè)計(jì)并確定系統(tǒng)的體系結(jié)構(gòu),制定項(xiàng)目計(jì)劃,確定資源需求n構(gòu)建階段:開發(fā)出所有構(gòu)建和應(yīng)用程序,把它們集成為客戶需要的產(chǎn)品,并且詳盡地測試所有功能。n移交階段:把開發(fā)出的產(chǎn)品提交給用戶使用1.4.6 RU

40、P(4)RUP的迭代開發(fā)模式的迭代開發(fā)模式1.4.6 RUP(5)1.4.7 敏捷過程與極限編程敏捷過程與極限編程(1)為了使軟件開發(fā)團(tuán)隊(duì)具有高效工作和快速響為了使軟件開發(fā)團(tuán)隊(duì)具有高效工作和快速響應(yīng)變化的能力,應(yīng)變化的能力,17位著名的軟件專家于位著名的軟件專家于2001年年2月聯(lián)合起草的敏捷軟件開發(fā)宣言。月聯(lián)合起草的敏捷軟件開發(fā)宣言。敏捷過程敏捷過程4個(gè)簡單的價(jià)值觀聲明個(gè)簡單的價(jià)值觀聲明n個(gè)體和交互勝過過程和工具n可以工作的軟件勝過面面俱到的文檔n客戶合作勝過合同談判n響應(yīng)變化勝過遵循計(jì)劃1.4.7 敏捷過程與極限編程敏捷過程與極限編程(2)XP是敏捷過程中最負(fù)盛名是敏捷過程中最負(fù)盛名的一個(gè)

41、的一個(gè)XP的有效實(shí)踐的有效實(shí)踐n客戶作為開發(fā)團(tuán)隊(duì)的成員n使用用戶素材n短交付周期n驗(yàn)收測試n結(jié)對編程n測試驅(qū)動開發(fā)n集體所有n持續(xù)集成n可持續(xù)的開發(fā)速度n開放的工作空間n及時(shí)調(diào)整計(jì)劃n簡單的設(shè)計(jì)n重構(gòu)n使用隱喻1.4.7 敏捷過程與極限編程敏捷過程與極限編程(3)XP項(xiàng)目的整體開發(fā)過程項(xiàng)目的整體開發(fā)過程1.4.7 敏捷過程與極限編程敏捷過程與極限編程(4)XP迭代開發(fā)過程迭代開發(fā)過程 1.4.8 微軟過程微軟過程(1)微軟過程準(zhǔn)則微軟過程準(zhǔn)則n項(xiàng)目計(jì)劃應(yīng)該兼顧未來的不確定因素n用有效的風(fēng)險(xiǎn)管理來減少不確定因素的影響n經(jīng)過生成并快速地測試軟件的過渡版本,從而提高產(chǎn)品的穩(wěn)定性和可預(yù)測性。n采用快速

42、循環(huán)、遞進(jìn)的開發(fā)過程n用創(chuàng)造性的工作來平衡產(chǎn)品特性和產(chǎn)品成本n項(xiàng)目進(jìn)度表應(yīng)該具有較高穩(wěn)定性和權(quán)威性n使用小型項(xiàng)目組并發(fā)地完成開發(fā)工作n在項(xiàng)目早期把軟件配置項(xiàng)基線化,項(xiàng)目后期則凍結(jié)產(chǎn)品n使用原型驗(yàn)證概念,對項(xiàng)目進(jìn)行早期結(jié)論n把零缺陷作為追求的目標(biāo)n里程碑評審會的目的是改進(jìn)工作,切忌相互指責(zé)1.4.8 微軟過程微軟過程(2)微軟軟件生命周期階段劃分和主要里程碑微軟軟件生命周期階段劃分和主要里程碑 1.4.8 微軟過程微軟過程(3)微軟過程的生命周期模型微軟過程的生命周期模型 各模型比較各模型比較(1)每個(gè)軟件開發(fā)組織應(yīng)該選擇適合于該組織的軟每個(gè)軟件開發(fā)組織應(yīng)該選擇適合于該組織的軟件開發(fā)模型,并且應(yīng)

43、該隨著當(dāng)前正在開發(fā)的特件開發(fā)模型,并且應(yīng)該隨著當(dāng)前正在開發(fā)的特定產(chǎn)品特性而變化,以減小所選模型的缺點(diǎn),定產(chǎn)品特性而變化,以減小所選模型的缺點(diǎn),充分利用其優(yōu)點(diǎn),下表列出了幾種常見模型的充分利用其優(yōu)點(diǎn),下表列出了幾種常見模型的優(yōu)缺點(diǎn)。優(yōu)缺點(diǎn)。各模型比較各模型比較(2)模型模型優(yōu)點(diǎn)優(yōu)點(diǎn)缺點(diǎn)缺點(diǎn)瀑布模型瀑布模型 文檔驅(qū)動文檔驅(qū)動 系統(tǒng)可能不滿足客戶的系統(tǒng)可能不滿足客戶的需求需求 快速原型模型快速原型模型 關(guān)注滿足客戶需求關(guān)注滿足客戶需求 可能導(dǎo)致系統(tǒng)設(shè)計(jì)差、可能導(dǎo)致系統(tǒng)設(shè)計(jì)差、效率低,難于維護(hù)效率低,難于維護(hù) 增量模型增量模型 開發(fā)早期反饋及時(shí),開發(fā)早期反饋及時(shí),易于維護(hù)易于維護(hù) 需要開放式體系結(jié)構(gòu),

44、需要開放式體系結(jié)構(gòu),可能會設(shè)計(jì)差、效率低可能會設(shè)計(jì)差、效率低 螺旋模型螺旋模型 風(fēng)險(xiǎn)驅(qū)動風(fēng)險(xiǎn)驅(qū)動 風(fēng)險(xiǎn)分析人員需要有經(jīng)風(fēng)險(xiǎn)分析人員需要有經(jīng)驗(yàn)且經(jīng)過充分訓(xùn)練驗(yàn)且經(jīng)過充分訓(xùn)練 1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定1. 開發(fā)模型與開發(fā)方法及工具的關(guān)系 一般應(yīng)用軟件的開發(fā)過程,主要包括生存周期的系統(tǒng)規(guī)劃、需求分析、軟件設(shè)計(jì)、實(shí)現(xiàn)四個(gè)階段。軟件的開發(fā)方法多種多樣,當(dāng)采用不同的開發(fā)方法時(shí),軟件的生存周期過程將表現(xiàn)為不同的過程模型。為解決開發(fā)工程中大量復(fù)雜的手工勞動,提高軟件的開發(fā)效率,還要采用計(jì)算機(jī)輔助軟件工程CASE開發(fā)工具來支持整個(gè)開發(fā)過程。1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定

45、開發(fā)模型、方法和工具之間的關(guān)系開發(fā)模型、方法和工具之間的關(guān)系 1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定2軟件開發(fā)模型選取 最常用的是瀑布模型和原型模型,其次是增量模型,由于迭代模型比較難以掌握使用較少。各種模型各有其特點(diǎn)和優(yōu)缺點(diǎn)。在具體選擇模型時(shí)需要綜合考慮以下6點(diǎn): (1)符合軟件本身的性質(zhì),包括規(guī)模、復(fù)雜性等; (2)滿足軟件應(yīng)用系統(tǒng)整體開發(fā)進(jìn)度要求; (3)盡可能控制并消除軟件開發(fā)風(fēng)險(xiǎn); (4)具有計(jì)算機(jī)輔助工具快速的支持,如快速原型工具; (5)與用戶和軟件開發(fā)人員的知識和技能匹配; (6)有利于軟件開發(fā)的管理與控制。通常情況下,面向過程方法可使用瀑布模型、增量模型和螺旋模型進(jìn)

46、行開發(fā);面向?qū)ο蠓椒刹捎每焖僭?、增量模型、噴泉模型和統(tǒng)一過程進(jìn)行開發(fā);面向數(shù)據(jù)方法一股采用瀑布模型和增量模型進(jìn)行開發(fā)。1.4.9 軟件開發(fā)模型的選定軟件開發(fā)模型的選定3軟件開發(fā)模型的修定 在實(shí)際軟件開發(fā)過程中,開發(fā)模型的選定并非直接照抄照搬、一成不變,有時(shí)還需要根據(jù)實(shí)際開發(fā)目標(biāo)要求進(jìn)行裁剪、修改、確定和綜合運(yùn)用。小結(jié):軟件工程項(xiàng)目的基本目標(biāo)小結(jié):軟件工程項(xiàng)目的基本目標(biāo) (1)付出較低的開發(fā)成本;)付出較低的開發(fā)成本;(2)達(dá)到要求的軟件功能;)達(dá)到要求的軟件功能;(3)取得較好的軟件性能;)取得較好的軟件性能;(4)開發(fā)的軟件易于移植;)開發(fā)的軟件易于移植;(5)需要較低的維護(hù)費(fèi)用;)需要較低的維護(hù)費(fèi)用; (6)能按時(shí)完成開發(fā)工作,及時(shí)交付使用。)能按時(shí)完成開發(fā)工作,及時(shí)交付使用。 軟件工程項(xiàng)目的基本目標(biāo)軟件工程項(xiàng)目的基本目標(biāo)低開發(fā)成本按時(shí)交付高性能高可靠性易于維護(hù)互補(bǔ)關(guān)系互斥關(guān)系返回目錄本章小結(jié)本章小結(jié) 軟件過程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng) 任務(wù)的工作步驟。ISO 9000把軟件過程定義為:“把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動”。軟件過程定義了運(yùn)用方法的順序、應(yīng)該交付的文檔、開發(fā)軟件的管理措施、各階段任務(wù)完成的標(biāo)志。軟件過程必須科學(xué)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論