关于本书的内容有任何问题,请联系 武恩玉
目 录 第 1部分 软件工程基础 第 1章 软件及软件工程介绍 1 1.1 软件与软件危机 1 1.1.1 软件的作用 1 1.1.2 软件的概念及特性 2 1.1.3 软件危机 3 1.2 软件工程及其基本原理 4 1.2.1 软件工程的概念 4 1.2.2 软件工程的目标 4 1.2.3 软件工程的基本原理 5 1.3 软件生命周期 6 1.4 软件工程方法学 8 1.4.1 结构化方法学 8 1.4.2 面向对象方法 9 1.5 软件工程知识体系及知识域介绍 9 1.6 软件产业的形成与发展 12 1.6.1 我国软件产业的形成 12 1.6.2 全球软件产业的发展 13 1.6.3 软件产业的发展模式 13 1.6.4 软件工程在软件产业中的作用 15 小结 15 习题 16 第 2章 软件需求获取与确认 17 2.1 软件需求获取的任务 17 2.2 软件需求的获取与确认过程 18 2.3 快速原型化方法 19 2.4 基于用况的方法 20 2.4.1 系统边界 20 2.4.2 参与者 21 2.4.3 用况 22 2.4.4 用况图 27 2.5 需求管理 28 小结 29 习题 29 第 2部分 结构化软件开发方法 第3章 结构化分析建模 31 3.1 软件需求分析阶段的任务 31 3.2 结构化分析方法简介 33 3.3 功能建模 33 3.3.1 数据流图的基本图形符号 33 3.3.2 环境图 34 3.3.3 数据流图的分层 35 3.3.4 实例研究 36 3.4 数据建模 38 3.4.1 数据对象 38 3.4.2 属性 39 3.4.3 关系 39 3.5 行为建模 41 3.5.1 状态 41 3.5.2 状态转换 41 3.5.3 事件 42 3.6 数据字典 43 3.6.1 词条描述 43 3.6.2 数据结构描述 44 3.7 加工规格说明 46 3.7.1 决策表 47 3.7.2 决策树 48 3.8 需求规格说明 49 3.8.1 软件需求规格说明 49 3.8.2 数据需求说明 50 小结 51 习题 51 第4章 总体设计 53 4.1 软件设计的概念及目标 53 4.1.1 软件设计的概念 53 4.1.2 软件设计的目标 53 4.2 软件设计的任务 56 4.2.1 软件设计的阶段与任务 56 4.2.2 结构化设计与结构化分析的关系 57 4.3 模块结构与数据结构 57 4.3.1 模块结构及表示 58 4.3.2 数据结构及表示 61 4.4 创建良好设计的原则 62 4.4.1 分而治之和模块化 62 4.4.2 模块独立性 63 4.4.3 提高抽象层次 68 4.4.4 复用性设计 69 4.4.5 灵活性设计 69 4.4.6 预防过期 69 4.4.7 可移植性设计 70 4.4.8 可测试性设计 70 4.4.9 防御性设计 71 4.5 面向数据流的设计方法 71 4.5.1 设计过程 71 4.5.2 典型的数据流类型和系统结构 72 4.5.3 变换型映射方法 74 4.5.4 事务型映射方法 76 4.5.5 软件模块结构的改进方法 79 4.5.6 实例研究 82 4.6 接口设计 86 4.6.1 接口设计概述 86 4.6.2 人机交互界面 87 4.7 数据设计 89 4.7.1 文件设计 89 4.7.2 数据库设计 90 4.8 软件设计规格说明 90 小结 91 习题 92 第5章 详细设计与编码 93 5.1 结构化程序设计 93 5.1.1 结构化程序设计的概念与原则 93 5.1.2 自顶向下、逐步细化的设计 过程 94 5.2 过程设计的工具 96 5.2.1 程序流程图 96 5.2.2 N-S图 99 5.2.3 PAD图 100 5.2.4 伪代码 101 5.3 程序设计语言 103 5.3.1 程序设计语言的性能 103 5.3.2 程序设计语言的分类 104 5.3.3 程序设计语言的选择 106 5.4 程序设计风格 107 5.4.1 源程序文档化 107 5.4.2 数据说明标准化 109 5.4.3 语句结构简单化 109 5.4.4 输入/输出规范化 112 5.5 程序复杂程度度量 113 5.5.1 McCabe方法 113 5.5.2 Halstead方法 115 小结 116 习题 116 第6章 软件测试 118 6.1 软件测试的基本概念 118 6.1.1 什么是软件测试 118 6.1.2 软件测试的目的和原则 119 6.1.3 软件测试的对象 120 6.1.4 测试信息流 121 6.1.5 测试与软件开发各阶段的关系 122 6.1.6 白盒测试与黑盒测试 122 6.2 白盒测试的测试用例设计 124 6.2.1 逻辑覆盖 124 6.2.2 语句覆盖 125 6.2.3 判定覆盖 125 6.2.4 条件覆盖 125 6.2.5 判定-条件覆盖 126 6.2.6 条件组合覆盖 126 6.2.7 路径测试 127 6.3 基本路径测试 128 6.4 黑盒测试的测试用例设计 131 6.4.1 等价类划分 131 6.4.2 边界值分析 134 6.5 软件测试的策略 136 6.5.1 单元测试 137 6.5.2 组装测试 139 6.5.3 确认测试 142 6.5.4 系统测试 144 6.5.5 测试的类型 144 6.6 人工测试 147 6.6.1 静态分析 147 6.6.2 人工测试的几种形式 148 6.7 调试 149 小结 150 习题 150 第3部分 面向对象软件开发方法 第7章 面向对象方法概述 153 7.1 面向对象的基本思想 153 7.2 面向对象的主要概念及基本原则 154 7.2.1 面向对象的主要概念 154 7.2.2 面向对象的基本原则 156 7.3 面向对象方法的发展史及现状简介 157 7.4 关于统一建模语言 158 小结 160 习题 160 第8章 面向对象分析 161 8.1 什么是面向对象分析 161 8.2 建立基本模型——类图 164 8.2.1 对象与类 164 8.2.2 定义属性与操作 168 8.2.3 建立关系 173 8.3 建立行为模型 187 8.3.1 顺序图 187 8.3.2 活动图 191 8.3.3 状态机图 195 8.4 建立组织模型——包图 202 8.4.1 概念与表示法 202 8.4.2 如何划分与组织包 204 小结 205 习题 205 第9章 面向对象设计与测试 207 9.1 什么是面向对象设计 207 9.2 问题域部分的设计 208 9.2.1 为复用类而增加结构 208 9.2.2 提高性能 209 9.2.3 增加一般类以建立共同协议 210 9.2.4 按编程语言调整继承 211 9.2.5 对复杂关联的转化并决定关联的实现方式 213 9.2.6 调整与完善属性 214 9.2.7 构造及优化算法 215 9.2.8 决定对象间的可访问性 215 9.2.9 定义对象 216 9.3 人机交互部分的设计 216 9.3.1 什么是人机交互部分 216 9.3.2 如何分析人机交互部分 217 9.3.3 如何设计人机交互部分 218 9.4 控制驱动部分的设计 222 9.4.1 什么是控制驱动部分 223 9.4.2 控制流 223 9.4.3 如何设计控制驱动部分 223 9.5 数据管理部分的设计 227 9.5.1 什么是数据管理部分 228 9.5.2 数据库和数据库管理系统 228 9.5.3 如何设计数据管理部分 229 9.6 面向对象测试的概念 235 9.6.1 面向对象软件测试的问题 235 9.6.2 面向对象软件测试的参考过程模型 236 9.7 面向对象测试方法 237 9.7.1 面向对象的分析与设计测试 237 9.7.2 面向对象的程序测试 237 9.7.3 面向对象的系统测试 239 小结 239 习题 239 第4部分 软件生存期模型与软件体系结构 第 10章 软件生存期模型 241 10.1 软件过程框架 241 10.1.1 软件过程框架的内容 241 10.1.2 通用过程框架 241 10.1.3 典型的普适性活动 243 10.2 传统软件过程模型 243 10.2.1 瀑布模型 243 10.2.2 快速原型模型 245 10.2.3 增量模型 245 10.2.4 螺旋模型 247 10.2.5 喷泉模型 248 10.3 现代软件过程模型 249 10.3.1 基于构件的开发模型 249 10.3.2 形式化方法模型 250 10.3.3 面向方面的软件开发 251 10.3.4 统一过程 251 10.3.5 敏捷过程模型 253 小结 255 习题 256 第 11章 软件体系结构 257 11.1 软件体系结构的基本概念 257 11.1.1 什么是体系结构 257 11.1.2 体系结构模式、风格和框架的概念 258 11.1.3 体系结构的重要作用 259 11.2 典型的体系结构风格 259 11.2.1 数据流风格 259 11.2.2 调用-返回风格 260 11.2.3 仓库风格 262 11.3 特定领域的软件体系结构 264 11.3.1 类属模型 264 11.3.2 参考模型 265 11.4 分布式系统结构 266 11.4.1 多处理器体系结构 266 11.4.2 客户机/服务器体系结构 267 11.4.3 分布式对象体系结构 271 11.4.4 代理 272 11.5 体系结构框架 272 11.5.1 模型-视图-控制器 272 11.5.2 J2EE体系结构框架 273 11.5.3 PCMEF与PCBMER框架 274 11.6 体系结构建模 276 11.6.1 类及其依赖性 277 11.6.2 接口及其依赖性 279 11.6.3 包及其依赖性 281 11.6.4 构件及其依赖性 282 11.6.5 结点与部署图 284 小结 285 习题 285 第5部分 软件维护与软件管理 第 12章 软件维护 287 12.1 软件维护的概念 287 12.1.1 软件维护的定义 287 12.1.2 影响维护工作量的因素 288 12.1.3 软件维护的策略 288 12.2 软件维护活动 289 12.2.1 软件维护申请报告 289 12.2.2 软件维护工作流程 290 12.2.3 维护档案记录 291 12.2.4 维护评价 291 12.3 程序修改的步骤及修改的副作用 291 12.3.1 分析和理解程序 291 12.3.2 修改程序 292 12.3.3 修改程序的副作用及其控制 293 12.3.4 重新验证程序 294 12.4 软件的可维护性 295 12.4.1 软件可维护性的定义 295 12.4.2 可维护性的度量 296 12.5 提高可维护性的方法 298 12.5.1 建立明确的软件质量目标和优先级 298 12.5.2 使用提高软件质量的技术和工具 298 12.5.3 质量保证审查 298 12.5.4 改进文档 300 小结 301 习题 301 第 13章 软件项目管理 302 13.1 软件项目管理概述 302 13.1.1 软件项目管理的目标 302 13.1.2 软件项目管理涉及的几个方面 302 13.2 项目估算 304 13.2.1 项目策划与项目估算 304 13.2.2 软件规模估算的功能点方法 305 13.2.3 软件开发成本估算 310 13.3 风险管理 316 13.3.1 什么是软件风险 316 13.3.2 风险管理的任务 318 13.3.3 风险评估 319 13.3.4 风险控制 322 13.3.5 做好风险管理的建议 325 13.4 进度管理 325 13.4.1 进度控制问题 325 13.4.2 甘特图 328 13.4.3 时标网状图 329 13.4.4 PERT图 329 13.5 需求管理 331 13.5.1 系统需求与软件需求 331 13.5.2 需求工程 333 13.5.3 需求变更 335 13.5.4 需求变更控制 337 13.5.5 可追溯性管理 340 13.6 配置管理 341 13.6.1 什么是软件配置管理 342 13.6.2 软件配置标识 342 13.6.3 变更管理 344 13.6.4 版本控制 348 13.6.5 系统建立 349 13.6.6 配置审核 350 13.6.7 配置状态报告 351 小结 351 习题 352 第 14章 软件工程标准及软件文档 353 14.1 标准的概念 353 14.2 软件标准化的意义 354 14.3 标准的分类与分级 355 14.4 软件工程标准的制定与实施 358 14.5 软件组织内的标准化工作 359 14.6 软件文档的作用和分类 360 14.7 软件基本文档的内容要求 362 14.8 对文档编制的质量要求 366 14.9 文档的管理和维护 368 小结 369 习题 369 第 15章 软件过程与软件过程改进 371 15.1 软件过程概述 371 15.2 软件生存期过程国际标准 373 15.3 软件过程成熟度 377 15.3.1 什么是软件过程成熟度 377 15.3.2 过程制度化 379 15.4 软件能力成熟度模型(CMM/CMMI) 381 15.4.1 CMM与SEI 381 15.4.2 CMM的演化 382 15.4.3 CMM族和CMMI 382 15.4.4 CMMI 1.2简介 383 15.4.5 CMMI评估 391 15.5 软件过程改进 392 15.5.1 软件过程改进的IDEAL模型 392 15.5.2 软件过程改进框架 393 15.5.3 有效的软件过程 394 小结 395 习题 396 参考文献 397
本书系统地介绍了计算机视觉的基本原理、典型方法和实用技术,内容包括绪论、图像采集、基元检测、显著性检测、目标分...
本书系统地介绍图像处理和分析的基本原理、典型方法和实用技术,主要内容包括绪论、图像采集、空域图像增强、频域图像...
本书共10章,主要内容包括:绪论、交互式计算机图形处理系统、基本图形生成算法、自由曲线和曲面、图形变换与裁剪、...
本书共15章,涵盖了单片机应用技术的基本内容。第1章介绍了有关单片机的基本知识,对目前流行的各类单片机及嵌入式...
本教材为第2版,系统地介绍图像处理和分析的一些基本原理、典型方法和实用技术。内容包括图像采集、空域图像增强、频...
本书详细讲解Java EE企业级开发的热门框架Spring Boot。全书共分10章,其中,第1章和第2章介绍...
Python作为编程语言,凭借着高效率、可移植、可扩展、可嵌入、易于维护等优点,成为了当今社会主流的程序设计语...
本书介绍使用UML进行软件建模的基础知识以及使用Rational Rose进行UML建模的基本方法。 本书主...
本书面向高素质复合型新工科人才培养,以强化学生软件需求分析能力为核心目标,从软件需求定义讲到分析方法,再讲到结...
本书按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。本书共分为14章,内容...
我要评论