Posted on 2011-04-01 14:05
幻海藍(lán)夢(mèng) 閱讀(350)
評(píng)論(0) 編輯 收藏 所屬分類:
項(xiàng)目管理
軟件開(kāi)發(fā)模型是軟件開(kāi)發(fā)的全部過(guò)程、活
動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件開(kāi)發(fā)模型能清晰、直觀地表達(dá)軟件開(kāi)發(fā)全過(guò)程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來(lái)作為軟件項(xiàng)目開(kāi)發(fā)的基礎(chǔ)。典型的開(kāi)發(fā)模型
有:①瀑布模型(waterfall model);②漸增模型/演化/迭代(incremental model);③原型模型(prototype
model);④螺旋模型(spiral model);⑤噴泉模型(fountain model);⑥智能模型(intelligent
model) ; 7. 混合模型(hybrid model)
瀑布模型將軟件生命周期的各項(xiàng)活動(dòng)規(guī)定為依固定順序聯(lián)接的若干階段工作,形如瀑布流水,最終得到軟件產(chǎn)品。優(yōu)點(diǎn): a.強(qiáng)調(diào)開(kāi)發(fā)的階段性; b.強(qiáng)調(diào)早期計(jì)劃及需求調(diào)查; c.強(qiáng)調(diào)產(chǎn)品測(cè)試。
缺點(diǎn): a.依賴于早期進(jìn)行的唯一一次需求調(diào)查,不能適應(yīng)需求的變化; b.由于是單一流程,開(kāi)發(fā)中的經(jīng)驗(yàn)教訓(xùn)不能反饋應(yīng)用于本產(chǎn)品的過(guò)程; c.風(fēng)險(xiǎn)往往遲至后期的開(kāi)發(fā)階段才顯露,因而失去及早糾正的機(jī)會(huì)。
演
化模型主要針對(duì)事先不能完整定義需求的軟件開(kāi)發(fā)。用戶可以給出待開(kāi)發(fā)系統(tǒng)的核心需求,并且當(dāng)看到核心需求實(shí)現(xiàn)后,能夠有效地提出反饋,以支持系統(tǒng)的最終設(shè)
計(jì)和實(shí)現(xiàn)。軟件開(kāi)發(fā)人員根據(jù)用戶的需求,首先開(kāi)發(fā)核心系統(tǒng)。當(dāng)該核心系統(tǒng)投入運(yùn)行后,用戶試用之,完成他們的工作,并提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求。
軟件開(kāi)發(fā)人員根據(jù)用戶的反饋,實(shí)施開(kāi)發(fā)的迭代過(guò)程。第一迭代過(guò)程均由需求、設(shè)計(jì)、編碼、測(cè)試、集成等階段組成,為整個(gè)系統(tǒng)增加一個(gè)可定義的、可管理的子
集。
在開(kāi)發(fā)模式上采取分批循環(huán)開(kāi)發(fā)的辦法,每循環(huán)開(kāi)發(fā)一部分的功能,它們成為這個(gè)產(chǎn)品的原型的新增功能。于是,設(shè)計(jì)就不斷地演化出新的系統(tǒng)。 實(shí)際上,這個(gè)模型可看作是重復(fù)執(zhí)行的多個(gè)“瀑布模型”。
“演化模型”要求開(kāi)發(fā)人員有能力把項(xiàng)目的產(chǎn)品需求分解為不同組,以便分批循環(huán)開(kāi)發(fā)。這種分組并不是絕對(duì)隨意性的,而是要根據(jù)功能的重要性及對(duì)總體設(shè)計(jì)的基礎(chǔ)結(jié)構(gòu)的影響而作出判斷。有經(jīng)驗(yàn)指出,每個(gè)開(kāi)發(fā)循環(huán)以六周到八周為適當(dāng)?shù)拈L(zhǎng)度。
螺旋模型基本的做法是在“瀑布模型”的每一個(gè)開(kāi)發(fā)階段之前,引入非常嚴(yán)格的風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)控制。直到采取了消除風(fēng)險(xiǎn)的措施之后,才開(kāi)始計(jì)劃下一階段的開(kāi)發(fā)工作。否則,項(xiàng)目就很可能被取消。
另外,如果有充足的把握判斷遺留的風(fēng)險(xiǎn)已降低到一定的程度,項(xiàng)目管理人員可作出決定讓余下的開(kāi)發(fā)工作采用另外的生命周期模型,如“演化模型”,“瀑布模型”,或自定的混合模型。
優(yōu)點(diǎn): a.強(qiáng)調(diào)嚴(yán)格的全過(guò)程風(fēng)險(xiǎn)管理。b.強(qiáng)調(diào)各開(kāi)發(fā)階段的質(zhì)量。c.提供機(jī)會(huì)檢討項(xiàng)目是否有價(jià)值繼續(xù)下去。
缺點(diǎn): a.引入非常嚴(yán)格的風(fēng)險(xiǎn)識(shí)別,風(fēng)險(xiǎn)分析,和風(fēng)險(xiǎn)控制,這對(duì)風(fēng)險(xiǎn)管理的技能水平提出了很高的要求。這需要人員,資金,和時(shí)間的投入。
螺
旋模型是瀑布模型與演化模型相結(jié)合,并加入兩者所忽略的風(fēng)險(xiǎn)分析所建立的一種軟件開(kāi)發(fā)模型。該模型于1998年由美國(guó)TRW公司(B.W.Boehm)提
出。軟件項(xiàng)目風(fēng)險(xiǎn)的大小作為指引軟件過(guò)程的一個(gè)重要因素,引入這一概念有可能使得軟件開(kāi)發(fā)被看作一種元模型,因?yàn)樗馨萑魏我粋€(gè)開(kāi)發(fā)過(guò)程模型。
快
速原型(Rapid
Prototype)在功能上等價(jià)于產(chǎn)品的一個(gè)子集。注意,這里說(shuō)的是功能上。瀑布模型的缺點(diǎn)就在于不夠直觀,快速原型法就解決了這個(gè)問(wèn)題。一般來(lái)說(shuō),根
據(jù)客戶的需要在很短的時(shí)間內(nèi)解決用戶最迫切需要,完成一個(gè)可以演示的產(chǎn)品。這個(gè)產(chǎn)品只是實(shí)現(xiàn)部分的功能(最重要的)。它最重要的目的是為了確定用戶的真正
需求。在我的經(jīng)驗(yàn)中,這種方法非常的有效,原先對(duì)計(jì)算機(jī)沒(méi)有絲毫概念的用戶在你的原型面前往往口若懸河,有些觀點(diǎn)讓你都覺(jué)得非常的吃驚。在得到用戶的需求
之后,原型將被拋棄。因?yàn)樵烷_(kāi)發(fā)的速度很快,設(shè)計(jì)方面是幾乎沒(méi)有考慮的,如果保留原型的話,在隨后的開(kāi)發(fā)中會(huì)為此付出極大的代價(jià)。至于保留原型方面,也
是有一種叫做增量模型是這么做的,但這種模型并不為大家所接受。
噴泉模型(fountain model, (面向?qū)ο蟮纳嫫谀P?
OO模型))與傳統(tǒng)的結(jié)構(gòu)化生存期比較,具有更多的增量和迭代性質(zhì),生存期的各個(gè)階段可以相互重疊和多次反復(fù),而且在項(xiàng)目的整個(gè)生存期中還可以嵌入子生存
期。就像水噴上去又可以落下來(lái),可以落在中間,也可以落在最底部。
智能模型(四代技術(shù)(4GL))擁有一組工具(如數(shù)據(jù)查詢、報(bào)表生成、
數(shù)據(jù)處理、屏幕定義、代碼生成、高層圖形功能及電子表格等),每個(gè)工具都能使開(kāi)發(fā)人員在高層次上定義軟件的某些特性,并把開(kāi)發(fā)人員定義的這些軟件自動(dòng)地生
成為源代碼。這種方法需要四代語(yǔ)言(4GL)的支持。4GL不同于三代語(yǔ)言,其主要特征是用戶界面極端友好,即使沒(méi)有受過(guò)訓(xùn)練的非專業(yè)程序員,也能用它編
寫(xiě)程序;它是一種聲明式、交互式和非過(guò)程性編程語(yǔ)言。4GL還具有高效的程序代碼、智能缺省假設(shè)、完備的數(shù)據(jù)庫(kù)和應(yīng)用程序生成器。目前市場(chǎng)上流行的
4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事務(wù)信息系統(tǒng)的中、小型應(yīng)用程序的開(kāi)發(fā)。
過(guò)程開(kāi)發(fā)模型又叫
混合模型(hybrid
model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許一個(gè)項(xiàng)目能沿著最有效的路徑發(fā)展,這就是過(guò)程開(kāi)發(fā)模型(或混
合模型)。實(shí)際上,一些軟件開(kāi)發(fā)單位都是使用幾種不同的開(kāi)發(fā)方法組成他們自己的混合模型。
原文: http://stevenliao.bokee.com/1511523.html