-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
簡述軟件開發(fā)模型(簡述軟件開發(fā)模型中原型模型的選用條件)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于簡述軟件開發(fā)模型的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內(nèi)免費(fèi)在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、為什么要使用軟件開發(fā)模型
軟件開發(fā)模型能清晰、直觀地表達(dá)軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動和任務(wù),用來作為軟件項(xiàng)目工作的基礎(chǔ)。對于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、使用不同的程序設(shè)計(jì)語言以及各種不同技能的人員參與工作、運(yùn)用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。
擴(kuò)展資料
軟件開發(fā)模型基本目標(biāo)
1、開發(fā)盡可能多的軟件產(chǎn)品,滿足社會對軟件全方位、不同應(yīng)用領(lǐng)域的應(yīng)用需求,是軟件工程的首要目標(biāo)。
2、提高軟件的生產(chǎn)效率。由于軟件產(chǎn)品的特殊性使得如何提高軟件產(chǎn)品的生產(chǎn)效率成了迫切需要解決的難題。為此,人們從各個(gè)方面研究、探討軟件產(chǎn)品生產(chǎn)的內(nèi)在規(guī)律,包括生產(chǎn)過程的管理、組織形式、開發(fā)工具、程序設(shè)計(jì)方法等,試圖找出比較滿意的求解方案。
3、滿足應(yīng)用的功能需要。這里包括幾層意思:產(chǎn)品功能強(qiáng)、性能好、按期交付使用、易于用戶操作和維護(hù)。
4、降低軟件開發(fā)成本,包括降低軟件設(shè)計(jì)成本和軟件維護(hù)成本,而軟件維護(hù)成本比開發(fā)成本要大得多。因此,提高軟件可維護(hù)性是降低軟件開發(fā)成本的有效途徑。
參考資料來源:百度百科-軟件開發(fā)模型
參考資料來源:百度百科-軟件工程模型
二、簡述各類軟件過程模型的特點(diǎn)
.瀑布模型
它提出了軟件開發(fā)的系統(tǒng)化的、順序的方法。其流程從系統(tǒng)開始,隨后是需求分析、設(shè)計(jì)、編碼、測試、支持。這種模型是最早也是應(yīng)用最廣泛的軟件過程模型(雖然這種模型會引起“堵賽狀態(tài)”)。
優(yōu)點(diǎn):
1.它提供了一個(gè)模板,這個(gè)模板使得分析、設(shè)計(jì)、編碼、測試和支持的方法可以在該摸板下有一個(gè)共同的指導(dǎo)。
2.雖然有不少缺陷但比在軟件開發(fā)中隨意的狀態(tài)要好得多。
缺點(diǎn):
1.實(shí)際的項(xiàng)目大部分情況難以按照該模型給出的順序進(jìn)行,而且這種模型的迭代是間接的,這很容易由微小的變化而造成大的混亂。
2.經(jīng)常情況下客戶難以表達(dá)真正的需求,而這種模型卻要求如此,這種模型是不歡迎具有二義性問題存在的。
3.客戶要等到開發(fā)周期的晚期才能看到程序運(yùn)行的測試版本,而在這時(shí)發(fā)現(xiàn)大的錯(cuò)誤時(shí),可能引起客戶的驚慌,而后果也可能是災(zāi)難性的。
4.采用這種線性模型,會經(jīng)常在過程的開始和結(jié)束時(shí)碰到等待其他成員完成其所依賴的任務(wù)才能進(jìn)行下去,有可能花在等待的時(shí)間比開發(fā)的時(shí)間要長。我們稱之為“堵賽狀態(tài)”。
適用范圍:
1. 用戶的需求非常清楚全面,且在開發(fā)過程中沒有或很少變化
2. 開發(fā)人員對軟件的應(yīng)用領(lǐng)域很熟悉
3. 用戶的使用環(huán)境非常穩(wěn)定
4. 開發(fā)工作對用戶參與的要求很低
顯著特點(diǎn):
按工序?qū)栴}化簡,將功能的實(shí)現(xiàn)與設(shè)計(jì)分開,便于分工協(xié)作
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.增量模型
這種模型融合了線性順序模型的基本成份和原型實(shí)現(xiàn)模型的迭代特征。增量模型采用隨著日程時(shí)間的進(jìn)展而交錯(cuò)的線性序列。每一個(gè)線性序列產(chǎn)生軟件的一個(gè)可發(fā)布的“增量”。當(dāng)使用增量模型時(shí),第一個(gè)增量往往是核心的產(chǎn)品,也就是說第一個(gè)增量實(shí)現(xiàn)了基本的需求,但很多補(bǔ)充的特征還沒有發(fā)布??蛻魧γ恳粋€(gè)增量的使用和評估,都做為下一個(gè)增量發(fā)布的新特征和功能。這個(gè)過程在每一個(gè)增量發(fā)布后不斷從復(fù),直到產(chǎn)生了最終的完善產(chǎn)品。增量模型強(qiáng)調(diào)每一個(gè)增量均發(fā)布一個(gè)可操作的產(chǎn)品。
優(yōu)點(diǎn):
1.采用增量模型的優(yōu)點(diǎn)是人員分配靈活,剛開始不用投入大量人力資源
2.如果核心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量
3.可先發(fā)布部分功能給客戶,對客戶起到鎮(zhèn)靜劑的作用
缺點(diǎn):
1.并行開發(fā)構(gòu)件有可能遇到不能集成的風(fēng)險(xiǎn),軟件必須具備開放式的體系結(jié)構(gòu)
2.增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性
適用范圍:
1.進(jìn)行已有產(chǎn)品升級或新版本開發(fā),增量模型是非常適合的
2.對完成期限嚴(yán)格要求的產(chǎn)品,可以使用增量模型
3.對所開發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng),增量模型也是非常適合的
顯著特點(diǎn):
引進(jìn)了增量包的概念,無須等到所有需求都出來,只要某個(gè)需求增量包出來即可進(jìn)行開發(fā)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.螺旋模型
這是一個(gè)演化軟件過程模型,它將原型實(shí)現(xiàn)的迭代特征和線性順序模型中控制的和系統(tǒng)化的方面結(jié)合起來。使得軟件的增量版本的快速開發(fā)成為可能。在螺旋模型中,軟件開發(fā)是一系列的增量發(fā)布。在每一個(gè)迭代中,被開發(fā)系統(tǒng)的更加完善的版本逐步產(chǎn)生。螺旋模型被劃分為若干框架活動,也稱為任務(wù)區(qū)域
優(yōu)點(diǎn):
1.設(shè)計(jì)上的靈活性,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更
2.以小的分段來構(gòu)建大型系統(tǒng),使成本計(jì)算變得簡單容易
3.客戶始終參與每個(gè)階段的開發(fā),保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性
4.隨著項(xiàng)目推進(jìn),客戶始終掌握項(xiàng)目的最新信息 , 從而他或她能夠和管理層有效地交互
5.客戶認(rèn)可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品
缺點(diǎn):
1.采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評估經(jīng)驗(yàn)和專門知識,在風(fēng)險(xiǎn)較大的項(xiàng)目開發(fā)中,如果未能夠及時(shí)標(biāo)識風(fēng)險(xiǎn),勢必造成重大損失
2.過多的迭代次數(shù)會增加開發(fā)成本,延遲提交時(shí)間
3.很難讓用戶確信這種演化方法的結(jié)果是可以控制的。建設(shè)周期長,而軟件技術(shù)發(fā)展比較快,所以經(jīng)常出現(xiàn)軟件開發(fā)完畢后,和當(dāng)前的技術(shù)水平有了較大的差距,無法滿足當(dāng)前用戶需求
適用范圍:
對于新近開發(fā),需求不明確的情況下,適合用螺旋模型進(jìn)行開發(fā),便于風(fēng)險(xiǎn)控制和需求變更,螺旋模型只適合于大規(guī)模的軟件項(xiàng)目
顯著特點(diǎn):
引入了其他模型不具備的風(fēng)險(xiǎn)分析,使軟件在無法排除重大風(fēng)險(xiǎn)時(shí)有機(jī)會停止,以減小損失
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4.RAD模型
快速應(yīng)用開發(fā)(RAD)是一個(gè)線性順序的軟件開發(fā)模型,強(qiáng)調(diào)極短的開發(fā)周期。RAD 模型是線性順序模型的一個(gè)“高速”變種,通過使用基于構(gòu)件的建造方法獲得了快速開發(fā)
優(yōu)點(diǎn):
1.開發(fā)速度快,質(zhì)量有保證
2.對信息系統(tǒng)特別有效
缺點(diǎn):
1.對大型項(xiàng)目而言,RAD需要足夠的人力資源
2.開發(fā)者和客戶都要實(shí)現(xiàn)承諾,否則將導(dǎo)致失敗
3.并非所有系統(tǒng)都適合:不能合理模塊化的系統(tǒng)、高性能需求并且要調(diào)整構(gòu)件接口的系統(tǒng)均不適合
適用范圍:
1.不適合技術(shù)風(fēng)險(xiǎn)很高的開發(fā),不適合系統(tǒng)需求是高性能,并且需要通過調(diào)整構(gòu)件接口的方式來提高性能的產(chǎn)品開發(fā)。
2.適用于工期緊張,又可細(xì)分功能,還要有合適的構(gòu)件
顯著特點(diǎn):
使用基于構(gòu)件的建造方法獲得了快速開發(fā),使得一個(gè)開發(fā)組能夠在很短時(shí)間內(nèi)(如60 到90 天)創(chuàng)建出“功能完善的系統(tǒng)”
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5.迭代模型
迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開發(fā)活動和要使用該發(fā)布必需的所有其他外圍元素。在某種程度上,開發(fā)迭代是一次完整地經(jīng)過所有工作流程的過程:需求分析、設(shè)計(jì)、實(shí)施和測試工作流程。實(shí)質(zhì)上,它類似小型的瀑布式項(xiàng)目。RUP認(rèn)為,所有的階段都可以細(xì)分為迭代。每一次的迭代都會產(chǎn)生一個(gè)可以發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集
優(yōu)點(diǎn):
1.降低了在一個(gè)增量上的開支風(fēng)險(xiǎn)。如果開發(fā)人員重復(fù)某個(gè)迭代,那么損失只是這一個(gè)開發(fā)有誤的迭代的花費(fèi)
2.降低了產(chǎn)品無法按照既定進(jìn)度進(jìn)入市場的風(fēng)險(xiǎn)。通過在開發(fā)早期就確定風(fēng)險(xiǎn),可以盡早來解決而不至于在開發(fā)后期匆匆忙忙
3.加快了整個(gè)開發(fā)工作的進(jìn)度。因?yàn)殚_發(fā)人員清楚問題的焦點(diǎn)所在,他們的工作會更有效率
4.由于用戶的需求并不能在一開始就作出完全的界定,它們通常是在后續(xù)階段中不斷細(xì)化的。因此,迭代過程這種模式使適應(yīng)需求的變化會更容易些
缺點(diǎn):
在項(xiàng)目早期開發(fā)可能有所變化 ,需有一個(gè)高素質(zhì)的項(xiàng)目管理者和一個(gè)高技術(shù)水平的開發(fā)團(tuán)隊(duì)
適用范圍:
1.在項(xiàng)目開發(fā)早期需求可能有所變化
2.分析設(shè)計(jì)人員對應(yīng)用領(lǐng)域很熟悉
3.高風(fēng)險(xiǎn)項(xiàng)目
4.用戶可不同程度地參與整個(gè)項(xiàng)目的開發(fā)過程
5.使用面向?qū)ο蟮恼Z言或統(tǒng)一建模語言
6.使用CASE工具
7.具有高素質(zhì)的項(xiàng)目管理者和軟件研發(fā)團(tuán)隊(duì)
顯著特點(diǎn):
能顯著減少風(fēng)險(xiǎn)
三、軟件開發(fā)模型有幾種?
與建造大廈相同,軟件也是一步一步建造起來的。在增量模型中,軟件被作為一系列的增量構(gòu)件來設(shè)計(jì)、實(shí)現(xiàn)、集成和測試,每一個(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)。但是,增量模型也存在以下缺陷:(1) 由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開放式的體系結(jié)構(gòu)。(2) 在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性?!≡谑褂迷隽磕P蜁r(shí),第一個(gè)增量往往是實(shí)現(xiàn)基本需求的核心產(chǎn)品。核心產(chǎn)品交付用戶使用后,經(jīng)過評價(jià)形成下一個(gè)增量的開發(fā)計(jì)劃,它包括對核心產(chǎn)品的修改和一些新功能的發(fā)布。這個(gè)過程在每個(gè)增量發(fā)布后不斷重復(fù),直到產(chǎn)生最終的完善產(chǎn)品。例如,使用增量模型開發(fā)字處理軟件??梢钥紤],第一個(gè)增量發(fā)布基本的文件管理、編輯和文檔生成功能,第二個(gè)增量發(fā)布更加完善的編輯和文檔生成功能,第三個(gè)增量實(shí)現(xiàn)拼寫和文法檢查功能,第四個(gè)增量完成高級的頁面布局功能。5.螺旋模型(Spiral Model)1988年,Barry Boehm正式發(fā)表了軟件系統(tǒng)開發(fā)的"螺旋模型",它將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,特別適合于大型復(fù)雜的系統(tǒng)。螺旋模型沿著螺線進(jìn)行若干次迭代,圖中的四個(gè)象限代表了以下活動:(1) 制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件;(3) 實(shí)施工程:實(shí)施軟件開發(fā)和驗(yàn)證;(4) 客戶評估:評價(jià)開發(fā)工作,提出修正建議,制定下一步計(jì)劃。螺旋模型由風(fēng)險(xiǎn)驅(qū)動,強(qiáng)調(diào)可選方案和約束條件從而支持軟件的重用,有助于將軟件質(zhì)量作為特殊目標(biāo)融入產(chǎn)品開發(fā)之中。但是,螺旋模型也有一定的限制條件,具體如下:(1) 螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,但要求許多客戶接受和相信這種分析,并做出相關(guān)反應(yīng)是不容易的,因此,這種模型往往適應(yīng)于內(nèi)部的大規(guī)模軟件開發(fā)。(2) 如果執(zhí)行風(fēng)險(xiǎn)分析將大大影響項(xiàng)目的利潤,那么進(jìn)行風(fēng)險(xiǎn)分析毫無意義,因此,螺旋模型只適合于大規(guī)模軟件項(xiàng)目。一個(gè)階段首先是確定該階段的目標(biāo),完成這些目標(biāo)的選擇方案及其約束條件,然后從風(fēng)險(xiǎn)角度分析方案的開發(fā)策略,努力排除各種潛在的風(fēng)險(xiǎn),有時(shí)需要通過建造原型來完成。如果某些風(fēng)險(xiǎn)不能排除,該方案立即終止,否則啟動下一個(gè)開發(fā)步驟。最后,評價(jià)該階段的結(jié)果,并設(shè)計(jì)下一個(gè)階段。6.演化模型(incremental model)主要針對事先不能完整定義需求的軟件開發(fā)。用戶可以給出待開發(fā)系統(tǒng)的核心需求,并且當(dāng)看到核心需求實(shí)現(xiàn)后,能夠有效地提出反饋,以支持系統(tǒng)的最終設(shè)計(jì)和實(shí)現(xiàn)。軟件開發(fā)人員根據(jù)用戶的需求,首先開發(fā)核心系統(tǒng)。當(dāng)該核心系統(tǒng)投入運(yùn)行后,用戶試用之,完成他們的工作,并提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求。軟件開發(fā)人員根據(jù)用戶的反饋,實(shí)施開發(fā)的迭代過程。第一迭代過程均由需求、設(shè)計(jì)、編碼、測試、集成等階段組成,為整個(gè)系統(tǒng)增加一個(gè)可定義的、可管理的子集。在開發(fā)模式上采取分批循環(huán)開發(fā)的辦法,每循環(huán)開發(fā)一部分的功能,它們成為這個(gè)產(chǎn)品的原型的新增功能。于是,設(shè)計(jì)就不斷地演化出新的系統(tǒng)。 實(shí)際上,這個(gè)模型可看作是重復(fù)執(zhí)行的多個(gè)“瀑布模型”?!把莼P汀币箝_發(fā)人員有能力把項(xiàng)目的產(chǎn)品需求分解為不同組,以便分批循環(huán)開發(fā)。這種分組并不是絕對隨意性的,而是要根據(jù)功能的重要性及對總體設(shè)計(jì)的基礎(chǔ)結(jié)構(gòu)的影響而作出判斷。有經(jīng)驗(yàn)指出,每個(gè)開發(fā)循環(huán)以六周到八周為適當(dāng)?shù)拈L度。7.噴泉模型(fountain model, (面向?qū)ο蟮纳嫫谀P? OO模型))噴泉模型與傳統(tǒng)的結(jié)構(gòu)化生存期比較,具有更多的增量和迭代性質(zhì),生存期的各個(gè)階段可以相互重疊和多次反復(fù),而且在項(xiàng)目的整個(gè)生存期中還可以嵌入子生存期。就像水噴上去又可以落下來,可以落在中間,也可以落在最底部。8.智能模型(四代技術(shù)(4GL))智能模型擁有一組工具(如數(shù)據(jù)查詢、報(bào)表生成、數(shù)據(jù)處理、屏幕定義、代碼生成、高層圖形功能及電子表格等),每個(gè)工具都能使開發(fā)人員在高層次上定義軟件的某些特性,并把開發(fā)人員定義的這些軟件自動地生成為源代碼。這種方法需要四代語言(4GL)的支持。4GL不同于三代語言,其主要特征是用戶界面極端友好,即使沒有受過訓(xùn)練的非專業(yè)程序員,也能用它編寫程序;它是一種聲明式、交互式和非過程性編程語言。4GL還具有高效的程序代碼、智能缺省假設(shè)、完備的數(shù)據(jù)庫和應(yīng)用程序生成器。目前市場上流行的4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事務(wù)信息系統(tǒng)的中、小型應(yīng)用程序的開發(fā)。9.混合模型(hybrid model)過程開發(fā)模型又叫混合模型(hybrid model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許一個(gè)項(xiàng)目能沿著最有效的路徑發(fā)展,這就是過程開發(fā)模型(或混合模型)。實(shí)際上,一些軟件開發(fā)單位都是使用幾種不同的開發(fā)方法組成他們自己的混合模型。各種模型的比較每個(gè)軟件開發(fā)組織應(yīng)該選擇適合于該組織的軟件開發(fā)模型,并且應(yīng)該隨著當(dāng)前正在開發(fā)的特定產(chǎn)品特性而變化,以減小所選模型的缺點(diǎn),充分利用其優(yōu)點(diǎn),下表列出了幾種常見模型的優(yōu)缺點(diǎn)。
四、軟件開發(fā)模式瀑布模型有什么特點(diǎn)
瀑布模型、極限編程、敏捷開發(fā)是有代表性的開發(fā)模式,在對開發(fā)者、客戶、最終的產(chǎn)品的關(guān)注上的變化,體現(xiàn)了軟件開發(fā)管理者在管理模式上的變化。
瀑布模型
是一種理想化的開發(fā)模型,要求有明確的需求分析,無法解決軟件需求不明確或不準(zhǔn)確的問題。
瀑布模型像工廠流水
以上就是關(guān)于簡述軟件開發(fā)模型相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
人工智能發(fā)展現(xiàn)狀和趨勢(人工智能發(fā)展現(xiàn)狀和趨勢簡述)
簡述跨境電子商務(wù)的優(yōu)勢(簡述跨境電子商務(wù)的優(yōu)勢和存在的問題)
銷售內(nèi)容簡述怎樣寫(銷售內(nèi)容簡述怎樣寫好)
女生學(xué)計(jì)算機(jī)可以從事什么職業(yè)