軟件工程課件之第1章軟件工程學(xué)概述(張海潘編著)_第1頁
軟件工程課件之第1章軟件工程學(xué)概述(張海潘編著)_第2頁
軟件工程課件之第1章軟件工程學(xué)概述(張海潘編著)_第3頁
軟件工程課件之第1章軟件工程學(xué)概述(張海潘編著)_第4頁
軟件工程課件之第1章軟件工程學(xué)概述(張海潘編著)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程課件之第1章軟件工程學(xué)概述(張海潘編著)1學(xué)習(xí)目的:軟件工程是計(jì)算機(jī)專業(yè)一門重要的專業(yè)課。目的在于培養(yǎng)學(xué)生用工程化的原理及方法開發(fā)軟件系統(tǒng),把專業(yè)知識(shí)同實(shí)際項(xiàng)目結(jié)合起來,為將來從事計(jì)算機(jī)軟件的開發(fā)及應(yīng)用維護(hù)工作打下堅(jiān)實(shí)的基礎(chǔ)。對(duì)于培養(yǎng)學(xué)生的軟件素質(zhì),提高學(xué)生的軟件開發(fā)能力與軟件項(xiàng)目管理能力具有重要的意義。學(xué)習(xí)目的:軟件工程是計(jì)算機(jī)專業(yè)一門重要的專業(yè)課。2參考書:現(xiàn)代軟件工程,張家浩,機(jī)械工業(yè)出版社軟件工程:實(shí)踐者的研究方法,RogerS.pressman,鄭人杰等譯,機(jī)械工業(yè)出版社軟件工程導(dǎo)論學(xué)習(xí)輔導(dǎo),張海藩,清華大學(xué)出版社參考書:現(xiàn)代軟件工程,張家浩,機(jī)械工業(yè)出版社3總目錄:第1章軟件工程學(xué)概述第2章可行性研究第3章需求分析第4章形式化說明技術(shù)第5章總體設(shè)計(jì)第6章詳細(xì)設(shè)計(jì)第7章實(shí)現(xiàn)第8章維護(hù)第9章面向?qū)ο蠓椒▽W(xué)引論第10章面向?qū)ο蠓治龅?1章面向?qū)ο笤O(shè)計(jì)第12章面向?qū)ο髮?shí)現(xiàn)第13章軟件項(xiàng)目管理總目錄:第1章軟件工程學(xué)概述第9章面向?qū)ο蠓椒▽W(xué)引論4

1.1軟件危機(jī)

1.2軟件工程

1.3軟件生命周期

