瀑布模型也稱為生命週期法,是生命週期法中最常用的開發模型,它把軟體開發的過程分為軟體規劃、需求分析、軟體設計、程式編碼、軟體測試和運作維護6個階段,規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。
軟體計畫:主要確定軟體的開發目標及其可行性。
需求分析:在確定軟體開發可行的情況下,對軟體需要實現的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這個階段做得好,將為整個軟體開發專案的成功打下良好的基礎。
軟體設計:主要根據需求分析的結果,對整個軟體系統進行設計,如係統框架設計、資料庫設計等。軟體設計一般分為整體設計(概要設計)及詳細設計。
程式編碼:將軟體設計的結果轉換成電腦可執行的程式碼。在程式編寫中必須制定統一、符合標準的編寫規範,以確保程式的可讀性,易於維護性,並提高程式的運作效率。
軟體測試:在軟體設計完成後要經過嚴密的測試,以發現軟體在整個設計過程中存在的問題並加以修正。在測試過程中需要建立詳細的測試計劃並嚴格按照測試計劃進行測試,以減少測試的隨意性。
軟體維護:軟體維護是軟體生命週期中持續時間最長的階段。在軟體開發完成並投入使用後,由於多方面的原因,軟體無法繼續適應使用者的要求,要延續軟體的使用壽命,就必須對軟體進行維護。
變換模型(演化模型)是在快速開發一個原型的基礎上,根據使用者在呼叫原型的過程中提出的回饋意見和建議,對原型進行改進,獲得原型的新版本,重複此過程,直到演化成最終的軟體產品。
螺旋模型將瀑布模型和變換模型結合,它綜合了兩者的優點,並增加了風險分析。它以原型為基礎,沿著螺線自內向外旋轉,每旋轉一圈都要經過製訂計劃、風險分析、實施工程、客戶評價等活動,並開發原型的一個新版本。經過若干次螺旋上升的過程,得到最終的系統。
噴泉模型對軟體復用和生命週期中多項開發活動的整合提供了支持,主要支援物件導向的開發方法。 "噴泉"一詞本身體現了迭代和無間隙特性。系統某部分常常重複工作多次,相關功能在每次迭代中隨之加入演進的系統。所謂無間隙是指在開發活動中,分析、設計和編碼之間並沒有明顯的邊界。
在開發模型中,測試常常作為亡羊補牢的事後行為,但也有以測試為中心的開發模型,那就是V模型。 V模型只得到軟體業內較為模糊的認可。 V模型宣稱測驗並不是事後彌補行為,而是一個同開發過程同樣重要的過程。
V模型描述了一些不同的測試級別,並說明了這些級別所對應的生命週期中不同的階段。圖中,左邊下降的是開發過程各階段,與此相對應的是右邊上升的部分,也就是測試過程的各個階段。請注意在不同的組織中,測試階段的命名可能會有所不同。 V模型的價值在於它非常明確地表明了測試過程中存在的不同級別,並且清楚地描述了這些測試階段和開發過程期間各階段的對應關係:
單元測試的主要目的是針對編碼過程中可能存在的各種錯誤。例如:使用者輸入驗證過程中的邊界值的錯誤。
整合測試的主要目的是針對詳細設計中可能存在的問題,尤其是檢查各單元與其他程式部分之間的介面上可能存在的錯誤。
系統測試主要針對概要設計,檢查系統作為一個整體是否有效地運作。例如:在產品設定中是否達到了預期的高性能。
驗收測試通常由業務專家或使用者進行,以確認產品能真正符合用戶業務上的需求。
增量模型就像原型實作模型和其他演化方法一樣,本質上是迭代的。但與原型實現不同的是增量模型強調每一個增量均發布一個可操作產品。早期的增量是最終產品的"可拆卸"版本,但它們確實提供了為用戶服務的功能,並且提供了給用戶評估的平台。增量模型的特點是引進了增量包的概念,無須等到所有需求都出來,只要某個需求的增量包出來即可進行開發。雖然某個增量包可能還需要進一步適應客戶的需求,還需要更改,但只要這個增量包夠小,其影響對整個專案來說是可以承受的。
快速應用開發(Rapid Application Development,RAD)模型是一個增量型的軟體開發過程模型,強調極短的開發週期。 RAD模型是瀑布模型的「高速」變種,透過大量使用可重複使用構件,採用基於構件的建造方法贏得快速開發。如果需求理解得好且約束了專案的範圍,利用這種模型可以很快地創建出功能完善的「資訊系統」。其流程從業務建模開始,隨後是資料建模、流程建模、應用產生、測試及重複。採用RAD模型的軟體流程如圖所示。
RAD模型各活動期間所要完成的任務如下。
業務建模:以什麼資訊驅動業務流程運作?要產生什麼資訊?誰生成它?資訊流的去向是哪裡?由誰處理?可以輔以資料流程圖。
資料建模:為支援業務流程的資料流,找資料物件集合,定義資料物件屬性,與其他資料物件的關係構成資料模型,可輔以E-R圖。
流程建模:使資料物件在資訊流中完成各業務功能。建立過程以描述資料物件的增加、修改、刪除、查找,即細化資料流程圖中的處理框。
應用程式產生:利用第四代語言(4GL)寫出處理程序,重複使用已有構件或建立新的可重複使用構件,利用環境提供的工具自動產生並建構出整個應用系統。
測試與交付,由於大量重複使用,一般只做總體測試,但新建立的構件還是要測試的。
構件(Component,元件)是一個具有可重複使用價值的、功能相對獨立的軟體單元。基於構件的軟體開發(Component Based Software Development,CBSD)模型是利用模組化方法,將整個系統模組化,並在一定構件模型的支援下,複用構件庫中的一個或多個軟體構件,透過組合手段高效率、高品質地建構應用軟體系統的過程。基於構件的開發模型融合了螺旋模型的許多特徵,本質上是演化型的,開發過程是迭代的。基於構件的開發模型由軟體的需求分析與定義、體系結構設計、構件庫建立、應用軟體建置、測試和發布5個階段組成。
軟體原型是所提出的新產品的部分實現,建立原型的主要目的是為了解決在產品開發的早期階段的需求不確定的問題,其目的是明確並完善需求、探索設計選擇方案、發展為最終的產品。原型有很多種分類方法。從原型是否實現功能來分,軟體原型可分為水平原型和垂直原型兩種。水平原型也稱為行為原型,用來探索預期系統的一些特定行為,並達到細化需求的目的。水平原型通常只是功能的導航,但並未真實實現功能。水平原型主要用在介面上。垂直原型也稱為結構化原型,實現了一部分功能。垂直原型主要用在複雜的演算法實作。
XP是一種輕量(敏捷)、高效能、低風險、柔性、可預測、科學而且充滿樂趣的軟體開發方式。與其他方法論相比,其最大的差異在於:
在更短的周期內,更早提供具體、持續的回饋資訊。
迭代地進行計劃編制,首先在最開始迅速產生一個總體計劃,然後在整個專案開發過程中不斷地發展它。
依賴自動測試程式來監控開發進度,並及早地捕捉缺陷。
依赖于口头交流、测试和源程序进行沟通。
倡导持续的演化式的设计。
依赖于开发团队内部的紧密协作。
尽可能达到程序员短期利益和项目长期利益的平衡。
RUP(Rational Unified Process)是一个统一的软件开发过程,是一个通用过程框架,可以应付种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。RUP是基于构件的,这意味着利用它开发的软件系统是由构件构成的,构件之间通过定义良好的接口相互联系。在准备软件系统所有蓝图的时候,RUP使用的是统一建模语言UML.与其他软件过程相比,RUP具有三个显著的特点:用例驱动、以基本架构为中心、迭代和增量。RUP中的软件过程在时间上被分解为四个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经满足。如果评审结果令人满意,就可以允许项目进入下一个阶段。
以上是java軟體開發生命週期是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!