重構(refactoring):是在不改變軟體現有功能的基礎上,通過調整程式**改善軟體的質量、效能,使其程式的設計模式和架構更趨合理,提高軟體的擴充套件性和維護性。
物件導向設計原則:單一職責原則
開閉原則
黎克特制代換原則
依賴倒轉原則
介面隔離原則
合成復用原則
迪公尺特法則
單一職責原則(single responsibility principle, srp)定義如下:
在軟體系統中,乙個類只負責乙個功能領域中的相應職責。
類的職責主要包括兩個方面:資料職責和行為職責。
單一職責原則是實現高內聚、低耦合的指導方針。
開閉原則(open-closed principle, ocp)定義如下:
乙個軟體實體應當對擴充套件開放,對修改關閉。
實現開放封閉原則的核心思想就是對抽象程式設計。
氏代換原則(liskov substitution principle, lsp):
所有引用基類(父類)的地方必須能透明地使用其子類的物件。
氏代換原則可以通俗表述為:在軟體中如果能夠使用基類物件,那麼一定能夠使用其子類物件。
黎克特制代換原則是實現抽象化的一種規範。違反黎克特制代換原則意味著違反了開閉原則,反之未必。黎克特制代換原則是使**符合開閉原則的乙個重要保證。
依賴倒轉原則(dependence inversion principle, dip)的定義如下:
高層模組不應該依賴低層模組,它們都應該依賴抽象。抽象不應該依賴於細節,細節應該依賴於抽象。
另一種表述為:
要針對介面程式設計,不要針對實現程式設計。
介面隔離原則(inte***ce segregation principle, isp)的定義如下:
客戶端不應該依賴那些它不需要的介面。
合成復用原則(composite reuse principle, crp)又稱為組合/聚合復用原則(composition/ aggregate reuse principle, carp),其定義如下:
盡量使用物件組合,而不是繼承來達到復用的目的。
物件導向軟體工程複習之測試習題
1 乙個成功的測試可以 c a 表明程式沒有錯誤 b 發現所有錯誤 c 發現尚未發現的錯誤d 提高軟體可靠性 2 在下列軟體生存週期模型中,哪乙個是由rational公司推出的軟體過程?d a 瀑布模型 b 極限程式設計 c 噴泉模型 d rup統一過程 3 在程式的規格說明中,對輸入條件有一句話 ...
物件導向軟體工程的設計過程
物件導向的軟體工程 1.物件導向分析 object oriented analysis ooa 軟體工程中的系統分析階段,系統分析員要和使用者結合在一起,對使用者的需求做出精確的分析和明確的描述,從巨集觀的角度概括出系統應該做什麼 而不是怎麼做 物件導向的分析,要按照物件導向的概念和方法 在對任務的...
物件導向的軟體工程
物件導向的軟體工程是當前最流行的軟體工程方法,但是,想要從根本上搞懂理解物件導向的工程方法很是不容易,所以,暫時不要執著於深究物件導向的原理,或者從頭到腳的去觀察他。選擇從工程中去學習物件導向的方法,從實踐中去獲取對物件導向工程方法的理解。uml是物件導向工程方法相關的設計工具,學習使用uml工具是...