軟件生命周期模型定義與選擇策略_第1頁(yè)
軟件生命周期模型定義與選擇策略_第2頁(yè)
軟件生命周期模型定義與選擇策略_第3頁(yè)
軟件生命周期模型定義與選擇策略_第4頁(yè)
軟件生命周期模型定義與選擇策略_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件生命周期模型定義與選擇策略1引言1.1目的☆定義和描述軟件項(xiàng)目生命周期模型;☆規(guī)范項(xiàng)目開(kāi)發(fā)流程;☆提高產(chǎn)品質(zhì)量;☆降低項(xiàng)目管理難度;☆為過(guò)程改進(jìn)和度量提供基線;☆增強(qiáng)項(xiàng)目可控性和可視性。1.2適用范圍用于軟件項(xiàng)目在項(xiàng)目規(guī)劃時(shí)根據(jù)項(xiàng)目特點(diǎn)確定項(xiàng)目的主要階段及開(kāi)發(fā)模型。每個(gè)軟件開(kāi)發(fā)項(xiàng)目可以在本規(guī)范定義的生命周期模型范圍內(nèi),選擇不同的生命周期模型,也可以通過(guò)裁剪標(biāo)準(zhǔn)適當(dāng)?shù)牟眉羯芷谀P?,使之更加適合于項(xiàng)目。1.3名詞術(shù)語(yǔ)1.3.1軟件生命周期:是指從開(kāi)始策劃軟件產(chǎn)品到該軟件不在使用為止這段時(shí)間。典型的軟件生命周期包括策劃階段、需求分析階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段、測(cè)試階段、實(shí)施和維護(hù)階段。1.3.2軟件生命周期模型:是指對(duì)軟件工程活動(dòng)的組織方式。公司軟件過(guò)程體系中定義的軟件工程過(guò)程活動(dòng)包含了需求、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和維護(hù)等活動(dòng)。軟件生命周期模型通過(guò)確定軟件開(kāi)發(fā)活動(dòng)的順序及相互制約關(guān)系來(lái)保證軟件工程活動(dòng)的流程化。1.3.3選擇軟件生命周期模型:選擇一個(gè)適當(dāng)?shù)能浖芷趯?duì)項(xiàng)目來(lái)說(shuō)至關(guān)重要。在項(xiàng)目策劃的初期,就應(yīng)該確定項(xiàng)目所采用的軟件生命周期模型,統(tǒng)籌規(guī)劃項(xiàng)目的整體開(kāi)發(fā)流程。選擇合適的軟件生命周期模型要考慮項(xiàng)目的特點(diǎn),主要是指不確定性及項(xiàng)目的風(fēng)險(xiǎn)。選擇恰當(dāng)?shù)纳芷谀P涂梢蕴岣唛_(kāi)發(fā)效率、提升產(chǎn)品質(zhì)量、降低成本,控制風(fēng)險(xiǎn),有助于項(xiàng)目的成功。2常用生命周期模型及特點(diǎn)2.1瀑布模型2.1.1模型介紹瀑布模型最早由WinstonRoyce于1970年提出,瀑布模型有時(shí)也稱為線性模型或典型生命周期模型,在該模型中軟件生命周期的各項(xiàng)活動(dòng)始終按照固定順序執(zhí)行:需求分析、設(shè)計(jì)、編碼、測(cè)試、維護(hù),各活動(dòng)之間有明確的界限,對(duì)階段結(jié)束的成果進(jìn)行判斷以確定是否可以開(kāi)始下一階段的工作,最終得到軟件產(chǎn)品。瀑布模型可以說(shuō)是所有軟件生命周期模型的基礎(chǔ)。瀑布模型的核心思想是將軟件開(kāi)發(fā)劃分為若干階段,按線性順序執(zhí)行,至于究竟要?jiǎng)澐譃槎嗌賯€(gè)階段,各階段做什么,應(yīng)該根據(jù)實(shí)際情況來(lái)定。2.1.2模型特點(diǎn)瀑布模型是一種文檔驅(qū)動(dòng)模型,主要的工作產(chǎn)品通過(guò)文檔從一個(gè)階段傳遞到下一階段。當(dāng)項(xiàng)目有著明確的產(chǎn)品定義以及易于理解的技術(shù)方案的情況下,瀑布模型有助于及早發(fā)現(xiàn)問(wèn)題,降低階段成本。瀑布模型的主要特點(diǎn):1、簡(jiǎn)單、易于理解;2、要求嚴(yán)格的管理,包括周密的項(xiàng)目計(jì)劃、明確的交付物、嚴(yán)格的質(zhì)量控制手段(如階段的評(píng)審)等;3、客戶在項(xiàng)目的后期才可以見(jiàn)到產(chǎn)品以及判斷產(chǎn)品的質(zhì)量;4、強(qiáng)調(diào)產(chǎn)品的測(cè)試。瀑布模型具有以下缺點(diǎn):1、缺乏靈活性瀑布模型要求在項(xiàng)目的初期明確定義全部需求,然而客戶在項(xiàng)目初期很難明確描述所有的需求,這種不確定性難以滿足模型要求的“穩(wěn)定的、明確定義的需求”的要求。事實(shí)上,在設(shè)計(jì)完成和代碼完成之前很難充分描述需求,因?yàn)榭蛻糁荒茉谧詈箅A段看到產(chǎn)品,產(chǎn)品是否滿足客戶的真正需求只有此刻才可以得以檢驗(yàn)。因此是否滿足客戶真正需求的風(fēng)險(xiǎn)往往只能在開(kāi)發(fā)過(guò)程后期才暴露,相應(yīng)的修改成本巨大。2、開(kāi)發(fā)人員常常陷入“阻塞狀態(tài)”,一部分成員不得不停下來(lái)等待別人把前頭的工作干完。3、對(duì)于要求快速開(kāi)發(fā)的項(xiàng)目,瀑布模型可能導(dǎo)致過(guò)多的文檔。4、由于是線性單一流程,開(kāi)發(fā)中的經(jīng)驗(yàn)教訓(xùn)不能反饋應(yīng)用于本產(chǎn)品的過(guò)程。2.1.3適用的軟件項(xiàng)目盡管瀑布模型有許多缺點(diǎn),但其仍然被廣泛使用。它能提供項(xiàng)目開(kāi)發(fā)人員清晰的開(kāi)發(fā)思路,此外,可以將此模型與其它模型融合修正以適應(yīng)項(xiàng)目的實(shí)際需要。1、適合有穩(wěn)定的產(chǎn)品定義和易于掌握的技術(shù)方案的項(xiàng)目。2、適合處理易于理解但復(fù)雜的項(xiàng)目。3、適合質(zhì)量需求高于進(jìn)度和成本需求的項(xiàng)目。4、適合項(xiàng)目的開(kāi)發(fā)隊(duì)伍的技術(shù)力量和項(xiàng)目管理比較薄弱或缺乏經(jīng)驗(yàn)的情況。2.2V字模型2.2.1模型介紹V字模型類似于瀑布模型。區(qū)別在于每個(gè)開(kāi)發(fā)階段有一個(gè)測(cè)試階段與之匹配:需求同系統(tǒng)測(cè)試,概要設(shè)計(jì)同集成測(cè)試,詳細(xì)設(shè)計(jì)同單元測(cè)試。V字模型是瀑布模型的一種改進(jìn)。它將瀑布模型的測(cè)試階段進(jìn)行細(xì)分,并與前面的階段進(jìn)行對(duì)應(yīng)。細(xì)分出來(lái)的這些階段分別為:?jiǎn)卧獪y(cè)試階段、集成測(cè)試階段和系統(tǒng)測(cè)試階段。2.2.2模型特點(diǎn)1、V字模型使用簡(jiǎn)單。2、主要強(qiáng)調(diào)測(cè)試階段與開(kāi)發(fā)過(guò)程的對(duì)應(yīng)關(guān)系。2.2.3適用的軟件項(xiàng)目1、充分理解用戶需求,且認(rèn)為該需求是固定不變的。2、充分理解該解決方案的技術(shù)和體系。3、需要一個(gè)高可維護(hù)性和可支持性的解決方案。4、適合于需求明確的,進(jìn)行外包的項(xiàng)目。2.3快速原型模型2.3.1模型介紹原型模型是在需求階段開(kāi)始前或過(guò)程中,通過(guò)部分實(shí)現(xiàn)系統(tǒng)功能的方式,進(jìn)行快速設(shè)計(jì),建立軟件中對(duì)用戶可見(jiàn)的部分,即“原型”。原型由用戶評(píng)估,并據(jù)此進(jìn)一步精化待開(kāi)發(fā)軟件的需求,逐步調(diào)整原型使其滿足用戶的要求,同時(shí)也使開(kāi)發(fā)組對(duì)該軟件有更好的理解,這個(gè)過(guò)程是迭代的。快速原型的特色體現(xiàn)在“快速”上。原型內(nèi)部結(jié)構(gòu)及其實(shí)現(xiàn)并不重要,重要的是原型必須能被快速的開(kāi)發(fā)出來(lái),以迅速反映用戶的需求。一旦需求明確了,原型就完成了使命,應(yīng)該保留還是拋棄,就看此原型是否值得復(fù)用。2.3.2模型特點(diǎn)1、在需求定義之前可快速構(gòu)建系統(tǒng)。2、用戶可向開(kāi)發(fā)者提供反饋。3、根據(jù)用戶反饋意見(jiàn)修改系統(tǒng)需求以滿足用戶需要??焖僭湍P腿秉c(diǎn):由于原型開(kāi)發(fā)的目的是盡快實(shí)現(xiàn)系統(tǒng)對(duì)客戶可見(jiàn)的部分,傳達(dá)項(xiàng)目組對(duì)客戶需求的理解并得到客戶的反饋進(jìn)而改進(jìn)軟件需求,因此,往往對(duì)原型中采用的操作系統(tǒng)、編程語(yǔ)言的可行性和效率以及算法的效率等缺乏充分的考慮,因此,是否將原型作為后續(xù)開(kāi)發(fā)的基礎(chǔ)要根據(jù)各項(xiàng)目的實(shí)際情況確定。2.3.3適用的軟件項(xiàng)目1、需求在開(kāi)發(fā)前不清晰。2、需要減少項(xiàng)目需求的不確定性帶來(lái)的風(fēng)險(xiǎn)。3、研發(fā)新產(chǎn)品??焖僭湍P屯ǔEc其他生命周期模型結(jié)合使用,例如,可以先用快速原型模型確定用戶的真正需求,然后采用瀑布模型進(jìn)行正式的產(chǎn)品開(kāi)發(fā)。2.4增量模型2.4.1模型介紹增量開(kāi)發(fā)模型由若干個(gè)開(kāi)發(fā)序列組成,每個(gè)序列均采用瀑布模型來(lái)開(kāi)發(fā)可以發(fā)行的增量。每產(chǎn)生一個(gè)增量相當(dāng)于推出一個(gè)新版本。這個(gè)過(guò)程不斷的重復(fù),直到產(chǎn)生最終完善的產(chǎn)品。2.4.2模型特點(diǎn)1、在達(dá)到初始需求之前可降低成本。2、可快速生產(chǎn)出可使用的系統(tǒng)。3、客戶可將早期的增量作為系統(tǒng)的原型,從中獲得對(duì)后面系統(tǒng)的增量的需求經(jīng)驗(yàn)。4、可以減少開(kāi)發(fā)過(guò)程中的返工。5、項(xiàng)目總體性失敗的風(fēng)險(xiǎn)比較低。6、能夠有計(jì)劃的管理技術(shù)風(fēng)險(xiǎn)。增量模型的缺點(diǎn)是,由于在增量實(shí)現(xiàn)前,需求不能被完整定義,對(duì)確定系統(tǒng)的架構(gòu)及所有增量都用到服務(wù)有一定的影響。對(duì)系統(tǒng)設(shè)計(jì)師的水平要求比較高。2.4.3適用的軟件項(xiàng)目1、熟悉問(wèn)題領(lǐng)域(可以在開(kāi)發(fā)初期將架構(gòu)及需求穩(wěn)定下來(lái))。2、項(xiàng)目團(tuán)隊(duì)有豐富的設(shè)計(jì)及開(kāi)發(fā)經(jīng)驗(yàn)。3、增量式的功能發(fā)布對(duì)客戶具有很高的價(jià)值。2.5迭代模型2.5.1模型介紹迭代式模型是RUP(RationalUnifiedProcess)推薦的周期模型,迭代被定義為:迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開(kāi)發(fā)活動(dòng)和要使用該發(fā)布必需的所有其他外圍元素。所以在某種程度上,開(kāi)發(fā)迭代是一次完整地經(jīng)過(guò)所有工作流程的過(guò)程:(至少包括)需求工作流程、分析設(shè)計(jì)工作流程、實(shí)施工作流程和測(cè)試工作流程。實(shí)質(zhì)上,它類似小型的瀑布式項(xiàng)目。RUP認(rèn)為,所有的階段(需求及其它)都可以細(xì)分為迭代。每一次的迭代都會(huì)產(chǎn)生一個(gè)可以發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。迭代的思想如下圖所示。在迭代式模型中,集成可以說(shuō)是連續(xù)不斷的,每一次迭代都會(huì)集成一些新的系統(tǒng)功能,但要集成的元素都比過(guò)去少得多,所以工作量和難度都是比較低的。另外,迭代式開(kāi)發(fā)模型還可以幫助企業(yè)盡早降低軟件開(kāi)發(fā)風(fēng)險(xiǎn),提高IT團(tuán)隊(duì)士氣以及生成更高質(zhì)量的產(chǎn)品。由于每次迭代都會(huì)產(chǎn)生一個(gè)可運(yùn)行的系統(tǒng),通過(guò)對(duì)這個(gè)可運(yùn)行系統(tǒng)進(jìn)行測(cè)試,企業(yè)在早期的迭代中就可以及時(shí)發(fā)現(xiàn)缺陷并改正,性能上的瓶頸也可以盡早發(fā)現(xiàn)并處理。因?yàn)樵诿看蔚锌偸遣粩嗟丶m正錯(cuò)誤,企業(yè)可以得到更高質(zhì)量的產(chǎn)品。2.5.2模型特點(diǎn)迭代式模型解決的主要是對(duì)于風(fēng)險(xiǎn)的控制問(wèn)題,傳統(tǒng)的開(kāi)發(fā)流程中系統(tǒng)的風(fēng)險(xiǎn)要到項(xiàng)目開(kāi)發(fā)的后期(主要是測(cè)試階段)才能夠被真正降低。而迭代式開(kāi)發(fā)中的風(fēng)險(xiǎn)可以在項(xiàng)目開(kāi)發(fā)的早期通過(guò)幾次迭代盡早地解決。因此,在大型應(yīng)用軟件的開(kāi)發(fā)過(guò)程中,企業(yè)應(yīng)盡量采用迭代方式,把要開(kāi)發(fā)的應(yīng)用軟件分成數(shù)個(gè)可以完成的階段性目標(biāo),以降低企業(yè)軟件開(kāi)發(fā)風(fēng)險(xiǎn)。1、可以在生命周期早期強(qiáng)制性的確定項(xiàng)目中存在的風(fēng)險(xiǎn)。2、采用迭代的、增量式的開(kāi)發(fā)過(guò)程。3、采用UML語(yǔ)言描述軟件開(kāi)發(fā)過(guò)程。2.5.3適用的軟件項(xiàng)目迭代和瀑布的最大的差別就在于風(fēng)險(xiǎn)的暴露時(shí)間上?!叭魏雾?xiàng)目都會(huì)涉及到一定的風(fēng)險(xiǎn)。如果能在生命周期中盡早確保避免了風(fēng)險(xiǎn),那么您的計(jì)劃自然會(huì)更趨精確。有許多風(fēng)險(xiǎn)直到已準(zhǔn)備集成系統(tǒng)時(shí)才被發(fā)現(xiàn)。不管開(kāi)發(fā)團(tuán)隊(duì)經(jīng)驗(yàn)如何,都絕不可能預(yù)知所有的風(fēng)險(xiǎn)?!?、在生命周期的早期,這種方法可以及時(shí)地發(fā)現(xiàn)一些嚴(yán)重的需求理解錯(cuò)誤,此時(shí)還可能修正這些錯(cuò)誤。2、允許并鼓勵(lì)用戶反饋信息,以明確系統(tǒng)的真實(shí)需求。3、這種方法使開(kāi)發(fā)小組重視項(xiàng)目中關(guān)鍵的問(wèn)題,而屏蔽掉那些使他們遠(yuǎn)離項(xiàng)目真實(shí)風(fēng)險(xiǎn)的問(wèn)題。4、不斷地迭代測(cè)試能夠給出項(xiàng)目狀況的客觀評(píng)價(jià)5、盡早地發(fā)現(xiàn)需求、設(shè)計(jì)和實(shí)現(xiàn)中的不一致。6、在整個(gè)項(xiàng)目生命周期中更加平均地分配開(kāi)發(fā)組的工作量,特別是測(cè)試小組的工作量。7、開(kāi)發(fā)組可以不斷的在開(kāi)發(fā)中進(jìn)行學(xué)習(xí)從而改進(jìn)過(guò)程。8、在整個(gè)生命周期中,項(xiàng)目相關(guān)人員可以通過(guò)具體證據(jù)了解項(xiàng)目狀況。需要強(qiáng)調(diào)的是,并不是企業(yè)應(yīng)用迭代模型開(kāi)發(fā)軟件后就萬(wàn)無(wú)一失,如果對(duì)迭代模型本身缺乏嚴(yán)格的過(guò)程管理,生命周期模型很可能退化為一種原始的無(wú)計(jì)劃的“試-錯(cuò)-改”的模式。3生命周期選擇策略選擇軟件項(xiàng)目的生命周期模型的過(guò)程如下圖所示:主要步驟如下:1)、分析并確定項(xiàng)目特點(diǎn);2)、根據(jù)項(xiàng)目特點(diǎn)識(shí)別評(píng)估項(xiàng)目風(fēng)險(xiǎn)和需求清晰度;3)、根據(jù)對(duì)項(xiàng)目目標(biāo)、風(fēng)險(xiǎn)和需求清晰度的綜合分析結(jié)果確定軟件生命周期選擇策略;4)、根據(jù)選擇策略選擇并裁剪生命周期模型;5)、評(píng)審選定的軟件生命周期模型。3.1分析并確定項(xiàng)目特點(diǎn)軟件生命周期模型的選擇首先要考慮項(xiàng)目的特點(diǎn),包括:1、資源的可用性(包括人、資金、設(shè)施、工具);2、項(xiàng)目復(fù)雜度(如子系統(tǒng)數(shù)量、新技術(shù)的使用);3、開(kāi)發(fā)成本(包括人力、物力、資金等);4、需求的清晰度(需求是否明確、是否逐漸變更、性能要求);5、軟件產(chǎn)品版本要求(以后是否升級(jí)、是否逐漸變更、版本重用性要求);6、項(xiàng)目風(fēng)險(xiǎn)分析。3.2評(píng)估項(xiàng)目風(fēng)險(xiǎn)和需求清晰度根據(jù)項(xiàng)目特點(diǎn)識(shí)別、分析項(xiàng)目的風(fēng)險(xiǎn),評(píng)估需求清晰度(需求是否全面、明確等),不同的生命周期模型在應(yīng)對(duì)風(fēng)險(xiǎn)和需求不確定性方面的能力是不同的。例如螺旋模型是一種以風(fēng)險(xiǎn)為導(dǎo)向的模型,確保隨著項(xiàng)目成本投入的增加,風(fēng)險(xiǎn)程度得到降低;而瀑布模型對(duì)風(fēng)險(xiǎn)的應(yīng)對(duì)能力相對(duì)較弱,采用瀑布模型的項(xiàng)目中可能遺留關(guān)鍵的項(xiàng)目風(fēng)險(xiǎn)在項(xiàng)目后期才能暴露出來(lái),而這種風(fēng)險(xiǎn)的發(fā)生帶來(lái)的損失比項(xiàng)目前期引起的損失大得多。當(dāng)然,風(fēng)險(xiǎn)和需求不確定性的管理需要投入項(xiàng)目資源,并對(duì)項(xiàng)目團(tuán)隊(duì)提出了相應(yīng)的要求,如風(fēng)險(xiǎn)管理的能力和技能的要求、項(xiàng)目計(jì)劃和跟蹤與監(jiān)督的要求等,所以風(fēng)險(xiǎn)和需求清晰度大小是選擇軟件生命周期模型的重要因素,但不是絕對(duì)的。3.3生命周期模型特性比對(duì)根據(jù)對(duì)項(xiàng)目特點(diǎn)、風(fēng)險(xiǎn)、需求清晰度的分析,結(jié)合下表中對(duì)生命周期模型特性的比對(duì)說(shuō)明,確定要選用的生命周期模型。模型特性瀑布模型V字模型快速原型增量模型迭代模型項(xiàng)目復(fù)雜度低低中高高項(xiàng)目成本低低低中高版本升級(jí)成本高高低低低易使用性簡(jiǎn)單簡(jiǎn)單簡(jiǎn)單復(fù)雜復(fù)雜應(yīng)用功能需求明確明確不明確較明確不明確漸進(jìn)式的需求變更小小小大大產(chǎn)品開(kāi)發(fā)技術(shù)存在存在新存在新生產(chǎn)率高高低高高質(zhì)量成本高高低低低項(xiàng)目質(zhì)量手段返工返工一次一次一次階段產(chǎn)品的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論