




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