---
# System prepended metadata

title: 系統分析 CH3
tags: [系統分析]

---

# 系統分析 CH3
## 模型(Models)
* 將真實事物抽象化，用文字或圖形來描寫系統規格，而我們將真實事物抽象化的過程稱為==塑模==
* 建立的模型不會等於真實系統
* 兩個基本原則:
> **強調**:強化必要部分
> **省略**:除去不相關的部分
* 替系統建立模型是為了
> **溝通**:讓客戶可以了解資訊科技的相關資訊，建立與客戶間的溝通橋樑
> **視覺化**:讓所有參與者都了解系統，使模型視覺化讓使用者更了解
> **驗證**:模型可以幫助我們驗證系統是否完整(Completeness)、一致(Consistency)、正確(correctness)

## 塑模
* 方法
>**演算法塑模**:傳統結構化的方式就是建立演算法，彈性非常差，很難升級系統
>**物件導向塑模**:以物件來建立模型，較貼近真實生活
* 塑模語言:用++字彙++跟++規則++來呈現系統的語言，可以用任何形式來幫助我們了解系統
> 其元素稱為符號
> **圖形塑模語言**:使用圖形加上符號來呈現觀念，然後用連接線來表達之間的關係，用符號來表示限制條件。ex:==UML==
> **文字塑模語言**:利用Keywords加上參數來建立電腦可理解的運算

## UML(統一塑模語言)
* 是程式設計的藍圖
* UML圖形:用視覺化方式來描述模型元素然後建立物件導向分析的結果
* UML2.2版支援14種圖形(7種結構圖(Structure Diagrams)、7種行為圖(Behavior Diagrams))

### **結構圖**
|圖形|說明|
|:--:|:--:|
|Class Diagrams(類別圖)|最常使用，描述類別的==靜態結構==與其他類別關係|
|Object Diagrams(物件圖)|描述==物件實例==的靜態結構，可以顯示++某時間點++系統一組物件之間的關係|
|Component Diagrams(元件圖)|描述系統==重要==元件之間的組織架構|
|Deployment Diagrams(部屬圖)|描述系統==實際執行==的軟硬體環境配置|
|Package Diagrams(套件圖)|使用==階層架構==來組織一組類別和元件|
|Composite Structure Diagrams(組合結構圖)|描述==模型元素==類別或元件的內部結構|
|Profile Diagrams(輪廓圖)|處理==meta-模型==層次的模板|
|2.4和2.5版UML新增的||
|Model Diagrams(模型圖)|顯示一些==抽象或特殊觀點==的系統架構(ex:多層)|
|Manifestation Diagrams(表現圖)|顯示元件在==實體==解決方案中如何++呈現++|
|Network Architecture Diagram(網路架構圖)|高階部屬圖，顯示==邏輯或實體==的系統網路架構|

### **行為圖**
|圖形|說明|
|:--:|:--:|
|Activity Diagrams(活動圖)|類似流程圖，描述==作業流程與操作==|
|Use Case Diagrams(使用案例圖)|描述系統功能和其服務，哪些==使用者==會與之互動，幫我們找出==系統需求==|
|Sequence Diagrams(循序圖)|使用==時間軸==描述物件之間的互動，強調時間順序|
|Communication Diagrams(通訊圖)|描述物件的==互動==，強調物件之間的關係、訊息|
|State Machine Diagrams(狀態機圖)|描述物件==生命週期與狀態轉換==|
|Timing Diagrams(時序圖)|描述詳細==時間==資訊與各==狀態改變==|
|Interavtion Overview Diagrams(互動概觀圖)|使用循序、通訊和時序圖組合後以高階方式描述==系統發生的重要互動==|

* 模型:用抽象化的方式描述準備塑模的所有元素
* 圖形:用不同觀點描述系統特定部分，換句話說一張圖形只能用一種觀點來檢視全部或部分模型

### 方法論
* 沒有統一方法
> OMT(Object Modeling Technique)
> Booch
> OOSE(Object Oriented Software Engineering)
> Shlaer-Mellor

### 4+1
* 幫助我們呈現不同UML圖形以呈現各自在整個系統模型扮演的角色，稱為觀點模型(可用多個不同觀點描述)
* ![圖片名稱](https://img.onl/iuYWxh "游標顯示")
> **使用案例觀點**:使用一組Use Case來描述系統，這是外界看到的系統功能，==需在此描述系統準備要做甚麼==，此為+1，主要是使用UML Use Case 圖和情節來呈現此觀點
> **邏輯觀點**:用==結構元素==描述系統功能的++靜動態++行為，說明系統組成結構和互動，主要用類別、物件、狀態機、互動圖來呈現
> **開發觀點**:程式設計觀點，著重在==程式碼管理的模組與元件==，描述系統內部模組與元件，主要用套件圖和元件圖呈現
> **流程觀點**:系統==非功能需求==的效能與擴充，例如:選課最低要15學分的限制，包含系統處理流程之間的通訊，使我們了解系統發生甚麼，主要用活動圖來呈現
> **實際觀點**:系統工程師觀點，真實世界的拓樸架構，描述最後部屬的實際系統，主要以部屬圖來呈現

### 塑模工具
* CASE(Computer-Aided Software Engineering Tools)工具之一
* 幫助開發者使用UML進行物件導向分析與設計

###### tags: `系統分析`