1.4軟件過程第1章軟件工程學(xué)概述1.1軟件危機(jī)第1章軟件工程學(xué)概述51.1軟件危機(jī)計(jì)算機(jī)系統(tǒng):是指適當(dāng)?shù)慕M織在一起的一系列系統(tǒng)元素的集合,這些系統(tǒng)元素互相配合、相互協(xié)作,通過對(duì)信息的處理而完成預(yù)先定義的目標(biāo)。計(jì)算機(jī)系統(tǒng)軟件硬件人員數(shù)據(jù)庫文檔過程程序數(shù)據(jù)結(jié)構(gòu)相關(guān)文檔電子計(jì)算設(shè)備電子機(jī)械設(shè)備用戶和操作者大型、有組織的信息集合手冊(cè)、表格、圖形等描述性信息一系列步驟1.1軟件危機(jī)計(jì)算機(jī)系統(tǒng):是指適當(dāng)?shù)慕M織在一起的一系列系統(tǒng)6對(duì)軟件的認(rèn)識(shí):1950:程序1960:程序+文檔(不包括管理文檔)1970:程序+文檔+數(shù)據(jù)1984:軟件管理是過程管理,CMM1.0能力成熟度模型1996:UML統(tǒng)一建模語言對(duì)軟件的認(rèn)識(shí):7計(jì)算機(jī)系統(tǒng)4個(gè)不同的發(fā)展階段:時(shí)期硬件軟件早期時(shí)代20世紀(jì)60年代中期以前晶體管計(jì)算機(jī)程序設(shè)計(jì)階段個(gè)體化生產(chǎn)第二代20世紀(jì)60年代中期到70年代中期集成電路計(jì)算機(jī)程序系統(tǒng)階段作坊式生產(chǎn)軟件危機(jī)出現(xiàn)軟件工程誕生第三代20世紀(jì)70年代中期到80年代中期微處理器個(gè)人計(jì)算機(jī)軟件工程階段工程化思想分布式系統(tǒng)第四代20世紀(jì)80年代中期至今面向?qū)ο箅A段硬件與軟件綜合軟件開發(fā)第四代技術(shù)計(jì)算機(jī)系統(tǒng)4個(gè)不同的發(fā)展階段:時(shí)期硬件軟件早期時(shí)代晶體管計(jì)算8計(jì)算機(jī)軟件發(fā)展的4個(gè)階段計(jì)算機(jī)軟件發(fā)展的4個(gè)階段91.1.1軟件危機(jī)的介紹軟件危機(jī)(軟件蕭條、軟件困擾):是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。實(shí)際上,幾乎所有軟件都不同程度地存在這些問題。軟件危機(jī)包含下述兩方面的問題:如何開發(fā)軟件,滿足對(duì)軟件日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。1.1.1軟件危機(jī)的介紹軟件危機(jī)(軟件蕭條、軟件困擾):10軟件危機(jī)的典型表現(xiàn):(1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;(2)用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;(3)軟件產(chǎn)品的質(zhì)量往往靠不??;(4)軟件常常是不可維護(hù)的;(5)軟件通常沒有適當(dāng)?shù)奈臋n資料;(6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;(7)軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。軟件危機(jī)的典型表現(xiàn):111.1.2產(chǎn)生軟件危機(jī)的原因(1)與軟件本身的特點(diǎn)有關(guān)軟件是邏輯部件。軟件不會(huì)被“用壞”,如果發(fā)現(xiàn)了錯(cuò)誤,很可能是開發(fā)時(shí)期引入。軟件規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升。1.1.2產(chǎn)生軟件危機(jī)的原因(1)與軟件本身的特點(diǎn)有關(guān)12(2)與軟件開發(fā)與維護(hù)的方法不正確有關(guān)忽視軟件需求分析的重要性。對(duì)用戶要求沒有完整準(zhǔn)確的認(rèn)識(shí)就匆忙著手編寫程序。越早開始寫程序,完成它所需要用的時(shí)間往往越長。認(rèn)為軟件開發(fā)就是寫程序并設(shè)法使之運(yùn)行。程序只是完整的軟件產(chǎn)品的一個(gè)組成部分。一個(gè)軟件產(chǎn)品必須由一個(gè)完整的配置組成,軟件配置主要包括程序、文檔和數(shù)據(jù)等成分。在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的,見圖1.1。(2)與軟件開發(fā)與維護(hù)的方法不正確有關(guān)13圖1.1引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)輕視軟件維護(hù)。維護(hù)是極端艱巨復(fù)雜的工作,需要花費(fèi)很大代價(jià)。軟件維護(hù)的費(fèi)用占軟件總費(fèi)用的55%~70%。軟件工程學(xué)的一個(gè)重要目標(biāo)就是提高軟件的可維護(hù)性,減少軟件維護(hù)的代價(jià)。圖1.1引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)輕視軟件維護(hù)141.1.3消除軟件危機(jī)的途徑

對(duì)計(jì)算機(jī)軟件有正確的認(rèn)識(shí)。認(rèn)識(shí)到軟件開發(fā)是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。應(yīng)該推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并繼續(xù)研究探索。應(yīng)該開發(fā)和使用更好的軟件工具??傊?,為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。

1.1.3消除軟件危機(jī)的途徑對(duì)計(jì)算機(jī)軟件有正確的認(rèn)識(shí)。151.2軟件工程

1.2.1軟件工程的介紹

軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。1.2軟件工程

