腐化軟件的特色:設計
僵化性:單一改動會致使有依賴關係的模塊的連鎖改動。軟件
脆弱性:進行一個改動時,程序的不少地方都會出問題。程序
沒必要要的複雜性:設計中包含了當前沒有用到的組成部分。方法
需求的不斷變化,致使了軟件的改動,最終致使了軟件的腐化。敏捷
若是軟件的設計因爲需求的變化而退化,那麼就是不敏捷的。
團隊不是在一開始設計模塊時就試圖預測程序如何變化,相反,他們是以最簡單的方法編寫的,直到需求最終確實變化時,他們才修改模塊的設計,使之對該種變化保持彈性。
敏捷設計是一個持續的應用原則、模式以及實踐來改進軟件的結構和可讀性的過程。
單一職責原則:就一個類而言,應該僅有一個引發它變化的緣由。
若是一個類承擔了多於一個的職責,那麼引發它變化的緣由就會有多個。
若是程序的變化老是致使兩個職責同時發生變化,那麼就沒必要分離它們。