久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

常見的軟件開發(fā)模型

 踏實地_望星空 2015-11-03
常見的軟件開發(fā)模型 2008-03-13 17:14:44

分類: 項目管理

 軟件工程的主要環(huán)節(jié)包括人員管理、項目管理,、需求分析,、系統(tǒng)設計、程序設計,、測試,、維護等,如圖1.5所示,。軟件開發(fā)模型是對軟件過程的建模,,即用一定的流程將各個環(huán)節(jié)連接起來,并可用規(guī)范的方式操作全過程,好比工廠的生產(chǎn)線,。

圖1.5 軟件工程的主要環(huán)節(jié)

邊做邊改模型(Build-and-Fix Model)
  遺憾的是,,許多產(chǎn)品都是使用"邊做邊改"模型來開發(fā)的。在這種模型中,,既沒有規(guī)格說明,,也沒有經(jīng)過設計,軟件隨著客戶的需要一次又一次地不斷被修改,,如圖1.6所示,。

圖1.6 邊做邊改模型

  在這個模型中,開發(fā)人員拿到項目立即根據(jù)需求編寫程序,,調(diào)試通過后生成軟件的第一個版本,。在提供給用戶使用后,如果程序出現(xiàn)錯誤,,或者用戶提出新的要求,,開發(fā)人員重新修改代碼,直到用戶滿意為止,。
  這是一種類似作坊的開發(fā)方式,,對編寫幾百行的小程序來說還不錯,但這種方法對任何規(guī)模的開發(fā)來說都是不能令人滿意的,,其主要問題在于:
 ?。?) 缺少規(guī)劃和設計環(huán)節(jié),軟件的結(jié)構(gòu)隨著不斷的修改越來越糟,,導致無法繼續(xù)修改,;
  (2) 忽略需求環(huán)節(jié),,給軟件開發(fā)帶來很大的風險,;
  (3) 沒有考慮測試和程序的可維護性,,也沒有任何文檔,,軟件的維護十分困難。

瀑布模型(Waterfall Model)

  1970年Winston Royce提出了著名的"瀑布模型",,直到80年代早期,,它一直是唯一被廣泛采用的軟件開發(fā)模型。
  瀑布模型如圖1.7所示,,它將軟件生命周期劃分為制定計劃,、需求分析、軟件設計,、程序編寫,、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,,如同瀑布流水,,逐級下落。

圖1.7 瀑布模型

  在瀑布模型中,,軟件開發(fā)的各項活動嚴格按照線性方式進行,,當前活動接受上一項活動的工作結(jié)果,實施完成所需的工作內(nèi)容,。當前活動的工作結(jié)果需要進行驗證,,如果驗證通過,則該結(jié)果作為下一項活動的輸入,,繼續(xù)進行下一項活動,,否則返回修改。
  瀑布模型強調(diào)文檔的作用,,并要求每個階段都要仔細驗證,。但是,這種模型的線性過程太理想化,,已不再適合現(xiàn)代的軟件開發(fā)模式,,幾乎被業(yè)界拋棄,其主要問題在于:
 ?。?) 各個階段的劃分完全固定,,階段之間產(chǎn)生大量的文檔,極大地增加了工作量,;
 ?。?) 由于開發(fā)模型是線性的,,用戶只有等到整個過程的末期才能見到開發(fā)成果,,從而增加了開發(fā)的風險;
 ?。?) 早期的錯誤可能要等到開發(fā)后期的測試階段才能發(fā)現(xiàn),,進而帶來嚴重的后果。

   我們應該認識到,,"線性"是人們最容易掌握并能熟練應用的思想方法,。當人們碰到一個復雜的"非線性"問題時,總是千方百計地將其分解或轉(zhuǎn)化為一系列簡單 的線性問題,,然后逐個解決,。一個軟件系統(tǒng)的整體可能是復雜的,而單個子程序總是簡單的,,可以用線性的方式來實現(xiàn),,否則干活就太累了。線性是一種簡潔,簡潔 就是美,。當我們領(lǐng)會了線性的精神,,就不要再呆板地套用線性模型的外表,而應該用活它,。例如增量模型實質(zhì)就是分段的線性模型,,螺旋模型則是接連的彎曲了的線 性模型,在其它模型中也能夠找到線性模型的影子,。

快速原型模型(Rapid Prototype Model)

  快速原型模型的第一步是建造一個快速原型,,實現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,用戶或客戶對原型進行評價,,進一步細化待開發(fā)軟件的需求,。通過逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的真正需求是什么,;第二步則在第一步的基礎上開發(fā)客戶滿意的軟件產(chǎn)品,。
  顯然,快速原型方法可以克服瀑布模型的缺點,,減少由于軟件需求不明確帶來的開發(fā)風險,,具有顯著的效果。

  快速原型的關(guān)鍵在于盡可能快速地建造出軟件原型,,一旦確定了客戶的真正需求,,所建造的原型將被丟棄。因此,,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,,重要的是必須迅速建立原型,隨之迅速修改原型,,以反映客戶的需求,。

  
