# 系統分析 CH4 * 傳統系統開發:資料和操作分開思考,著重找出解決問題的程序或函數(演算法) * 物件導向的軟體系統開發是資料+操作一起思考,主要是找出物件之間的關聯 * ==順序圖== * ![圖片名稱](https://img.onl/O5b3Ld "游標顯示") ## 物件導向軟體開發說明與優點 >可以輕鬆擴充現有系統 >容易了解、維護與撰寫 >物件導向軟體裡每個物件包含資料和處理資料的函數都會將實際的資料隱藏起來,稱為封裝(Encapsulation) >元件的模組每個都可重複利用,並且為隨插即用 ### 物件導向分析(OOA) >強調如何從問題領域: >建立案件模型(軟體系統能做甚麼事){使用案例圖和使用案例規格(一些需求與主流程)} >識別出物件,抽象化後建立領域模型(有哪些類別) >指定類別建立概念模型(每個類別負責甚麼){CRC卡(Class、Respomsbilities、Collaborators)} ### 物件導向設計(OOD) >決定類別屬性、行為與類別關係的細部設計(如何保證類別知道他要做的事) >建立Design Model(類別如何在系統中溝通) >使用循序圖跟通訊圖 >使用Is-a,Has-a還有Part-of ### 物件導向程式設計(OOP) >將類別圖轉換成程式碼,建立實作模型 ## UML塑模過程 ### 需求階段 >**需求擷取**:找使用者需求 ### 物件導向分析 >**建立使用案例模型**:擷取系統需求寫出案例圖與使用案例規格(活動圖) >**定義概念模型**:定義概念模型的類別圖 ### 物件導向設計 >**建立互動圖**:使用==互動圖==描述物件之間的訊息,用==循序圖==(時間軸)和==通訊圖==(空間角度)找出關係 >**定義設計模型**:用循序圖和通訊圖找出類別細節,更新概念模型並建立設計模型的類別圖 ###### tags: `系統分析`