原創 使用 UML 面向對象分析和設計 課堂筆記(三) 原力計劃

目錄

一.瞭解軟件架構

1.創建包關係圖

2.創建組件關係圖

3.創建部署關係圖

二.使用框架和模式

1.GRASP

2.GoF

2.1 創建型

2.2 結構型

2.3 行爲型

​​​​​​​3.對設計模式建模

4.將設計映射到代碼

5.重構設計

6.應用會化外觀


一.瞭解軟件架構

  • 架構建模:描述軟件系統的物理成分,物理成分包括:組件 和 在組件上運行的節點
  • 架構建模關係圖:包關係圖、構件關係圖、部署關係圖

1.創建包關係圖

  • 包關係圖:描述系統各個包以及包之間的關係
  • 根據以下規則,將系統用例分組爲各個包:
  1. 分組相關用例
  2. 基於使用用例的角色來對用例進行分組
  • 根據以下規則,將系統類分組爲各個包:
  1. 把 具有相同繼承層次結構的類 組合在一個包裏
  2. 通過 複合關係 把相關類組合在一個包裏
  3. 將 相互協作、彼此交互的類組 打包
  • 包內成分可見性的符號有:
  1. +:指成分是公共的,可被其他包的成分訪問
  2. #:指成分是受保護的,只有繼承它的成分可被訪問
  3. -:指成分是私有的,不可被包外成分訪問
  • 包之間的關係類型包括: 訪問依賴性關係、泛化關係

2.創建組件關係圖

  • 組件提供了一組接口的實現,用於對系統運行所需的各個組件建模
  • 可對其建模以構成完整的軟件系統的組件是 :
  1. 部署組件:構成可執行系統的組件
  2. 工作產品組件:作爲 SDLC 實現階段成果的組件
  3. 執行組件:系統執行時創建的組件
  • 組件實現了一組接口,其中每個接口指定類所提供的功能
  • 類也可實現一組接口
  • 建模組件的技術有:
  1. 源代碼文件建模
  2. 可執行文件建模
  3. 數據庫建模
  • 使系統源代碼組件形象化的不同方式:
  1. 將源代碼分組爲若干包,並在包關係圖中描述
  2. 畫出組件關係圖,使系統源代碼文件間的關係形象化
  • 可執行文件建模包括:建模系統的.exe,庫、數據庫等
  • 數據庫建模包括:
  1. 用 組件關係圖 描述 數據庫表組件
  2. 描述與 每個數據庫表組件 相關的列和存儲過程

3.創建部署關係圖

  • 部署關係圖:顯示在其中 部署軟件組件的硬件
  • 部署組件的 計算機系統 或 處理設備 稱爲 節點用三維矩形框表示,框內包含節點內執行的組件
  • 節點通過 連接 互相關聯,連接表示 通信信道(節點之間的一條直線)
  • 節點和組件之間的 依賴關係 用虛線表示
  • UML 的預定義視圖類型有:
  1. 模塊視圖類型:實現特定功能的模塊
  2. 組件與連接器(C&C)視圖類型:作爲執行單元的組件的集合
  3. 分配視圖類型:一組系統的 組件或模塊 與其 開發環境 之間的關係

二.使用框架和模式

  • 框架和模式是使軟件構件可重用的標準
  • 框架:類似於應用程序中的通用功能,擁有 Microsoft VC++  提供的 Microsoft 基礎類(MFC)是框架的示例,它允許開發具有公共特徵(如命令按鈕)的圖形用戶界面
  • 框架特性:表示類或庫的集合,包括 抽象、具體類、抽象方法,包含可通過子類化來擴展的類
  • 模式:提供 給定問題的 標準解決方案的 一組原則和指南,有助於 軟件組件之間 更好的通信
  • 模式分類:
  1. 通用職責分配軟件模式(GRASP)
  2. 四人組模式 (GoF)

1.GRASP

  • GRASP 是一組模式,它提供 分配對象職責的原則,如 怎樣創建對象、怎樣撤消對象等
  • GRASP 由以下模式組成:
  1. 專家模式:爲 包含相關信息的類 分配職責的指南
  2. 創建者模式:爲 特定類的新對象 分配職責的指南
  3. 控制器模式:處理系統事件的指南
  • 專家模式 提供用於 向包含相關信息的類 指派職責的 指示信息
  • 創建者模式,如果以下條件爲 true,那麼類負責創建對象:
  1. 一個類包含另一個類
  2. 類記錄其它類的實例
  3. 類使用其它類的對象
  4. 類提供初始化其它類的對象的信息
  • ​​​​​​​控制器模式,處理系統事件的職責應分配給滿足以下一個或多個條件的類:
  1. 表示整個系統
  2. 表現爲用例處理程序