增量模型(Incremental Model)
  與建造大廈相同,軟件也是一步一步建造起來的,。在增量模型中,,軟件被作為一系列的增量構(gòu)件來設計、實現(xiàn),、集成和測試,,每一個構(gòu)件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成,如圖1.8所示,。
   增量模型在各個階段并不交付一個可運行的完整產(chǎn)品,,而是交付滿足客戶需求的一個子集的可運行產(chǎn)品。整個產(chǎn)品被分解成若干個構(gòu)件,,開發(fā)人員逐個構(gòu)件地交付 產(chǎn)品,,這樣做的好處是軟件開發(fā)可以較好地適應變化,,客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風險,。但是,,增量模型也存在以下缺陷:
  (1) 由于各個構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,,這需要軟件具備開放式的體系結(jié)構(gòu)。
 ?。?) 在開發(fā)過程中,,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,,但也很容易退化為邊做邊改模型,,從而是軟件過程的控制失去整體性。

圖1.8 增量模型

  在使用增量模型時,,第一個增量往往是實現(xiàn)基本需求的核心產(chǎn)品,。核心產(chǎn)品交付用戶使用后,經(jīng)過評價形成下一個增量的開發(fā)計劃,,它包括對核心產(chǎn)品的修改和一些新功能的發(fā)布,。這個過程在每個增量發(fā)布后不斷重復,直到產(chǎn)生最終的完善產(chǎn)品,。
  例如,,使用增量模型開發(fā)字處理軟件??梢钥紤],,第一個增量發(fā)布基本的文件管理、編輯和文檔生成功能,,第二個增量發(fā)布更加完善的編輯和文檔生成功能,,第三個增量實現(xiàn)拼寫和文法檢查功能,第四個增量完成高級的頁面布局功能,。

螺旋模型(Spiral Model)
  1988年,,Barry Boehm正式發(fā)表了軟件系統(tǒng)開發(fā)的"螺旋模型",它將瀑布模型和快速原型模型結(jié)合起來,,強調(diào)了其他模型所忽視的風險分析,特別適合于大型復雜的系統(tǒng),。
  如圖1.9所示,,螺旋模型沿著螺線進行若干次迭代,圖中的四個象限代表了以下活動:
 ?。?) 制定計劃:確定軟件目標,,選定實施方案,,弄清項目開發(fā)的限制條件;
 ?。?) 風險分析:分析評估所選方案,,考慮如何識別和消除風險;
 ?。?) 實施工程:實施軟件開發(fā)和驗證,;
  (4) 客戶評估:評價開發(fā)工作,,提出修正建議,,制定下一步計劃。
  螺旋模型由風險驅(qū)動,,強調(diào)可選方案和約束條件從而支持軟件的重用,,有助于將軟件質(zhì)量作為特殊目標融入產(chǎn)品開發(fā)之中。但是,,螺旋模型也有一定的限制條件,,具體如下:
  (1) 螺旋模型強調(diào)風險分析,,但要求許多客戶接受和相信這種分析,,并做出相關(guān)反應是不容易的,因此,,這種模型往往適應于內(nèi)部的大規(guī)模軟件開發(fā),。
  (2) 如果執(zhí)行風險分析將大大影響項目的利潤,,那么進行風險分析毫無意義,,因此,螺旋模型只適合于大規(guī)模軟件項目,。
 ?。?) 軟件開發(fā)人員應該擅長尋找可能的風險,準確地分析風險,,否則將會帶來更大的風險,。

圖1.9 螺旋模型

  一個階段首先是確定該階段的目標,完成這些目標的選擇方案及其約束條 件,,然后從風險角度分析方案的開發(fā)策略,,努力排除各種潛在的風險,有時需要通過建造原型來完成,。如果某些風險不能排除,,該方案立即終止,否則啟動下一個開 發(fā)步驟,。最后,,評價該階段的結(jié)果,,并設計下一個階段。

各種模型的比較

  每個軟件開發(fā)組織應該選擇適合于該組織的軟件開發(fā)模型,,并且應該隨著當前正在開發(fā)的特定產(chǎn)品特性而變化,,以減小所選模型的缺點,充分利用其優(yōu)點,,下表列出了幾種常見模型的優(yōu)缺點,。

模型
優(yōu)點
缺點
瀑布模型 文檔驅(qū)動 系統(tǒng)可能不滿足客戶的需求
快速原型模型 關(guān)注滿足客戶需求 可能導致系統(tǒng)設計差、效率低,,難于維護
增量模型 開發(fā)早期反饋及時,,易于維護 需要開放式體系結(jié)構(gòu),可能會設計差,、效率低
螺旋模型 風險驅(qū)動 風險分析人員需要有經(jīng)驗且經(jīng)過充分訓練

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多