一:軟件的生命周期 ?1,概念期:可行性研究,,需求分析; ?2,設(shè)計期:構(gòu)造設(shè)計模型(架構(gòu)、概要,、詳細(xì)),; ?3,實現(xiàn)期:按設(shè)計要求或原型法實現(xiàn)(編碼、測試); ?4,運行期:運行,、維護(hù)(延續(xù)壽命的關(guān)鍵),。 ?項目四期中的成果 ?概念期:概念模型(文字、圖表); ?設(shè)計期:設(shè)計模型(更細(xì)節(jié)的文字,、圖表); ?實現(xiàn)期:軟件工作產(chǎn)品,,開發(fā)與測試環(huán)境; ?運行期:軟件產(chǎn)品\運行環(huán)境下,。 ?重要的里程碑:立項、動工,、驗收,。 ?階段細(xì)分及其標(biāo)志物:可研報告、需求說明書,、設(shè)計說明書,、編碼規(guī)范、測試報告,、驗收報告,、運行評估、維護(hù)報告等,。 ? ?二:軟件的過程模型 ?過程模型:一個實現(xiàn)特定目標(biāo)要經(jīng)歷的套路,,活動流程、活動內(nèi)容,、活動工具,、活動方法、獲得陳國,、消耗資源,。過程模型有差異,不同的過程模型不僅僅起到一個過程表示的作用,,資源,、成本也有很大的差異。 ? 軟件的過程模型就是軟件開發(fā)過程的簡介代表或描述,。 ?(1)瀑布模型 ?瀑布模型適用的軟件項目: ? 1,軟件開發(fā)過程中,,需求不發(fā)生或很少發(fā)生變化,可以一次性獲取到全部需求,。否則有與瀑布模型較差的可回溯性,,在后續(xù)階段中需求的經(jīng)常性變更更需要付出高昂的代價。 ? 2,軟件開發(fā)人員經(jīng)驗豐富,,熟悉軟件應(yīng)用領(lǐng)域,。 ? 3,軟件項目的風(fēng)險較低,瀑布模型不具有完善的風(fēng)險控制機制,。 ?瀑布模型的特色: ? 1,,順序性和依賴性。順序性,,必須等前一階段的完成之后,,才能開始后一階段的工作;依賴性,,前一階段的輸出文檔是后一階段的輸入文檔,,因此,,只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果,。 ? 2,,推遲實現(xiàn)。編碼開始的越早,,最終完成整個開發(fā)工作所需要的時間反而越長,。過早地開始編程,往往導(dǎo)致大量返工,,甚至發(fā)生無法彌補的問題,,帶來災(zāi)難性后果。瀑布模型在編碼之前設(shè)置的系統(tǒng)分析與系統(tǒng)設(shè)計階段的任務(wù)中,,主要考慮目標(biāo)系統(tǒng)的邏輯模型,,不涉及軟件的物理實現(xiàn),區(qū)分了邏輯設(shè)計和物理設(shè)計,。盡可能推遲軟件的物理實現(xiàn),是瀑布模型的一條重要指導(dǎo)思想,。 ? 3,,質(zhì)量保證。軟件工程的基本目標(biāo)是優(yōu)質(zhì),、高產(chǎn),。為了保證所開發(fā)的軟件質(zhì)量,應(yīng)堅持: ? 1),每個階段都必須完成規(guī)定的,、合格的文檔,。 ? 2),每個階段結(jié)束前都要對所完成的文檔進(jìn)行評審,及早發(fā)現(xiàn)問題,,改正錯誤,。 ?瀑布模型的優(yōu)點: ? (1)強迫開發(fā)人員采用規(guī)范的方法; ? (2)嚴(yán)格的規(guī)定了每個階段必須提交的文檔; (3)要求每個階段的成果都必須經(jīng)過仔細(xì)驗證; ? (4)嚴(yán)格的文檔約束使軟件維護(hù)變得容易些,,從而降低軟件的總預(yù)算; ? (5)基本是一種文檔驅(qū)動的過程模型,。 ?瀑布模型的缺點: ? (1)由文檔驅(qū)動導(dǎo)致軟件產(chǎn)品在可運行之前,只能通過文檔來了解軟件產(chǎn)品是什么樣,; (2)(快速)原型模型 ? 快速建立能夠體現(xiàn)用戶需求,、可以運行的原型系統(tǒng),讓用戶試用,、評價,。 ? 按照用戶的意見快速的修改原型系統(tǒng),然后再試用,、評價,,再修改...直至完全滿足需求,。 原型模型的適用的軟件項目:主要適用于項目需求不太明確,項目開發(fā)人員不能很好交流或者通信有困難的軟件項目,。 ?(3)增量模型 ? 也稱為漸增模型,,把待開發(fā)的軟件系統(tǒng)模塊化,將每個模塊作為一個增量組件,,從而分批次的分析,、設(shè)計、編碼和測試這些增量組件,。 增量模型適用的軟件項目: ? 1,,軟件產(chǎn)品可以分批次的交付。 ? 2,,目標(biāo)系統(tǒng)能夠被模塊化,。 ? 3,軟件規(guī)模大,,或者開發(fā)人員對應(yīng)用領(lǐng)域不熟悉,,難以一次性的開發(fā)。 ? 4,,項目管理人員的把握全局的水平較高,。 ?(4)螺旋模型 ? 螺旋模型將瀑布模型與快速原型原型模型結(jié)合起來,加入風(fēng)險分析,。它將開發(fā)過程分為制定計劃,、風(fēng)險分析、實施工程和客戶評估四種活動的循環(huán),。 螺旋模型適用的項目工程: 螺旋模型適用于風(fēng)險較大的大型軟件項目的開發(fā),,如果進(jìn)行風(fēng)險分析的費用接近整個項目的經(jīng)費預(yù)算,則風(fēng)險分析是不可行的,。事實上,,項目越大,風(fēng)險也越大,,因此,,進(jìn)行風(fēng)險分析的必要性也越大。 ?(5)噴泉模型 ? 體現(xiàn)了面向?qū)ο筌浖_發(fā)過程不同階段的圓圈相互重疊,,這明確表示兩個活動之間存才交迭,。 ? 面向?qū)ο蠓椒ㄔ诟拍詈捅硎痉椒ㄉ系囊恢滦裕WC了在各項開發(fā)活動之間的無縫過渡,。 ?噴泉模型適用的軟件項目: ? 特別適用于面向?qū)ο蟮能浖椖块_發(fā),。 (6)Rational統(tǒng)一過程 統(tǒng)一軟件開發(fā)過程(Rationnal unified Progress,RUP)是基于統(tǒng)一建模語言(UML)的面向?qū)ο筌浖_發(fā)過程模型。 二維的生命周期模型: ?縱軸:和核心工作流 ?橫軸:時間 統(tǒng)一過程模型的適用性: ? 統(tǒng)一過程模型適用范圍比較廣; ? 對開發(fā)人員的要求也比較高,。 ?(7)敏捷過程 ? 一種輕量級的軟件工程方法,,相對于傳統(tǒng)的軟件工程方法,它更強調(diào)軟件開發(fā)過程中各種變化的必然性,,通過團(tuán)隊成員之間充分的交流與溝通以及合理的機制來有效的響應(yīng)變化,。 ? 敏捷開發(fā)始于“敏捷軟件開發(fā)宣言”。 ?敏捷過程模型的適用工程: ? 特別適用于軟件需求模糊且容易改變,、開發(fā)團(tuán)隊少于10人,、開發(fā)地點集中的場合。 ? |
|