1.2.1軟件工程的介紹軟件工程16軟件工程的代表性定義:FritzBauer:軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件而建立和使用的好的工程原則。IEEE:軟件工程是(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中;(2)(1)中所述方法的研究。計(jì)算機(jī)科學(xué)技術(shù)百科全書:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法制作軟件的工程。軟件工程的代表性定義:17軟件工程的劃代(無公認(rèn)的定義):①1970年末之前,傳統(tǒng)軟件工程,瀑布模型。②1980年后,面向?qū)ο筌浖こ?,面向?qū)ο笳Z言以Smalltalk-80的出現(xiàn)為標(biāo)志。③1984年后,軟件過程工程,掀起軟件過程運(yùn)動(dòng),1991年出現(xiàn)的CMM是典型代表。④1990年后,構(gòu)件工程,基于構(gòu)件的軟件開發(fā)方法,可重用的構(gòu)件組裝成新系統(tǒng)。軟件工程的劃代(無公認(rèn)的定義):18軟件工程的本質(zhì)特性:軟件工程關(guān)注于大型程序的構(gòu)造軟件工程的中心課題是控制復(fù)雜性軟件經(jīng)常變化開發(fā)軟件的效率非常重要和諧地合作是開發(fā)軟件的關(guān)鍵軟件必須有效地支持它的用戶在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程的本質(zhì)特性:191.2.2軟件工程的基本原理

用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性1.2.2軟件工程的基本原理用分階段的生命周期計(jì)劃嚴(yán)格201.2.3軟件工程方法學(xué)

軟件工程包括技術(shù)和管理兩方面的內(nèi)容。管理:通過計(jì)劃、組織和控制等一系列活動(dòng),合理地配置和使用各種資源,以達(dá)到既定目標(biāo)的過程。技術(shù)(軟件工程方法學(xué)):通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。1.2.3軟件工程方法學(xué)軟件工程包括技術(shù)和管理兩方面的21軟件工程方法學(xué)3要素:方法:是完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“怎樣做”的問題;工具:是為運(yùn)用方法而提供的自動(dòng)的或半自動(dòng)的軟件工程支撐環(huán)境;如,CASE(Computer-AidedSoftwareEngineering)工具過程:需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件工程方法學(xué)3要素:221.傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)——強(qiáng)調(diào)自頂向下采用結(jié)構(gòu)化技術(shù)來完成軟件;劃分為若干個(gè)階段,然后順序地完成每個(gè)階段的任務(wù);每個(gè)階段的任務(wù)相對(duì)獨(dú)立,而且比較簡單,降低了整個(gè)軟件開發(fā)工程的困難程度;前一個(gè)階段是后一個(gè)階段的前提和基礎(chǔ),而后一階段提出的解法更具體,細(xì)節(jié)更多;每個(gè)階段結(jié)束前必須從技術(shù)和管理兩方面對(duì)這個(gè)階段的開發(fā)成果進(jìn)行嚴(yán)格的檢查,通過之后這個(gè)階段才算結(jié)束;保證質(zhì)量,提高可維護(hù)性;當(dāng)軟件規(guī)模龐大,或者的需求模糊或隨時(shí)間而變化時(shí),傳統(tǒng)方法學(xué)往往不成功;維護(hù)起來仍然很困難。1.傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)——強(qiáng)調(diào)自頂向232.面向?qū)ο蠓椒▽W(xué)——強(qiáng)調(diào)主動(dòng)地多次反復(fù)迭代面向?qū)ο蠓椒ǎ喊褦?shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來的方法。面向?qū)ο蠓椒▽W(xué)4個(gè)要點(diǎn):對(duì)象(object):融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為。類(class):類是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義。繼承:按照父類與子類的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。消息:對(duì)象彼此間僅能通過發(fā)送消息互相聯(lián)系。2.面向?qū)ο蠓椒▽W(xué)——強(qiáng)調(diào)主動(dòng)地多次反復(fù)迭代24面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):面向?qū)ο蠓椒▽W(xué)的盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識(shí)世界解決問題的方法與過程。面向?qū)ο蠓椒▽W(xué)開發(fā)軟件的過程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過程,保證了在各項(xiàng)開發(fā)活動(dòng)之間的平滑過渡。促進(jìn)了軟件重用。最終的軟件產(chǎn)品由許多較小的、基本上獨(dú)立的對(duì)象組成,每個(gè)對(duì)象相當(dāng)于一個(gè)微型程序,而且大多數(shù)對(duì)象都與現(xiàn)實(shí)世界中的實(shí)體相對(duì)應(yīng),降低了復(fù)雜性,提高了可理解性,簡化了開發(fā)和維護(hù)工作。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):25軟件四化:構(gòu)架平臺(tái)化組建業(yè)務(wù)化編碼自動(dòng)化管理工廠化以面向?qū)ο蠹夹g(shù)為手段,以可重用軟件構(gòu)件化和體系架構(gòu)為基礎(chǔ),以工業(yè)化生產(chǎn)方式和管理支撐體系為核心的軟件新變革。軟件四化:261.3軟件生命周期

