軟件開發(fā)包括需求、設計、編碼和測試等階段,有時也包括維護階段。軟件開發(fā)模型能清晰、直觀地表達軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動和任務,用來作為軟件項目工作的基礎。對于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、使用不同的程序設計語言以及各種不同技能的人員參與工作、運用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。
軟件開發(fā)模型的含義是什么?
軟件開發(fā)模型()是指軟件開發(fā)的整個過程、活動和任務的結構框架。軟件開發(fā)包括需求、設計、編碼和測試,有時還包括維護。軟件開發(fā)模型能夠清晰直觀地表達軟件開發(fā)的全過程,明確定義要完成的主要活動和任務,作為軟件項目工作的基礎。對于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、不同的編程語言、不同技能的人員、不同的管理方法和手段,允許使用不同的軟件工具和不同的軟件工程環(huán)境。
軟件開發(fā)模型有幾種?
像建豪宅一樣,軟件是一步一步建起來的。在增量模型中,軟件作為一系列增量組件來設計、實現(xiàn)、集成和測試,每個組件由代碼片段組成,這些代碼片段提供由各種交互模塊形成的特定功能。增量模型并不交付可以在每個階段運行的完整產(chǎn)品,而是可以滿足客戶需求的產(chǎn)品子集。整個產(chǎn)品被分解成幾個組件,開發(fā)人員逐個交付產(chǎn)品。這樣做的好處是軟件開發(fā)可以更好地適應變化,客戶可以不斷地看到開發(fā)出來的軟件,從而降低開發(fā)風險。但是,增量模型也存在以下缺陷:(1)隨著各個組件逐漸融合到現(xiàn)有的軟件架構中,添加的組件不得破壞已經(jīng)構建好的系統(tǒng)部分,這就要求軟件具有開放的架構。(2)在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力遠勝于瀑布模型和快速原型模型,但也容易退化為邊做邊改的模型,從而失去軟件過程控制的完整性。使用增量模型時,第一個增量往往是實現(xiàn)基本需求的核心產(chǎn)品。核心產(chǎn)品交付給用戶后,經(jīng)過評估形成下一步的增量開發(fā)計劃,包括核心產(chǎn)品的修改和一些新功能的發(fā)布。這一過程在每次增量發(fā)布后重復進行,直到生產(chǎn)出最終的完美產(chǎn)品。比如用增量模型開發(fā)文字處理軟件??梢哉J為第一個增量發(fā)布基本的文件管理、編輯和文檔生成功能,第二個增量發(fā)布更完善的編輯和文檔生成功能,第三個增量實現(xiàn)拼寫和語法檢查功能,第四個增量完成高級頁面布局功能。5.螺旋模型()1988年,BarryBoehm正式發(fā)表了軟件系統(tǒng)開發(fā)的“螺旋模型”,該模型將瀑布模型和快速原型模型相結合,強調(diào)了被其他模型忽略的風險分析,特別適用于大型復雜系統(tǒng)。螺旋模型沿著螺旋迭代幾次,圖中的四個象限分別代表以下活動(1。制定計劃,確定軟件目標,選擇實施方案,找出項目開發(fā)的制約條件(3。實施項目以實現(xiàn)軟件開發(fā)和驗證)(4。評估客戶的開發(fā)工作,提出糾正建議,并制定下一步計劃。螺旋模型由風險驅(qū)動,強調(diào)支持軟件復用的替代方案和約束條件,有助于將軟件質(zhì)量作為一個特殊目標融入產(chǎn)品開發(fā)。但螺旋模型也有一定的局限性,具體表現(xiàn)為:(1)螺旋模型強調(diào)風險分析,但很多客戶并不容易接受和相信這種分析并做出相關反應。因此,這種模型通常適合于內(nèi)部的大型軟件開發(fā)。(2)如果風險分析會極大地影響項目的利潤,則進行風險分析是沒有意義的。因此,螺旋模型只適用于大型軟件項目。一個階段的第一步是確定階段的目標,完成這些目標的選擇方案及其約束條件,然后從風險的角度分析方案的發(fā)展策略,試圖消除各種潛在的風險,有時是通過構建原型。如果某些風險無法消除,該方案將立即終止,否則,將開始下一步開發(fā)。最后,評估這一階段的成果,設計下一階段。6.進化模型主要是針對那些不能完全進化的軟件開發(fā)