《軟件工程》學(xué)習(xí)輔導(dǎo)1(3)

字號:

第三節(jié) 軟件生存周期模型,方法和工具
    生存周期模型:描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。對軟件開發(fā)提供強(qiáng)有力的支持,為開發(fā)過程中的活動提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導(dǎo),是軟件生存周期模型化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。
    生存周期模型作用:確立了軟件開發(fā)中各階段的次序限制,活動準(zhǔn)則,所要遵守的規(guī)定和限制,便于各種活動的協(xié)調(diào),人員之間的有效通信,有利于活動重用和活動管理。
    生存周期模型準(zhǔn)則:模型能表示各種活動的實(shí)際工作方式,能隨情況變化而演化能表示各種活動間同步和制約關(guān)系,能表示活動的動態(tài)特性。容易為開發(fā)人員理解,能適應(yīng)不同軟件項(xiàng)目,具有較強(qiáng)靈活性,能支持軟件開發(fā)環(huán)境的建立。
    目前有:
    1 瀑布模型:將軟件生存周期中各活動規(guī)定為依線性順序連接的若干階段。包括可行性分析,項(xiàng)目開發(fā)計(jì)劃,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測試和維護(hù)。它是一種理想的線性開發(fā)模式,缺乏靈活,特別是無法解決軟件需求不明確的問題。適合于需求不明確,設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。
    2 增量模型:軟件在模型中是"逐漸"開發(fā)出來的,開發(fā)一部分,展示一部分,能及早發(fā)現(xiàn)問題?;蛘呦乳_發(fā)一"原型"軟件,完成主要功能,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。
    3 螺旋模型:將瀑布模型與增量模型結(jié)合起來,加入風(fēng)險(xiǎn)分析,彌補(bǔ)了這兩種模型的不足。開發(fā)分四步:制定計(jì)劃,風(fēng)險(xiǎn)分析,開發(fā)實(shí)施,用戶評估。
    4 噴泉模型:以用戶需求為動力,以對象為驅(qū)運(yùn)動模型,適合于面向?qū)ο箝_發(fā)方法,使開發(fā)過程具有迭代性和無間隙性。
     迭代性:系統(tǒng)有些部分常常重復(fù)工作多次,相關(guān)功能在每次迭代中隨之加入演化的系統(tǒng)。
     無間隙:在分析,設(shè)計(jì),實(shí)現(xiàn)等開發(fā)活動之間不存在明顯邊界。
    5 基于知識的模型:瀑布模型與專家模型的結(jié)合。開發(fā)各階段都有利用相應(yīng)專家系統(tǒng)來輔助設(shè)計(jì),使維護(hù)在系統(tǒng)需求一級進(jìn)行。
    6 變換模型:適合于形式化開發(fā)方法的模型。
    軟件開發(fā)方法:使用早已定義好的技術(shù)集及符號表示習(xí)慣來組織軟件生產(chǎn)的過程。
    軟件開發(fā)開發(fā)的目標(biāo):通過使用成功的軟件開發(fā)方法,在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。
     軟件開發(fā)方法是克服軟件危機(jī)的重要方面之一,對軟件工程及軟件包產(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ì)。最后將每個模塊的功能用相應(yīng)標(biāo)準(zhǔn)控制結(jié)構(gòu)表示出來,從而實(shí)現(xiàn)詳細(xì)設(shè)計(jì)。
    2、 jackson方法:一種面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法,適合小規(guī)模項(xiàng)目。首先描述問題的輸入,輸出數(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進(jìn)行了擴(kuò)充
    3、維也納開發(fā)方法(vdm):一種形式化開發(fā)方法,軟件的需求用嚴(yán)格的形式語言描述,然后把模型逐步變換成目標(biāo)系統(tǒng)。
    4、面向?qū)ο蟮拈_發(fā)方法:基本出發(fā)點(diǎn)是盡可能按人類認(rèn)識世界的方法和思維方式來分析和解決問題。以對象作為最基本的元素,客觀世界中具體的事物,事件,概念和規(guī)則都有可看成對象,它也是分析問題,解決問題的核心。開發(fā)方法包括面向?qū)ο蠓治?,面向?qū)ο笤O(shè)計(jì),面向?qū)ο髮?shí)現(xiàn)。主要有booch方法,coad方法和 omt方法。為統(tǒng)一這些方法的術(shù)語,概念和模型,(1997年)推出統(tǒng)一建模型語言uml。