为你推荐
版权页
内容简介
前言
基础篇
第1章 概论
1.1 软件危机
1.1.1 摩尔定律和超越摩尔
1.1.2 软件危机的介绍
1.1.3 产生软件危机的原因
1.1.4 消除软件危机的途径
1.2 软件开发工程化
1.2.1 软件工程的定义
1.2.2 软件开发的发展过程
1.2.3 软件工程的基本原理
1.3 软件工程产品分类及来源
1.3.1 软件工程产品分类
1.3.2 软件工程项目来源
1.4 软件生命周期
1.4.1 软件生命周期的定义
1.4.2 软件生命周期的阶段
1.5 软件工程方法学
1.5.1 软件工程方法学的定义
1.5.2 软件工程方法学的类型
1.6 软件工程人员的业务素质和职业道德
1.6.1 软件工程师的业务素质
1.6.2 软件工程师的职业道德规范
1.6.3 软件工程师职业实践的准则
1.6.4 软件工程师职业实践的国际标准
本章小结
习题
第2章 软件过程与模型
2.1 软件过程
2.1.1 软件过程的定义
2.1.2 软件过程的特点
2.1.3 软件过程的分类
2.1.4 软件过程的作用
2.1.5 软件过程模型化
2.2 瀑布模型
2.2.1 瀑布模型的基本思想
2.2.2 瀑布模型的特点
2.2.3 瀑布模型的应用范围
2.3 快速原型法
2.3.1 快速原型法的基本思想
2.3.2 快速模型的特点
2.3.3 快速原型法的应用范围
2.4 增量模型
2.4.1 增量模型的基本思想
2.4.2 增量模型的特点
2.4.3 增量模型应用范围
2.5 螺旋模型
2.5.1 螺旋模型的基本思想
2.5.2 螺旋模型的特点
2.5.3 螺旋模型的应用范围
2.6 V模型
2.6.1 V模型的基本思想
2.6.2 V模型的特点
2.6.3 V模型的应用范围
2.7 敏捷软件开发
2.7.1 敏捷开发的基本思想
2.7.2 敏捷开发的特点
2.7.3 敏捷开发的应用范围
本章小结
习题
第3章 软件计划与可行性研究
3.1 问题定义
3.2 软件规模估算
3.2.1 软件估算的概念
3.2.2 软件估算的方法
3.3 可行性研究
3.3.1 可行性研究的概念
3.3.2 可行性研究的分类
3.3.3 可行性研究的步骤
3.4 软件项目计划
3.4.1 软件范围
3.4.2 环境资源
3.4.3 制定进度表
3.5 系统流程图
3.5.1 系统流程图的定义
3.5.2 系统流程图的符号表示
3.5.3 应用实例
3.6 其他补充说明
本章小结
习题
第4章 软件需求分析
4.1 软件需求的定义
4.2 需求分析的层次内容
4.3 需求分析的任务
4.3.1 确定项目的范围
4.3.2 确定具体需求
4.3.3 软件需求文档化
4.4 需求获取的方法
4.4.1 用户沟通交流法
4.4.2 工具分析法
4.4.3 模型及语言描述法
4.4.4 原型化方法
4.5 需求分析的步骤
4.6 数据流图
4.6.1 数据流图的定义
4.6.2 数据流图的符号表示
4.6.3 数据流图的绘制方法
4.6.4 银行储蓄系统应用实例
4.6.5 毕业生就业管理系统应用实例
4.7 数据字典
4.7.1 数据字典的定义
4.7.2 基本符号
4.7.3 互联网+电商销售应用实例
4.8 实体-联系图
4.8.1 实体-联系图的定义
4.8.2 实体-联系图的符号表示
4.8.3 应用实例
4.9 状态转换图
4.9.1 状态转换图的定义
4.9.2 状态转换图的符号表示
4.9.3 人体运动捕捉系统应用实例
4.9.4 电话系统行为过程应用实例
4.10 UML用例需求模型
4.10.1 UML基本概念
4.10.2 UML主要内容
4.10.3 用例需求功能模型
4.11 需求变更管理
4.11.1 控制项目范围的扩展
4.11.2 变更控制过程
4.11.3 变更控制委员会
4.11.4 度量变更活动
本章小结
习题
第5章 软件总体设计
5.1 软件总体设计阶段的任务
5.2 软件总体设计基本思想
5.2.1 雪球理论
5.2.2 模块化
5.2.3 抽象
5.2.4 逐步求精
5.2.5 信息隐藏和局部化
5.2.6 模块独立内聚和耦合
5.2.7 软件结构设计的启发式规则
5.3 总体设计阶段的工作步骤
5.3.1 总体设计阶段组成
5.3.2 总体设计步骤
5.4 系统设计阶段
5.4.1 二维码的食品安全追溯系统问题描述
5.4.2 二维码的食品安全追溯系统分析
5.4.3 二维码的食品安全追溯系统设计
5.5 软件结构设计工具
5.5.1 层次图定义及实例
5.5.2 结构图定义及实例
5.6 面向数据流的设计方法
5.6.1 定义
5.6.2 数据流图的类型
5.6.3 设计步骤
5.6.4 汽车数字仪表板实例
本章小结
习题
第6章 人机交互设计
6.1 人机交互基本概念
6.1.1 人机交互的定义
6.1.2 人机交互的研究内容
6.2 人机交互感知和认知基础
6.2.1 视觉感知
6.2.2 颜色模型
6.2.3 听觉感知
6.2.4 触觉感知
6.3 人机交互发展阶段
6.4 传统交互设备
6.5 可穿戴计算技术与设备
6.6 人机界面设计基础
6.6.1 人机界面设计的定义
6.6.2 理解用户
6.7 界面设计原则
6.7.1 图形用户界面的主要思想
6.7.2 图形用户界面的一般原则
6.8 Web界面设计
6.8.1 Web界面及相关概念
6.8.2 Web界面设计原则
6.8.3 Web风格与布局色彩设计
6.8.4 Web文本设计
本章小结
习题
第7章 软件详细设计
7.1 详细设计阶段的目的和任务
7.1.1 详细设计阶段的目的
7.1.2 详细设计阶段的任务
7.2 结构化程序设计与程序设计风格
7.2.1 结构化程序设计
7.2.2 程序设计的风格
7.3 常用的详细设计表达工具
7.3.1 程序流程图
7.3.2 盒图
7.3.3 PAD图
7.3.4 决策树
7.3.5 决策表
7.3.6 PDL设计语言
7.4 程序复杂度的定量计算
7.4.1 McCabe方法
7.4.2 Halstead方法
本章小结
习题
第8章 软件编码
8.1 程序设计语言
8.1.1 程序设计语言的定义
8.1.2 程序设计语言的特性
8.1.3 程序设计语言的分类
8.2 程序设计语言的选择
8.2.1 程序设计语言选择标准
8.2.2 程序设计风格
本章小结
习题
第9章 软件测试
9.1 软件测试基础
9.1.1 软件测试的定义
9.1.2 软件测试的目标
9.1.3 软件测试的内容
9.1.4 软件测试的心理依据
9.1.5 软件测试的发展史
9.1.6 软件测试典型案例
9.2 软件测试的原理与特点
9.2.1 软件测试的原理
9.2.2 软件测试的特点
9.3 软件测试的基本方法
9.3.1 人工测试和机器测试
9.3.2 白盒测试、黑盒测试和灰盒测试
9.3.3 Alpha测试和Beta测试
9.4 软件测试的过程和步骤
9.4.1 软件测试的过程
9.4.2 软件测试的步骤
9.4.3 回归测试
9.5 黑盒测试技术
9.5.1 黑盒测试方法概述
9.5.2 划分等价类
9.5.3 边界值分析法
9.5.4 错误推测法
9.6 白盒测试技术
9.6.1 白盒测试的方法
9.6.2 白盒测试的优缺点
9.7 软件可靠性与可用性
9.8 软件压力测试
9.9 软件容量测试
本章小结
习题
第10章 软件维护与再工程
10.1 软件维护
10.1.1 软件维护的定义
10.1.2 结构化维护与非结构化维护
10.1.3 软件可维护性因素
10.1.4 软件文档
10.2 软件再工程
10.2.1 软件再工程概念
10.2.2 软件再工程方法
10.3 逆向工程
10.4 软件复用
10.5 领域工程
10.6 构件技术
本章小结
习题
高级篇
第11章 软件形式化方法
11.1 形式化方法
11.1.1 形式化方法的概念
11.1.2 形式化方法的分类
11.2 Petri网形式化理论
11.2.1 Petri网形式化介绍
11.2.2 Petri网数学定义
11.3 电梯问题Petri网求解
11.4 就餐问题Petri网求解
本章小结
习题
第12章 软件设计模式
12.1 设计模式概述
12.1.1 设计模式的基本概念
12.1.2 设计模式要素
12.2 设计模式的原则和策略
12.3 设计模式的类型
12.4 设计模式的优点
本章小结
习题
第13章 极限编程
13.1 极限编程基础
13.1.1 极限编程的定义
13.1.2 极限编程核心价值
13.2 极限编程设计原则
13.3 极限设计开发环节
本章小结
习题
第14章 大数据与面向服务的软件
14.1 大数据基础
14.1.1 大数据的定义
14.1.2 大数据与云计算
14.2 云计算
14.2.1 云计算的定义
14.2.2 云计算的特点
14.2.3 云计算的服务形式
14.3 面向服务的SOA架构
14.3.1 SOA定义
14.3.2 SOA的特点
14.4 面向服务的软件工程
14.4.1 面向服务计算
14.4.2 面向服务的软件工程
14.4.3 大数据时代下的软件服务工程
本章小结
习题
第15章 软件项目管理
15.1 软件项目管理基础
15.1.1 软件管理的定义
15.1.2 软件管理的内容
15.1.3 组织机构
15.1.4 项目管理沟通原则
15.2 软件项目风险管理
15.2.1 风险管理基础知识
15.2.2 软件风险管理
15.2.3 软件风险类型
15.3 文档管理
15.3.1 文档管理概述
15.3.2 文档管理控制方法
15.4 软件质量管理
15.4.1 ISO与ISO 9000标准族
15.4.2 ISO 9001质量管理体系
15.4.3 CMM与CMMI概述
15.4.4 CMM等级概述
本章小结
习题
第16章 合同管理
16.1 合同管理的定义
16.2 合同管理的要件
16.2.1 合同的实质要件
16.2.2 合同的形式要件
16.3 合同的订立
16.4 合同的履行
16.4.1 合同未尽事宜的确定
16.4.2 合同履行过程中的变动
16.5 合同的变更
16.6 合同的终止
16.7 违约责任
16.8 合同管理的其他注意事项
本章小结
习题
案例篇
第17章 项目实例——在线订餐系统的实现
17.1 项目背景说明
17.1.1 项目问题描述
17.1.2 目的及意义
17.2 开发技术
17.2.1 B/S模式
17.2.2 JSP技术
17.2.3 MySQL数据库
17.2.4 MVC模式
17.2.5 相似图像搜索算法
17.3 可行性分析
17.3.1 技术可行性分析
17.3.2 经济可行性分析
17.3.3 社会可行性分析
17.4 需求分析
17.4.1 业务需求分析
17.4.2 用户需求分析
17.4.3 功能需求分析
17.4.4 非功能需求分析
17.5 系统概要设计
17.5.1 在线订餐系统的架构设计
17.5.2 在线订餐系统的功能模块设计
17.5.3 在线订餐系统的流程图设计
17.5.4 在线订餐系统的数据库设计
17.6 系统详细设计
17.6.1 用户模块的功能实现
17.6.2 餐厅菜品显示模块
17.6.3 用户购物车模块
17.6.4 以图搜索模块
17.6.5 文字搜索模块
17.6.6 用户分享模块
17.6.7 用户订单模块
17.6.8 在线支付模块
17.6.9 收藏模块
17.6.10 店家模块的功能实现
17.6.11 菜品管理模块
17.6.12 店家订单管理模块
17.7 系统测试
附录A 软件工程师职业实践的国际标准
附录B 软件工程术语和定义
附录C 软件工程缩略语
附录D 计算机软件文档编制规范
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