敏捷式軟體開發 (Agile Software Development)過程模型

來源:互聯網
上載者:User

敏捷聯盟為希望達到敏捷的人們定義了12條原則:

1)最優先要做的是通過儘早、持續傳遞有價值的軟體來使客戶滿意。

2)即使在開發的後期,也歡迎需求變更。敏捷過程利用變更為客戶創造競爭優勢。

3)經常交付可工作軟體,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好。

4)在整個項目開發期間,業務人員和開發人員必須天天都在一起工作。

5)圍繞受激勵的個人構建項目。給他們提供所需的環境和支援,並且信任他們能夠完成工作。

6)在團隊內部,最富有效果和效率的資訊傳遞方法是面對面交談。

7)可工作軟體是進度的首要度量標準。

8)敏捷過程提倡可持續的開發速度。責任人、開發人員和使用者應該保持一種長期、穩定的開發速度。

9)不斷地關注優秀的技能和好的設計,增強敏捷能力。

10)簡單:使不需要的工作最大化。

11)好的架構、需求和設計出自於自組織團隊。

12)每隔一定時間,團隊會反省如何更有效地工作,並相應調整自己的行為。

敏捷可用於任何軟體過程,實現要點是將軟體過程設計為如下方式:允許項目團隊調整併合理安排任務,理解敏捷開發方法的易變性並制定計劃,精簡併維持最基本的工作產品,強調增量交付策略,快速向客戶提供適應產品類型和運行環境的可運行軟體。

下面,我們以極限編程(eXtreme Programming,XP)為例,介紹敏捷過程模型。

XP使用物件導向方法作為推薦的開發範型。XP包含了策劃、設計、編碼和測試4個架構活動的規則和實踐。圖2-9描述了XP過程,並指出與各架構活動相關的關鍵概念和任務。

 

策劃。策劃活動開始於建立一系列描述待開發軟體的必要特徵與功能的"故事"。每個故事由客戶書寫共置於一張索引卡上,客戶根據對應特徵或功能的全域業務價值標明權值(即優先順序)。XP團隊成員評估每一個故事並給出以開發周數為度量單位的成本。如果某個故事的成本超過了3個開發周,將請客戶把該故事進一步細分,重新賦予權值並計算成本。新故事可以在任何時刻書寫。

客戶和XP團隊共同決定如何把故事分組,共置於XP團隊將要開發的下一個發行版本中。一旦形成關於一個發布版本的基本承諾,XP團隊將按以下三種方式之一對待開發的故事進行排序:(1)所有選定故事將在幾周之內儘快實現;(2)具有最高價值的故事將移到進度表的前面並首先實現;(3)高風險故事將首先實現。

項目的第一個發行版本發布之後,XP團隊計算項目的速度。簡言之,項目速度是第一個發行版本中實現的使用者故事個數。項目速度將用於協助建立後續發行版本的發布日期和進度安排;確定是否對整個開發項目中的所有故事有過分承諾。一旦發生過分承諾,則調整軟體發行版本的內容或者改變最終交付日期。

在開發過程中,客戶可以增加故事、改變故事的權值、分解或者去掉故事。接下來由XP團隊重新考慮所有剩餘的發行版本,並相應修改計劃。

設計。XP設計嚴格遵循保持簡潔(Keep It Simple,KIS)原則,使用簡單而不是複雜的表述。另外,設計為故事提供不多也不少的實現原則,不鼓勵額外功能性設計。

XP鼓勵使用類-責任-共同作業者(CRC)卡作為有效機制,在物件導向語境中考慮軟體、CRC卡的確定,組織和當前軟體增量相關的對象和類。CRC卡也是作為XP過程一部分的唯一的設計工作產品。

如果在某個故事設計中碰到困難,XP推薦立即建立這部分設計的可執行原型,實現並評估設計原型,目的是在真正的實現開始時降低風險,對可能存在設計問題的故事確認最初的估計。

編碼。在故事開發和基本設計完成之後,團隊不應直接開始編碼,而是開發一系列用於檢測本次(軟體增量)發布的包括所有故事的單元測試。一旦建立起單元測試,開發人員就可以更集中精力於必須實現的內容以通過單元測試。不需要加任何額外的東西(保持簡潔)。一旦編碼完成,就可以立即完成單元測試,可由此向開發人員提供即時的反饋。

XP編碼活動中的關鍵概念之一是結對程式設計。XP推薦兩個人面對同一台電腦共同為一個故事開發代碼。這一方案提供即時解決問題和即時品質保證的機制,同時也使開發人員能集中精力於手頭的問題。實施中不同成員擔任的角色略有不同。例如,一名成員考慮特定設計的詳細編碼實現,而另一名成員確保編碼遵循特定的標準,產生的程式碼符合該故事的介面設計。

結對的兩人完成所開發代碼和其他工作整合。在有些情況下,這種整合工作由整合式團隊按日實施。在另外一些情況下,結對者自己負責整合,這種"連續整合"策略有助於避免相容性和介面問題,建立能及早發現錯誤的"煙霧測試 (Smoke Test)"環境。

測試。在編碼開始之前建立單元測試是XP方法的關鍵因素。所建立的單元測試應當使用一個可以自動實施的架構,這種方式支援代碼修改之後即時的迴歸測試策略。

一旦將個人的單元測試組織到一個"通用測試集",每天都可以進行系統的整合和確認測試。這可以為XP團隊提供連續的進展指示,也可在一旦發生問題的時候及早提出預警。

XP驗收測試也稱為客戶測試,由客戶確定,將著眼於客戶可見的、可評審的系統級的特徵和功能,驗收測試根據本次軟體發布中所實現的使用者故事而確定。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.