第三節(jié) 軟件生存周期模型,方法和工具
生存周期模型:描述軟件開發(fā)過程中各種活動(dòng)如何執(zhí)行的模型。對(duì)軟件開發(fā)提供強(qiáng)有力的支持,為開發(fā)過程中的活動(dòng)提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導(dǎo),是軟件生存周期模型化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。
生存周期模型作用:確立了軟件開發(fā)中各階段的次序限制,活動(dòng)準(zhǔn)則,所要遵守的規(guī)定和限制,便于各種活動(dòng)的協(xié)調(diào),人員之間的有效通信,有利于活動(dòng)重用和活動(dòng)管理。
生存周期模型準(zhǔn)則:模型能表示各種活動(dòng)的實(shí)際工作方式,能隨情況變化而演化能表示各種活動(dòng)間同步和制約關(guān)系,能表示活動(dòng)的動(dòng)態(tài)特性。容易為開發(fā)人員理解,能適應(yīng)不同軟件項(xiàng)目,具有較強(qiáng)靈活性,能支持軟件開發(fā)環(huán)境的建立。
目前有:
1 瀑布模型:將軟件生存周期中各活動(dòng)規(guī)定為依線性順序連接的若干階段。包括可行性分析,項(xiàng)目開發(fā)計(jì)劃,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測(cè)試和維護(hù)。它是一種理想的線性開發(fā)模式,缺乏靈活,特別是無(wú)法解決軟件需求不明確的問題。適合于需求不明確,設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。
2 增量模型:軟件在模型中是"逐漸"開發(fā)出來(lái)的,開發(fā)一部分,展示一部分,能及早發(fā)現(xiàn)問題;蛘呦乳_發(fā)一"原型"軟件,完成主要功能,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。
3 螺旋模型:將瀑布模型與增量模型結(jié)合起來(lái),加入風(fēng)險(xiǎn)分析,彌補(bǔ)了這兩種模型的不足。開發(fā)分四步:制定計(jì)劃,風(fēng)險(xiǎn)分析,開發(fā)實(shí)施,用戶評(píng)估。
4 噴泉模型:以用戶需求為動(dòng)力,以對(duì)象為驅(qū)運(yùn)動(dòng)模型,適合于面向?qū)ο箝_發(fā)方法,使開發(fā)過程具有迭代性和無(wú)間隙性。
迭代性:系統(tǒng)有些部分常常重復(fù)工作多次,相關(guān)功能在每次迭代中隨之加入演化的系統(tǒng)。
無(wú)間隙:在分析,設(shè)計(jì),實(shí)現(xiàn)等開發(fā)活動(dòng)之間不存在明顯邊界。
5 基于知識(shí)的模型:瀑布模型與專家模型的結(jié)合。開發(fā)各階段都有利用相應(yīng)專家系統(tǒng)來(lái)輔助設(shè)計(jì),使維護(hù)在系統(tǒng)需求一級(jí)進(jìn)行。
6 變換模型:適合于形式化開發(fā)方法的模型。
軟件開發(fā)方法:使用早已定義好的技術(shù)集及符號(hào)表示習(xí)慣來(lái)組織軟件生產(chǎn)的過程。
軟件開發(fā)開發(fā)的目標(biāo):通過使用成功的軟件開發(fā)方法,在規(guī)定的投資和時(shí)間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。
軟件開發(fā)方法是克服軟件危機(jī)的重要方面之一,對(duì)軟件工程及軟件包產(chǎn)業(yè)的發(fā)展起了不可估量的作用。
已使用的成功方法有:
1、結(jié)構(gòu)化方法:一種面向數(shù)據(jù)流的開發(fā)方法,適合數(shù)據(jù)處理領(lǐng)域。指導(dǎo)指導(dǎo)思想是自頂向下,逐步求精。用數(shù)據(jù)流圖建立系統(tǒng)功能模型,完成需求分析工作。用軟件結(jié)構(gòu)圖建立系統(tǒng)物理模型,實(shí)現(xiàn)概要設(shè)計(jì)。最后將每個(gè)模塊的功能用相應(yīng)標(biāo)準(zhǔn)控制結(jié)構(gòu)表示出來(lái),從而實(shí)現(xiàn)詳細(xì)設(shè)計(jì)。
2、JACKSON方法:一種面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法,適合小規(guī)模項(xiàng)目。首先描述問題的輸入,輸出數(shù)據(jù)結(jié)構(gòu),分析其對(duì)應(yīng)性,然后推出相應(yīng)程序結(jié)構(gòu),從而給出問題的軟件過程描述。當(dāng)輸入與輸出數(shù)據(jù)結(jié)構(gòu)無(wú)對(duì)應(yīng)關(guān)系時(shí),難于應(yīng)用此方法,JSD(一完整的系統(tǒng)開發(fā)方法)對(duì)JSP進(jìn)行了擴(kuò)充
3、維也納開發(fā)方法(VDM):一種形式化開發(fā)方法,軟件的需求用嚴(yán)格的形式語(yǔ)言描述,然后把模型逐步變換成目標(biāo)系統(tǒng)。
4、面向?qū)ο蟮拈_發(fā)方法:基本出發(fā)點(diǎn)是盡可能按人類認(rèn)識(shí)世界的方法和思維方式來(lái)分析和解決問題。以對(duì)象作為最基本的元素,客觀世界中具體的事物,事件,概念和規(guī)則都有可看成對(duì)象,它也是分析問題,解決問題的核心。開發(fā)方法包括面向?qū)ο蠓治,面向(qū)ο笤O(shè)計(jì),面向?qū)ο髮?shí)現(xiàn)。主要有BOOCH方法,Coad方法和OMT方法。為統(tǒng)一這些方法的術(shù)語(yǔ),概念和模型,(1997年)推出統(tǒng)一建模型語(yǔ)言UML。
結(jié)構(gòu)化方法可用:瀑布模型,增量模型,螺旋模型進(jìn)行開發(fā)。
JACKSON方法可用:瀑布模型,增量模型進(jìn)行開發(fā)。
面向?qū)ο蟮拈_發(fā)方法可用:噴泉模型,瀑布模型,增量模型進(jìn)行開發(fā)。
形式化的維也納方法只能用變換模型進(jìn)行開發(fā) 。
軟件工具:為支持軟件人員開發(fā)和維護(hù)活動(dòng)而使用的軟件。使用軟件工具后,可提高軟件生產(chǎn)率。目前軟件工具發(fā)生了很大變化,目的是生成軟件周期各個(gè)環(huán)節(jié)的自動(dòng)化。主要用于軟件的分析和設(shè)計(jì),使用這些工具軟件開發(fā)人員就能在微機(jī)或工作站上以對(duì)話方式建立各種軟件系統(tǒng)。
工具箱:最初的軟件工具是以工具箱形式出現(xiàn)的。但界面不統(tǒng)一,工具內(nèi)部無(wú)聯(lián)系,工具切換由人工操作。它們對(duì)大型軟件的開發(fā)和維護(hù)的支持能力有限。
軟件開發(fā)環(huán)境:目的是使軟件工具支持整個(gè)生存周期。而且做到不僅支持各階段的技術(shù)工作,還要支持管理和操作工作,保持項(xiàng)目開發(fā)的高度可見性,可控制性和可追蹤性。
計(jì)算機(jī)輔助軟件工程:可簡(jiǎn)單定義為軟件開發(fā)的自動(dòng)化,簡(jiǎn)稱為CASE。實(shí)質(zhì)是為軟件開發(fā)提供一組優(yōu)化集成的,大量節(jié)省人力的軟件開發(fā)工具。是軟件工具和軟件開發(fā)方法的結(jié)合。目的是實(shí)現(xiàn)軟件生存周期各環(huán)節(jié)的自動(dòng)化,并使之成為一個(gè)整體。
CASE工具與以往軟件工具不同體現(xiàn)在:
1 支持專用的個(gè)人計(jì)算環(huán)境;
2 使用圖形功能對(duì)軟件系統(tǒng)進(jìn)行說(shuō)明并建立文檔;
3 將生存周期各階段的工作連接在一起;
4 收集和連接軟件系統(tǒng)從最初的軟件需求到軟件維護(hù)各個(gè)環(huán)節(jié)的所有信息;
5 用人工智能實(shí)現(xiàn)軟件開發(fā)和維護(hù)工作的自動(dòng)化。
相關(guān)推薦:2010年下半年軟考試題及答案解析匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |