# 系統分析 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圖形以呈現各自在整個系統模型扮演的角色,稱為觀點模型(可用多個不同觀點描述) *  > **使用案例觀點**:使用一組Use Case來描述系統,這是外界看到的系統功能,==需在此描述系統準備要做甚麼==,此為+1,主要是使用UML Use Case 圖和情節來呈現此觀點 > **邏輯觀點**:用==結構元素==描述系統功能的++靜動態++行為,說明系統組成結構和互動,主要用類別、物件、狀態機、互動圖來呈現 > **開發觀點**:程式設計觀點,著重在==程式碼管理的模組與元件==,描述系統內部模組與元件,主要用套件圖和元件圖呈現 > **流程觀點**:系統==非功能需求==的效能與擴充,例如:選課最低要15學分的限制,包含系統處理流程之間的通訊,使我們了解系統發生甚麼,主要用活動圖來呈現 > **實際觀點**:系統工程師觀點,真實世界的拓樸架構,描述最後部屬的實際系統,主要以部屬圖來呈現 ### 塑模工具 * CASE(Computer-Aided Software Engineering Tools)工具之一 * 幫助開發者使用UML進行物件導向分析與設計 ###### tags: `系統分析`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up