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