天天看點

疊代,靈活開發和UP

  什麼是軟體開發中的疊代開發?

  就是開發被組織成一系列固定的短期小項目,稱為疊代,每次疊代都産生,經過測試、內建并可執行的局部系統。系統在疊代中持續擴充和精化,并以循環回報和調整為核心驅動力,最終成為一個程式設計系統産品。

  疊代開發,又被稱為增量式開發,進化式開發,或者IID(Iterative and Incremental Development)

  疊代開發的曆史可以追溯到20世紀50年代末的美國Mercury空間項目,在20世紀80年代得到發展,Frederick Brooks在他的《人月神話》中闡述了瀑布方法的缺陷,以及使用IID的必要性,20世紀90年代IID已經被公認為瀑布方法的後繼者。

  那什麼是靈活開發?

  靈活開發是疊代開發的一種,應用時間定量的疊代和進化式開發,使用自适應計劃,提倡增量傳遞并包含其他提倡靈活性的價值和實踐。

  2001年,靈活聯盟成立,他們發表了靈活宣言。

  靈活的特點是,增量開發,快速原型,适用于中小型項目。

  靈活有很多門派,Xp、Scrum、UP,DSDM等等……他們都是在20世紀90年代發展起來的。

  UP是Unified Process的縮寫(統一過程),他是十分靈活和開放的,隻要是其他靈活方法中有用的實踐,都鼓勵引進,如:Xp的測試驅動,重構,持續內建;Scrum的公共項目室,日常會議等。

  UP分為四個階段:

  1,初始,Inception:大體上的構思,業務案例,範圍和模糊評估

  2,細化,Elaboration:高風險核心架構的解決,确定大多數需求,更為實際的評估

  3,構造,Construction:實作風險較低的元素

  4,移交,Transition:進行beta測試和部署

  UP的過程:

  1,在第一次疊代前,召開需求工作會議,業務和開發人員出席,進行高階需求分析,例如确定用例名稱,關鍵部分功能需求。

        選擇具有架構意義的,高風險的10%用例和特性,進行詳細分析。

  2,第一次疊代前,召開疊代計劃會議

  3,在3-4周完成第一次疊代

  4,第一次疊代快結束時,召開第二次需求工作會議,對上一次會議的所有材料進行複查和精化,然後又開始對另外的10%-15%用例進行深入分析。并計劃下一次疊代。

  5,四到五次疊代以後可能已經詳細記錄了80-90%的需求,但隻實作了系統的10%,這是細化階段

  6,此後需求已經基本穩定,一般不再召開需求會議,接下來進入建構階段。

  具體來說:

  1,初始階段包括的行為:編寫用例,補充性規格說明,詞彙表,設想,業務規則等其他非功能需求。

  2,細化階段的每次疊代:領域模型,SSD(系統順序圖),操作契約,确定邏輯架構(宏觀組織結構),UML包圖,畫互動圖(順序圖,通信圖),畫類圖,設計可見性,映射為代碼,應用GRASP模式和GOF模式,用UML工具逆向工程,從代碼生成圖形,用4+1視圖模型文檔化架構。

繼續閱讀