- 軟體工程 = 獨孤九劍 ?= 作戰指導原則 = 戰法 + 訓練
- 軟體工程不僅是軟體專業人員該了解,軟體用戶更應該了解問題的來源。
- 軟體專案失敗:真的是軟體人員的錯嗎?
- 軟體應該務求完美嗎?會有盡善盡美這一天嗎?
- 軟體工程範圍:包山包海?
- 軟體工程 = 軟體工法?= 程式設計?= 有唯一最佳工法?
- 軟體專案管理 = 軟體工程?
- 莫非定律:你想不到的問題,一定會在軟體專案發生。
- 軟體工程 = 複雜溝通程序 = 如何避免溝通誤差?
- 軟體工程 = 累積企業智慧資本的過程 = 知識管理的一環
- 人月迷思 = 絕症?緩解? = 軟體工程種種手段之目的。
- 軟體工程 = 在嘗試解決無解複雜問題過程中,教育軟體人員與用戶 = 全民運動
- 軟體專業人員訓練:溝通技巧 + 溝通方法
- 軟體有最終需求嗎?需求變動的原因是什麼?滾動式管理效益才是正解。
- 軟體複雜性 = 軟體人員心態 * 需求者心態
- 軟體專案服務獲利之道為何?
- 專案開發與維護需要不同思考方向
- 出發前的準備:
- 深入了解用戶對新系統的期待與預算規模
- 選將(專案經理/技術經理)
- 訂定與用戶溝通互動機制
- 訂定專案驗收標準
- 訂定開發方法與流程
- 訂定應用系統整體架構
- 訂定應用系統需求概要框架
- 訂定專案里程碑與資源需求
- 訂定專案預算分配
- 建立專案管理控制平台
- 成軍與勤前教育
- 說明專案執行方法論與溝通專案成功因素(Success Factors)
- 軟體估算:
- 功能點分析
- 軟體設計:
- 建立【軟體需求表】:
- 軟體品質因子(Quality Attributes)- 非功能性需求
- 功能性需求:
- 【呈現層】(Presentation)需求
- 【商業邏輯層】(Business Logic)需求
- 【存儲層】(Persistence)需求
- 整體系統架構設計:
- 系統整合樣式
- 軟體開發工法選擇:
- 程序導向/資料導向設計(Process/Data Oriented)
- 服務導向架構設計(SOA - Service Oriented Architecture)
- 物件導向結構化設計(Architecture Oriented)
- 軟體專案管理:
- 專案管理平台
- 資源管理
- 排程管理
- 軟體需求實現(Requirement Realization)
- 成本與品質控制
- 軟體需求驗證:
- 軟體運維管理
- 軟體測試:確認與軟體需求規格差異 != 軟體品質
- 測試型態:
- 開發流程內測試:(1) 單元測試 (2) 整合測試 (3) 壓力測試
- 獨立測試:(1) 功能性需求測試:測試案例 (2) 非功能性需求測試:效能測試
- 測試計畫:
- (1) 測試目的 (2) 測試標的 (3) 測試環境 (4) 測試需求 (5) 測試設計 (6) 測試方法 (7) 測試資源需求 (8) 測試時程 (9) 測試數據收集 (10) 測試分析 (11) 測試文件 (12) 測試成本
- 測試流程與軟體開發方法整合:
- 測試流程管理:程式錯誤 (1) 立案 (2) 修正 (3) 追蹤 (4) 建議
- 測試程序自動化
- 測試工作期望:
- 由外而內,由高而低,降低複雜度與測試成本,如何健全單元測試,加速整合測試,修正程式。
- 問題要在開發流程中愈早發現愈早解決愈好。
- 軟體規格要包含:如何測試,如何量度,如何判定。
- 品質因子與結構化測試方法
- 資訊服務工程調查研究法
- 軟體專案需求教學背景資料: