●目錄第章軟件工程概述軟件危機與軟件工程軟件危機2軟件工程22繫統工程與UML32繫統工程322統一建模語言UML43繫統開發的解空間64軟件工程開發方法84傳統方法842面向對像方法843理解兩種開發方法95習題0第2章軟件開發過程2軟件生命周期與軟件過程22傳統生命周期模型322瀑布模型3222快速原型模型4223增量模型6224螺旋模型6225噴泉模型823敏捷生命周期模型823增量交付與迭代開發9232敏捷生命周期模型的優勢20233極限編程2234Scrum22235DevOps過程2324習題25第3章需求分析263需求分析活動263需求準備2632繫統涉眾2733繫統目標2932用例與繫統功能2932用例及其表示30322識別用例3323用例規約33324用例提煉3433過程建模與事件流3633過程建模36332事件流4034功能性需求435非功能性需求4436需求跟蹤4637習題48第4章軟件架構的構建504軟件架構及其定義504軟件架構的理解5042軟件架構的定義543軟件架構的4+視圖模型542軟件架構模型5343軟件架構風格5343管道與過濾器53432層次結構54433倉庫黑板繫統55434正交軟件結構56435客戶機服務器結構56436瀏覽器服務器結構57437MVC結構5844軟件架構設計5944包及其結構59442包結構設計6045習題63第5章類的分析與設計645基本類的確定645類的識別6552初始類圖6653類的方法6754類的關繫6855類與對像7052類的細化7052管理類和控制類70522設計優化7353補充和確認7453順序圖74532場景模擬7654界面類設計8055習題82第6章代碼生成836逆向工程與CASE工具8362單個類的實現8463關聯關繫的實現8664對像歸屬關繫的實現9064聚合關繫90642組合關繫92643依賴關繫9465軟件架構的實現9466其他物理實現9967習題0第7章類的詳細設計037詳細設計的主要活動0372類方法的詳細設計0472圖形工具04722表格工具06723語言工具0873類的行為設計0873狀態圖的結構09732狀態圖的擴展733狀態圖的應用274對像約束語言475習題8第8章設計優化28小即是美282設計優化思想2282運行時的多態22822耦合的消息鏈24823狎昵關繫25824被拒絕的遺贈26825循環依賴2683設計原則2783接口隔離原則27832依賴倒置原則28833開放封閉原則28834Liskov替換原則30835單一職責原則3835合成聚合復用原則3284設計模式3384抽像工廠模式34842單例模式36843適配器模式38844橋模式39845裝飾模式40846門面模式4847代理模式42848觀察者模式43849策略模式44840狀態模式4485習題47第9章實現技術499非功能性需求的實現4992分布式技術593可擴展標記語言XML5394程序輪子5494組件55942框架55數據的持久化6295文件持久化62952數據庫持久化6396領域特定語言6497模型驅動架構6697原理及過程66972MDA的應用68重構7099習題72第0章交互設計730交互設計概述7302可用性7402任務適合性75022自我描述性76023可控性77024與用戶期望一致性77025容錯性79026可定制性79027易學性7903交互設計過程8004可用性的驗證805習題83第章軟件測試84形式化驗證842測試技術862測試分類8622測試策略8723非功能性測試3軟件度量3控制流圖與環形復雜度932方法內聚缺乏度934等價類測試944等價類方法9442等價類與邊界9643等價類組合9744面向對像中的等價類985基於控制流的測試2006斷言機制2047測試框架2067測試環境20672JUnit2078可測試性239建設性質量保證270人工測試28習題220第2章軟件項目級管理2232軟件配置管理2232版本管理22422構建管理22822項目管理23022項目計劃與工作分解23222軟件規模估算232223開發成本估算234224任務安排與工程網絡圖237225項目組織與甘特圖23823項目計劃跟蹤控制23923項目計劃跟蹤239232掙值分析240233項目偏差控制24224軟件質量保證24324質量管理243242軟件質量保證的內容244243軟件質量保證的任務245244軟件質量保證計劃24525風險管理24526項目人員構成與溝通24726項目人員構成247262人員溝通24927習題250第3章軟件過程管理與改進2523軟件過程管理2523過程改進25232能力成熟度模型25333CMMI過程域25532個體軟件過程26233團隊軟件過程26234習題263