敏捷軟件開發(Agile Software Development)

敏捷軟件開發(Agile Software Development

From 《敏捷軟件開發 原則、模式與實踐》(Agile Software Development: Principles, Patterns, and Practices

敏捷軟件開發宣言

我們正在通過親身實踐以及幫助他人實踐,揭示更好的軟件開發方法。通過這項工作,我們認爲:

個體和交互     勝過 過程和工具

可以工作的軟件 勝過 面面俱到的文檔

客戶合作       勝過 合同談判

響應變化       勝過 遵循計劃

雖然右項也具有價值,但我們認爲左項具有更大的價值。

 

敏捷宣言遵循的原則

我們遵循以下原則:

01.  我們最優先要做的是通過儘早的、持續的交付有價值的軟件來使客戶滿意。

02.  即使到了開發的後期,也歡迎改變需求。敏捷過程利用變化來爲客戶創造競爭優勢。

03.  經常性地交付可以工作的軟件,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好。

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

05.  圍繞被激勵起來的個體來構建項目。給他們提供所需的環境和支持,並且信任他們能夠完成工作。

06.  在團隊內部,最具有效果並且富有效率的傳遞信息的方法,就是面對面的交談。

07.  可以工作的軟件是首要的進度衡量標準。

08.  敏捷過程提倡可持續的開發速度。責任人、開發者和用戶應該能夠保持一個長期的、恆定的開發速度。

09.  不斷地關注優秀的技能和良好的設計會增強敏捷能力。

10.  簡單——使未完成的工作最大化的藝術——是根本的。

11.  最好的構架、需求和設計出自於自組織(self-organized)的團隊。

12.  每隔一定時間,團隊會在如何才能更有效地工作方面進行反省,然後相應地對自己的行爲進行調整。

 

極限編程(XP, eXtreme Programming)實踐

面向對象設計(OOD)的原則

開放-封閉原則(OCP, The Open-Closed Principle

軟件實體(類、模塊、函數等)應該是可擴展的(功能上),但是不可修改(源代碼)。

 

單一職責原則(SRP, The Single Responsibility Principle

就一個類而言,應該僅有一個引起它變化的原因。

 

里氏替換原則(LSP, The Liskov Substitution Principle

子類型必須能夠替換掉它們的基類型。

 

依賴倒置(轉)原則(DIP, The Dependency Inversion

抽象不應該依賴於細節,細節應該依賴於抽象。

 

接口隔離原則(ISP, The Interface Segregation Principle

不應該強迫客戶依賴於他們不用的方法。接口屬於客戶,不屬於它所在的類層次結構。

 

重用發佈等價原則(REP, The Reuse/Release Equivalence Principle

重用的粒度就是發佈的粒度。

 

共同封閉原則(CCP, The Common Closure Principle

包中的所有類對於同一類性質的變化應該是共同封閉的。一個變化若對一個包產生影響,則將對該包中的所有類產生影響,而對其他的包不造成任何影響。

 

共同重用原則(CRP, The Common Reuse Principle

一個包中的所有類應該是共同重用的。如果重用了包中的一個類,那麼就要重用包中的所有類。

 

無環依賴原則(ADP, The Acyclic Dependencies Principle

在包的依賴關係圖中不允許存在環。

 

穩定依賴原則(SDP, The Stable Dependencies Principle

朝着穩定的方向進行依賴。

 

穩定抽象原則(SAP, The Stable Abstractions Principle

包的抽象程度應該和其穩定程度一致。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章