avatar

目錄
讀書筆記 - UML 物件導向系統分析與設計(Part 1) RUP 開發方法論與 UML

Hi,大家好,本篇文紀錄 UML 物件導向系統分析與設計 這本書的節錄,想讓自己加深印象

會選擇這本書的原因是,想要讓自己對於系統開發的面向有更多的理解,以及在各種開發過程中,能夠加強撰寫文件及用圖表來視覺化的能力,更重要的是希望,在系統越來越複雜時,能夠降低系統維護的成本,有好文件紀錄著系統架構,避免零散的程式邏輯,提升系統的品質,且更具有可擴展性及可維護性


1.3 - 系統開發生命週期

約略分為四個階段

計畫階段

可行性分析(經濟面、技術面)、實質利益、價值

文件產出:計畫書及工作報告書

計畫階段在回答:Why

分析階段

分析需求,要提供什麼樣的功能?

文件產出:需求文件

需求文件可分為 功能的需求描述非功能的需求描述,不牽涉實作細節

分析階段在回答:What

設計階段

如何達成系統的需求

系統架構模型,包括硬體設施與配置與組態、軟體架構的模型、使用者介面的設計、輸出報表格式的樣式等等

文件產出:系統架構書

設計階段在回答:How

實作階段

根據前幾個階段的文件產出,開發團隊開始建立系統

可能會擬定測試計畫書

產出為最終的系統成品,有撰寫測試就會有測試文件


1.4.2 - Rational Unified Process(RUP) 物件導向系統開發的方法論

任何以物件導向為基礎的系統開發,都必須依循三個方向

1. 由使用案例驅動(Use-CaseDriven)

以使用者的角度來看系統該所需的流程並以此為系統開發的出發點

2. 以架構為中心(ArchitectureCentric)

對於系統架構,可以利用許多不同的觀點,如 RUP 所提出有關架構藍圖的 4 + 1 觀點

3. 反覆且漸進(Iterative and Incremental)

疊代式開發


2.2 - UML 中的 4 + 1 觀點

1. 使用案例觀點(Use Case View)

從使用者角度,表達系統所提供的功能(4 + 1 中的 1 指的是使用案例觀點)

2. 設計觀點(Design View)

系統的靜態結構及動態行為,圍繞在類別、介面及物件的合作等等設計問題上

3. 處理流程觀點(Process View)

系統的性能、延展性等非功能性需求

4. 實作觀點(Implementation View)

模組或元件來顯示設計觀點的物件是在哪一個模組或元件中實作

5. 部署觀點(Deployment View)

系統執行環境的硬體拓樸結構


2.3 - UML 圖形簡介

1. 使用案例圖(Use Case Diagram)

塑模出系統應該做什麼(What),描述系統所提供的功能以及其執行時的情節

2. 活動圖(Activity Diagram)

塑模出系統的處理邏輯以及執行流程。可用來檢視使用案例圖,找尋使用案例中所可能產生的各種不同情節

3. 類別圖(Class Diagram)

塑模出問題領域中所參與的物件類別

4. 物件圖(Object Diagram)

塑模出問題領域中所參與的實際物件

5. 循序圖(Sequence Diagram)

塑模出問題領域中物件互動的情形,在一個使用案例中,物件與物件之間執行順序的時間性

6. 合作圖(Collaboration Diagram)

塑模出問題領域中物件之間互動的情形,合作的物件結構以完成一個使用案例

7. 狀態圖(State Diagram)

塑模系統中物件、子系統、系統等,在其生命週期中各種可能的狀態

8. 元件圖(Component Diagram)

元件的組織及相依性,也包含實作的介面

9. 部署圖(Deployment Diagram)

執行時(Run-time)的配置,或是說硬體配置的靜態觀點以及硬體中的軟體元件

4 + 1 觀點的每一個觀點,可以利用 UML 所提供的九種圖形來表達

靜態模型 動態模型
使用案例觀點 使用案例圖 互動圖、狀態圖、活動圖
設計觀點 類別圖、物件圖 互動圖、狀態圖、活動圖
處理流程觀點 類別圖、物件圖 互動圖、狀態圖、活動圖
實作觀點 元件圖 互動圖、狀態圖、活動圖
部署網站 部署圖 互動圖、狀態圖、活動圖

參考來源

https://www.books.com.tw/products/0010840839

文章作者: 小馬彬
文章鏈接: https://littlehorseboy.github.io/2020/08/23/202008-reading-notes-uml-part-1/
版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 小馬彬的部落格

評論