###### tags: `SA` # chapter 1 系統分析設計概觀 | 章節 | 大綱 | | --------- | -------- | | 1-1| 系統分析與系統設計定義| | 1-2| 軟體SOP| | 1-3| 系統分析與系統設計定義 | ## 系統分析與系統設計定義 > **系統分析** ``` - 定義系統開發內容與範疇 - 考慮如何做。 - 指分析師定義和描述系統解決需求細節的一組活動。 ``` 範例:功能分解圖(FDD) ![](https://i.imgur.com/ckTsfWB.png) >**系統設計** ``` - 定義系統開發內容與範疇。 - 考慮要做什麼 - 指分析師去瞭解和明確敘述出資訊系統應該完成的工作的一組活動。 ``` 範例:點餐app Step1 點餐第一步點餐菜單 Step2 選取自動結帳或服務生結帳 Step3 給顧客多少錢 Step4 給後端廚房 Step5 端回給顧客 ## 軟體SOP(Standard Operation Process) > **工作步驟** - **Step1 需求** 訪談用戶需求,了解用戶對於軟體目標和軟體幫助他解決什麼事情。 範例:[需求修改紀錄-客戶許願清單](https://docs.google.com/spreadsheets/d/1G8sRPQo5g9crPjR1zSnWRwgF9BpBe729z5z08Fv2Ezw/edit?usp=sharing) - **Step2 分析** 通過訪談內容與合約,描述系統內的規格內容與限制。 - **Step3 設計** 產出內容包括 - 角色
 - 架構:通過 Function Map&Sitemap - 流程圖 - 類別圖...等 - **Step4 程式製作** 系統設計書轉為程式模組。 - **Step5 測試** - 測試工作:進行單元測試、整合測試、功能測試、系統測試。 - **Step6 部署** 上線工作就是將測試完成的系統轉移到實際環境運行。 - **Step7 維護** - 正確性維護:修改系統錯誤 - 適應性維護:因應環境變化進行的修改工作 - 完美性維護:使用者需要提升系統運作效能所做的調整工作 > **階段** - **Step1 需求** - **Step2 起始(inception)** - **Step3 詳細闡述(elaboration)** - **Step4 建構(construction)** - **Step5 轉換(transition)** > **工作量概覽** ![](https://i.imgur.com/DR1HV2Z.png) ## 系統分析與系統設計定義 > **結構化方法 Structure Method / SD方法** ``` - 是一種傳統的軟體開發方法,它是由結構化分析、結構化設計和結構化程式設計三部分有機組合而成的。 - 把一個複雜問題的求解過程分階段進行,而且這種分解是自頂向下,逐層分解,使得每個階段處理的問題都控制在人們容易理解和處理的範圍內。 ``` 例如用 結果範例DFD、流程圖Control Flow Diagram **流程圖中圓型是流程方型是相關資料庫** ![](https://i.imgur.com/tRGueHp.png) > **物件導向方法 Object-Oriented Method / OO 方法** ``` - 所謂物件導向就是基於對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟體系統。 - 把工作流程跟資料合併封裝在物件裡面後,由物件描述系統工作。 - 是一種把物件導向應用於軟體開發過程中,指導開發活動的系統方法,是建立在“對象”概念基礎上的方法學。對象是由資料和容許的操作組成的封裝體,與客觀實體有直接對應關係,一個對象類定義了具有相似性質的一組對象。 ``` 範例:信義房屋賣房子 | 項目| 內容 | | -------- | ---- | | 物件名稱|永和巨景豪宅| | 屬性 |地址、類型、年份、售價、說明| | 操作物件 | 委託、看屋、議價、交易| 物件導向系統所需要的標準程序稱為統一程序(UP),所發展出的物件模式化語言稱為UML。已經成為一種繪圖標準。 物件導向與結構化差異在於此方法將系統分割成多個物件,物件中包含資料內容與程式操作方式。 :::info **專有名詞** 1. 功能分解圖Functional Decomposition Diagram(FDD) 2. 流程圖Control Flow Diagram 3. 統一程序(Unifiedprocess,UP) 4. UML(Unified Modeling Language) ::: :::info **結構化方法補充** ![](https://i.imgur.com/gg9oryM.png) ![](https://i.imgur.com/J2IyYwj.png) ![](https://i.imgur.com/0ZAbRLr.png) ::: :::info **物件導向方法補充** ![](https://i.imgur.com/M5fxXvr.png) ::: :::info **更多資訊補充** 1.[figma筆記](https://www.figma.com/file/7P3M6Jl1PILNSMME6kKAe9/%E7%B3%BB%E7%B5%B1%E5%88%86%E6%9E%90%E7%A0%94%E7%A9%B6?node-id=4%3A14) 2.[結構化方法與物件導向方法的比較](https://topic.alibabacloud.com/tc/a/comparison-between-structured-method-and-object-oriented-method_8_8_31095700.html) 3.[物件導向(Object Oriented Programming)概念 ](https://totoroliu.medium.com/%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91-object-oriented-programming-%E6%A6%82%E5%BF%B5-5f205d437fd6)4.[資料流程圖(Data Flow Diagram)](https://peilee-98185.medium.com/%E8%B3%87%E6%96%99%E6%B5%81%E7%A8%8B%E5%9C%96-data-flow-diagram-2b27d8c67f54) 5.[訂餐系統DFD](https://kknews.cc/code/3qg92ao.html) 6.[校務研究資料申請流程](https://ir.ncu.edu.tw/index.php/en/document-2) :::