三個(gè)時(shí)期八個(gè)階段:軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。三個(gè)時(shí)期:八個(gè)階段:軟件生命周期軟件定義軟件開發(fā)軟件維護(hù)問題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)試運(yùn)行維護(hù)系統(tǒng)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)1.3軟件生命周期三個(gè)時(shí)期八個(gè)階段:軟件生命周期由軟件271.問題定義任務(wù):問題是什么通過對(duì)客戶的訪問調(diào)查,系統(tǒng)分析員扼要地寫出關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報(bào)告。經(jīng)過討論和必要的修改之后這份報(bào)告應(yīng)該得到客戶的確認(rèn)。結(jié)果:關(guān)于系統(tǒng)規(guī)模和目標(biāo)的報(bào)告書

1.問題定義282.可行性研究任務(wù):有可行的解嗎系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡化了的系統(tǒng)分析和設(shè)計(jì)過程。研究問題的范圍,探索這個(gè)問題是否值得去解,是否有可行的解決辦法。結(jié)果:系統(tǒng)的高層邏輯模型(數(shù)據(jù)流圖、成本效益分析)可行性論證報(bào)告(立即進(jìn)行/推遲進(jìn)行/不能或不值得進(jìn)行)2.可行性研究293.需求分析任務(wù):必須做什么主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。系統(tǒng)分析員必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型。結(jié)果:系統(tǒng)的邏輯模型(數(shù)據(jù)流圖、數(shù)據(jù)字典、簡要的算法描述)用規(guī)格說明書準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求3.需求分析304.總體設(shè)計(jì)任務(wù):如何解決已提出的問題設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案(低、中、高成本)。用適當(dāng)?shù)谋磉_(dá)工具描述每種方案,分析優(yōu)缺點(diǎn),推薦一個(gè)最佳方案,制定出實(shí)現(xiàn)最佳方案的詳細(xì)計(jì)劃。設(shè)計(jì)程序的體系結(jié)構(gòu)。結(jié)果:可能的解法(系統(tǒng)流程圖、成本效益分析)推薦的系統(tǒng)體系結(jié)構(gòu)(層次圖或結(jié)構(gòu)圖)4.總體設(shè)計(jì)315.詳細(xì)設(shè)計(jì)任務(wù):怎樣具體實(shí)現(xiàn)該系統(tǒng)詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。結(jié)果:每個(gè)模塊的算法和數(shù)據(jù)結(jié)構(gòu)(程序流程圖、PAD圖、N-S圖等)。5.詳細(xì)設(shè)計(jì)326.編碼和單元測(cè)試任務(wù):得到正確的程序模塊選取一種適當(dāng)?shù)母呒?jí)程序設(shè)計(jì)語言(必要時(shí)用匯編語言),把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語言書寫的程序;并且仔細(xì)測(cè)試編寫出的每一個(gè)模塊。結(jié)果:代碼和測(cè)試報(bào)告6.編碼和單元測(cè)試337.綜合測(cè)試任務(wù):得到符合要求的軟件通過集成測(cè)試、驗(yàn)收測(cè)試、現(xiàn)場(chǎng)測(cè)試、平行運(yùn)行等方法對(duì)目標(biāo)系統(tǒng)進(jìn)一步測(cè)試檢驗(yàn)。通過對(duì)軟件測(cè)試結(jié)果的分析可以預(yù)測(cè)軟件的可靠性;反之,根據(jù)對(duì)軟件可靠性的要求,也可以決定測(cè)試和調(diào)試過程什么時(shí)候可以結(jié)束。結(jié)果:測(cè)試計(jì)劃、詳細(xì)測(cè)試方案以及實(shí)際測(cè)試結(jié)果完整一致的軟件配置

