敏捷軟體開發 第II部分 敏捷設計

2021-08-24 19:05:31 字數 506 閱讀 6723

高內聚性:就乙個類而言,應該僅有乙個引起它變化的原因。

軟體實體(類,模組,函式等等)應該是可擴充套件的,但是不可修改的。

如果程式中的一處改動會產生連鎖反應,導致一系列相關模組的改動,那麼設計就具有僵化性的臭味。ocp

原則建議我們應該對系統進行重構。 ø

「對於擴充套件是開放的」(open for extension)

需求變更時,模組行為可以擴充套件。 ø

「對於修改是封閉的」(closed for modification)

對模組行為擴充套件時,不必改動所有模組的源**,只有增加**。

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

術語「is-a

」含義過於寬泛以不能作為子型別的定義。

ø高層模組不應該依賴於低層模組。二者都應該依賴於抽象。 ø

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

不應該強迫客戶依賴於他們不使用的方法。 ø

使用委託(事件訂閱機制)分離介面 ø

使用多重繼承分離介面

敏捷軟體開發 第I部分 敏捷開發

人件 人與人之間的互動是複雜的,並且其效果從來都難以預期,但卻是工作中最為重要的方面。人不是 插入即相容的程式設計裝置 凝聚力 敏捷軟體開發宣言 個體和互動勝過過程和工具 可以工作的軟體勝過面面俱到的文件 工作的軟體是首要的進度度量標準。客戶合作勝過合同談判 響應變化勝過遵循計畫 為下兩周做詳細的計...

敏捷軟體開發 第I部分 敏捷開發

人件 人與人之間的互動是複雜的,並且其效果從來都難以預期,但卻是工作中最為重要的方面。人不是 插入即相容的程式設計裝置 凝聚力 敏捷軟體開發宣言 個體和互動勝過過程和工具 可以工作的軟體勝過面面俱到的文件 工作的軟體是首要的進度度量標準。客戶合作勝過合同談判 響應變化勝過遵循計畫 為下兩周做詳細的計...

敏捷軟體開發 敏捷開發原則

編寫單元測試是一種驗證行為,更是一種設計行為。測試時乙個無價的文件。如果你想知道如何呼叫乙個函式或者建立乙個物件,會有乙個測試展示給你看。什麼是設計?不應該認為設計就是一組和 分離的uml圖。一組uml圖也許描繪了設計的一些部分,但是它不是設計。還是要 化 僵化性是指難以對軟體進行改動,即使是簡單的...