資源描述:
《3 軟件生存周期模型.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、軟件工程第三講軟件生存周期模型朱建凱上次課布置的閱讀內(nèi)容問題:什么是基本過程?什么是支持過程?什么是組織過程?軟件開發(fā)過程的主要活動(dòng)是什么?每個(gè)活動(dòng)都有什么輸出?基本過程:與軟件生產(chǎn)直接相關(guān)的活動(dòng)集;支持過程:有關(guān)各方按他們的支持目標(biāo)所從事的一系列相關(guān)的活動(dòng)集;組織活動(dòng):與軟件生產(chǎn)組織有關(guān)的活動(dòng)集。本次課程重點(diǎn)瀑布模型,其優(yōu)缺點(diǎn),適應(yīng)范圍(非常重要)增量模型、演化模型,優(yōu)缺點(diǎn),適應(yīng)范圍(重要)螺旋模型、噴泉模型(了解)軟件原型和軟件重用的概念及其作用(重要)項(xiàng)目生存周期過程(了解)2.2軟件生存周期模型1 基本概念稱軟件生存周期模型為“軟件開發(fā)模型”
2、,并把它定義為:軟件過程、活動(dòng)、任務(wù)的結(jié)構(gòu)框架。系統(tǒng)需求軟件需求需求分析設(shè)計(jì)編碼測試運(yùn)行2 瀑布模型關(guān)于瀑布模型的幾點(diǎn)說明(1)瀑布模型的優(yōu)點(diǎn)雖然瀑布模型是一個(gè)比較“老”的、甚至過時(shí)的開發(fā)模型,但其優(yōu)點(diǎn)為:?在決定系統(tǒng)怎樣做之前,存在一個(gè)需求階段,鼓勵(lì)對系統(tǒng)“做什么”進(jìn)行規(guī)約(即設(shè)計(jì)之前的規(guī)約)。?在建造構(gòu)件之前,存在一個(gè)設(shè)計(jì)階段,鼓勵(lì)規(guī)劃系統(tǒng)結(jié)構(gòu)(即編碼之前的設(shè)計(jì))。?在每一階段結(jié)束時(shí)進(jìn)行復(fù)審,允許獲取方和用戶的參與。?允許基線和配置早期接受控制。?前一步工作產(chǎn)品可作為下一步被認(rèn)可的、文檔化的基線。(2)瀑布模型存在的不足?客戶必須能夠完整、正確和
3、清晰地表達(dá)他們的需求;開發(fā)人員一開始就必須理解其應(yīng)用。?在開始的兩個(gè)或三個(gè)階段中,很難評估真正的進(jìn)度狀態(tài);設(shè)計(jì)、編碼和測試階段都可能發(fā)生延期。?在一個(gè)項(xiàng)目的早期階段,過分地強(qiáng)調(diào)了基線和里程碑處的文檔;可能要花費(fèi)更多的時(shí)間,用于建立一些用處不大的文檔。?當(dāng)接近項(xiàng)目結(jié)束時(shí),出現(xiàn)了大量的集成和測試工作。?直到項(xiàng)目結(jié)束之前,都不能演示系統(tǒng)的能力。(3)瀑布模型適用的情況?在開發(fā)中,向下、漸進(jìn)的路徑占支配地位。也就是說,需求已被很好地理解;并且?過程設(shè)計(jì)人員也很清楚:開發(fā)組織非常熟悉為實(shí)現(xiàn)這一模型所需要的過程(或經(jīng)過培訓(xùn)后,熟悉什么時(shí)候來支持這一項(xiàng)目,以實(shí)現(xiàn)這
4、一模型所需要的過程)。因此為了避免產(chǎn)生過多的反復(fù)迭代工作,增加開發(fā)成本,一般在準(zhǔn)備采用瀑布模型(也包括其他模型)時(shí),需要考慮以下2個(gè)問題:第一個(gè)問題是,過程設(shè)計(jì)人員必須對初始產(chǎn)品(通常是軟件需求規(guī)約,SRS)的不確定性進(jìn)行評估。另一個(gè)問題是,組織是否具有熟練實(shí)施每個(gè)活動(dòng)和任務(wù)的歷史經(jīng)驗(yàn)。13259101167121384增量1?1,2,5,9?增量2?3,6,7,4,10,11?增量3?8,12,13?管理增量規(guī)約增量設(shè)計(jì)糾錯(cuò)性分析增量實(shí)現(xiàn)增量1增量2增量33增量模型該模型有一個(gè)假設(shè),即需求可以分段,成為一系列增量產(chǎn)品,每一增量可以分別地開發(fā)。關(guān)于增
5、量模型的幾點(diǎn)說明:(1)增量模型的優(yōu)點(diǎn)作為瀑布模型的第一個(gè)變體,具有瀑布模型的所有優(yōu)點(diǎn)。此外,它還有以下優(yōu)點(diǎn):?第一個(gè)可交付版本所需要的成本和時(shí)間是很少的;?開發(fā)由增量表示的小系統(tǒng)所承擔(dān)的風(fēng)險(xiǎn)是不大的;?由于很快發(fā)布了第一個(gè)版本,因此可以減少用戶需求的變更;?允許增量投資,即在項(xiàng)目開始時(shí),可以僅對一個(gè)或兩個(gè)增量投資。(2)缺點(diǎn):如果增量模型不適于某些項(xiàng)目,或使用有誤,則有以下缺點(diǎn):?如果沒有對用戶的變更要求進(jìn)行規(guī)劃,那么產(chǎn)生的初始增量可能會造成后來增量的不穩(wěn)定;?如果需求不像早期思考的那樣穩(wěn)定和完整,那么一些增量就可能需要重新開發(fā),重新發(fā)布;?管理發(fā)
6、生的成本、進(jìn)度和配置的復(fù)雜性,可能會超出組織的能力。注:如果采用增量投資方式,那么客戶就可以對一些增量進(jìn)行招標(biāo)。然后,開發(fā)人員按提出的截止期限進(jìn)行增量開發(fā),這樣客戶就可以用多個(gè)契約來管理組織的資源和成本。(3)該模型的適用情況?在開始開發(fā)時(shí),需求很明確,且產(chǎn)品還可被適當(dāng)?shù)胤纸鉃橐恍┆?dú)立的、可交付的軟件(構(gòu)造增量:Buildincrements.如果一個(gè)增量并不需要交付給客戶的話,那么這樣的增量通常稱為一個(gè)“構(gòu)造”(Build)。如果增量被交付,那么它們就被認(rèn)為是發(fā)布版本(Releasedversion)。);?在開發(fā)中,期望盡快提交其中的一些增量產(chǎn)品
7、。例如:一個(gè)數(shù)據(jù)庫系統(tǒng),它必須通過不同的用戶界面,為不同類型的用戶提供不同的功能。在這一情況下,首先實(shí)現(xiàn)完整的數(shù)據(jù)庫設(shè)計(jì),并把一組具有高優(yōu)先級的用戶功能和界面作為一個(gè)增量;以后,陸續(xù)構(gòu)造其它類型用戶所需求的增量。需求設(shè)計(jì)編碼測試集成需求設(shè)計(jì)編碼測試集成開發(fā)反饋開發(fā)反饋...核心系統(tǒng)開發(fā)第二次迭代4演化模型(Evolutionarymodel)是一種有彈性的過程模式,由一些小的開發(fā)步組成,每一步歷經(jīng)需求分析、設(shè)計(jì)、實(shí)現(xiàn)和驗(yàn)證,產(chǎn)生軟件產(chǎn)品的一個(gè)增量。通過這些迭代,完成最終軟件產(chǎn)品的開發(fā)。?針對事先不能完整地定義需求?針對用戶的核心需求,開發(fā)核心系統(tǒng)?根
8、據(jù)用戶的反饋,實(shí)施活動(dòng)的迭代關(guān)于演化模型的幾點(diǎn)說明(1)主要特征該模型顯式地把增量模型擴(kuò)展到需求階段。由圖可