
| 前言. 教学建议 第一部分 软件工程与过程 第1章 概述 2 1.1 软件工程的基本概念 2 1.1.1 软件的角色和特性 2 1.1.2 软件演化 3 1.1.3 软件神化和危机 4 1.1.4 软件危机的解决途径 4 1.2 工程化思想 5 1.2.1 工程化所涉及的范围 5 1.2.2 工程化管理思想 5 1.3 软件工程两大范型 5 1.4 软件工程思想与基本原理 6 1.4.1 软件工程基本原理 7 1.4.2 软件工程思想 7 1.5 软件工程活动 9 1.5.1 软件开发活动 9 1.5.2 软件项目管理活动 9 1.5.3 软件过程改进活动 10 .1.6 小结 10 习题 10 第2章 软件过程 11 2.1 软件过程概述 11 2.1.1 过程方法与工具 11 2.1.2 软件过程框架 12 2.1.3 软件过程模型 12 2.2 软件生命周期 12 2.3 能力成熟度模型集成 13 2.4 敏捷过程 16 2.4.1 什么是敏捷过程 17 2.4.2 极限编程 18 2.4.3 自适应软件开发 20 2.4.4 动态系统开发 21 2.4.5 特征驱动开发 21 2.5 软件工程实践 22 2.5.1 概念 22 2.5.2 沟通实践 23 2.5.3 计划实践 23 2.6 小结 24 习题 24 第3章 软件过程模型 25 3.1 瀑布模型 25 3.2 增量模型 26 3.2.1 增量构造模型 27 3.2.2 演化提交模型 27 3.3 螺旋模型 27 3.4 协同开发模型 28 3.5 面向对象过程模型 29 3.5.1 面向对象概念 29 3.5.2 统一过程模型 30 3.5.3 组件集成模型 33 3.6 面向方面的软件开发 34 3.7 小结 36 习题 36 第4章 案例研究 37 4.1 案例研究中涵盖的内容 37 4.2 案例1:出卷系统 37 4.3 案例2:短信系统 37 4.4 案例3:pos机系统 38 4.5 案例4:atm机系统 38 4.6 案例5:图书馆系统 38 4.7 小结 38 习题 38 第二部分 软件需求分析与建模 第5章 软件需求分析过程 40 5.1 什么是软件需求 40 5.1.1 功能需求 40 5.1.2 非功能需求 40 5.1.3 领域需求 41 5.2 需求分析过程 43 5.2.1 初步沟通 43 5.2.2 导出需求 43 5.2.3 分析和精化 44 5.2.4 可行性研究 44 5.2.5 协商与沟通 44 5.2.6 规格说明 44 5.2.7 需求验证 46 5.2.8 需求变更管理 46 5.3 启动分析过程 46 5.3.1 确认利益相关者 46 5.3.2 识别视点 47 5.3.3 协同工作 47 5.3.4 首次提问 47 5.4 非形式化需求分析技术 47 5.4.1 会谈 47 5.4.2 调查表 49 5.4.3 场景分析 49 5.5 案例分析 49 5.5.1 出卷系统 49 5.5.2 pos机系统 50 5.5.3 图书馆系统 50 5.5.4 短信系统 51 5.5.5 atm机系统 51 5.6 小结 51 习题 52 第6章 结构化分析建模 53 6.1 分析模型概述 53 6.1.1 分析模型元素 53 6.1.2 分析模式 54 6.1.3 目标与原理 54 6.2 结构化需求分析 54 6.2.1 结构化分析方法 55 6.2.2 结构化分析模型 55 6.3 面向数据的建模方法 56 6.3.1 实体 56 6.3.2 属性 56 6.3.3 关系 57 6.3.4 基数 57 6.3.5 案例分析 57 6.4 面向数据流的建模 58 6.4.1 数据流图 58 6.4.2 数据字典 60 6.4.3 状态转换图 61 6.4.4 加工逻辑的描述 61 6.5 案例分析 64 6.5.1 出卷系统 64 6.5.2 图书馆系统 66 6.5.3 pos机系统 68 6.5.4 短信系统 69 6.6 小结 71 习题 71 第7章 面向对象分析 73 7.1 面向对象建模 73 7.1.1 面向对象模型 73 7.1.2 统一建模语言(uml) 75 7.2 用例建模 76 7.2.1 编写用例 76 7.2.2 开发活动图 81 7.2.3 泳道图 82 7.3 建立领域模型 82 7.3.1 识别分析类 83 7.3.2 用例实现分析 84 7.3.3 关联与依赖 86 7.3.4 识别属性和操作 86 7.4 行为建模 87 7.4.1 系统顺序图 87 7.4.2 操作契约 88 7.4.3 顺序图与协作图 89 7.4.4 状态图 90 7.5 案例分析 90 7.5.1 pos机系统 91 7.5.2 atm机系统 92 7.5.3 短信系统 96 7.6 小结 98 习题 98 第三部分 软件设计与建模 第8章 软件设计 100 8.1 软件设计概述 100 8.1.1 软件设计过程和设计质量 100 8.1.2 概要设计说明书 101 8.1.3 详细设计说明书 102 8.2 软件模块化设计 103 8.2.1 软件模块化 103 8.2.2 抽象 104 8.2.3 体系结构 104 8.2.4 信息隐蔽 104 8.2.5 模块独立性 105 8.2.6 逐步求精 106 8.2.7 重构 106 8.3 软件结构 106 8.3.1 软件结构图 106 8.3.2 模块化设计的优化 107 8.4 软件系统结构模型 108 8.4.1 系统构成模型 108 8.4.2 系统控制模型 110 8.5 体系结构模式 111 8.6 小结 111 习题 111 第9章 结构化设计方法.. 113 9.1 结构化设计方法概述 113 9.1.1 概要设计 113 9.1.2 详细设计 113 9.2 数据流类型 114 9.2.1 变换型数据流 114 9.2.2 事务型数据流 114 9.2.3 混合型数据流 114 9.3 数据流设计方法 115 9.3.1 数据流映射步骤 115 9.3.2 变换流设计 115 9.3.3 事务流设计 116 9.3.4 综合分层的数据流设计 117 9.4 面向数据的设计 118 9.4.1 jackson图 118 9.4.2 jsd方法设计步骤 118 9.4.3 jsd举例分析 119 9.5 结构化程序设计方法 121 9.5.1 基本概念 121 9.5.2 结构化程序设计工具 122 9.6 案例分析 126 9.6.1 出卷系统 126 9.6.2 图书馆系统 129 9.7 小结 131 习题 131 第10章 面向对象设计 134 10.1 面向对象设计过程 134 10.1.1 系统模型描述 134 10.1.2 逻辑架构和包图 134 10.1.3 对象识别 135 10.1.4 设计模型 135 10.1.5 对象接口描述 137 10.2 构件级设计 137 10.2.1 构件类 137 10.2.2 构件级设计步骤 138 10.2.3 基于类的构件设计原则 139 10.3 设计模式 140 10.3.1 设计模式概述 140 10.3.2 基于职责的设计 140 10.4 面向对象详细设计 144 10.4.1 领域模型精化 144 10.4.2 逻辑架构精化 147 10.4.3 包设计 149 10.4.4 精化的交互图 150 10.4.5 精化的类图 152 10.4.6 持久性设计 154 10.4.7 部署图与构件图 156 10.5 案例分析 157 10.5.1 pos机系统 157 10.5.2 短信系统 158 10.5.3 atm机系统 159 10.6 小结 163 习题 164 第11章 软件实现 165 11.1 编码语言 165 11.1.1 编码语言的分类 165 11.1.2 编码语言特性 165 11.1.3 面向对象语言的特点 166 11.1.4 编码语言的选择 167 11.2 编码风格 168 11.2.1 编码的基本原则 168 11.2.2 面向对象编码原则 169 11.3 人机界面设计 171 11.3.1 人机界面分析和设计 171 11.3.2 人机界面设计步骤 173 11.3.3 人机界面设计指南 174 11.4 案例分析 175 11.4.1 pos机系统 175 11.4.2 短信系统 177 11.4.3 出卷系统 191 11.5 小结 194 习题 194 第四部分 软件测试与维护 第12章 软件测试 196 12.1 软件测试的任务 196 12.1.1 验证与确认 196 12.1.2 软件测试的组织形式 197 12.1.3 软件测试的目的与原则 197 12.1.4 完成标准 199 12.2 软件测试过程模型 200 12.2.1 v模型 200 12.2.2 w模型 200 12.2.3 h模型 201 12.3 软件测试策略 201 12.3.1 单元测试 202 12.3.2 集成测试 204 12.3.3 确认测试 205 12.3.4 系统测试 205 12.4 测试用例设计 205 12.4.1 测试用例设计的目的 205 12.4.2 测试用例设计的方法和描述 206 12.4.3 测试用例设计的重要性和影响因素 206 12.4.4 编写测试用例时的注意事项 206 12.5 黑盒技术 207 12.5.1 等价类划分法 207 12.5.2 边界值分析法 208 12.5.3 错误推测法 209 12.5.4 因果图法 209 12.6 白盒技术 211 12.6.1 逻辑覆盖法 212 12.6.2 基本路径测试法 214 12.6.3 循环测试法 218 12.7 集成测试技术 219 12.7.1 集成策略 219 12.7.2 接口测试 221 12.8 自动测试工具 221 12.9 调试 222 12.9.1 调试过程 222 12.9.2 调试策略 223 12.10 案例分析 224 12.11 小结 229 习题 230 第13章 软件维护 231 13.1 软件维护概述 231 13.1.1 软件维护的任务 231 13.1.2 软件维护的特点 231 13.1.3 软件可维护性 232 13.2 软件维护类型 232 13.2.1 纠错性维护 232 13.2.2 完善性维护 233 13.2.3 适应性维护 233 13.2.4 预防性维护 233 13.3 软件维护技术与过程 233 13.3.1 面向维护的技术 234 13.3.2 维护支援技术 234 13.3.3 软件维护过程 234 13.4 非结构化维护和结构化维护 236 13.5 提高可维护性 236 13.6 面向对象的软件维护 238 13.7 小结 238 习题 238 第五部分 软件工程管理 第14章 软件项目管理 240 14.1 项目管理概述 240 14.2 软件项目管理范围 241 14.2.1 人员 241 14.2.2 项目和过程 242 14.2.3 软件度量 243 14.2.4 软件项目管理计划文档 244 14.3 软件团队组织范式 246 14.3.1 民主分权式 246 14.3.2 控制集权式 247 14.3.3 控制分权式 248 14.3.4 敏捷团队 248 14.4 项目组织原则 249 14.5 软件过程管理 249 14.5.1 软件过程度量 249 14.5.2 软件过程改进 250 14.5.3 项目度量 251 14.6 风险管理 251 14.6.1 风险识别 252 14.6.2 风险预测 252 14.6.3 风险管理 252 14.7 软件配置管理 253 14.7.1 scm基本概念 253 14.7.2 scm过程 254 14.7.3 scm中心存储库 255 14.8 小结 256 习题 256 第15章 软件项目估算 257 15.1 概述 257 15.1.1 项目计划与范围 257 15.1.2 项目资源 257 15.2 软件规模度量 258 15.2.1 面向规模的度量 258 15.2.2 面向对象的度量 260 15.3 软件成本估算的分解技术 260 15.3.1 基于问题分解的估算 260 15.3.2 基于过程分解的估算 262 15.4 经验估算模型 263 15.4.1 专家类比推断 263 15.4.2 由底向上估算方法 263 15.4.3 构造性成本模型 264 15.5 成本估算管理 266 15.6 案例分析 266 15.6.1 短信系统 266 15.6.2 pos机系统 267 15.7 小结 268 习题 269 第16章 软件项目计划与管理 270 16.1 软件质量管理 270 16.1.1 质量概念 270 16.1.2 软件质量保证 271 16.1.3 软件质量度量 272 16.1.4 软件复审 275 16.1.5 软件质量认证标准 276 16.2 项目计划 278 16.2.1 项目进度安排 278 16.2.2 进度安排方法 279 16.2.3 项目进度的跟踪管理 281 16.3 软件项目管理工具 281 16.4 小结 286 习题 287 参考文献... 288 |
商品评论(0条)