2.GoF ​​​​​​​

  • 基於open-close原則,認爲 所有的設計 都應對於 擴展開發 並且 不允許修改,有以下特性:
  1. 能重用 現有的關於常見設計問題的 解決方案
  2. 建立問題及其解決方案的通用術語,以便於理解
  • 大致可分爲三類: 創建、結構、行爲

2.1 創建型

  • 創建型設計模式提供 創建對象 和 管理對象生命週期 的方法
  • 常用的創建型設計模式有:工廠、生成器、單一實例
  • 工廠模式:提供一個被稱爲 factory的類,控制抽象基類的 子類對象的 生存期,以下情況需用工廠模式:
  1. 無法預見 運行時需要哪種類型對象
  2. 當基類是個抽象類時,模式必須返回一個已初始化的對象
  • 生成器模式:把複雜對象的創建和構造 與 它的表示分離
  • 可以對同一個複雜對象創建多個表示,並修改對象的安排
  • 類似於抽象工廠方法,因爲兩者都 創建對象族
  • 聚集 或 構造簡單對象 以表示一個複雜對象
  • 單例模式:允許創建自身的實例的類
  • 當需要訪問代表現實生活對象的單個對象(如打印機和鼠標)時,單件模式是有用的
  • 用 靜態數據成員 定義單件模式,以跟蹤所創建對象的生命期

2.2 結構型

  • 結構型設計模式:描述如何 使用對象組合 來組合類和對象結合 以形成更大的結構
  • 最常用的結構型模式有: 複合模式、代理模式、裝飾模式、外觀模式
  • 複合模式:
  1. 表示複合對象,可包含 簡單對象 和 複合對象
  2. 提供接口訪問複合對象內的 複合對象 和 簡單對象
  3. 可把複合模式想象成一棵樹,其中複合對象表示結點,簡單對象表示樹葉
  • 代理模式:
  • 把 複合對象 表示爲 簡單對象,把對象創建推遲到需要時才進行
  • 裝飾模式:
  • 修改個別對象的行爲 而不必 創建新的派生類,爲現有對象 定義 附加功能
  • 外觀模式:
  • 提供單一化的接口簡化軟件開發,在實現分層架構時 也很有用

2.3 行爲型

  • 行爲模式 提供在對象間進行通信的指南,最常用的行爲模式有:
  1. 職責鏈:描述各種類如何處理請求,描述可以處理的請求類型,描述如何將類無法處理的請求傳遞給其它類 
  2. 命令:描述如何將 方法請求調用 僅傳遞到特定模塊
  3. 觀察者:創建單獨的對象 顯示各種形式的信息

​​​​​​​3.對設計模式建模

  • 對設計模式建模的各種視圖包括:
  1. 外部視圖:將 設計模式的結構 表示爲 參數化協作
  2. 內部視圖:將 設計模式的結構 表示爲模式創建者(例如開發人員)所見的結構,內部視圖描述爲 不帶參數的協作
  • ​​​​​​​將設計模式與分層架構關聯:

4.將設計映射到代碼

  • 通過使用 CASE 工具(例如 Rational Rose、Jude 和 Visio),可以自動從 類和通信關係圖 生成代碼
  • CASE 工具使用不同的 經驗規則 和 啓發式原則 從設計模型生成代碼,代碼從 類的方法 和 變量生成
  • 支持逆向工程,能根據 項目實現 和 測試階段的代碼 生成設計模型

5.重構設計

  • 不改變類的外部行爲,重新構造現有代碼的內部結構 的技術
  • 改變了類模型,但不改變系統的架構
  • 可能進行重構的因素有:
  1. 由於 設計實現的平臺原因 在實現階段 需要標識新方法
  2. 從 通信關係圖 得出的方法 在類關係圖裏 沒有表示出來

6.應用會化外觀

  • 會話外觀:用於創建企業應用程序,如使用企業 JavaBeans(EJB)的應用程序的設計模式
  • 高級業務組件 定義 低級業務組件(例如企業 bean)之間的完整交互
  • 會話外觀 相當於 低級業務組件 的接口,降低了低級業務組件之間的耦合度,使企業應用程序的設計可重用
 

​​​​​​​​​​​​​​

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