項目開發并不是一個簡單的過程,我們需要遵循一些開發流程。一個項目的開發會被分成很多步驟來實現,每一個步驟都有自己的起點和終點。也正如此,使得開發過程中的每個步驟起點和終點在不同的軟件項目中出現不同難度的“坎”,使其難于達到該步驟開始或是終結的條件,開發過程也就不會一帆風順。
不同的開發模式其實就是將步驟的起點和終點重新定義,甚至重新組合排列,雖然任何一個開發模式最終目的都是完成軟件項目的開發,但期間所經歷的過程不一樣,過程步驟之間的起點和終點的定義不同,所帶來的“坎”也就不一樣,項目周期自然各不相同。因此,根據軟件項目的實際情況選擇一個適合的開發模式能減少開發周期中“坎”的出現次數與難度,可以很大程度地縮短開發周期。
我們首先了解一下傳統瀑布式開發流程,如圖2-1所示。
圖2-1 瀑布式(Waterfall)開發流程
瀑布模型是由W.W.Royce在1970年首先提出的軟件開發模型,在瀑布模型中,開發被認為是按照需求分析、設計、實現、測試(確認)、集成和維護堅定而順暢地進行的。線性模型太理想化,太單純,以至很多人認為瀑布模型已不再適合現代的軟件開發模式,幾乎被業界拋棄。
我們向大家推薦的是統一開發流程RUP(Rational Unified Process),它是目前最流行的一套項目開發流程模式,其基本特征是通過多次迭代完成一個項目的開發,每次迭代都會帶來項目整體的遞增,如圖2-2所示。
從縱向來看,項目的生命周期或工作流包括項目需求分析、系統分析和設計、實現、測試和維護。從橫向來看,項目開發可以分為4個階段:起始(Inception)、細化(Elaboration)、建造(Construction)和移交(transition)。每個階段都包括一次或者多次的迭代。在每次迭代中,根據不同的要求或工作流(如需求、分析和設計等)投入不同的工作量。也就是說,在不同階段的每次迭代中,生命周期的每個步驟是同步進行的,但權重不同。這是與傳統瀑布式開發流程區別最大的地方。
2.1.1 項目生命周期
1.項目需求分析
需求分析階段的活動包括定義潛在的角色(角色指使用系統的人,以及與系統相互作用的軟、硬件環境)、識別問題域中的對象和關系,以及基于需求規范說明和角色的需要發現用例(use-case)和詳細描述用例。
2.系統分析和設計
系統分析階段是基于問題和用戶需求的描述,建立現實世界的計算機實現模型。系統設計是結合問題域的知識和目標系統的體系結構(求解域),將目標系統分解為子系統,之后基于分析模型添加細節,完成系統設計。
3.實現
實現又稱編碼或開發階段,也就是將設計轉換為特定的編程語言或硬件,同時保持先進性、靈活性和可擴展性。在這個階段,設計階段的類被轉換為使用面向對象編程語言編制(不推薦使用過程語言)的實際代碼。這一任務可能比較困難,也可能比較容易,主要取決于所使用的編程語言本身的能力。
4.測試和維護
測試用于檢驗系統是否滿足用戶功能需求,以便增加用戶對系統的信心。系統經過測試后,整個開發流程告一段落,進入運行維護或新的功能擴展時期。
2.1.2 項目開發階段
1.起始階段(The Inception Phase)
對于新的開發項目來說,起始階段是很重要的。在項目繼續進行前,我們必須處理重要的業務與需求風險。對于那些增強現有系統的項目,起始階段是比較短暫的,但是其目的仍是確定該項目的實施價值及可行性。
原文轉自:http://www.anti-gravitydesign.com