7.綜合測(cè)試348.軟件維護(hù)任務(wù):使系統(tǒng)持久地滿足用戶的需要改正性維護(hù),診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件;預(yù)防性維護(hù),修改軟件為將來的維護(hù)活動(dòng)做準(zhǔn)備。每一項(xiàng)維護(hù)活動(dòng)實(shí)質(zhì)上是經(jīng)歷了一次壓縮和簡化了的軟件定義和開發(fā)的全過程。結(jié)果:完整準(zhǔn)確的維護(hù)記錄

8.軟件維護(hù)35各類維護(hù)工作量所占比例維護(hù)工作量在軟件生命周期所占比例各類維護(hù)工作量所占比例維護(hù)工作量在軟件生命周期所占比例361.4軟件過程軟件過程:是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。過程定義了運(yùn)用方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)變化所需要采取的管理措施,以及標(biāo)志軟件開發(fā)各個(gè)階段任務(wù)完成的里程碑。為獲得高質(zhì)量的軟件產(chǎn)品,軟件過程必須科學(xué)、有效。1.4軟件過程軟件過程:是為了獲得高質(zhì)量軟件所需要完成的37傳統(tǒng)的瀑布模型實(shí)際的瀑布模型1.4.1瀑布模型傳統(tǒng)的瀑布模型實(shí)際的瀑布模型1.4.1瀑布模型38瀑布模型的特點(diǎn):1.階段間具有順序性和依賴性前一階段的工作完成之后,才能開始后一階段的工作;前一階段的輸出文檔就是后一階段的輸入文檔。2.推遲實(shí)現(xiàn)的觀點(diǎn)對(duì)于規(guī)模較大的軟件項(xiàng)目來說,往往編碼開始得越早最終完成開發(fā)工作所需要的時(shí)間反而越長。3.質(zhì)量保證的觀點(diǎn)每個(gè)階段都必須完成規(guī)定的文檔,是“文檔驅(qū)動(dòng)”的模型;每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,盡早發(fā)現(xiàn)問題,改正錯(cuò)誤。瀑布模型的特點(diǎn):39瀑布模型的優(yōu)點(diǎn):可強(qiáng)迫開發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證。瀑布模型的缺點(diǎn):只能通過文檔了解產(chǎn)品,不經(jīng)過實(shí)踐的需求是不切實(shí)際的。瀑布模型適用于:

需求是預(yù)知的;軟件實(shí)現(xiàn)方法是成熟的;項(xiàng)目周期較短。瀑布模型的優(yōu)點(diǎn):40快速原型模型1.4.2快速原型模型

快速原型:是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。

快速原型模型1.4.2快速原型模型快速原型:是快速建立41快速原型模型的特點(diǎn):快速原型模型不帶反饋環(huán),軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的??焖僭偷谋举|(zhì)是“快速”。應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約成本??焖僭湍P偷奶攸c(diǎn):42根據(jù)原型的不同作用,有三類原型模型:探索型原型——用于開發(fā)的需求分析階段實(shí)驗(yàn)型原型——主要用于設(shè)計(jì)階段演化型原型——用于及早向用戶提交一個(gè)原型系統(tǒng)快速原型模型的運(yùn)用方式:

拋棄策略——探索型和實(shí)驗(yàn)型采用此策略附加策略——演化型快速原型采用此策略根據(jù)原型的不同作用,有三類原型模型:431.4.3增量模型

增量模型把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。

