第六章
可維護性的常見度量指標:圈複雜度、**行數、運算子/運算元的數目、可維護性指數(mi)、繼承深度、類耦合、單元測試覆蓋度
聚合度與耦合度
(1)耦合度:多個模組間的相互聯絡
(2)聚合度:模組內部語句或語句段之間的聯絡
solid
(1)s:單一責任原則,即引起類變化的原因只有乙個
(2)o:開放封閉原則,對擴充套件開放,對修改封閉,通過整合/組合改變/擴充套件功能
(3)l:即lsp
(4)i:介面隔離原則,即客戶端不應依賴於不使用的介面,令介面盡可能小
(5)d:依賴轉置原則,細節、模組都應依賴於抽象
設計模式
(1)構建模式
·factory method:將例項的生成交給子類,將**同物件建立解耦
·abstract factory:將關聯零件組裝成產品
·builder:將複雜物件的構造與其表示分開,以便相同的構建過程可以建立不同的表示
(2)結構模式
·bridge:將類的功能層次結構與實現層次結構分離
·proxy:只在必要時生成例項
- 遠端(remote):提供乙個物件在不同位址空間的區域性代表,即快取
- 虛擬(visual):根據需要建立開銷較大的物件,實現延遲載入
- 保護(protection):保護實際的物件
·復合(composite):將物件組合成樹形結構以表示「部分-整體」的層次結構。使得使用者對單個物件和組合物件的使用具有一致性
(3)行為模式
·觀察者(observer):建模物件之間的一對多依賴關係
- 保持冗餘狀態的一致性
- 優化一批更改以保持一致性
·中介者(mediator):定義乙個介面用於與各同事(colleague)物件通訊,如send -> receive
·訪客(visitor):將資料結構與其上的處理分離,允許在執行時對一組具有不同資料結構的物件執行統一操作
·狀態(state):允許乙個物件的內部狀態改變時改變它的行為,與策略結構相同,但各部分不可互換
·備忘錄(memento):儲存乙個物件的某個狀態,以便在適當的時候恢復物件,需要乙個memento和乙個caretaker
語法、正規表示式
(1)語法:可以幫助區分合法/非法序列,將序列解析為程式可以使用的資料結構(通常是遞迴資料型別)
·產生式:表示該變數根據其他變數,運算子和常量的定義
·非終結符:相當於變數,表示一組字串
·終結符:相當於常量,語法分析樹中的葉子
·運算子:ab,a*,a|b,[^ab],[ab],a+,a?
(2)正規表示式:許多字串處理任務中廣泛使用的工具,需要對字串進行反彙編,從中提取資訊或對其進行轉換
·通過用右手邊替換每個非終結符(除了根節點之外),可以將其減少為根的一次生產,只有終端和操作符在右側。
·特殊字元:.(單一字元)、\s(空白)、\w(字母)、\d(數字)……
·倘若根結點中包含的組成部分又可以生成根節點,則永遠無法遞迴到只剩終結符的時候,該語言不是遞迴的
軟體構造 課程提綱(1)
第一章 1.多維檢視 1 階段 構建 執行 2 動態 時刻 週期 3 級別 元件 2.階段劃分 各階段構造活動 1 構建階段 時刻 源 由基本程式塊及其依賴關係進行邏輯組織。週期 新增 修改 刪除從乙個版本到另乙個版本的檔案。元件 時刻 源 通過檔案,目錄,包,庫及其依賴關係進行物理組織。元件 週期...
軟體構造課程
課程目標 在高階語言程式設計的基礎上,認識軟體構造的質量標準與目標,學習軟體 構造的基本過程,從而具備面向質量目標的複雜軟體構造方法與能力 深入學習抽象資料型別 adt 與物件導向程式設計 oop 初步掌握面向關鍵質量目標 可理解性 可維護性 可復用性 健壯性 時 空效能 的軟體構造基本技術 了解軟...
軟體構造課程 ADT
abstract data types可簡單理解為乙個封裝的型別,它不需要提供各種詳細的資訊,但是可以有強大的功能。它具有一定的防禦性,只對外提供一些操作,但是內部可以是各種複雜的函式。對於乙個抽象類操作它的型別主要有4種 t非此型別的資料 t則為該資料型別。creators t t。比如對於int...