版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2.1軟件生命周期
2.2軟件開發(fā)模型第2章軟件生命周期與開發(fā)模型2.1軟件生命周期
軟件生命周期可劃分為計(jì)劃階段、開發(fā)階段、運(yùn)行與維護(hù)階段三個階段,如圖2-1所示。圖2-1軟件生命周期
1.計(jì)劃階段計(jì)劃階段也叫“軟件定義”階段。它的任務(wù)是軟件開發(fā)人員與用戶充分溝通,從全局的角度把問題明晰化,從而進(jìn)行可行性研究,探討解決該問題的可能解決方案,結(jié)合軟件開發(fā)、使用的可利用條件(計(jì)算機(jī)硬件、軟件、人力等資源)、開發(fā)費(fèi)用以及軟件投入使用后的經(jīng)濟(jì)效益等方面的情況,對定義的問題做出客觀評價,寫出“可行性分析報告”和“需求分析報告”。計(jì)劃階段的任務(wù)可總結(jié)為:(1)確定軟件項(xiàng)目必須完成的總目標(biāo);(2)進(jìn)行可行性分析,確定項(xiàng)目的可行性;(3)明確項(xiàng)目目標(biāo)及應(yīng)該采用的策略;(4)估算項(xiàng)目需要的資源和成本,并制定項(xiàng)目進(jìn)度表。
2.開發(fā)階段一個軟件的開發(fā)階段大體包括需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測試、綜合測試五個步驟(如圖2-2中(4)至(8)部分所示)。圖2-2軟件的開發(fā)過程在圖2-2中,左列表示每個過程進(jìn)行前的審查,中間列表示開發(fā)過程,右列表示每個過程的交付物。上述過程中可能涉及到下列各種參與軟件開發(fā)的人員的角色:用戶、維護(hù)人員、使用人員、客戶經(jīng)理、項(xiàng)目經(jīng)理、編程人員、測試人員、需求分析人員、系統(tǒng)分析人員、美工及產(chǎn)品發(fā)布人員。如圖2-3所示。圖2-3軟件開發(fā)人員的角色下面對軟件生命周期各階段加以詳細(xì)介紹:
1)需求分析這個階段的任務(wù)是對用戶的需求進(jìn)行分析和綜合,確定軟件的基本目標(biāo)和邏輯功能要求,解決系統(tǒng)要“做什么”的問題,寫出軟件需求規(guī)格說明書。該需求規(guī)格說明書是軟件工程中最重要的文件,它準(zhǔn)確地記錄了對目標(biāo)系統(tǒng)的要求,它是用戶和軟件開發(fā)人員之間共同的約定及軟件開發(fā)人員進(jìn)行后續(xù)開發(fā)的基礎(chǔ)。
2)概要設(shè)計(jì)這個階段的主要任務(wù)是解決“怎么做”的問題。概要設(shè)計(jì)決定軟件系統(tǒng)的總體結(jié)構(gòu)即模塊結(jié)構(gòu),并給出模塊的相互調(diào)用關(guān)系、模塊間傳遞的數(shù)據(jù)及每個模塊的功能說明。這個階段的文檔資料是軟件結(jié)構(gòu)圖和模塊功能說明。
3)詳細(xì)設(shè)計(jì)這個階段的任務(wù)是把每個模塊內(nèi)部過程的描述具體化,也就是回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個系統(tǒng)”。該階段的任務(wù)并不是編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說明書。該規(guī)格說明書類似于其他工程領(lǐng)域使用的工程藍(lán)圖。
4)編碼和單元測試這個階段的主要任務(wù)是程序員根據(jù)軟件詳細(xì)規(guī)格說明書,寫出正確的、容易理解和維護(hù)的程序模塊。程序員要選取一種適當(dāng)?shù)某绦蛟O(shè)計(jì)語言,把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定語言書寫的程序,并仔細(xì)測試編寫的每一個模塊。
5)綜合測試綜合測試階段的主要任務(wù)是通過各種類型的測試來發(fā)現(xiàn)和排除錯誤,對軟件系統(tǒng)進(jìn)行全面的測試和檢驗(yàn),檢查其是否符合軟件需求。在此期間,要提出測試標(biāo)準(zhǔn),制定測試計(jì)劃,設(shè)計(jì)測試用例,確定測試方法。通過對軟件測試結(jié)果的分析可以預(yù)測軟件的可靠性;反之,根據(jù)軟件可靠性的要求,也可以決定測試和調(diào)試過程什么時候可以結(jié)束。最終還必須寫出軟件測試報告。
3.運(yùn)行與維護(hù)階段軟件運(yùn)行與維護(hù)是軟件生命周期中持續(xù)時間最長的階段。在軟件開發(fā)完成并投入使用后,由于各種原因,軟件在運(yùn)行過程中可能會出現(xiàn)一些問題,這就要求我們對軟件進(jìn)行維護(hù)。軟件的維護(hù)一般包括改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)等四個方面。
軟件開發(fā)模型是在軟件生命周期基礎(chǔ)上構(gòu)造出的軟件開發(fā)全部過程、活動和任務(wù)的結(jié)構(gòu)框架。因此,軟件開發(fā)模型又稱為軟件生命周期模型。利用軟件開發(fā)模型能夠清晰、直觀地描述軟件開發(fā)全部過程,明確規(guī)定軟件開發(fā)過程中所必須要完成的主要活動和任務(wù)。因此,也稱為“過程模型”。軟件工程研究學(xué)者和開發(fā)人員根據(jù)軟件開發(fā)的實(shí)踐經(jīng)驗(yàn),相繼提出了瀑布模型、螺旋模型、增量模型和噴泉模型等多種軟件開發(fā)模型。2.2軟件開發(fā)模型
1.瀑布模型瀑布模型的核心思想是將軟件生命周期劃分為需求分析、系統(tǒng)設(shè)計(jì)、軟件編程、軟件測試和軟件維護(hù)等基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。開發(fā)過程從一個階段“流動”到下一個階段,這也是瀑布模型名稱的由來。采用瀑布模型的軟件開發(fā)過程如圖2-4所示。圖2-4瀑布模型的軟件過程圖2-4把軟件開發(fā)過程劃分為需求分析、系統(tǒng)設(shè)計(jì)(通常把概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)通稱為系統(tǒng)設(shè)計(jì))、軟件編程、軟件測試和軟件維護(hù)五個階段,并給出了每個階段應(yīng)該交付的文檔:“需求分析報告”、“系統(tǒng)設(shè)計(jì)報告”、“源程序”、“測試報告”、“更改要求”。圖2-4同時還給出了每一個階段應(yīng)該參與的角色:系統(tǒng)分析員(A)、項(xiàng)目管理員(M)、程序員(P)、高級程序員(T)、用戶(U)。從圖2-4我們可以看出瀑布模型具有以下特點(diǎn):
(1)連續(xù)性。前一階段的工作完成后,后一階段的工作才能開始,前一階段輸出的文檔是后一階段的輸入文檔。另外,前后兩個階段之間不存在反饋的關(guān)系,全部活動呈現(xiàn)出理想的線性關(guān)系。
(2)需要嚴(yán)格的質(zhì)量管理。由于該模型不存在反饋,如果前面階段工作存在錯誤而又不能及時發(fā)現(xiàn)時,將造成極大的損失,因此某個階段結(jié)束時,對該階段提交的文檔均必須進(jìn)行嚴(yán)格的技術(shù)審查和管理復(fù)審。(技術(shù)審查是從技術(shù)的角度,對該階段開發(fā)出的產(chǎn)品進(jìn)行檢驗(yàn)。管理復(fù)審是在每個階段結(jié)束時,對項(xiàng)目成本、進(jìn)度、實(shí)際的費(fèi)用及投資回收前景從管理角度進(jìn)行復(fù)查。)利用瀑布模型進(jìn)行軟件項(xiàng)目開發(fā)有利于開發(fā)過程中人員的組織及管理,有利于開發(fā)方法和工具的研究與使用,有利于提高軟件項(xiàng)目開發(fā)的質(zhì)量和效率。但由于實(shí)際軟件開發(fā)過程不可能是完全理想的自上而下的線性關(guān)系,因此瀑布模型存在以下嚴(yán)重的缺陷:
(1)各個階段的劃分完全固定,每個階段產(chǎn)生大量的文檔,極大地增加了工作量;
(2)瀑布模型依賴于需求分析的準(zhǔn)確性,但在實(shí)踐中很難獲得準(zhǔn)確不變的需求說明;
(3)缺乏靈活性,一旦軟件需求存在偏差,就會導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能滿足用戶的實(shí)際需求。
(4)由于此開發(fā)模型呈線性關(guān)系,所以只有當(dāng)開發(fā)工作結(jié)束時用戶才能看到軟件的運(yùn)行效果,這也增加了項(xiàng)目的風(fēng)險。
2.快速原型開發(fā)
1)軟件原型化方法的定義軟件原型化方法是指在獲得一組基本需求說明后,快速構(gòu)造出一個小型的軟件系統(tǒng)(即原型系統(tǒng)),以此滿足用戶的基本要求。用戶試用該原型系統(tǒng),從中得到感受和啟發(fā),并對該原型系統(tǒng)做出反映和評價,然后開發(fā)者根據(jù)用戶的意見對原型加以改進(jìn)。隨著不斷地實(shí)驗(yàn)、糾錯、使用、評價和修改,用戶不斷獲得新的原型版本。如此反復(fù),逐步減少分析中的誤解,彌補(bǔ)不足,從而提高最終產(chǎn)品的質(zhì)量。軟件原型化方法的基本思想是花費(fèi)少量代價建立一個可運(yùn)行的系統(tǒng),強(qiáng)調(diào)軟件開發(fā)人員與用戶的不斷溝通,通過原型的演進(jìn)不斷適應(yīng)用戶的需求。將維護(hù)和修改階段的工作盡早進(jìn)行,從而使軟件產(chǎn)品滿足用戶需求。
2)軟件原型化方法的分類軟件原型化方法主要用在需求分析階段,但也可以用于軟件開發(fā)的其他階段。原型化方法有以下兩種不同的類型。
(1)廢棄型。廢棄型也稱快速建立需求規(guī)格原型法。先構(gòu)造一個功能簡單而且質(zhì)量要求不高的模型系統(tǒng),針對這個模型系統(tǒng)反復(fù)進(jìn)行分析修改,從而形成較好的設(shè)計(jì)思想。據(jù)此設(shè)計(jì)出更加完整、準(zhǔn)確、一致、可靠的最終產(chǎn)品。最終產(chǎn)品形成后,原來的模型就被廢棄。
(2)追加型。追加型也稱快速建立漸進(jìn)原型法。它采用循環(huán)漸進(jìn)的開發(fā)方式,首先構(gòu)造一個功能相對簡單的模型系統(tǒng),作為最終系統(tǒng)的核心,然后將系統(tǒng)需要具備的功能逐步添加上去,通過不斷地?cái)U(kuò)充修改,逐步追加新的要求,直至滿足系統(tǒng)所有需求,此時的原型系統(tǒng)也就是最終產(chǎn)品。3)原型生存周期原型生存周期是指項(xiàng)目原型的開發(fā)和使用的整個過程,主要包括原型分析、原型構(gòu)造、原型運(yùn)行與評價、原型修正、判斷原型完成、判定原型效果、整理原型和提供文檔。圖2-5(a)所示為原型開發(fā)模型,圖2-5(b)所示為模型的細(xì)化過程。(1)原型分析。原型分析是指在分析者和用戶的緊密配合下,快速確定軟件系統(tǒng)的基本要求的過程。(2)原型構(gòu)造。在原型分析的基礎(chǔ)上,根據(jù)基本需求規(guī)格說明,忽略細(xì)節(jié),只考慮主要特性,快速構(gòu)造一個可運(yùn)行的系統(tǒng)。(3)原型運(yùn)行與評價。原型運(yùn)行與評價階段是軟件開發(fā)人員與用戶頻繁溝通、發(fā)現(xiàn)問題、消除對需求誤解的重要階段。(4)原型修正。對于原型系統(tǒng),一定要根據(jù)修改意見進(jìn)行修正。(5)判定原型完成。如果原型經(jīng)過修正和改進(jìn)已獲得了參與者的一致認(rèn)可,那么原型開發(fā)的迭代過程可以結(jié)束。(6)判定原型效果。(7)整理原型和提供文檔。整理原型的目的是為進(jìn)一步開發(fā)提供依據(jù)。整理完成之后即可提供原型文檔。4)快速原型的優(yōu)點(diǎn)使用快速原型化開發(fā)方法進(jìn)行軟件開發(fā)具有以下優(yōu)點(diǎn):(1)增進(jìn)了軟件開發(fā)人員和用戶對系統(tǒng)需求的理解,便于將用戶模糊的需求明確化。(2)可以克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來的開發(fā)風(fēng)險。
3.增量模型增量模型在瀑布模型的基礎(chǔ)上進(jìn)行了改進(jìn),它使得開發(fā)過程具有一定的靈活性和可修改性。增量模型又稱為漸增模型,其實(shí)質(zhì)是分段的線性模型。增量模型和瀑布模型之間的本質(zhì)區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細(xì)節(jié)。而增量模型屬于非整體開發(fā)模型,它在下一階段的工作開始之前,可以只完成前一階段的部分任務(wù)。增量模型如圖2-6所示。圖2-6增量模型瀑布模型在每個階段交付相應(yīng)階段的完整產(chǎn)品,而增量模型只是交付相應(yīng)階段的部分產(chǎn)品(這個部分產(chǎn)品也就是軟件的構(gòu)件)。這樣做的好處是客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風(fēng)險。但是,增量模型也存在以下缺陷:
(1)由于各個構(gòu)件是逐步并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件的前提是不破壞已構(gòu)造好的系統(tǒng),這就要求采用開放式的軟件體系結(jié)構(gòu)。
(2)在開發(fā)過程中,需求的變化是不可避免的。雖然增量模型能夠較好地適應(yīng)需求的變化,但很容易退化為邊做邊改模型,從而導(dǎo)致軟件整體過程的失控。在使用增量模型時,第一個增量往往是實(shí)現(xiàn)基本需求的核心產(chǎn)品。核心產(chǎn)品交付用戶使用后,經(jīng)過評價形成下一個增量的開發(fā)計(jì)劃,它包括對核心產(chǎn)品的修改和一些新功能的發(fā)布。這個過程在每個增量發(fā)布后不斷重復(fù),直到產(chǎn)生最終的產(chǎn)品。
4.迭代式模型迭代式模型是統(tǒng)一開發(fā)過程(RUP,詳見第8章)推薦的周期模型。在統(tǒng)一開發(fā)過程中,每個階段都可以細(xì)分,并進(jìn)行迭代。每一次迭代都會產(chǎn)生一個可以發(fā)布的產(chǎn)品,這個產(chǎn)品是最終產(chǎn)品的一個子集。迭代式模型如圖2-6所示。圖2-6迭代式模型迭代開發(fā)方法具有以下優(yōu)點(diǎn):(1)能夠適應(yīng)需求的變化;(2)每一次迭代都可以發(fā)現(xiàn)并更正缺陷;(3)可以及早暴露風(fēng)險;(4)使軟件重用更加容易。
5.螺旋模型
1988年,Barry
Boehm正式發(fā)表了軟件系統(tǒng)開發(fā)的“螺旋模型”。它將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所忽視的風(fēng)險分析,特別適合于大型復(fù)雜的系統(tǒng)。螺旋模型被劃分為若干框架活動,也稱任務(wù)區(qū)域。一般情況下,有3~6個任務(wù)區(qū)域。圖2-7形象地描述了包含4個任務(wù)區(qū)域的螺旋模型。圖2-7螺旋模型螺旋模型沿著螺線進(jìn)行若干次迭代,螺旋模型沿著螺線旋轉(zhuǎn),每個螺旋推進(jìn)的過程都是漸進(jìn)的實(shí)現(xiàn)過程,整個過程的實(shí)現(xiàn),按照“制定計(jì)劃、風(fēng)險分析、開發(fā)與測試和客戶評估”四個步驟循環(huán)實(shí)施:
(1)制定計(jì)劃。確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件。定義資源、進(jìn)度及其他相關(guān)項(xiàng)目信息所需要的任務(wù),以調(diào)整項(xiàng)目的目標(biāo)和改善系統(tǒng)實(shí)施的效率。確定系統(tǒng)要達(dá)到的目標(biāo),同時要受預(yù)算、時間等條件的限制,而且必須作出一定的選擇和取舍。
(2)風(fēng)險分析。分析評估所選方案,考慮如何識別和消除風(fēng)險。從風(fēng)險角度分析方案的開發(fā)策略,努力排除各種潛在的風(fēng)險,有時需要通過建造原型來完成。如果某些風(fēng)險不能排除,該方案立即終止,否則啟動下一個開發(fā)步驟?;谏鲜瞿繕?biāo),評估技術(shù)及管理的風(fēng)險,以決定如何實(shí)施項(xiàng)目。
(3)開發(fā)與測試。實(shí)施軟件開發(fā)和驗(yàn)證,包括系統(tǒng)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單元測試、系統(tǒng)測試和驗(yàn)證測試等項(xiàng)目具體實(shí)施的各種任務(wù)。
(4)客戶評估。評價開發(fā)工作,提出修正建議,制定下一步計(jì)劃。軟件工程項(xiàng)目組按順時針方向沿螺旋移動,從核心開始。螺旋模型的開發(fā)是沿螺線自內(nèi)向外每旋轉(zhuǎn)一周便開發(fā)出更為完善的一個新的軟件版本。開發(fā)過程每迭代一次,螺線就增加一周,軟件開發(fā)又前進(jìn)一個層次,系統(tǒng)又生成一個更為完善的新版本。客戶對該版本做出評價后,給出修正建議。在此基礎(chǔ)上需再次計(jì)劃,并進(jìn)行風(fēng)險分析。在每一圈螺線上的風(fēng)險分析的終點(diǎn)做出是否繼續(xù)下去的判斷。如果風(fēng)險太大,開發(fā)者和用戶無法承受,則項(xiàng)目可能終止。多數(shù)情況下沿螺線的活動會繼續(xù)下去,自內(nèi)向外逐步延伸,最終得到一個客
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度SPF豬飼養(yǎng)產(chǎn)業(yè)鏈大數(shù)據(jù)分析與決策支持合同
- 系統(tǒng)集成課程設(shè)計(jì)日志
- 2025版高端商務(wù)辦公租賃合同范本2篇
- 2025版彩鋼瓦屋頂安裝與建筑節(jié)能改造評估合同3篇
- 自動控制的課程設(shè)計(jì)
- 老馬養(yǎng)殖課程設(shè)計(jì)
- 2024年股權(quán)買賣保證書
- 油壺蓋課程設(shè)計(jì)
- 二零二五年度個人融資租賃合同示范文本下載3篇
- 美甲教學(xué)課程設(shè)計(jì)方案
- 安全注射培訓(xùn)考核試題及答案
- 自動化包裝流水線解決方案
- 工藝豎井開挖支護(hù)施工技術(shù)方案(清楚明了)
- 水利五大員施工員教材講義
- 醫(yī)療機(jī)構(gòu)資產(chǎn)負(fù)債表(通用模板)
- 廢舊鋰離子電池高值資源化回收利用項(xiàng)目環(huán)評報告書
- 審計(jì)英語詞匯大全講課教案
- JIS G3507-1-2021 冷鐓用碳素鋼.第1部分:線材
- 初二家長會ppt通用PPT課件
- 小學(xué)生家庭作業(yè)布置存在的誤區(qū)及改進(jìn)策略論文1
- 生物醫(yī)學(xué)研究的統(tǒng)計(jì)學(xué)方法課后習(xí)題答案 2014 主編 方積乾
評論
0/150
提交評論