8.1 software Engineering
降低花費, 提昇生產力與可靠度
軟體生命週期
透過 系統分析師(SA/SD) 負責
- SA (System Analysis)
- 需求分析: 找出軟體系統需要什麼
- 系統說明: 功能
- SD
- 系統設計: 輸出輸入,資料結構演算法,如何分配程式碼
- 實作: routine必須要有註解增加可讀性,說明I/O parameter、資料結構、被呼叫/呼叫、演算法
- 系統測試
- 維護(Maintenance)
- corrective maintenance: 原始程式bug
- perfective maintenance: 改善系統性能,不改變需求
- Adaptive maintenance: 修改系統環境
- Enhancement: 增加功能
8.2 System Analysis 系統分析
需求分析步驟
- 了解電腦化(自動化)需求
- 系統分析師由使用者角度編寫需求報告
系統規格步驟
- 面談、問卷調查、收集資料
- 完成系統規格說明書,必須了解人工作業流程
系統規格
back定義(注: 業界大多採用CMMI)
- 輸入、輸出、品質保證
- 決策表
Data Flow Diagram
流程,並且盡可能細分流程以便於編寫程式
8.3 System Design
- 輸出設計
- 輸入設計
- 檔案設計: 資料結構
- 處理程式設計: 演算法
Modular design
分而治之,由上自下設計程式,編寫偽代碼。
8.4 System Testing strategies
- unit testing 單元測試
- black testing 測試功能,不考量程式碼
- white testing 測試所有可能的Statements
- Integration testing 整合測試,測試介面
- System testing 測試整體系統
- Alpha testing 發布外部使用者前,進行測試
- Beta testing 給予特定人士測試
- Acceptance testing
top down testing
對由整體對組件與函數測試,可以在整合早期發現問題
bottom up testing
由函數、組件、整體往上測試,可以發現個別函數潛在問題
System Program