軟件工程與項(xiàng)目管理(第2版) 課件 第2章 軟件生命周期與軟件過(guò)程_第1頁(yè)
軟件工程與項(xiàng)目管理(第2版) 課件 第2章 軟件生命周期與軟件過(guò)程_第2頁(yè)
軟件工程與項(xiàng)目管理(第2版) 課件 第2章 軟件生命周期與軟件過(guò)程_第3頁(yè)
軟件工程與項(xiàng)目管理(第2版) 課件 第2章 軟件生命周期與軟件過(guò)程_第4頁(yè)
軟件工程與項(xiàng)目管理(第2版) 課件 第2章 軟件生命周期與軟件過(guò)程_第5頁(yè)
已閱讀5頁(yè),還剩26頁(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)介

2.1軟件生命周期

2.2軟件過(guò)程的概念

2.3幾種典型的軟件過(guò)程模型

2.4微軟公司的軟件開發(fā)過(guò)程2.1軟件生命周期我國(guó)國(guó)家標(biāo)準(zhǔn)《計(jì)算機(jī)軟件文檔編制規(guī)范》(GB/T8567—2006)把軟件生命周期劃分為可行性與計(jì)劃研究階段、需求分析階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段、測(cè)試階段、運(yùn)行與維護(hù)階段六個(gè)階段。通常,人們把可行性與計(jì)劃研究階段、需求分析階段這兩個(gè)階段稱為軟件定義時(shí)期,把設(shè)計(jì)階段、實(shí)現(xiàn)階段、測(cè)試階段這三個(gè)階段稱為軟件開發(fā)時(shí)期,而把運(yùn)行與維護(hù)階段稱為軟件運(yùn)行與維護(hù)時(shí)期。軟件生命周期各個(gè)時(shí)期及階段的關(guān)系如圖2.1所示。2.1.1軟件生命周期中時(shí)期與階段的劃分以及各階段的任務(wù)1.軟件定義時(shí)期在軟件生命周期中,軟件定義時(shí)期又可分為可行性與計(jì)劃研究和需求分析兩個(gè)階段。1)可行性與計(jì)劃研究階段在可行性與計(jì)劃研究階段主要完成以下工作:(1)要確定該軟件的開發(fā)目標(biāo)和總的要求。(2)要進(jìn)行可行性分析。(3)投資-收益分析。(4)制訂開發(fā)計(jì)劃。(5)完成可行性分析報(bào)告。(6)完成開發(fā)計(jì)劃等文檔。2)需求分析階段在需求分析階段內(nèi),由系統(tǒng)分析人員對(duì)被設(shè)計(jì)的系統(tǒng)進(jìn)行系統(tǒng)分析,確定該軟件的各項(xiàng)功能、性能需求和設(shè)計(jì)約束,確定文檔編制的要求。作為本階段工作的結(jié)果,一般地說(shuō)軟件需求規(guī)格說(shuō)明(也稱為軟件需求說(shuō)明、軟件規(guī)格說(shuō)明)、數(shù)據(jù)要求說(shuō)明和初步的用戶手冊(cè)應(yīng)該編寫出來(lái),主要包括:(1)需求調(diào)查:對(duì)軟件的需求及其使用環(huán)境進(jìn)行詳細(xì)調(diào)查,掌握用戶的要求和環(huán)境所能提供的條件。(2)功能、性能與環(huán)境約束分析:根據(jù)掌握的情況,對(duì)軟件系統(tǒng)的功能(即回答系統(tǒng)必須做什么)、性能(包括軟件的安全性、可靠性、可維護(hù)性、精度、錯(cuò)誤處理、適應(yīng)性、用戶培訓(xùn)等)和環(huán)境約束(指待開發(fā)的軟件系統(tǒng)必須滿足運(yùn)行環(huán)境方面的要求)進(jìn)行分析研究,與用戶取得一致的認(rèn)識(shí)。(3)編制軟件需求規(guī)格說(shuō)明:把軟件系統(tǒng)的功能需求、性能需求、接口需求、設(shè)計(jì)需求、基本結(jié)構(gòu)、開發(fā)標(biāo)準(zhǔn)、驗(yàn)收原則等寫成軟件需求規(guī)格說(shuō)明,并得到用戶的確認(rèn)。(4)制定軟件系統(tǒng)的確認(rèn)測(cè)試準(zhǔn)則和用戶手冊(cè)概要:根據(jù)確認(rèn)的軟件開發(fā)標(biāo)準(zhǔn)及驗(yàn)收原則制定具體的軟件確認(rèn)測(cè)試準(zhǔn)則和用戶手冊(cè)概要或提綱。2.軟件開發(fā)時(shí)期軟件開發(fā)時(shí)期主要包括設(shè)計(jì)階段、實(shí)現(xiàn)階段以及測(cè)試階段。1)設(shè)計(jì)階段在設(shè)計(jì)階段內(nèi),系統(tǒng)設(shè)計(jì)人員和程序設(shè)計(jì)人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,提出多個(gè)設(shè)計(jì),分析每個(gè)設(shè)計(jì)能履行的功能并進(jìn)行相互比較,最后確定一個(gè)設(shè)計(jì),包括該軟件的結(jié)構(gòu)、模塊(或CSCI)的劃分、功能的分配以及處理流程。在被設(shè)計(jì)系統(tǒng)比較復(fù)雜的情況下,設(shè)計(jì)階段應(yīng)分解成概要設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段兩個(gè)步驟。在一般情況下,應(yīng)完成的文檔包括:軟件(結(jié)構(gòu))設(shè)計(jì)說(shuō)明、詳細(xì)設(shè)計(jì)說(shuō)明和測(cè)試計(jì)劃初稿。(1)概要設(shè)計(jì)階段包括以下工作:①建立軟件系統(tǒng)的總體結(jié)構(gòu)。②定義功能模塊的接口。③設(shè)計(jì)全局?jǐn)?shù)據(jù)庫(kù)和數(shù)據(jù)結(jié)構(gòu)。④規(guī)定設(shè)計(jì)約束。⑤編制概要設(shè)計(jì)文檔。(2)詳細(xì)設(shè)計(jì)階段包括以下工作:①模塊詳細(xì)設(shè)計(jì)。②編制模塊的詳細(xì)規(guī)格說(shuō)明。2)實(shí)現(xiàn)階段在實(shí)現(xiàn)階段內(nèi),要完成源程序的編碼、編譯(或匯編)和排錯(cuò)調(diào)試,得到無(wú)語(yǔ)法錯(cuò)的程序清單,要開始編寫進(jìn)度日?qǐng)?bào)、周報(bào)和月報(bào),并且要完成用戶手冊(cè)、操作手冊(cè)等面向用戶的文檔的編寫工作,還要完成測(cè)試計(jì)劃的編制。(1)編碼:根據(jù)模塊詳細(xì)規(guī)格說(shuō)明書,將詳細(xì)設(shè)計(jì)轉(zhuǎn)化為程序代碼。(2)單元測(cè)試:對(duì)模塊程序進(jìn)行測(cè)試,驗(yàn)證模塊功能及接口與詳細(xì)設(shè)計(jì)文檔的一致性,并形成單元測(cè)試報(bào)告。3)測(cè)試階段在測(cè)試階段:該程序?qū)⒈蝗娴販y(cè)試,已編制的文檔將被檢查審閱。一般要完成測(cè)試分析報(bào)告。作為開發(fā)工作的結(jié)束,所生產(chǎn)的程序、文檔以及開發(fā)工作本身將逐項(xiàng)被評(píng)價(jià),最后寫出項(xiàng)目開發(fā)總結(jié)報(bào)告。測(cè)試階段包括組裝測(cè)試階段和確認(rèn)測(cè)試階段。在整個(gè)開發(fā)過(guò)程中(即前五個(gè)階段中),開發(fā)集體要按月編寫開發(fā)進(jìn)度月報(bào)。(1)組裝測(cè)試階段包括以下工作:①模塊程序組裝與測(cè)試。②編制組裝測(cè)試報(bào)告。(2)確認(rèn)測(cè)試階段包括以下工作:①軟件系統(tǒng)測(cè)試。②編制確認(rèn)測(cè)試文檔。③軟件評(píng)審。3.軟件運(yùn)行與維護(hù)時(shí)期在運(yùn)行和維護(hù)階段,軟件將在運(yùn)行使用中不斷地被維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充、刪改、更新和升級(jí)。(1)軟件的使用階段:將軟件安裝在用戶確定的運(yùn)行環(huán)境中使用。(2)軟件的維護(hù)階段:對(duì)軟件產(chǎn)品進(jìn)行修改或根據(jù)軟件需求變化做出響應(yīng),并對(duì)所有的維護(hù)寫出維護(hù)報(bào)告。(3)軟件的退役階段:軟件一旦完成了其使命,或者由于一個(gè)新的軟件生命周期的開始,就要終止對(duì)軟件產(chǎn)品的支持,這使得軟件停止使用。2.1.2軟件生命周期中各階段所占的百分比軟件生命周期中各階段所占的百分比和各階段的參與人員如表2.1所示。2.1.3軟件生命周期中各階段的文檔在軟件生存周期中,一般應(yīng)產(chǎn)生以下基本文檔:(1)可行性分析(研究)報(bào)告;(2)軟件(或項(xiàng)目)開發(fā)計(jì)劃;(3)軟件需求規(guī)格說(shuō)明;(4)接口需求規(guī)格說(shuō)明;(5)系統(tǒng)/子系統(tǒng)設(shè)計(jì)(結(jié)構(gòu)設(shè)計(jì))說(shuō)明;(6)軟件(結(jié)構(gòu))設(shè)計(jì)說(shuō)明;(7)接口設(shè)計(jì)說(shuō)明;(8)數(shù)據(jù)庫(kù)(頂層)設(shè)計(jì)說(shuō)明;(9)?(軟件)用戶手冊(cè);(10)操作手冊(cè);(11)測(cè)試計(jì)劃;(12)測(cè)試報(bào)告;(13)軟件配置管理計(jì)劃;(14)軟件質(zhì)量保證計(jì)劃;(15)開發(fā)進(jìn)度月報(bào);(16)項(xiàng)目開發(fā)總結(jié)報(bào)告;(17)軟件產(chǎn)品規(guī)格說(shuō)明;(18)軟件版本說(shuō)明等。2.1.4各類人員使用的文檔說(shuō)明各類人員所使用的文檔如表2.2所示。2.2軟件過(guò)程的概念2.2.1軟件過(guò)程的定義軟件過(guò)程是用以開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品的一系列方法、實(shí)踐、活動(dòng)和轉(zhuǎn)換,包括軟件工程活動(dòng)和軟件管理活動(dòng)。2.2.2軟件過(guò)程的基本活動(dòng)一般的軟件過(guò)程包括問(wèn)題提出、軟件需求說(shuō)明、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件確認(rèn)、軟件演化等基本活動(dòng)。(1)問(wèn)題提出:開展技術(shù)探索、市場(chǎng)調(diào)查等活動(dòng),研究系統(tǒng)的可行性和可能的解決方案,確定待開發(fā)系統(tǒng)的總體目標(biāo)和范圍。(2)軟件需求說(shuō)明:分析、整理和提煉所收集到的用戶需求,建立完整的分析模型,編寫軟件需求規(guī)格說(shuō)明和初步的用戶手冊(cè)。通過(guò)評(píng)審需求規(guī)格說(shuō)明,確保對(duì)用戶需求達(dá)到共同的理解與認(rèn)識(shí)。(3)軟件設(shè)計(jì):根據(jù)軟件需求規(guī)格說(shuō)明文檔,確定軟件的體系結(jié)構(gòu),再進(jìn)一步設(shè)計(jì)每個(gè)系統(tǒng)部件的實(shí)現(xiàn)算法、數(shù)據(jù)結(jié)構(gòu)、接口等,編寫軟件設(shè)計(jì)說(shuō)明書,并組織進(jìn)行設(shè)計(jì)評(píng)審。(4)軟件實(shí)現(xiàn):將所設(shè)計(jì)的各個(gè)子系統(tǒng)編寫成計(jì)算機(jī)可接受的程序代碼。(5)軟件確認(rèn):在設(shè)計(jì)測(cè)試用例的基礎(chǔ)上,測(cè)試軟件的各個(gè)組成模塊,并將各個(gè)模塊集成起來(lái),測(cè)試整個(gè)產(chǎn)品的功能和性能是否滿足已有的規(guī)格說(shuō)明。(6)軟件演化:整個(gè)軟件過(guò)程是一個(gè)不斷演化的過(guò)程,軟件開發(fā)覆蓋從概念的提出到形成一個(gè)可運(yùn)行系統(tǒng)的整個(gè)過(guò)程,軟件維護(hù)則是系統(tǒng)投入使用后所產(chǎn)生的修改。2.2.3軟件過(guò)程的制品在軟件過(guò)程的不同階段,會(huì)產(chǎn)生不同的軟件制品,如需求規(guī)格說(shuō)明書、設(shè)計(jì)說(shuō)明書、源程序代碼與構(gòu)件、測(cè)試用例、用戶手冊(cè)以及各種開發(fā)管理文檔等,表2.3列出了軟件過(guò)程的一些基本活動(dòng)以及所產(chǎn)生的主要過(guò)程制品。2.2.4軟件項(xiàng)目從立項(xiàng)到結(jié)題的過(guò)程通常情況下,一個(gè)軟件項(xiàng)目從立項(xiàng)到結(jié)題要經(jīng)過(guò)不同的階段,每個(gè)階段要完成相應(yīng)的文檔。雖然每個(gè)企業(yè)最終形成的文檔不盡相同,但都是根據(jù)企業(yè)的實(shí)際情況,在國(guó)家標(biāo)準(zhǔn)的基礎(chǔ)之上進(jìn)行適當(dāng)刪減的結(jié)果,其基本內(nèi)容如下。1.撰寫立項(xiàng)申請(qǐng)書一個(gè)項(xiàng)目要通過(guò)填報(bào)項(xiàng)目申報(bào)書,經(jīng)相關(guān)部門的專家評(píng)審?fù)ㄟ^(guò)后才予以立項(xiàng)。2.簽署立項(xiàng)合同一個(gè)項(xiàng)目通過(guò)專家評(píng)審予以立項(xiàng)后,就要與立項(xiàng)相關(guān)部門簽署合同,該合同具有法律效力。3.撰寫開題報(bào)告雙方簽訂好合同后,在一個(gè)月內(nèi)要完成項(xiàng)目開題及開題報(bào)告的撰寫并在相關(guān)專家的參與下完成開題工作。4.撰寫中期檢查報(bào)告項(xiàng)目進(jìn)展到中期時(shí),要接受相關(guān)部門的檢查,考核是否按任務(wù)書中的進(jìn)度完成了該時(shí)間點(diǎn)應(yīng)該完成的工作。5.撰寫項(xiàng)目結(jié)題報(bào)告書及項(xiàng)目開發(fā)總結(jié)報(bào)告項(xiàng)目完成時(shí),需要撰寫項(xiàng)目結(jié)題報(bào)告及項(xiàng)目開發(fā)總結(jié)報(bào)告。項(xiàng)目開發(fā)總結(jié)報(bào)告的編制是為了總結(jié)本項(xiàng)目開發(fā)工作的經(jīng)驗(yàn),說(shuō)明實(shí)際取得的開發(fā)結(jié)果以及對(duì)整個(gè)開發(fā)工作的各個(gè)方面的評(píng)價(jià)。6.項(xiàng)目驗(yàn)收提交項(xiàng)目驗(yàn)收相關(guān)文檔后,在規(guī)定的時(shí)間內(nèi),相關(guān)部門對(duì)項(xiàng)目進(jìn)行驗(yàn)收。7.發(fā)結(jié)題證書項(xiàng)目驗(yàn)收合格后,由相關(guān)部門在規(guī)定的時(shí)間內(nèi)頒發(fā)結(jié)題證書。至此,該項(xiàng)目最終結(jié)題。2.3幾種典型的軟件過(guò)程模型2.3.1瀑布模型瀑布模型規(guī)定了各項(xiàng)軟件工程活動(dòng),包括制訂開發(fā)計(jì)劃、進(jìn)行需求分析和說(shuō)明、軟件設(shè)計(jì)、程序編碼、測(cè)試及運(yùn)行維護(hù)。瀑布模型還規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水一樣逐級(jí)下落,如圖2.2所示。瀑布模型的基本思想:根據(jù)軟件生命周期中各階段的任務(wù),從可行性研究與計(jì)劃開始,逐步進(jìn)行階段性變換,直至通過(guò)確認(rèn)測(cè)試并得到用戶確認(rèn)的軟件為止。瀑布模型的特點(diǎn)如下:(1)階段間的順序性和依賴性:上一階段的變換結(jié)果是下一階段變換的輸入,相鄰兩個(gè)階段具有因果關(guān)系,每個(gè)階段完成任務(wù)后,都必須進(jìn)行階段性評(píng)審,確認(rèn)之后再轉(zhuǎn)入下一個(gè)階段。(2)文檔驅(qū)動(dòng)性:要求每個(gè)階段必須完成規(guī)定的文檔并通過(guò)評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。瀑布模型的優(yōu)點(diǎn):可強(qiáng)迫開發(fā)人員采用規(guī)范的方法,嚴(yán)格提交文檔,做好階段評(píng)審,從而使軟件過(guò)程易于管理和控制,有利于軟件的質(zhì)量保障。瀑布模型的缺點(diǎn):要求軟件開發(fā)初期就要給出軟件系統(tǒng)的全部需求,開發(fā)周期比較長(zhǎng),承擔(dān)的風(fēng)險(xiǎn)也比較大。軟件開發(fā)的實(shí)踐表明,上述各項(xiàng)活動(dòng)之間并非完全是自上而下,呈線性圖式。實(shí)際情況是,每項(xiàng)開發(fā)活動(dòng)均處于一個(gè)質(zhì)量環(huán)(輸入—處理—輸出—評(píng)審)中。只有當(dāng)其工作得到確認(rèn),才能繼續(xù)進(jìn)行下一項(xiàng)活動(dòng),在圖2.2中用向下的箭頭表示;否則返工,在圖2.2中由向上的箭頭表示。2.3.2快速原型模型快速原型模型的第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來(lái)的用戶與系統(tǒng)的交互,用戶或客戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開發(fā)軟件的需求。通過(guò)逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的真正需求是什么。第二步則在第一步的基礎(chǔ)上開發(fā)客戶滿意的軟件產(chǎn)品。顯然,快速原型方法可以克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來(lái)的開發(fā)風(fēng)險(xiǎn),具有顯著的效果,如圖2.3所示??焖僭偷年P(guān)鍵在于盡可能快速地建造出軟件原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。因此,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。快速原型模型的基本思想:軟件開發(fā)人員根據(jù)用戶提出的軟件初步定義,快速開發(fā)一個(gè)原型,向用戶展示原型的功能和性能,在反復(fù)征求用戶對(duì)原型意見(jiàn)的過(guò)程中,進(jìn)一步確認(rèn)用戶的需求并對(duì)原型進(jìn)行修改和完善,直到得到用戶確認(rèn)的軟件定義,在確認(rèn)的原型基礎(chǔ)上完成軟件系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和使用與維護(hù)??焖僭湍P偷奶攸c(diǎn)如下:(1)原型驅(qū)動(dòng):整個(gè)軟件過(guò)程圍繞著原型的快速開發(fā)和對(duì)原型的評(píng)價(jià),通過(guò)原型確認(rèn)用戶需求,以及通過(guò)原型的反復(fù)修改最終得到用戶確認(rèn)的軟件定義。(2)過(guò)程的交互性和迭代性:軟件過(guò)程是由開發(fā)人員與用戶之間通過(guò)原型的評(píng)價(jià)和確認(rèn)而進(jìn)行的一個(gè)交互過(guò)程。而且這個(gè)過(guò)程不是簡(jiǎn)單的重復(fù),而是不斷改進(jìn)和完善的迭代過(guò)程??焖僭湍P偷膬?yōu)點(diǎn):允許用戶在軟件開發(fā)過(guò)程中完善對(duì)軟件系統(tǒng)的需求,開發(fā)周期相對(duì)有所縮短,成本比較低,有效地發(fā)揮用戶和開發(fā)人員之間的密切配合作用,使軟件過(guò)程更能體現(xiàn)逐步發(fā)展、逐步完善的原則??焖僭湍P偷娜秉c(diǎn):頻繁的需求變化會(huì)使開發(fā)進(jìn)程難于管理和控制,原型的快速開發(fā)和修改對(duì)技術(shù)要求比較高,需要有較好的工作基礎(chǔ)。2.3.3螺旋模型對(duì)于復(fù)雜的大型軟件,開發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型將瀑布模型與快速原型模型結(jié)合起來(lái),并且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析。螺旋模型沿著螺線旋轉(zhuǎn),如圖2.4所示,在笛卡爾坐標(biāo)的4個(gè)象限上分別表達(dá)了以下4個(gè)方面的活動(dòng):(1)制訂計(jì)劃——確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件;(2)風(fēng)險(xiǎn)分析——分析所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn);(3)實(shí)施工程——實(shí)施軟件開發(fā);(4)客戶評(píng)估——評(píng)價(jià)開發(fā)工作,提出修正建議。沿螺線自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更為完善的一個(gè)新的軟件版本。螺旋模型的基本思想:螺旋模型是瀑布模型和快速原型模型的結(jié)合,其基本思想是借助構(gòu)建原型來(lái)降低風(fēng)險(xiǎn),把軟件開發(fā)的每一個(gè)階段都看作是增加了風(fēng)險(xiǎn)分析的快速原型模型。螺旋模型的每一個(gè)周期都包括需求定義、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審4個(gè)部分,軟件開發(fā)的整個(gè)過(guò)程就是這4個(gè)部分的迭代,每迭代一次,過(guò)程就完成一個(gè)周期,軟件開發(fā)就前進(jìn)一個(gè)層次,系統(tǒng)就生成一個(gè)新的版本。螺旋模型的特點(diǎn)如下:(1)模型結(jié)合性:螺旋模型的每一個(gè)周期都應(yīng)用了原型模型排除風(fēng)險(xiǎn),在確認(rèn)了原型之后,又啟動(dòng)瀑布模型繼續(xù)過(guò)程的演化。因此,螺旋模型是瀑布模型和快速原型模型的結(jié)合,體現(xiàn)了兩個(gè)模型的優(yōu)點(diǎn)。(2)過(guò)程迭代性:軟件開發(fā)過(guò)程的每個(gè)階段都是一次迭代,這種迭代不是過(guò)程的簡(jiǎn)單重復(fù),而是每旋轉(zhuǎn)一個(gè)圈就前進(jìn)一個(gè)層次,得到一個(gè)新的版本。螺旋模型的優(yōu)點(diǎn):強(qiáng)調(diào)可選方案和約束條件有利于已有軟件的重用,有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo),減少過(guò)多或測(cè)試不足帶來(lái)的風(fēng)險(xiǎn)。維護(hù)被看成是模型的另一個(gè)周期,維護(hù)和開發(fā)之間沒(méi)有本質(zhì)的區(qū)別。螺旋模型的缺點(diǎn):要求軟件開發(fā)人員具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和有關(guān)的專門知識(shí),開發(fā)過(guò)程比較復(fù)雜,給過(guò)程管理和控制帶來(lái)一定的難度。2.3.4增量模型在增量模型中,軟件被作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、實(shí)現(xiàn)、集成和測(cè)試,每一個(gè)構(gòu)件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成的。增量模型在各個(gè)階段并不交付一個(gè)可運(yùn)行的完整產(chǎn)品,而是交付滿足客戶需求的一個(gè)子集的可運(yùn)行產(chǎn)品。整個(gè)產(chǎn)品被分解成若干個(gè)構(gòu)件,開發(fā)人員逐個(gè)構(gòu)件地交付產(chǎn)品,這樣做的好處是軟件開發(fā)可以較好地適應(yīng)變化,客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風(fēng)險(xiǎn),如圖2.5所示。增量模型也存在以下缺陷:(1)由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,因此加入構(gòu)件必須不能破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開放式的體系結(jié)構(gòu)。(2)在開發(fā)過(guò)程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而使軟件過(guò)程的控制失去整體性。在使用增量模型時(shí),第一個(gè)增量往往是實(shí)現(xiàn)基本需求的核心產(chǎn)品。核心產(chǎn)品交付用戶使用后,經(jīng)過(guò)評(píng)價(jià)形成下一個(gè)增量的開發(fā)計(jì)劃,它包括對(duì)核心產(chǎn)品的修改和一些新功能的發(fā)布。這個(gè)過(guò)程在每個(gè)增量發(fā)布后不斷重復(fù),直到產(chǎn)生最終的完善產(chǎn)品。增量模型的基本思想:把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、實(shí)現(xiàn)、集成和測(cè)試。開發(fā)時(shí)分批逐步向用戶提交產(chǎn)品,每次提交一個(gè)滿足用戶需求子集的增量構(gòu)件,直到最后一次得到滿足用戶全部需求的完整產(chǎn)品為止。增量模型的特點(diǎn):過(guò)程漸進(jìn)性,即軟件過(guò)程分批次完成,每次提交一個(gè)滿足用戶需求子集的增量構(gòu)件,產(chǎn)品規(guī)模逐漸增大,直到得到滿足用戶全部需求的完整產(chǎn)品為止。增量模型的優(yōu)點(diǎn):能在較短的時(shí)間內(nèi)向用戶提交部分功能的構(gòu)件,并且在逐步增加產(chǎn)品功能的過(guò)程中有充裕的時(shí)間學(xué)習(xí)和適應(yīng)新的功能,減少一個(gè)全新軟件可能給用戶帶來(lái)的沖擊。增量模型的缺點(diǎn):增量構(gòu)件的劃分依賴于系統(tǒng)功能的構(gòu)成和軟件開發(fā)人員的經(jīng)驗(yàn),每次集成新的增量構(gòu)件必須不能破壞原有軟件系統(tǒng)的結(jié)構(gòu),因此要求軟件系統(tǒng)的體系結(jié)構(gòu)必須具有高度的開放性和可擴(kuò)充性。2.3.5噴泉模型噴泉模型對(duì)軟件復(fù)用和生存周期中多項(xiàng)開發(fā)活動(dòng)的集成提供了支持,主要支持面向?qū)ο蟮拈_發(fā)方法。“噴泉”一詞本身體現(xiàn)了迭代和無(wú)間隙特性。系統(tǒng)某個(gè)部分常常重復(fù)工作多次,相關(guān)功能在每次迭代中隨之加入演進(jìn)的系統(tǒng)。所謂無(wú)間隙是指在開發(fā)活動(dòng),即分析、設(shè)計(jì)和編碼之間不存在明顯的邊界,如圖2.6所示。噴泉模型的基本思想:噴泉模型是典型的面向?qū)ο笊芷谀P?。“噴泉”這個(gè)詞描述了面向?qū)ο筌浖_發(fā)過(guò)程的迭代和無(wú)縫特性。在噴泉模型中,代表開發(fā)過(guò)程不同階段的圓圈之間互相交疊,而且各項(xiàng)開發(fā)活動(dòng)之間是無(wú)縫過(guò)渡的。每個(gè)階段內(nèi)的向下箭頭代表著階段自身的迭代或求精,整個(gè)軟件過(guò)程呈現(xiàn)一種開發(fā)階段沿中軸向上,又在每一個(gè)階段向下回流的噴泉形態(tài),所以稱為噴泉模型。噴泉模型的特點(diǎn):(1)過(guò)程迭代性:在面向?qū)ο蟮姆椒ㄖ?,軟件開發(fā)各個(gè)階段之間或一個(gè)階段內(nèi)的各個(gè)步驟之間都存在迭代的過(guò)程,這一點(diǎn)要比面向數(shù)據(jù)流或面向數(shù)據(jù)的方法更為常見(jiàn)。(2)階段間的無(wú)間隙過(guò)渡性:用面向?qū)ο蠓椒ㄩ_發(fā)軟件時(shí),在分析、設(shè)計(jì)、編碼等項(xiàng)開發(fā)活動(dòng)之間并不存在明顯的邊界,不同階段互相交疊,各項(xiàng)開發(fā)活動(dòng)之間無(wú)縫過(guò)渡。噴泉模型的優(yōu)點(diǎn):支持面向?qū)ο蠓椒ǖ能浖_發(fā)過(guò)程,提供軟件復(fù)用與生命周期中多項(xiàng)開發(fā)活動(dòng)集成的機(jī)制。噴泉模型的缺點(diǎn):噴泉模型本身就不是以面向過(guò)程為背景的,過(guò)程在噴泉模型中已被弱化,取而代之的是無(wú)間隙的階段過(guò)渡與重復(fù)迭代。2.3.6V形模型V形模型是瀑布模型的一個(gè)變種,如圖2.7所示。它同樣需要一步一步進(jìn)行,前一個(gè)階段的任務(wù)完成之后才可以進(jìn)行下一階段的任務(wù)。這個(gè)模型強(qiáng)調(diào)測(cè)試的重要性,它將開發(fā)活動(dòng)與測(cè)試活動(dòng)緊密地聯(lián)系在一起。每一步都將比前一階段進(jìn)行更加完善的測(cè)試。V形模型的特點(diǎn)如下:(1)簡(jiǎn)單易用,只要按照規(guī)定的步驟一步一步執(zhí)行即可。(2)?V形模型強(qiáng)調(diào)測(cè)試過(guò)程與開發(fā)過(guò)程的對(duì)應(yīng)性和并行性。(3)?V形模型沒(méi)有反映實(shí)際的開發(fā)過(guò)程,實(shí)際的開發(fā)過(guò)程會(huì)有很多的迭代過(guò)程,比如,實(shí)施過(guò)程中會(huì)發(fā)現(xiàn)設(shè)計(jì)中的問(wèn)題,然后去修正,測(cè)試過(guò)程中也會(huì)返回前一段,重新做一些事情。V形模型使用指南:使用V形模型,要求開發(fā)過(guò)程嚴(yán)格按照順序進(jìn)行,一個(gè)階段的輸出是下一個(gè)階段的輸入。同時(shí),要并行考慮圖2.7中虛線所對(duì)應(yīng)的過(guò)程。V形模型適合的場(chǎng)合:項(xiàng)目的需求在項(xiàng)目開始前很明確,解決方案在項(xiàng)目開始前也很明確,項(xiàng)目對(duì)系統(tǒng)的性能安全要求很嚴(yán)格。2.3.7形式化方法模型形式化方法模型特別適合于那些對(duì)安全性、可靠性和保密性要求極高的軟件系統(tǒng)開發(fā),它采用形式化的數(shù)學(xué)方法將系統(tǒng)描述轉(zhuǎn)換成可執(zhí)行的程序。形式化方法的過(guò)程模型如圖2.8所示,它首先將軟件需求描述提煉成采用數(shù)學(xué)符號(hào)表達(dá)的形式化描述,然后經(jīng)過(guò)一系列的形式化轉(zhuǎn)換將形式化描述自動(dòng)轉(zhuǎn)換成可執(zhí)行程序,最后將整個(gè)系統(tǒng)集成起來(lái)進(jìn)行測(cè)試。由于數(shù)學(xué)方法具有嚴(yán)密性和準(zhǔn)確性,因此形式化方法開發(fā)過(guò)程所交付的軟件系統(tǒng)具有較少的缺陷和較高的安全性。但是,形式化方法在實(shí)際軟件開發(fā)中應(yīng)用得并不多,其主要原因在于:(1)開發(fā)人員需要具備一定技能并經(jīng)過(guò)特殊訓(xùn)練后才能掌握形式化開發(fā)方法。(2)現(xiàn)實(shí)應(yīng)用的系統(tǒng)大多數(shù)是交互性強(qiáng)的軟件,但是這些系統(tǒng)難以用形式化方法進(jìn)行描述。(3)形式化描述和轉(zhuǎn)換是一項(xiàng)費(fèi)時(shí)、費(fèi)力的工作,采用這種方法開發(fā)系統(tǒng)在成本、質(zhì)量等方面并不占優(yōu)勢(shì)。2.3.8組合模型在實(shí)際應(yīng)用中,常常把幾種模型結(jié)合在一起,配套使用,這就是組合模型。模型的組合方式有兩種:一種方式是以某一種模型為主,嵌入另一種或幾種模型。例如,在生命周期模型中,為了幫助用戶和開發(fā)人員盡快確定軟件需求,在軟件設(shè)計(jì)階段之前可以嵌入原型模型。另一種方式是軟件開發(fā)人員根據(jù)軟件項(xiàng)目和軟件開發(fā)環(huán)境的特點(diǎn),建立一個(gè)特定的軟件開發(fā)組合模型,為開發(fā)過(guò)程設(shè)計(jì)一條選擇多種模型組合的路徑。當(dāng)然,路徑的選擇應(yīng)根據(jù)軟件開發(fā)的實(shí)際情況而定,目的是降低開發(fā)成本,縮短開發(fā)時(shí)間以及提高軟件產(chǎn)品的質(zhì)量。2.4微軟公司的軟件開發(fā)過(guò)程2.4.1微軟開發(fā)過(guò)程管理的基本原則一個(gè)優(yōu)秀軟件產(chǎn)品的成功,除了其先進(jìn)的技術(shù)含量之外,產(chǎn)品開發(fā)過(guò)程的科學(xué)管理也是不可或缺的重要因素。在軟件產(chǎn)品的開發(fā)過(guò)程中,微軟所遵循的一些基本原則如下:(1)以目標(biāo)驅(qū)動(dòng)而不是任務(wù)驅(qū)動(dòng)。整個(gè)軟件開發(fā)過(guò)程是以實(shí)現(xiàn)項(xiàng)目目標(biāo)為最高標(biāo)準(zhǔn)的,項(xiàng)目團(tuán)隊(duì)始終明白為什么開發(fā)這個(gè)產(chǎn)品,產(chǎn)品為誰(shuí)服務(wù),最終要發(fā)布的產(chǎn)品將具備哪些特性等目標(biāo),開發(fā)過(guò)程中的每一項(xiàng)工作任務(wù)都是圍繞最終的項(xiàng)目目標(biāo)制定的。(2)具有外部可見(jiàn)的里程碑。微軟公司的軟件開發(fā)過(guò)程是由里程碑來(lái)推動(dòng)和管理的,整個(gè)項(xiàng)目過(guò)程由不同的工作階段構(gòu)成,每一個(gè)工作階段都以外部可見(jiàn)的里程碑為標(biāo)志。項(xiàng)目團(tuán)隊(duì)可以借助里程碑管理每一個(gè)階段的工作目標(biāo),評(píng)估每一個(gè)階段的工作業(yè)績(jī),并且可以根據(jù)里程碑的要求同步項(xiàng)目組中的并發(fā)工作任務(wù)。(3)基于多版本的發(fā)布。微軟公司的軟件開發(fā)過(guò)程模型采用遞進(jìn)的版本發(fā)布策略,即最初創(chuàng)建和提供包含核心功能的產(chǎn)品版本,然后通過(guò)不斷地改進(jìn)和添加功能,陸續(xù)推出后續(xù)的版本。這種做法有利于適應(yīng)項(xiàng)目目標(biāo)的及時(shí)調(diào)整,也有利于產(chǎn)品質(zhì)量的保證。(4)并行協(xié)作的小型化團(tuán)隊(duì)。微軟公司建議采用小型化的項(xiàng)目組進(jìn)行軟件開發(fā),每個(gè)項(xiàng)目組通常由3~8人組成,其角色定義和職責(zé)劃分清楚,可以充分發(fā)揮個(gè)人在技術(shù)或管理上的經(jīng)驗(yàn)和技能,有利于相互之間的交流協(xié)作。對(duì)于大型項(xiàng)目來(lái)說(shuō),整個(gè)項(xiàng)目團(tuán)隊(duì)在開發(fā)初期被分解成若干結(jié)構(gòu)清晰、目標(biāo)明確和管理靈活的小型項(xiàng)目組,并按照微軟的團(tuán)隊(duì)模型進(jìn)行管理和角色劃分,小組之間通常是并行工作的。每隔3~6個(gè)月,項(xiàng)目管理者往往會(huì)根據(jù)項(xiàng)目的整體進(jìn)展情況對(duì)項(xiàng)目小組進(jìn)行重組,以適應(yīng)最新的項(xiàng)目需求。(5)經(jīng)常性的同步和穩(wěn)定。微軟公司強(qiáng)調(diào)在軟件項(xiàng)目的進(jìn)程中,經(jīng)常性地對(duì)整個(gè)軟件進(jìn)行編譯和測(cè)試,以保證軟件隨時(shí)處于可生成和可發(fā)布的狀態(tài)。其中,每日生成制度已經(jīng)成為所有項(xiàng)目組共同遵循的基本開發(fā)制度,即項(xiàng)目組在每天工作結(jié)束后,需要對(duì)整個(gè)產(chǎn)品的源代碼進(jìn)行編譯和鏈接,以檢驗(yàn)當(dāng)天的工作是否可以得到完整的且可發(fā)布的產(chǎn)品。此外,開發(fā)人員和測(cè)試人員也要經(jīng)常性地對(duì)軟件進(jì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)論