1.4.3增量模型增量模型把軟件產(chǎn)品作為一系列的增量構(gòu)44增量模型項(xiàng)目日歷時(shí)間軟件功能性和特征12345第2次增量發(fā)布增量212345第n次增量發(fā)布增量n12345第1次增量發(fā)布增量1┇5部署(發(fā)布,反饋)4構(gòu)造(編碼,測(cè)試)3建模(分析,設(shè)計(jì))2計(jì)劃1交流增量模型項(xiàng)目日歷時(shí)間軟件功能性和特征12345第2次增量發(fā)布45增量模型的優(yōu)點(diǎn):人員分配靈活,剛開始不用投入大量人力資源。當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑。逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。增量模型的難點(diǎn):軟件體系結(jié)構(gòu)必須是開放的。模型本身是自相矛盾的。整體——獨(dú)立構(gòu)件。不同的構(gòu)件并行地構(gòu)建有可能加快工程進(jìn)度,但是冒無法集成到一起的風(fēng)險(xiǎn)。增量模型的優(yōu)點(diǎn):46增量模型適用于:適用于需求經(jīng)常改變的軟件開發(fā)過程。如果在項(xiàng)目既定的商業(yè)要求期限之前不可能找到足夠的開發(fā)人員,在這種情況下,增量模型顯得特別有用。增量模型適用于:471.4.4螺旋模型

螺旋模型的基本思想:使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。

簡化的螺旋模型1.4.4螺旋模型螺旋模型的基本思想:使用原型及其他方48完整的螺旋模型完整的螺旋模型49螺旋模型的優(yōu)點(diǎn):主要優(yōu)勢(shì)在于它是風(fēng)險(xiǎn)驅(qū)動(dòng)的。對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo);減少了過多測(cè)試或測(cè)試不足所帶來的風(fēng)險(xiǎn);維護(hù)只是模型的另一個(gè)周期,維護(hù)和開發(fā)之間沒有本質(zhì)區(qū)別。螺旋模型的優(yōu)點(diǎn):50螺旋模型的缺點(diǎn):采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),在風(fēng)險(xiǎn)較大的項(xiàng)目開發(fā)中,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn),勢(shì)必造成重大損失。過多的迭代次數(shù)會(huì)增加開發(fā)成本,延遲提交時(shí)間。螺旋模型適用于:特別適用于龐大、復(fù)雜并具有高風(fēng)險(xiǎn)的系統(tǒng)。適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。螺旋模型的缺點(diǎn):511.4.5噴泉模型

噴泉模型:是典型的面向?qū)ο笊芷谀P汀?/p>

“噴泉”這個(gè)詞體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。為避免使用噴泉模型開發(fā)軟件時(shí)開發(fā)過程過分無序,應(yīng)該把一個(gè)線性過程(例如,快速原型模型或圖中的中心垂線)作為總目標(biāo)。

1.4.5噴泉模型噴泉模型:是典型的面向?qū)ο笊芷谀?2噴泉模型的優(yōu)點(diǎn):該模型的各個(gè)階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)。多次反復(fù)地增加或明確目標(biāo)系統(tǒng),而不是本質(zhì)性的改動(dòng),降低錯(cuò)誤的可能性。噴泉模型的缺點(diǎn):由于噴泉模型在各個(gè)開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,不利于項(xiàng)目的管理。要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況。噴泉模型適用于:適用于面向?qū)ο蟮能浖_發(fā)過程。噴泉模型的優(yōu)點(diǎn):53基于構(gòu)件的開發(fā)模型:支持軟件復(fù)用。利用預(yù)先包裝好的軟件構(gòu)件來構(gòu)造應(yīng)用系統(tǒng)。領(lǐng)域分析構(gòu)件可變性分析構(gòu)建可復(fù)用構(gòu)件領(lǐng)域模型領(lǐng)域基準(zhǔn)體系結(jié)構(gòu)圖可復(fù)用構(gòu)件庫分析體系結(jié)構(gòu)設(shè)計(jì)獲取構(gòu)件構(gòu)件特化和修改評(píng)價(jià)構(gòu)件組裝和測(cè)試開發(fā)未找到構(gòu)件的部分應(yīng)用系統(tǒng)工程應(yīng)用系統(tǒng)領(lǐng)域工程基于構(gòu)件的開發(fā)模型:領(lǐng)域分析構(gòu)件可變性分析構(gòu)建領(lǐng)域模型領(lǐng)域基54形式化方法模型:形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上的一種軟件開發(fā)方法。軟件開發(fā)的全過程中,從需求分析、規(guī)約、設(shè)計(jì)、編程、系統(tǒng)集成、測(cè)試、文檔生成、直至維

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論