




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程模型與方法
Models&MethodsofSoftwareEngineering第二章軟件生命周期模型由安博測試空間技術(shù)中心/提供?2009BUPTTSEG軟件工程模型與方法
Models&Methodsof本章內(nèi)容2.1軟件工程過程2.2軟件生命周期2.3軟件過程模型2.4傳統(tǒng)軟件生命周期模型2.5新型軟件生命周期模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心本章內(nèi)容2.1軟件工程過程?2009BUPTTSEG2.1軟件工程過程軟件工程過程是為了獲得軟件產(chǎn)品,在軟件工具的支持下由軟件工程師完成的一系列軟件工程活動(dòng)。軟件規(guī)格說明(specification):規(guī)定軟件的功能及其使用限制;軟件開發(fā)(development):產(chǎn)生滿足規(guī)格說明的軟件;軟件確認(rèn)(validation):通過有效性驗(yàn)證以保證軟件能夠滿足客戶的要求;軟件演進(jìn)(evolution):為了滿足客戶的變更要求,軟件必須在使用過程中進(jìn)行不斷地改進(jìn)。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.1軟件工程過程軟件工程過程是為了獲得軟件產(chǎn)品,在軟件工2.2軟件生命周期軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的生存過程。這個(gè)過程即為計(jì)算機(jī)軟件的生命周期(LifeCycle)。軟件生命周期的六個(gè)基本步驟制定計(jì)劃需求分析設(shè)計(jì)程序編碼測試運(yùn)行維護(hù)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.2軟件生命周期軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的制定計(jì)劃確定要開發(fā)軟件系統(tǒng)的總目標(biāo);給出功能、性能、可靠性以及接口等方面的要求;完成該軟件任務(wù)的可行性研究;估計(jì)可利用的資源(硬件,軟件,人力等)、成本、效益、開發(fā)進(jìn)度;制定出完成開發(fā)任務(wù)的實(shí)施計(jì)劃,連同可行性研究報(bào)告,提交管理部門審查;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心制定計(jì)劃確定要開發(fā)軟件系統(tǒng)的總目標(biāo);?2009BUPT需求分析對用戶提出的要求進(jìn)行分析并給出詳細(xì)的定義;編寫軟件需求說明書或系統(tǒng)功能說明書及初步的系統(tǒng)用戶手冊;提交管理機(jī)構(gòu)評審;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心需求分析對用戶提出的要求進(jìn)行分析并給出詳細(xì)的定義;?200設(shè)計(jì)概要設(shè)計(jì)—把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對應(yīng);詳細(xì)設(shè)計(jì)—對每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ);編寫設(shè)計(jì)說明書,提交評審。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心設(shè)計(jì)概要設(shè)計(jì)—把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一程序編碼把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語言表示的“源程序清單”;寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心程序編碼把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某測試單元測試,查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正;組裝測試,將已測試過的模塊按一定順序組裝起來;按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心測試單元測試,查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正;運(yùn)行維護(hù)改正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正;適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更;完善性維護(hù):為了增強(qiáng)軟件的功能需做變更。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心運(yùn)行維護(hù)改正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正;?22.3軟件過程模型模型是實(shí)際事物、實(shí)際系統(tǒng)的抽象。軟件過程模型也稱做軟件生命周期模型,是從一個(gè)特定角度提出的對軟件過程的簡化描述,是對軟件開發(fā)實(shí)際過程的抽象,它包括構(gòu)成軟件過程的各種活動(dòng)、軟件工件(artifact)以及參與角色等。軟件生命周期模型描述從軟件需求定義直至軟件經(jīng)使用后廢棄為止,跨越整個(gè)生存期的軟件開發(fā)、運(yùn)行和維護(hù)所實(shí)施的全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架,同時(shí)描述生命周期不同階段產(chǎn)生的軟件工件,明確活動(dòng)的執(zhí)行角色等。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.3軟件過程模型模型是實(shí)際事物、實(shí)際系統(tǒng)的抽象。?22.4傳統(tǒng)軟件生命周期模型2.4.1瀑布模型2.4.2V模型和W模型2.4.3原型方法2.4.4演化模型2.4.5增量模型2.4.6螺旋模型2.4.7噴泉模型2.4.8構(gòu)件組裝模型2.4.9快速應(yīng)用開發(fā)模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4傳統(tǒng)軟件生命周期模型2.4.1瀑布模型?20092.4.1瀑布模型WinstonRoyce在軟件生命周期概念的基礎(chǔ)上,于1970年提出了著名的“瀑布模型”(waterfallmodel)。維護(hù)評價(jià)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.1瀑布模型WinstonRoyce在軟件生命周期2.4.1瀑布模型瀑布模型中的每一個(gè)開發(fā)活動(dòng)具有下列特征:本活動(dòng)的工作對象來自于上一項(xiàng)活動(dòng)的輸出,這些輸出一般是代表本階段活動(dòng)結(jié)束的里程碑式的文檔。根據(jù)本階段的活動(dòng)規(guī)程執(zhí)行相應(yīng)的任務(wù)。產(chǎn)生本階段活動(dòng)相關(guān)產(chǎn)出——軟件工件,作為下一活動(dòng)的輸入。對本階段活動(dòng)執(zhí)行情況進(jìn)行評審。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.1瀑布模型瀑布模型中的每一個(gè)開發(fā)活動(dòng)具有下列特征:2.4.1瀑布模型瀑布模型的優(yōu)缺點(diǎn)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.1瀑布模型瀑布模型的優(yōu)缺點(diǎn)?2009BUPT2.4.2V模型和W模型1980年代后期PaulRook提出了V模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.2V模型和W模型1980年代后期PaulRookW模型Evolutif公司在V模型的基礎(chǔ)上提出了W模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心W模型Evolutif公司在V模型的基礎(chǔ)上提出了W模型?2.4.3原型方法原型方法的產(chǎn)生瀑布模型、V模型和W模型都將軟件生命周期劃分成獨(dú)立串行的幾個(gè)階段,前一個(gè)階段沒有完成便無法開始下一階段的工作。然而完整而準(zhǔn)確的需求規(guī)格說明是很難得到的,因?yàn)椋涸陂_發(fā)早期用戶往往對系統(tǒng)只有一個(gè)模糊的想法,很難完全準(zhǔn)確地表達(dá)對系統(tǒng)的全面要求隨著開發(fā)工作的推進(jìn),用戶可能會(huì)產(chǎn)生新的要求開發(fā)者有可能在設(shè)計(jì)與實(shí)現(xiàn)的過程中遇到一些沒有預(yù)料到的實(shí)際困難,需要以改變需求來解脫困境?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法的產(chǎn)生?2009BUPTT2.4.3原型方法原型指模擬某種最終產(chǎn)品的原始模型;原型方法指在獲得一組基本需求后,通過快速分析構(gòu)造出一個(gè)小型的軟件系統(tǒng)原型,滿足用戶的基本要求。用戶通過使用原型系統(tǒng),提出修改意見,從而減少用戶與開發(fā)人員對系統(tǒng)需求的誤解,使需求盡可能準(zhǔn)確。原型方法主要用于明確需求,但也可以用于軟件開發(fā)的其他階段。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型指模擬某種最終產(chǎn)品的原始模型;?22.4.3原型方法原型的三種作用類型:(1)探索型:弄清用戶對目標(biāo)系統(tǒng)的要求,確定所期望的特性;探討多種實(shí)現(xiàn)方案的可行性。主要針對需求模糊、用戶和開發(fā)者對項(xiàng)目開發(fā)都缺乏經(jīng)驗(yàn)的情況。(2)實(shí)驗(yàn)型;用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核技術(shù)實(shí)現(xiàn)方案是否合適、分析和設(shè)計(jì)的規(guī)格說明是否可靠。(3)進(jìn)化型:在構(gòu)造系統(tǒng)的過程中能夠適應(yīng)需求的變化,通過不斷地改進(jìn)原型,逐步將原型進(jìn)化成最終的系統(tǒng)。它將原型方法的思想擴(kuò)展到軟件開發(fā)的全過程,適用于需求經(jīng)常變動(dòng)的軟件項(xiàng)目。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型的三種作用類型:?2009BUP2.4.3原型方法由于運(yùn)用原型的目的和方式不同,在使用原型時(shí)可采取以下兩種不同的策略:廢棄策略:原型主要用于反饋和評價(jià),據(jù)此設(shè)計(jì)出完整、準(zhǔn)確、一致、可靠的最終系統(tǒng)。系統(tǒng)構(gòu)造完成后,原來的原型系統(tǒng)就被廢棄不用。探索型和實(shí)驗(yàn)型原型屬于這種策略。追加策略:原型作為最終系統(tǒng)的核心,然后通過不斷地?cái)U(kuò)充修改,逐步追加新要求,最后發(fā)展成為最終系統(tǒng)。它對應(yīng)于進(jìn)化型原型。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法由于運(yùn)用原型的目的和方式不同,在使用原型2.4.3原型方法原型方法的特點(diǎn):(1)從認(rèn)知論的角度看,原型方法遵循了人們認(rèn)識事物的規(guī)律,因而更容易為人們所普遍接受,這主要表現(xiàn)在:①人們對任何事物的認(rèn)知都不可能一蹴而就、盡善盡美;②認(rèn)識和學(xué)習(xí)的過程都是循序漸進(jìn)的;③對于事物的描述,往往都是受環(huán)境的啟發(fā)而不斷完善的;④人們批評指責(zé)一個(gè)已有的事物,要比空洞地描述自己的設(shè)想容易得多,改進(jìn)一些事物要比創(chuàng)造一些事物容易得多。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法的特點(diǎn):?2009BUPT2.4.3原型方法⑵原型方法將模擬的手段引入分析的初期階段,溝通了人們的思想,縮短了用戶和開發(fā)人員之間的距離。這主要表現(xiàn)在:①所有問題的討論都是圍繞某一個(gè)確定原型而進(jìn)行的,彼此之間不存在誤解和答非所問的可能性,為準(zhǔn)確認(rèn)識問題創(chuàng)造了條件。②有了原型才能啟發(fā)人們對原來想不起來或不易準(zhǔn)確描述的問題有一個(gè)比較確切的描述;③能夠及早地暴露出系統(tǒng)實(shí)現(xiàn)后存在的一些問題,促使人們在系統(tǒng)實(shí)現(xiàn)之前就加以解決。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法⑵原型方法將模擬的手段引入分析的初期階2.4.3原型方法原型提供了用戶與開發(fā)人員良好的溝通手段,易于被人們接受,使用原型方法有以下好處:原型方法有助于增進(jìn)軟件人員和用戶對系統(tǒng)服務(wù)需求的理解;原型方法提供了一種有力的學(xué)習(xí)手段;使用原型方法,可以容易地確定系統(tǒng)的性能,確認(rèn)各項(xiàng)主要系統(tǒng)服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性,確認(rèn)系統(tǒng)作為產(chǎn)品的結(jié)果;軟件原型的最終版本,有的可以原封不動(dòng)地成為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個(gè)組成部分,這樣有利于建成最終系統(tǒng)。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型提供了用戶與開發(fā)人員良好的溝通手段,2.4.3原型方法原型法的適用范圍和局限性:對于一個(gè)大型系統(tǒng),如果不經(jīng)過系統(tǒng)分析得到系統(tǒng)的整體劃分,而直接用原型來模擬是很困難的。對于大量運(yùn)算的、邏輯性較強(qiáng)的程序模塊,原型方法很難構(gòu)造出該模塊的原型來供人評價(jià)。對于原有應(yīng)用的業(yè)務(wù)流程、信息流程混亂的情況,原型構(gòu)造與使用有一定的困難。對于一個(gè)批處理系統(tǒng),由于大部分活動(dòng)是內(nèi)部處理的,因此應(yīng)用原型方法會(huì)有一定的困難。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型法的適用范圍和局限性:?20092.4.3原型方法原型方法存在的問題:文檔容易被忽略。建立原型的許多工作會(huì)被浪費(fèi)掉。項(xiàng)目難以規(guī)劃和管理。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法存在的問題:?2009BUP2.4.3原型方法1984年Boar提出一系列影響原型方法選擇的因素?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法1984年Boar提出一系列影響原型方法2.4.3原型方法原型方法的應(yīng)用過程?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法的應(yīng)用過程?2009BUPT2.4.3原型方法原型方法可以支持軟件生命周期的不同階段輔助或代替分析階段輔助設(shè)計(jì)階段代替分析與設(shè)計(jì)階段代替分析、設(shè)計(jì)和實(shí)現(xiàn)階段代替全部開發(fā)階段?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法可以支持軟件生命周期的不同階段2.4.3原型方法支持原型構(gòu)造的軟件復(fù)用技術(shù)所謂復(fù)用就是利用一些從早先軟件開發(fā)過程中收集到的、對建立新系統(tǒng)有用的信息來構(gòu)建新系統(tǒng)。從復(fù)用的內(nèi)容角度可以劃分其類型為:數(shù)據(jù)復(fù)用:實(shí)現(xiàn)不同數(shù)據(jù)環(huán)境的移植;模塊復(fù)用:COM/DCOM、JavaBean/EJB、CORBA結(jié)構(gòu)復(fù)用:領(lǐng)域內(nèi)通用業(yè)務(wù)邏輯;實(shí)現(xiàn)MVC(Model-View-Control,模型-視圖-控制器)體系結(jié)構(gòu)的Struts框架、實(shí)現(xiàn)數(shù)據(jù)庫訪問邏輯復(fù)用的Hibernate框架等設(shè)計(jì)復(fù)用:MDA(ModelDrivenArchitecture,模型驅(qū)動(dòng)體系結(jié)構(gòu))規(guī)格說明復(fù)用:規(guī)格說明可使用或者可參照使用。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法支持原型構(gòu)造的軟件復(fù)用技術(shù)?20092.4.3原型方法軟件復(fù)用的兩種實(shí)現(xiàn)機(jī)制:合成復(fù)用:構(gòu)件是基礎(chǔ),構(gòu)件以抽象數(shù)據(jù)類型為理論基礎(chǔ),將功能實(shí)現(xiàn)細(xì)節(jié)與數(shù)據(jù)結(jié)構(gòu)封裝在構(gòu)件內(nèi)部,對外有著精心設(shè)計(jì)的接口,供外部使用者構(gòu)造應(yīng)用時(shí)調(diào)用。構(gòu)件本身可以是對某一函數(shù)、過程、子程序、數(shù)據(jù)類型、算法等可復(fù)用軟件成份的抽象,利用構(gòu)件來構(gòu)造軟件系統(tǒng),有較高的生產(chǎn)率和較短的開發(fā)周期。生成復(fù)用:利用可復(fù)用的模式(Patterns),通過生成程序產(chǎn)生一個(gè)新的應(yīng)用程序或程序段?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法軟件復(fù)用的兩種實(shí)現(xiàn)機(jī)制:?2009B2.4.4演化模型使用瀑布模型人們認(rèn)識到,由于需求很難調(diào)研充分,所以很難一次性開發(fā)成功。演化模型提倡兩次開發(fā):第一次是試驗(yàn)開發(fā),得到試驗(yàn)性的原型產(chǎn)品,其目標(biāo)只是在于探索可行性,弄清軟件需求;第二次在此基礎(chǔ)上獲得較為滿意的軟件產(chǎn)品。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.4演化模型使用瀑布模型人們認(rèn)識到,由于需求很難調(diào)研2.4.4演化模型演化模型分類:探索式演化模型拋棄式演化模型演化模型的特點(diǎn):優(yōu)點(diǎn):明確用戶需求、提高系統(tǒng)質(zhì)量、降低開發(fā)風(fēng)險(xiǎn);缺點(diǎn):難于管理、結(jié)構(gòu)較差、技術(shù)不成熟;演化模型適用范圍:需求不清楚;小型或中小型系統(tǒng);開發(fā)周期短?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.4演化模型演化模型分類:?2009BUPTT2.4.5增量模型Mills等人于1980年提出,指首先對系統(tǒng)最核心或最清晰的需求進(jìn)行分析、設(shè)計(jì)、實(shí)現(xiàn)、測試并集成到系統(tǒng)中。再按優(yōu)先級逐步對后續(xù)的需求進(jìn)行上述工作,逐步建設(shè)成一個(gè)完整系統(tǒng)的開發(fā)方法。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.5增量模型Mills等人于1980年提出,指首先2.4.5增量模型使用增量模型開發(fā)字處理軟件時(shí),可以按照以下優(yōu)先級進(jìn)行增量開發(fā):第一個(gè)增量實(shí)現(xiàn)基本的文件管理、編輯和文檔生成功能;第二個(gè)增量實(shí)現(xiàn)更加完善的編輯和文檔生成功能;第三個(gè)增量實(shí)現(xiàn)拼寫和文法檢查功能;第四個(gè)增量完成高級的頁面布局功能。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.5增量模型使用增量模型開發(fā)字處理軟件時(shí),可以按照以2.4.5增量模型增量模型的優(yōu)點(diǎn):有利于增加客戶對系統(tǒng)的信心;降低系統(tǒng)失敗風(fēng)險(xiǎn);提高系統(tǒng)可靠性;提高了系統(tǒng)的穩(wěn)定性和可維護(hù)性;增量模型的缺點(diǎn):增量粒度難以選擇;確定所有的基本業(yè)務(wù)服務(wù)比較困難。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.5增量模型增量模型的優(yōu)點(diǎn):?2009BUPT2.4.6螺旋模型Boehm于1988年提出,主要針對大型軟件項(xiàng)目的開發(fā)。大型軟件項(xiàng)目的特點(diǎn):(1)需求功能復(fù)雜,無法一開始就明確;開發(fā)周期長,中途需求經(jīng)常變化;(2)往往存在諸多風(fēng)險(xiǎn)因素,在不同程度上損害軟件開發(fā)過程和軟件產(chǎn)品的質(zhì)量,所以必須對風(fēng)險(xiǎn)進(jìn)行管理。螺旋模型最大特點(diǎn)就是引入了明確的風(fēng)險(xiǎn)管理。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.6螺旋模型Boehm于1988年提出,主要針對大型2.4.6螺旋模型四個(gè)象限制定計(jì)劃風(fēng)險(xiǎn)分析實(shí)施工程客戶評價(jià)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.6螺旋模型四個(gè)象限?2009BUPTTSEG2.4.6螺旋模型制定計(jì)劃:確定軟件項(xiàng)目目標(biāo);明確對軟件開發(fā)過程和軟件產(chǎn)品的約束;制定詳細(xì)的項(xiàng)目管理計(jì)劃;根據(jù)當(dāng)前的需求和風(fēng)險(xiǎn)因素,制定實(shí)施方案,并進(jìn)行可行性分析,選定一個(gè)實(shí)施方案,并對其進(jìn)行規(guī)劃。風(fēng)險(xiǎn)分析:明確每一個(gè)項(xiàng)目風(fēng)險(xiǎn),估計(jì)風(fēng)險(xiǎn)發(fā)生的可能性、頻率、損害程度,并制定風(fēng)險(xiǎn)管理措施規(guī)避這些風(fēng)險(xiǎn)。實(shí)施工程:針對每一個(gè)開發(fā)階段的任務(wù)要求執(zhí)行本開發(fā)階段的活動(dòng)。客戶評估:客戶使用原型,反饋修改意見;根據(jù)客戶的反饋,對產(chǎn)品及其開發(fā)過程進(jìn)行評審,決定是否進(jìn)入螺旋線的下一個(gè)回路。
?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.6螺旋模型制定計(jì)劃:確定軟件項(xiàng)目目標(biāo);明確對軟件開2.4.7噴泉模型噴泉模型也稱迭代模型,認(rèn)為軟件開發(fā)過程的各個(gè)階段是相互重疊和多次反復(fù)的,就象噴泉一樣,水噴上去又可以落下來,既可以落在中間,又可以落到底部。各個(gè)開發(fā)階段沒有特定的次序要求,完全可以并行進(jìn)行,可以在某個(gè)開發(fā)階段中隨時(shí)補(bǔ)充其他任何開發(fā)階段中遺漏的需求。優(yōu)點(diǎn):提高開發(fā)效率縮短開發(fā)周期缺點(diǎn):難于管理?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.7噴泉模型噴泉模型也稱迭代模型,認(rèn)為軟件開發(fā)過程的2.4.8構(gòu)件組裝模型構(gòu)件組裝模型利用模塊化思想將整個(gè)系統(tǒng)模塊化,并在一定構(gòu)件模型的支持下復(fù)用構(gòu)件庫中的一個(gè)或多個(gè)軟件構(gòu)件,通過組裝高效率、高質(zhì)量地構(gòu)造軟件系統(tǒng)。構(gòu)件組裝模型本質(zhì)上是演化的,開發(fā)過程是迭代的。構(gòu)件組裝模型的開發(fā)過程就是構(gòu)件組裝的過程,維護(hù)的過程就是構(gòu)件升級、替換和擴(kuò)充的過程。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.8構(gòu)件組裝模型構(gòu)件組裝模型利用模塊化思想將整個(gè)系統(tǒng)2.4.8構(gòu)件組裝模型優(yōu)點(diǎn):充分利用軟件復(fù)用,提高了軟件開發(fā)的效率。允許多個(gè)項(xiàng)目同時(shí)開發(fā),降低了費(fèi)用,提高了可維護(hù)性,可實(shí)現(xiàn)分步提交軟件產(chǎn)品。缺點(diǎn):缺乏通用的構(gòu)件組裝結(jié)構(gòu)標(biāo)準(zhǔn),風(fēng)險(xiǎn)較大;構(gòu)件可重用性和系統(tǒng)高效性之間不易協(xié)調(diào);由于過分依賴于構(gòu)件,構(gòu)件質(zhì)量影響著最終產(chǎn)品的質(zhì)量。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.8構(gòu)件組裝模型優(yōu)點(diǎn):?2009BUPTTSE2.4.9快速應(yīng)用開發(fā)模型快速應(yīng)用開發(fā)(RapidApplicationDevelopment,RAD)是一個(gè)增量型的軟件開發(fā)過程模型,強(qiáng)調(diào)極短的開發(fā)周期。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.9快速應(yīng)用開發(fā)模型快速應(yīng)用開發(fā)(RapidApp2.4.9快速應(yīng)用開發(fā)模型RAD模型的缺點(diǎn):并非所有應(yīng)用都適合采用RAD,如果一個(gè)應(yīng)用不能被模塊化,那么構(gòu)造應(yīng)用的構(gòu)件就無法快速獲取由于時(shí)間約束,開發(fā)人員和客戶必須在較短的時(shí)間內(nèi)完成一系列的需求分析,溝通配合不當(dāng)都會(huì)導(dǎo)致應(yīng)用RAD模型的失敗RAD適合于管理信息系統(tǒng)的開發(fā),對于其他類型的應(yīng)用系統(tǒng),如技術(shù)風(fēng)險(xiǎn)較高、與外圍系統(tǒng)的互操作性較高等,不太合適?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.9快速應(yīng)用開發(fā)模型RAD模型的缺點(diǎn):?20092.5新型軟件生命周期模型2.5.1RUP2.5.2敏捷模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5新型軟件生命周期模型2.5.1RUP?20092.5.1RUPRUP(RationalUnifiedProcess)統(tǒng)一過程模型是由Rational公司(現(xiàn)被IBM公司收購)開發(fā)的一種軟件工程過程框架,是一個(gè)面向?qū)ο蟮幕趙eb的程序開發(fā)方法論。RUP既是一種軟件生命周期模型,又是一種支持面向?qū)ο筌浖_發(fā)的工具,它將軟件開發(fā)過程要素和軟件工件要素整合在統(tǒng)一的框架中。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP(RationalUnified2.5.1RUPRUP的基本結(jié)構(gòu)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP的基本結(jié)構(gòu)?2009BUPTT2.5.1RUPRUP中的軟件生命周期在時(shí)間上被分解為四個(gè)順序的階段:初始階段(Inception)、細(xì)化階段(Elaboration)、構(gòu)造階段(Construction)和交付階段(Transition)。每個(gè)階段結(jié)束于一個(gè)主要的里程碑(MajorMilestones),并在階段結(jié)尾執(zhí)行一次評估以確定這個(gè)階段的目標(biāo)是否已經(jīng)滿足。如果評估結(jié)果令人滿意的話,可以允許項(xiàng)目進(jìn)入下一個(gè)階段。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP中的軟件生命周期在時(shí)間上被分解為四個(gè)2.5.1RUPRUP的9個(gè)核心工作流6個(gè)核心過程工作流商業(yè)建模(BusinessModeling)需求(Requirements)分析和設(shè)計(jì)(Analysis&Design)實(shí)現(xiàn)(Implementation)測試(Test)部署(Deployment)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP的9個(gè)核心工作流?2009BUP2.5.1RUP3個(gè)核心支持工作流:配置和變更管理(Configuration&ChangeManagement)項(xiàng)目管理(ProjectManagement)環(huán)境(Environment)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP3個(gè)核心支持工作流:?2009BUPT2.5.1RUP初始階段目標(biāo)是為系統(tǒng)建立商業(yè)案例(businesscase)并確定項(xiàng)目的邊界。商業(yè)案例包括項(xiàng)目的驗(yàn)收規(guī)范、風(fēng)險(xiǎn)評估、所需資源估計(jì)、階段計(jì)劃等。要確定項(xiàng)目邊界,需識別所有與系統(tǒng)交互的外部實(shí)體,并在較高層次上定義外部實(shí)體與系統(tǒng)交互的特性,主要包括識別外部角色(actor)、識別所有用例并詳細(xì)描述一些重要的用例。階段結(jié)束里程碑:生命周期目標(biāo)(LifecycleObjective)里程碑,包括一些重要的文檔,如:項(xiàng)目構(gòu)想(vision)、原始用例模型、原始業(yè)務(wù)風(fēng)險(xiǎn)評估、一個(gè)或者多個(gè)原型、原始商業(yè)案例等。需要對這些文檔進(jìn)行評審,以確定正確理解用例需求、項(xiàng)目風(fēng)險(xiǎn)評估合理、階段計(jì)劃可行等。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP初始階段?2009BUPTTSEG2.5.1RUP細(xì)化階段目標(biāo)是分析問題領(lǐng)域,建立健全的體系結(jié)構(gòu)基礎(chǔ),編制項(xiàng)目計(jì)劃,完成項(xiàng)目中高風(fēng)險(xiǎn)需求部分的開發(fā)。里程碑:生命周期體系結(jié)構(gòu)(LifecycleArchitecture)里程碑。包括風(fēng)險(xiǎn)分析文檔、軟件體系結(jié)構(gòu)基線、項(xiàng)目計(jì)劃、可執(zhí)行的進(jìn)化原型、初始版本的用戶手冊等。通過評審確定軟件體系結(jié)構(gòu)已經(jīng)穩(wěn)定、高風(fēng)險(xiǎn)的業(yè)務(wù)需求和技術(shù)機(jī)制已經(jīng)解決、修訂的項(xiàng)目計(jì)劃可行等。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP細(xì)化階段?2009BUPTTSEG2.5.1RUP構(gòu)造階段將所有剩余的技術(shù)構(gòu)件和穩(wěn)定業(yè)務(wù)需求功能開發(fā)出來,并集成為產(chǎn)品,所有功能被詳細(xì)測試。從某種意義上說,構(gòu)造階段只是一個(gè)制造過程,其重點(diǎn)放在管理資源及控制開發(fā)過程以優(yōu)化成本、進(jìn)度和質(zhì)量。里程碑:初始運(yùn)行能力(InitialOperationalCapability)里程碑。包括可以運(yùn)行的軟件產(chǎn)品、用戶手冊等,它決定了產(chǎn)品是否可以在測試環(huán)境中進(jìn)行部署。此刻,要確定軟件、環(huán)境、用戶是否可以開始系統(tǒng)的運(yùn)行。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP構(gòu)造階段?2009BUPTTSEG2.5.1RUP移交階段移交階段的重點(diǎn)是確保軟件對最終用戶是可用的。交付階段可以跨越幾次迭代,包括為發(fā)布做準(zhǔn)備的產(chǎn)品測試,基于用戶反饋的少量調(diào)整。里程碑:產(chǎn)品發(fā)布(ProductRelease)里程碑。此時(shí),要確定最終目標(biāo)是否實(shí)現(xiàn),是否應(yīng)該開始產(chǎn)品下一個(gè)版本的另一個(gè)開發(fā)周期。在一些情況下這個(gè)里程碑可能與下一個(gè)周期的初始階段的相重合。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP移交階段?2009BUPTTSEG2.5.1RUPRUP的迭代增量開發(fā)思想RUP是融合了噴泉模型和增量模型的一種綜合生命周期模型。每一次迭代就是為了完成一定階段性小目標(biāo)而從事的一系列開發(fā)活動(dòng)。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP的迭代增量開發(fā)思想每一次迭代就是為?2.5.1RUPRUP通過迭代增量建模思想提高了風(fēng)險(xiǎn)控制能力,這體現(xiàn)在:⑴迭代計(jì)劃安排是風(fēng)險(xiǎn)驅(qū)動(dòng)的,高風(fēng)險(xiǎn)因素集中在前兩個(gè)階段解決,特別是體系結(jié)構(gòu)級的風(fēng)險(xiǎn)在細(xì)化階段就得到了解決,及早降低了系統(tǒng)風(fēng)險(xiǎn);⑵每一次迭代都包括需求、設(shè)計(jì)、實(shí)施、部署和測試活動(dòng),因此,每一個(gè)中間產(chǎn)品都得到了集成測試,而且這個(gè)集成測試是在一個(gè)統(tǒng)一的軟件體系結(jié)構(gòu)指導(dǎo)下完成的;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP通過迭代增量建模思想提高了風(fēng)險(xiǎn)控制能2.5.1RUP⑶每一個(gè)階段結(jié)束時(shí)還有嚴(yán)格的質(zhì)量評審,保證里程碑文檔的質(zhì)量;⑷由于中間版本的產(chǎn)品是逐步產(chǎn)生的,而且核心功能和性能需求已經(jīng)包含在前面的版本中,所以,可以根據(jù)市場競爭的情況適時(shí)推出中間版本,降低市場風(fēng)險(xiǎn)。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP⑶每一個(gè)階段結(jié)束時(shí)還有嚴(yán)格的質(zhì)量評審,保2.5.1RUPRUP的最佳實(shí)踐:⑴短時(shí)間分區(qū)式的迭代:2~6周,不鼓勵(lì)時(shí)間推遲;⑵適應(yīng)性開發(fā):小步驟、快速反饋和調(diào)整;⑶在早期迭代中解決高技術(shù)風(fēng)險(xiǎn)和高業(yè)務(wù)價(jià)值的問題;⑷不斷地讓用戶參與迭代結(jié)果的評估,并及時(shí)獲取反饋信息,以逐步闡明問題并引導(dǎo)項(xiàng)目進(jìn)展;⑸在早期迭代中建立內(nèi)聚的核心架構(gòu)。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP的最佳實(shí)踐:?2009BUPT2.5.1RUP⑹不斷地驗(yàn)證質(zhì)量;盡早、經(jīng)常和實(shí)際地測試;⑺使用用例驅(qū)動(dòng)軟件建模:用例是獲取需求、制定計(jì)劃、進(jìn)行設(shè)計(jì)、測試、編寫終端用戶文檔的驅(qū)動(dòng)力量。⑻可視化軟件建模:使用UML(UnifiedModelingLanguage,統(tǒng)一建模語言)進(jìn)行軟件建模。⑼仔細(xì)地管理需求:不要草率地對待需求,而要有機(jī)地進(jìn)行需求的提出、記錄、等級劃分、追蹤。拙劣的需求管理是項(xiàng)目陷入麻煩的一個(gè)常見原因。⑽實(shí)行變更請求和配置管理。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP⑹不斷地驗(yàn)證質(zhì)量;盡早、經(jīng)常和實(shí)際地測試2.5.1RUPRUP是一個(gè)通用的過程模板,包含了很多開發(fā)指南、工件、開發(fā)過程所涉及到的角色說明等,因此,具體開發(fā)機(jī)構(gòu)在應(yīng)用RUP開發(fā)項(xiàng)目時(shí)要做裁剪。RUP裁剪可以分為以下幾步:⑴確定本項(xiàng)目需要的工作流。⑵確定每個(gè)工作流需要的工件。⑶確定4個(gè)階段之間的演進(jìn)計(jì)劃。以風(fēng)險(xiǎn)控制為原則,決定每個(gè)階段實(shí)施的工作流,每個(gè)工作流的執(zhí)行程度,生成的工件及其完成程度等。⑷確定每個(gè)階段內(nèi)的迭代計(jì)劃。規(guī)劃RUP的4個(gè)階段中每次迭代開發(fā)的內(nèi)容。⑸規(guī)劃工作流內(nèi)部結(jié)構(gòu)。用活動(dòng)圖(activitydiagram)規(guī)劃工作流中涉及的角色、角色負(fù)責(zé)的活動(dòng)及產(chǎn)出的工件。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP是一個(gè)通用的過程模板,包含了很多開發(fā)2.5.2敏捷模型敏捷建模(AgileModeling,AM)是由ScottW.Ambler從許多的軟件開發(fā)過程實(shí)踐中歸納總結(jié)出來的一些敏捷建模價(jià)值觀、原則和實(shí)踐等組成的,它只是一種態(tài)度,不是一個(gè)說明性過程。AM是對已有生命周期模型的補(bǔ)充,它本身不是一個(gè)完整的方法論,在應(yīng)用傳統(tǒng)的生命周期模型時(shí)可以借鑒AM的過程指導(dǎo)思想。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.2敏捷模型敏捷建模(AgileModeling,2.5.2敏捷模型敏捷建模的價(jià)值觀:個(gè)人和交互勝過過程和工具;實(shí)用的軟件勝過面面俱到的文檔;客戶合作勝過合同談判;響應(yīng)變化勝過遵循計(jì)劃。溝通、簡單、反饋、勇氣、謙遜?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.2敏捷模型敏捷建模的價(jià)值觀:?2009BUPT2.5.2敏捷模型敏捷建模原則:(1)優(yōu)先考慮的是通過盡早地和不斷地提交有價(jià)值的軟件使客戶滿意;(2)即使到了開發(fā)的后期,也歡迎改變需求;(3)敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢;(4)經(jīng)常性地交付可以工作的軟件,交付的間隔可以從幾個(gè)星期到幾個(gè)月,交付的時(shí)間間隔越短越好;(5)圍繞被激勵(lì)起來的個(gè)體來構(gòu)建項(xiàng)目;(6)給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.2敏捷模型敏捷建模原則:?2009BUPTT2.5.2敏捷模型(7)在團(tuán)隊(duì)內(nèi)部,最具有效果并富有效率的傳遞信息的方法,就是面對面的交談;工作的軟件是首要的進(jìn)度度量標(biāo)準(zhǔn);敏捷過程提倡可持續(xù)的開發(fā)速度;(8)責(zé)任人、開發(fā)者和用戶應(yīng)該能夠保持一個(gè)長期的、恒定的開發(fā)速度;(9)優(yōu)秀的技能和好的設(shè)計(jì)會(huì)增強(qiáng)敏捷能力;(10)簡單是最根本的;(11)最好的構(gòu)架、需求和設(shè)計(jì)出于自組織團(tuán)隊(duì);(12)每隔一定時(shí)間,團(tuán)隊(duì)會(huì)在如何才能更有效地工作方面進(jìn)行反省,對自己的行為進(jìn)行調(diào)整。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.2敏捷模型(7)在團(tuán)隊(duì)內(nèi)部,最具有效果并富有效率的2.5.2敏捷模型敏捷建模核心實(shí)踐項(xiàng)目干系人的積極參與正確使用工件集體所有制測試性思維并行創(chuàng)建模型創(chuàng)建簡單的內(nèi)容簡單地建模公開展示模型
切換到另外的工件
小增量建模
和他人一起建模
用代碼驗(yàn)證
使用最簡單的工具
?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.2敏捷模型敏捷建模核心實(shí)踐公開展示模型?2002.5.2敏捷模型敏捷模型補(bǔ)充實(shí)踐:使用建模標(biāo)準(zhǔn)逐漸應(yīng)用模式(pattern)丟棄臨時(shí)模型合同模型要正式為外部交流建模為幫助理解建模重用現(xiàn)有的資源不到萬不得已不更新模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.2敏捷模型敏捷模型補(bǔ)充實(shí)踐:?2009BUPT極限編程極限編程(eXtremeProgramming,XP)是敏捷模型的一種實(shí)現(xiàn)過程,由Kent
Beck在1996年提出。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心極限編程極限編程(eXtremeProgramming,X極限編程極限編程的12個(gè)實(shí)踐:(1)小版本。為了高度迭代,與客戶展現(xiàn)開發(fā)的進(jìn)展,小版本發(fā)布是一個(gè)可交流的好辦法,客戶可以針對性提出反饋。但小版本把模塊縮得很小,會(huì)影響軟件的整體思路連貫,所以小版本也需要總體合理的規(guī)劃。(2)規(guī)劃游戲。就是客戶需求,以客戶故事的形式,由客戶負(fù)責(zé)編寫。極限編程不講求統(tǒng)一的客戶需求收集,也不是由開發(fā)人員整理,而是采取讓客戶編寫,開發(fā)人員進(jìn)行分析,設(shè)定優(yōu)先級別,并進(jìn)行技術(shù)實(shí)現(xiàn)。當(dāng)然游戲規(guī)則可進(jìn)行多次,每次迭代完畢后再行修改。客戶故事是開發(fā)人員與客戶溝通的焦點(diǎn),也是版本設(shè)計(jì)的依據(jù),所以其管理一定是有效的、溝通順暢的。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心極限編程極限編程的12個(gè)實(shí)踐:?2009BUPTTS極限編程(3)現(xiàn)場客戶。極限編程要求客戶參與開發(fā)工作,客戶需求就是客戶負(fù)責(zé)編寫的,所以要求客戶在開發(fā)現(xiàn)場一起工作,并為每次迭代提供反饋。(4)隱喻。隱喻是讓項(xiàng)目參與人員都必須對一些抽象的概念理解一致,也就是我們常說的行業(yè)術(shù)語,因?yàn)闃I(yè)務(wù)本身的術(shù)語開發(fā)人員不熟悉,軟件開發(fā)的術(shù)語客戶不理解,因此開始要先明確雙方使用的隱喻,避免歧異。(5)簡單設(shè)計(jì)。極限編程體現(xiàn)跟蹤客戶的需求變化,既然需求是變化的,所以對于目前的需求就不必過多地考慮擴(kuò)展性的開發(fā),講求簡單設(shè)計(jì),實(shí)現(xiàn)目前需求即可。簡單設(shè)計(jì)的本身也為短期迭代提供了方便,若開發(fā)者考慮“通用”因素較多,增加了軟件的復(fù)雜度,開發(fā)的迭代周期就會(huì)加長。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心極限編程(3)現(xiàn)場客戶。極限編程要求客戶參與開發(fā)工作,客戶需極限編程(6)重構(gòu)。重構(gòu)是極限編程先測試后編碼的必然需求,為了整體軟件可以先進(jìn)行測試,對于一些軟件要開發(fā)的模塊先簡單模擬,讓編譯通過,到達(dá)測試的目的。然后再對模塊具體“優(yōu)化”,所以重構(gòu)包括模塊代碼的優(yōu)化與具體代碼的開發(fā)。重構(gòu)是使用了“物理學(xué)”的一個(gè)概念,是在不影響物體外部特性的前提下,重新優(yōu)化其內(nèi)部的機(jī)構(gòu)。這里的外部特性就是保證測試的通過。(7)測試驅(qū)動(dòng)開發(fā)。極限編程是以測試開始的,為了可以展示客戶需求的實(shí)現(xiàn),測試程序優(yōu)先設(shè)計(jì),測試是從客戶實(shí)用的角度出發(fā),客戶實(shí)際使用的軟件界面著想,測試是客戶需求的直接表現(xiàn),是客戶對軟件過程的理解。測試驅(qū)動(dòng)開發(fā),也就是客戶的需求驅(qū)動(dòng)軟件的開發(fā)。(8)持續(xù)集成。集成的理解就是提交軟件的展現(xiàn),由于采用測試驅(qū)動(dòng)開發(fā)、小版本的方式,所以不斷集成(整體測試)是與客戶溝通的依據(jù),也是讓客戶提出反饋意見的參照。持續(xù)集成也是完成階段開發(fā)任務(wù)的標(biāo)志。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心極限編程(6)重構(gòu)。重構(gòu)是極限編程先測試后編碼的必然需求,為極限編程(9)結(jié)對編程。這是極限編程最有爭議的實(shí)踐。就是兩個(gè)程序員合用一臺計(jì)算機(jī)編程,一個(gè)編碼,一個(gè)檢查,增加專人審計(jì)是為了提供軟件編碼的質(zhì)量。兩個(gè)人的角色經(jīng)常變換,保持開發(fā)者的工作熱情。這種編程方式對培養(yǎng)新人或開發(fā)難度較大的軟件都有非常好的效果。(10)代碼共有。在極限編程里沒有嚴(yán)格文檔管理,代碼為開發(fā)團(tuán)隊(duì)共有,這樣有利于開發(fā)人員的流動(dòng)管理,因?yàn)樗械娜硕际煜に械木幋a。(11)編碼標(biāo)準(zhǔn)。編碼是開發(fā)團(tuán)隊(duì)里每個(gè)人的工作,又沒有詳細(xì)的文檔,代碼的可讀性是很重要的,所以規(guī)定統(tǒng)一的標(biāo)準(zhǔn)和習(xí)慣是必要的,有些象編碼人員的隱喻。(12)每周40小時(shí)工作。極限編程認(rèn)為編程是愉快的工作,不輕易加班,今天的工作今天做,小版本的設(shè)計(jì)也為了單位時(shí)間可以完成的工作安排。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心極限編程(9)結(jié)對編程。這是極限編程最有爭議的實(shí)踐。就是兩個(gè)軟件文檔?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心軟件文檔?2009BUPTTSEG作業(yè)教材54頁1、3常用的軟件生命周期模型有哪些??2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心作業(yè)教材54頁1、3?2009BUPTTSEG軟件工程模型與方法
Models&MethodsofSoftwareEngineering第二章軟件生命周期模型由安博測試空間技術(shù)中心/提供?2009BUPTTSEG軟件工程模型與方法
Models&Methodsof本章內(nèi)容2.1軟件工程過程2.2軟件生命周期2.3軟件過程模型2.4傳統(tǒng)軟件生命周期模型2.5新型軟件生命周期模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心本章內(nèi)容2.1軟件工程過程?2009BUPTTSEG2.1軟件工程過程軟件工程過程是為了獲得軟件產(chǎn)品,在軟件工具的支持下由軟件工程師完成的一系列軟件工程活動(dòng)。軟件規(guī)格說明(specification):規(guī)定軟件的功能及其使用限制;軟件開發(fā)(development):產(chǎn)生滿足規(guī)格說明的軟件;軟件確認(rèn)(validation):通過有效性驗(yàn)證以保證軟件能夠滿足客戶的要求;軟件演進(jìn)(evolution):為了滿足客戶的變更要求,軟件必須在使用過程中進(jìn)行不斷地改進(jìn)。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.1軟件工程過程軟件工程過程是為了獲得軟件產(chǎn)品,在軟件工2.2軟件生命周期軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的生存過程。這個(gè)過程即為計(jì)算機(jī)軟件的生命周期(LifeCycle)。軟件生命周期的六個(gè)基本步驟制定計(jì)劃需求分析設(shè)計(jì)程序編碼測試運(yùn)行維護(hù)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.2軟件生命周期軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的制定計(jì)劃確定要開發(fā)軟件系統(tǒng)的總目標(biāo);給出功能、性能、可靠性以及接口等方面的要求;完成該軟件任務(wù)的可行性研究;估計(jì)可利用的資源(硬件,軟件,人力等)、成本、效益、開發(fā)進(jìn)度;制定出完成開發(fā)任務(wù)的實(shí)施計(jì)劃,連同可行性研究報(bào)告,提交管理部門審查;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心制定計(jì)劃確定要開發(fā)軟件系統(tǒng)的總目標(biāo);?2009BUPT需求分析對用戶提出的要求進(jìn)行分析并給出詳細(xì)的定義;編寫軟件需求說明書或系統(tǒng)功能說明書及初步的系統(tǒng)用戶手冊;提交管理機(jī)構(gòu)評審;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心需求分析對用戶提出的要求進(jìn)行分析并給出詳細(xì)的定義;?200設(shè)計(jì)概要設(shè)計(jì)—把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對應(yīng);詳細(xì)設(shè)計(jì)—對每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ);編寫設(shè)計(jì)說明書,提交評審。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心設(shè)計(jì)概要設(shè)計(jì)—把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一程序編碼把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語言表示的“源程序清單”;寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心程序編碼把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某測試單元測試,查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正;組裝測試,將已測試過的模塊按一定順序組裝起來;按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用;?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心測試單元測試,查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正;運(yùn)行維護(hù)改正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正;適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更;完善性維護(hù):為了增強(qiáng)軟件的功能需做變更。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心運(yùn)行維護(hù)改正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正;?22.3軟件過程模型模型是實(shí)際事物、實(shí)際系統(tǒng)的抽象。軟件過程模型也稱做軟件生命周期模型,是從一個(gè)特定角度提出的對軟件過程的簡化描述,是對軟件開發(fā)實(shí)際過程的抽象,它包括構(gòu)成軟件過程的各種活動(dòng)、軟件工件(artifact)以及參與角色等。軟件生命周期模型描述從軟件需求定義直至軟件經(jīng)使用后廢棄為止,跨越整個(gè)生存期的軟件開發(fā)、運(yùn)行和維護(hù)所實(shí)施的全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架,同時(shí)描述生命周期不同階段產(chǎn)生的軟件工件,明確活動(dòng)的執(zhí)行角色等。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.3軟件過程模型模型是實(shí)際事物、實(shí)際系統(tǒng)的抽象。?22.4傳統(tǒng)軟件生命周期模型2.4.1瀑布模型2.4.2V模型和W模型2.4.3原型方法2.4.4演化模型2.4.5增量模型2.4.6螺旋模型2.4.7噴泉模型2.4.8構(gòu)件組裝模型2.4.9快速應(yīng)用開發(fā)模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4傳統(tǒng)軟件生命周期模型2.4.1瀑布模型?20092.4.1瀑布模型WinstonRoyce在軟件生命周期概念的基礎(chǔ)上,于1970年提出了著名的“瀑布模型”(waterfallmodel)。維護(hù)評價(jià)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.1瀑布模型WinstonRoyce在軟件生命周期2.4.1瀑布模型瀑布模型中的每一個(gè)開發(fā)活動(dòng)具有下列特征:本活動(dòng)的工作對象來自于上一項(xiàng)活動(dòng)的輸出,這些輸出一般是代表本階段活動(dòng)結(jié)束的里程碑式的文檔。根據(jù)本階段的活動(dòng)規(guī)程執(zhí)行相應(yīng)的任務(wù)。產(chǎn)生本階段活動(dòng)相關(guān)產(chǎn)出——軟件工件,作為下一活動(dòng)的輸入。對本階段活動(dòng)執(zhí)行情況進(jìn)行評審。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.1瀑布模型瀑布模型中的每一個(gè)開發(fā)活動(dòng)具有下列特征:2.4.1瀑布模型瀑布模型的優(yōu)缺點(diǎn)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.1瀑布模型瀑布模型的優(yōu)缺點(diǎn)?2009BUPT2.4.2V模型和W模型1980年代后期PaulRook提出了V模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.2V模型和W模型1980年代后期PaulRookW模型Evolutif公司在V模型的基礎(chǔ)上提出了W模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心W模型Evolutif公司在V模型的基礎(chǔ)上提出了W模型?2.4.3原型方法原型方法的產(chǎn)生瀑布模型、V模型和W模型都將軟件生命周期劃分成獨(dú)立串行的幾個(gè)階段,前一個(gè)階段沒有完成便無法開始下一階段的工作。然而完整而準(zhǔn)確的需求規(guī)格說明是很難得到的,因?yàn)椋涸陂_發(fā)早期用戶往往對系統(tǒng)只有一個(gè)模糊的想法,很難完全準(zhǔn)確地表達(dá)對系統(tǒng)的全面要求隨著開發(fā)工作的推進(jìn),用戶可能會(huì)產(chǎn)生新的要求開發(fā)者有可能在設(shè)計(jì)與實(shí)現(xiàn)的過程中遇到一些沒有預(yù)料到的實(shí)際困難,需要以改變需求來解脫困境?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法的產(chǎn)生?2009BUPTT2.4.3原型方法原型指模擬某種最終產(chǎn)品的原始模型;原型方法指在獲得一組基本需求后,通過快速分析構(gòu)造出一個(gè)小型的軟件系統(tǒng)原型,滿足用戶的基本要求。用戶通過使用原型系統(tǒng),提出修改意見,從而減少用戶與開發(fā)人員對系統(tǒng)需求的誤解,使需求盡可能準(zhǔn)確。原型方法主要用于明確需求,但也可以用于軟件開發(fā)的其他階段。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型指模擬某種最終產(chǎn)品的原始模型;?22.4.3原型方法原型的三種作用類型:(1)探索型:弄清用戶對目標(biāo)系統(tǒng)的要求,確定所期望的特性;探討多種實(shí)現(xiàn)方案的可行性。主要針對需求模糊、用戶和開發(fā)者對項(xiàng)目開發(fā)都缺乏經(jīng)驗(yàn)的情況。(2)實(shí)驗(yàn)型;用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核技術(shù)實(shí)現(xiàn)方案是否合適、分析和設(shè)計(jì)的規(guī)格說明是否可靠。(3)進(jìn)化型:在構(gòu)造系統(tǒng)的過程中能夠適應(yīng)需求的變化,通過不斷地改進(jìn)原型,逐步將原型進(jìn)化成最終的系統(tǒng)。它將原型方法的思想擴(kuò)展到軟件開發(fā)的全過程,適用于需求經(jīng)常變動(dòng)的軟件項(xiàng)目。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型的三種作用類型:?2009BUP2.4.3原型方法由于運(yùn)用原型的目的和方式不同,在使用原型時(shí)可采取以下兩種不同的策略:廢棄策略:原型主要用于反饋和評價(jià),據(jù)此設(shè)計(jì)出完整、準(zhǔn)確、一致、可靠的最終系統(tǒng)。系統(tǒng)構(gòu)造完成后,原來的原型系統(tǒng)就被廢棄不用。探索型和實(shí)驗(yàn)型原型屬于這種策略。追加策略:原型作為最終系統(tǒng)的核心,然后通過不斷地?cái)U(kuò)充修改,逐步追加新要求,最后發(fā)展成為最終系統(tǒng)。它對應(yīng)于進(jìn)化型原型。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法由于運(yùn)用原型的目的和方式不同,在使用原型2.4.3原型方法原型方法的特點(diǎn):(1)從認(rèn)知論的角度看,原型方法遵循了人們認(rèn)識事物的規(guī)律,因而更容易為人們所普遍接受,這主要表現(xiàn)在:①人們對任何事物的認(rèn)知都不可能一蹴而就、盡善盡美;②認(rèn)識和學(xué)習(xí)的過程都是循序漸進(jìn)的;③對于事物的描述,往往都是受環(huán)境的啟發(fā)而不斷完善的;④人們批評指責(zé)一個(gè)已有的事物,要比空洞地描述自己的設(shè)想容易得多,改進(jìn)一些事物要比創(chuàng)造一些事物容易得多。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法的特點(diǎn):?2009BUPT2.4.3原型方法⑵原型方法將模擬的手段引入分析的初期階段,溝通了人們的思想,縮短了用戶和開發(fā)人員之間的距離。這主要表現(xiàn)在:①所有問題的討論都是圍繞某一個(gè)確定原型而進(jìn)行的,彼此之間不存在誤解和答非所問的可能性,為準(zhǔn)確認(rèn)識問題創(chuàng)造了條件。②有了原型才能啟發(fā)人們對原來想不起來或不易準(zhǔn)確描述的問題有一個(gè)比較確切的描述;③能夠及早地暴露出系統(tǒng)實(shí)現(xiàn)后存在的一些問題,促使人們在系統(tǒng)實(shí)現(xiàn)之前就加以解決。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法⑵原型方法將模擬的手段引入分析的初期階2.4.3原型方法原型提供了用戶與開發(fā)人員良好的溝通手段,易于被人們接受,使用原型方法有以下好處:原型方法有助于增進(jìn)軟件人員和用戶對系統(tǒng)服務(wù)需求的理解;原型方法提供了一種有力的學(xué)習(xí)手段;使用原型方法,可以容易地確定系統(tǒng)的性能,確認(rèn)各項(xiàng)主要系統(tǒng)服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性,確認(rèn)系統(tǒng)作為產(chǎn)品的結(jié)果;軟件原型的最終版本,有的可以原封不動(dòng)地成為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個(gè)組成部分,這樣有利于建成最終系統(tǒng)。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型提供了用戶與開發(fā)人員良好的溝通手段,2.4.3原型方法原型法的適用范圍和局限性:對于一個(gè)大型系統(tǒng),如果不經(jīng)過系統(tǒng)分析得到系統(tǒng)的整體劃分,而直接用原型來模擬是很困難的。對于大量運(yùn)算的、邏輯性較強(qiáng)的程序模塊,原型方法很難構(gòu)造出該模塊的原型來供人評價(jià)。對于原有應(yīng)用的業(yè)務(wù)流程、信息流程混亂的情況,原型構(gòu)造與使用有一定的困難。對于一個(gè)批處理系統(tǒng),由于大部分活動(dòng)是內(nèi)部處理的,因此應(yīng)用原型方法會(huì)有一定的困難。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型法的適用范圍和局限性:?20092.4.3原型方法原型方法存在的問題:文檔容易被忽略。建立原型的許多工作會(huì)被浪費(fèi)掉。項(xiàng)目難以規(guī)劃和管理。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法存在的問題:?2009BUP2.4.3原型方法1984年Boar提出一系列影響原型方法選擇的因素?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法1984年Boar提出一系列影響原型方法2.4.3原型方法原型方法的應(yīng)用過程?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法的應(yīng)用過程?2009BUPT2.4.3原型方法原型方法可以支持軟件生命周期的不同階段輔助或代替分析階段輔助設(shè)計(jì)階段代替分析與設(shè)計(jì)階段代替分析、設(shè)計(jì)和實(shí)現(xiàn)階段代替全部開發(fā)階段?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法原型方法可以支持軟件生命周期的不同階段2.4.3原型方法支持原型構(gòu)造的軟件復(fù)用技術(shù)所謂復(fù)用就是利用一些從早先軟件開發(fā)過程中收集到的、對建立新系統(tǒng)有用的信息來構(gòu)建新系統(tǒng)。從復(fù)用的內(nèi)容角度可以劃分其類型為:數(shù)據(jù)復(fù)用:實(shí)現(xiàn)不同數(shù)據(jù)環(huán)境的移植;模塊復(fù)用:COM/DCOM、JavaBean/EJB、CORBA結(jié)構(gòu)復(fù)用:領(lǐng)域內(nèi)通用業(yè)務(wù)邏輯;實(shí)現(xiàn)MVC(Model-View-Control,模型-視圖-控制器)體系結(jié)構(gòu)的Struts框架、實(shí)現(xiàn)數(shù)據(jù)庫訪問邏輯復(fù)用的Hibernate框架等設(shè)計(jì)復(fù)用:MDA(ModelDrivenArchitecture,模型驅(qū)動(dòng)體系結(jié)構(gòu))規(guī)格說明復(fù)用:規(guī)格說明可使用或者可參照使用。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法支持原型構(gòu)造的軟件復(fù)用技術(shù)?20092.4.3原型方法軟件復(fù)用的兩種實(shí)現(xiàn)機(jī)制:合成復(fù)用:構(gòu)件是基礎(chǔ),構(gòu)件以抽象數(shù)據(jù)類型為理論基礎(chǔ),將功能實(shí)現(xiàn)細(xì)節(jié)與數(shù)據(jù)結(jié)構(gòu)封裝在構(gòu)件內(nèi)部,對外有著精心設(shè)計(jì)的接口,供外部使用者構(gòu)造應(yīng)用時(shí)調(diào)用。構(gòu)件本身可以是對某一函數(shù)、過程、子程序、數(shù)據(jù)類型、算法等可復(fù)用軟件成份的抽象,利用構(gòu)件來構(gòu)造軟件系統(tǒng),有較高的生產(chǎn)率和較短的開發(fā)周期。生成復(fù)用:利用可復(fù)用的模式(Patterns),通過生成程序產(chǎn)生一個(gè)新的應(yīng)用程序或程序段?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.3原型方法軟件復(fù)用的兩種實(shí)現(xiàn)機(jī)制:?2009B2.4.4演化模型使用瀑布模型人們認(rèn)識到,由于需求很難調(diào)研充分,所以很難一次性開發(fā)成功。演化模型提倡兩次開發(fā):第一次是試驗(yàn)開發(fā),得到試驗(yàn)性的原型產(chǎn)品,其目標(biāo)只是在于探索可行性,弄清軟件需求;第二次在此基礎(chǔ)上獲得較為滿意的軟件產(chǎn)品。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.4演化模型使用瀑布模型人們認(rèn)識到,由于需求很難調(diào)研2.4.4演化模型演化模型分類:探索式演化模型拋棄式演化模型演化模型的特點(diǎn):優(yōu)點(diǎn):明確用戶需求、提高系統(tǒng)質(zhì)量、降低開發(fā)風(fēng)險(xiǎn);缺點(diǎn):難于管理、結(jié)構(gòu)較差、技術(shù)不成熟;演化模型適用范圍:需求不清楚;小型或中小型系統(tǒng);開發(fā)周期短?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.4演化模型演化模型分類:?2009BUPTT2.4.5增量模型Mills等人于1980年提出,指首先對系統(tǒng)最核心或最清晰的需求進(jìn)行分析、設(shè)計(jì)、實(shí)現(xiàn)、測試并集成到系統(tǒng)中。再按優(yōu)先級逐步對后續(xù)的需求進(jìn)行上述工作,逐步建設(shè)成一個(gè)完整系統(tǒng)的開發(fā)方法。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.5增量模型Mills等人于1980年提出,指首先2.4.5增量模型使用增量模型開發(fā)字處理軟件時(shí),可以按照以下優(yōu)先級進(jìn)行增量開發(fā):第一個(gè)增量實(shí)現(xiàn)基本的文件管理、編輯和文檔生成功能;第二個(gè)增量實(shí)現(xiàn)更加完善的編輯和文檔生成功能;第三個(gè)增量實(shí)現(xiàn)拼寫和文法檢查功能;第四個(gè)增量完成高級的頁面布局功能。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.5增量模型使用增量模型開發(fā)字處理軟件時(shí),可以按照以2.4.5增量模型增量模型的優(yōu)點(diǎn):有利于增加客戶對系統(tǒng)的信心;降低系統(tǒng)失敗風(fēng)險(xiǎn);提高系統(tǒng)可靠性;提高了系統(tǒng)的穩(wěn)定性和可維護(hù)性;增量模型的缺點(diǎn):增量粒度難以選擇;確定所有的基本業(yè)務(wù)服務(wù)比較困難。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.5增量模型增量模型的優(yōu)點(diǎn):?2009BUPT2.4.6螺旋模型Boehm于1988年提出,主要針對大型軟件項(xiàng)目的開發(fā)。大型軟件項(xiàng)目的特點(diǎn):(1)需求功能復(fù)雜,無法一開始就明確;開發(fā)周期長,中途需求經(jīng)常變化;(2)往往存在諸多風(fēng)險(xiǎn)因素,在不同程度上損害軟件開發(fā)過程和軟件產(chǎn)品的質(zhì)量,所以必須對風(fēng)險(xiǎn)進(jìn)行管理。螺旋模型最大特點(diǎn)就是引入了明確的風(fēng)險(xiǎn)管理。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.6螺旋模型Boehm于1988年提出,主要針對大型2.4.6螺旋模型四個(gè)象限制定計(jì)劃風(fēng)險(xiǎn)分析實(shí)施工程客戶評價(jià)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.6螺旋模型四個(gè)象限?2009BUPTTSEG2.4.6螺旋模型制定計(jì)劃:確定軟件項(xiàng)目目標(biāo);明確對軟件開發(fā)過程和軟件產(chǎn)品的約束;制定詳細(xì)的項(xiàng)目管理計(jì)劃;根據(jù)當(dāng)前的需求和風(fēng)險(xiǎn)因素,制定實(shí)施方案,并進(jìn)行可行性分析,選定一個(gè)實(shí)施方案,并對其進(jìn)行規(guī)劃。風(fēng)險(xiǎn)分析:明確每一個(gè)項(xiàng)目風(fēng)險(xiǎn),估計(jì)風(fēng)險(xiǎn)發(fā)生的可能性、頻率、損害程度,并制定風(fēng)險(xiǎn)管理措施規(guī)避這些風(fēng)險(xiǎn)。實(shí)施工程:針對每一個(gè)開發(fā)階段的任務(wù)要求執(zhí)行本開發(fā)階段的活動(dòng)。客戶評估:客戶使用原型,反饋修改意見;根據(jù)客戶的反饋,對產(chǎn)品及其開發(fā)過程進(jìn)行評審,決定是否進(jìn)入螺旋線的下一個(gè)回路。
?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.6螺旋模型制定計(jì)劃:確定軟件項(xiàng)目目標(biāo);明確對軟件開2.4.7噴泉模型噴泉模型也稱迭代模型,認(rèn)為軟件開發(fā)過程的各個(gè)階段是相互重疊和多次反復(fù)的,就象噴泉一樣,水噴上去又可以落下來,既可以落在中間,又可以落到底部。各個(gè)開發(fā)階段沒有特定的次序要求,完全可以并行進(jìn)行,可以在某個(gè)開發(fā)階段中隨時(shí)補(bǔ)充其他任何開發(fā)階段中遺漏的需求。優(yōu)點(diǎn):提高開發(fā)效率縮短開發(fā)周期缺點(diǎn):難于管理?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.7噴泉模型噴泉模型也稱迭代模型,認(rèn)為軟件開發(fā)過程的2.4.8構(gòu)件組裝模型構(gòu)件組裝模型利用模塊化思想將整個(gè)系統(tǒng)模塊化,并在一定構(gòu)件模型的支持下復(fù)用構(gòu)件庫中的一個(gè)或多個(gè)軟件構(gòu)件,通過組裝高效率、高質(zhì)量地構(gòu)造軟件系統(tǒng)。構(gòu)件組裝模型本質(zhì)上是演化的,開發(fā)過程是迭代的。構(gòu)件組裝模型的開發(fā)過程就是構(gòu)件組裝的過程,維護(hù)的過程就是構(gòu)件升級、替換和擴(kuò)充的過程。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.8構(gòu)件組裝模型構(gòu)件組裝模型利用模塊化思想將整個(gè)系統(tǒng)2.4.8構(gòu)件組裝模型優(yōu)點(diǎn):充分利用軟件復(fù)用,提高了軟件開發(fā)的效率。允許多個(gè)項(xiàng)目同時(shí)開發(fā),降低了費(fèi)用,提高了可維護(hù)性,可實(shí)現(xiàn)分步提交軟件產(chǎn)品。缺點(diǎn):缺乏通用的構(gòu)件組裝結(jié)構(gòu)標(biāo)準(zhǔn),風(fēng)險(xiǎn)較大;構(gòu)件可重用性和系統(tǒng)高效性之間不易協(xié)調(diào);由于過分依賴于構(gòu)件,構(gòu)件質(zhì)量影響著最終產(chǎn)品的質(zhì)量。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.8構(gòu)件組裝模型優(yōu)點(diǎn):?2009BUPTTSE2.4.9快速應(yīng)用開發(fā)模型快速應(yīng)用開發(fā)(RapidApplicationDevelopment,RAD)是一個(gè)增量型的軟件開發(fā)過程模型,強(qiáng)調(diào)極短的開發(fā)周期。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.9快速應(yīng)用開發(fā)模型快速應(yīng)用開發(fā)(RapidApp2.4.9快速應(yīng)用開發(fā)模型RAD模型的缺點(diǎn):并非所有應(yīng)用都適合采用RAD,如果一個(gè)應(yīng)用不能被模塊化,那么構(gòu)造應(yīng)用的構(gòu)件就無法快速獲取由于時(shí)間約束,開發(fā)人員和客戶必須在較短的時(shí)間內(nèi)完成一系列的需求分析,溝通配合不當(dāng)都會(huì)導(dǎo)致應(yīng)用RAD模型的失敗RAD適合于管理信息系統(tǒng)的開發(fā),對于其他類型的應(yīng)用系統(tǒng),如技術(shù)風(fēng)險(xiǎn)較高、與外圍系統(tǒng)的互操作性較高等,不太合適?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.4.9快速應(yīng)用開發(fā)模型RAD模型的缺點(diǎn):?20092.5新型軟件生命周期模型2.5.1RUP2.5.2敏捷模型?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5新型軟件生命周期模型2.5.1RUP?20092.5.1RUPRUP(RationalUnifiedProcess)統(tǒng)一過程模型是由Rational公司(現(xiàn)被IBM公司收購)開發(fā)的一種軟件工程過程框架,是一個(gè)面向?qū)ο蟮幕趙eb的程序開發(fā)方法論。RUP既是一種軟件生命周期模型,又是一種支持面向?qū)ο筌浖_發(fā)的工具,它將軟件開發(fā)過程要素和軟件工件要素整合在統(tǒng)一的框架中。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP(RationalUnified2.5.1RUPRUP的基本結(jié)構(gòu)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP的基本結(jié)構(gòu)?2009BUPTT2.5.1RUPRUP中的軟件生命周期在時(shí)間上被分解為四個(gè)順序的階段:初始階段(Inception)、細(xì)化階段(Elaboration)、構(gòu)造階段(Construction)和交付階段(Transition)。每個(gè)階段結(jié)束于一個(gè)主要的里程碑(MajorMilestones),并在階段結(jié)尾執(zhí)行一次評估以確定這個(gè)階段的目標(biāo)是否已經(jīng)滿足。如果評估結(jié)果令人滿意的話,可以允許項(xiàng)目進(jìn)入下一個(gè)階段。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP中的軟件生命周期在時(shí)間上被分解為四個(gè)2.5.1RUPRUP的9個(gè)核心工作流6個(gè)核心過程工作流商業(yè)建模(BusinessModeling)需求(Requirements)分析和設(shè)計(jì)(Analysis&Design)實(shí)現(xiàn)(Implementation)測試(Test)部署(Deployment)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUPRUP的9個(gè)核心工作流?2009BUP2.5.1RUP3個(gè)核心支持工作流:配置和變更管理(Configuration&ChangeManagement)項(xiàng)目管理(ProjectManagement)環(huán)境(Environment)?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP3個(gè)核心支持工作流:?2009BUPT2.5.1RUP初始階段目標(biāo)是為系統(tǒng)建立商業(yè)案例(businesscase)并確定項(xiàng)目的邊界。商業(yè)案例包括項(xiàng)目的驗(yàn)收規(guī)范、風(fēng)險(xiǎn)評估、所需資源估計(jì)、階段計(jì)劃等。要確定項(xiàng)目邊界,需識別所有與系統(tǒng)交互的外部實(shí)體,并在較高層次上定義外部實(shí)體與系統(tǒng)交互的特性,主要包括識別外部角色(actor)、識別所有用例并詳細(xì)描述一些重要的用例。階段結(jié)束里程碑:生命周期目標(biāo)(LifecycleObjective)里程碑,包括一些重要的文檔,如:項(xiàng)目構(gòu)想(vision)、原始用例模型、原始業(yè)務(wù)風(fēng)險(xiǎn)評估、一個(gè)或者多個(gè)原型、原始商業(yè)案例等。需要對這些文檔進(jìn)行評審,以確定正確理解用例需求、項(xiàng)目風(fēng)險(xiǎn)評估合理、階段計(jì)劃可行等。?2009BUPTTSEG北京郵電大學(xué)通信軟件工程中心2.5.1RUP初始階段?2009BUPTTSEG2.5.1RUP細(xì)化階段目標(biāo)是分析問題領(lǐng)域,建立健全的體系結(jié)構(gòu)基礎(chǔ),
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保溫涂料冬季施工方案
- 農(nóng)業(yè)財(cái)政支持政策作業(yè)指導(dǎo)書
- 誘導(dǎo)屏施工方案
- 產(chǎn)品分銷與供貨合同協(xié)議
- 房屋裝修質(zhì)量保修合同
- 道路管網(wǎng)施工方案
- 農(nóng)村小學(xué) 施工方案
- pe頂管施工方案
- 車庫頂板防水施工方案
- 風(fēng)機(jī)盤管開關(guān)面板施工方案
- 后循環(huán)缺血治療
- 2024年浙江紹興杭紹臨空示范區(qū)開發(fā)集團(tuán)有限公司招聘筆試真題
- 2025年體檢科醫(yī)療質(zhì)量控制工作計(jì)劃
- 農(nóng)村土地流轉(zhuǎn)合同范本
- 無人機(jī)法律法規(guī)與安全飛行 第2版2-2 領(lǐng)空
- 2023年佛山市三水區(qū)樂平鎮(zhèn)鎮(zhèn)屬國有企業(yè)招聘筆試真題
- 《單片機(jī)應(yīng)用實(shí)訓(xùn)教程》課件第4章
- 2024年山東省濟(jì)南市中考英語試題卷(含答案解析)
- 涼山州 2024 年教師綜合業(yè)務(wù)素質(zhì)測試試卷初中物理
- 石英砂生產(chǎn)流程培訓(xùn)
- 工地團(tuán)隊(duì)勞務(wù)合同范例
評論
0/150
提交評論