书籍详情
软件工程 方法与实践(第3版)
作者:许家珆 著
出版社:电子工业出版社
出版时间:2019-01-01
ISBN:9787121350993
定价:¥49.90
购买这本书可以去
内容简介
内 容 简 介本书第3版在继承第2版特点的基础上做了较大修改,内容涵盖了IEEE新发布的软件工程知识体系指南SWEBOK V3.0版的知识域,删除了较陈旧的内容,新增了如云计算模型、敏捷开发测试等国内外软件工程发展的新技术。在系统介绍软件工程基础知识的基础上,重点介绍了软件需求和软件设计两个重要开发阶段,并将面向对象的方法及UML统一建模技术贯穿于各章,对面向对象的分析、设计、测试的方法做了详细介绍。同时还对CMM软件成熟度模型、风险管理及团队建设等先进的软件管理技术进行了介绍。本书内容注重科学性、先进性,强调实践性,理论紧密联系实际是本书的一大特色;本书不仅提供了丰富的软件开发实例和素材,还用一章专门讨论了如何进行综合性、设计型的软件工程课程设计。本书可作为高等院校计算机、软件工程及信息类专业本科生及研究生“软件工程”课程的教材,也可作为广大工程技术人员和科研人员的参考书。
作者简介
许家珆,电子科技大学数学学院教授,主讲《软件工程》等多门课程,负责编写了包括《软件工程》等多本教材,主持四川省精品课程,网络精品课程。
目录
第1章 软件工程概述
1.1 软件工程的产生和发展
1.1.1 软件危机与软件工程
1.1.2 软件工程的定义及基本原则
1.1.3 软件工程研究的内容
1.2 软件与软件过程
1.2.1 软件的概念和特点
1.2.2 软件工程过程及产品
1.3 软件过程模型
1.3.1 瀑布模型
1.3.2 增量模型
1.3.3 螺旋模型
1.3.4 喷泉模型
1.3.5 原型模型
1.3.6 智能模型
1.4 软件开发方法
1.4.1 结构化开发方法
1.4.2 原型化开发方法
1.4.3 面向对象的开发方法
1.4.4 敏捷软件的开发
1.5 软件工具与集成化开发环境
1.5.1 软件工具的发展过程
1.5.2 软件工具
1.5.3 集成化CASE环境
小结
习题1
第2章 面向对象方法与UML建模语言
2.1 面向对象方法概述
2.1.1 面向对象方法的特点
2.1.2 几种典型的面向对象方法
2.2 UML概述
2.2.1 UML的基本概念
2.2.2 UML的图形表示
2.3 建立用例模型
2.3.1 需求分析与用例建模
2.3.2 确定执行者和用例
2.3.3 用例建模实例
2.4 建立静态模型
2.4.1 类图
2.4.2 包图
2.5 建立动态模型
2.5.1 消息
2.5.2 状态图
2.5.3 顺序图
2.5.4 合作图
2.5.5 活动图
2.6 建立实现模型
2.6.1 组件图
2.6.2 部署图
2.7 RUP统一过程及其应用
2.7.1 UML与RUP统一过程
2.7.2 RUP的二维开发模型
2.7.3 RUP的迭代开发模式
小结
习题二
第3章 软件需求工程
3.1 软件需求的基本概念
3.1.1 软件需求的任务
3.1.2 功能需求与非功能需求
3.2 需求工程过程
3.2.1 需求工程的基本活动
3.2.2 获取需求
3.2.3 需求分析与建模
3.2.4 需求的有效性验证
3.2.5 需求管理
3.3 软件需求获取技术
3.3.1 面谈法
3.3.2 问卷调查法
3.3.3 需求专题讨论会
3.3.4 原型法获取需求
3.3.5 面向用例的方法
3.4 需求分析与建模技术
3.4.1 需求分析方法
3.4.2 结构化分析(SA方法
3.4.3 面向对象的分析(OOA方法
3.5 软件需求案例分析
3.5.1 案例1——用SA法建立需求模型
3.5.2 案例2——用OOA法建立需求模型
小结
习题二
第4章 软件设计
4.1 软件设计概述
4.1.1 软件设计在开发阶段中的重要性
4.1.2 软件设计阶段的任务
4.1.3 软件设计的目标
4.1.4 软件设计过程
4.2 软件体系结构设计
4.2.1 系统结构性模型——集中式系统模型
4.2.2 系统结构性模型——层次结构模型
4.2.3 系统结构性模型——分布式系统模型
4.2.4 控制模型
4.2.5 模块分解
4.3 详细设计描述工具
4.4 面向对象的设计
4.4.1 面向对象设计的准则
4.4.2 面向对象设计的基本任务
4.5 用户界面设计
4.5.1 用户界面设计的特性与设计任务
4.5.2 用户界面设计的基本原则
4.5.3 用户界面的基本类型
4.5.4 用户交互设计
4.6 MVC设计模式
4.7 软件设计实例
小结
习题四
第5章 软件构造
5.1 程序设计语言的选择
5.1.1 程序设计语言的分类
5.1.2 高级程序设计语言的基本组成
5.1.3 程序设计语言选择准则
5.2 程序设计方法
5.2.1 结构化程序设计
5.2.2 面向对象程序设计
5.3 程序设计风格
5.3.1 源程序文件
5.3.2 语句构造方法
5.3.3 数据说明方法
5.3.4 输入/输出技术
5.4 算法与程序效率
5.4.1 算法转换过程中的指导原则
5.4.2 影响效率的因素
5.5 软件代码审查
5.6 软件复用
5.6.1 软件复用的级别
5.6.2 软件复用过程
5.6.3 可复用构件
5.6.4 基于复用的开发过程
5.6.5 构件的组装和复用
5.7 软件构造实例
5.7.1 实现环境
5.7.2 系统编码实现
5.7.3 用户界面
小结
习题五
第6章 软件测试
6.1 软件测试概述
6.1.1 软件测试的基本概念
6.1.2 软件测试的特点和基本原则
6.1.3 软件测试过程
6.1.4 静态分析与动态测试
6.2 白盒法测试
6.2.1 语句覆盖
6.2.2 判定覆盖
6.2.3 条件覆盖
6.2.4 判定-条件覆盖
6.2.5 条件组合覆盖
6.3 黑盒法测试
6.3.1 等价分类法
6.3.2 边界值分析法
6.3.3 错误推测法
6.3.4 因果图法
6.4 软件测试的策略
6.4.1 单元测试
6.4.2 集成测试
6.4.3 确认测试
6.4.4 系统测试
6.4.5 ?测试和?测试
6.4.6 综合测试策略
6.5 软件调试
6.5.1 软件调试过程
6.5.2 软件调试策略
6.6 面向对象的测试
6.6.1 面向对象测试的特点
6.6.2 面向对象测试模型
6.6.3 面向对象测试类型
6.6.4 分析模型测试
6.6.5 面向对象的测试用例
6.7 自动化测试
6.7.1 自动化测试概述
6.7.2 实施自动化测试的前提条件
6.7.3 自动化测试过程
6.7.4 自动化测试的原则
6.7.5 敏捷测试
小结
习题六
第7章 软件维护
7.1 软件维护的基本概念
7.1.1 软件维护的目的
7.1.2 软件维护的分类
7.1.3 软件维护的特性
7.1.4 软件维护的代价
7.2 软件维护的过程
7.2.1 软件维护的组织和维护过程管理
7.2.2 维护工作的流程
7.3 软件维护技术
7.4 软件可维护性
7.4.1 软件可维护性的定义
7.4.2 提高可维护性的方法
7.5 软件再工程技术
7.5.1 逆向工程
7.5.2 软件再工程过程
7.5.3 再工程的成本及效益分析
7.5.4 再工程的风险分析
小结
习题七
第8章 软件项目管理
8.1 软件项目管理概述
8.1.1 软件项目管理的特点
8.1.2 软件项目管理的主要活动
8.2 软件项目可行性研究
8.2.1 可行性研究的任务
8.2.2 可行性研究报告
8.3 软件项目计划
8.3.1 软件项目计划内容
8.3.2 软件开发进度计划
8.4 软件项目成本估算技术
8.4.1 影响成本估算的因素
8.4.2 成本估算模型
8.4.3 成本/效益分析
8.5 软件项目人力资源管理
8.5.1 软件团队建设
8.5.2 团队人员的选择
8.6 软件项目风险管理
8.6.1 软件项目风险管理概述
8.6.2 软件项目风险管理过程
8.6.3 风险管理的理论和模型
8.7 软件质量保证
8.8 软件配置管理
8.8.1 软件配置管理的基本概念
8.8.2 软件配置管理的活动
小结
习题八
第9章 软件能力成熟度模型
9.1 CMM概述
9.1.1 软件过程成熟度的基本概念
9.1.2 软件过程的成熟度等级
9.2 CMM的结构
9.2.1 关键过程域
9.2.2 关键实践
9.2.3 共同特性
9.3 CMM的实施与评估
9.3.1 软件过程评估的必要性
9.3.2 软件过程评估及参考模型
9.3.3 软件过程改进
9.3.4 CMM评估的执行步骤
9.3.5 软件企业如何实施CMM
9.3.6 CMM与ISO 9000标准
9.4 软件能力成熟度模型集成
9.4.1 CMMI的产生与发展
9.4.2 CMMI的模型
9.4.3 CMMI的评估
9.4.4 CMMI与CMM的比较
小结
习题九
第10章 软件工程课程设计
10.1 课程设计的目的和要求
10.2 课程设计步骤及安排
10.3 可视化建模工具Rational Rose
10.3.1 Rose工具简介
10.3.2 绘制业务用例图
10.3.3 绘制用例图
10.3.4 绘制类图
10.3.5 绘制协作图与顺序图
10.3.6 绘制活动图
10.3.7 绘制状态图
10.3.8 绘制构件图和部署图
10.4 案例分析
10.4.1 案例一:ATM系统
10.4.2 案例二:网上拍卖系统
10.4.3 案例三:会议管理系统
10.4.4 案例四:仓库信息管理系统
参考文献
1.1 软件工程的产生和发展
1.1.1 软件危机与软件工程
1.1.2 软件工程的定义及基本原则
1.1.3 软件工程研究的内容
1.2 软件与软件过程
1.2.1 软件的概念和特点
1.2.2 软件工程过程及产品
1.3 软件过程模型
1.3.1 瀑布模型
1.3.2 增量模型
1.3.3 螺旋模型
1.3.4 喷泉模型
1.3.5 原型模型
1.3.6 智能模型
1.4 软件开发方法
1.4.1 结构化开发方法
1.4.2 原型化开发方法
1.4.3 面向对象的开发方法
1.4.4 敏捷软件的开发
1.5 软件工具与集成化开发环境
1.5.1 软件工具的发展过程
1.5.2 软件工具
1.5.3 集成化CASE环境
小结
习题1
第2章 面向对象方法与UML建模语言
2.1 面向对象方法概述
2.1.1 面向对象方法的特点
2.1.2 几种典型的面向对象方法
2.2 UML概述
2.2.1 UML的基本概念
2.2.2 UML的图形表示
2.3 建立用例模型
2.3.1 需求分析与用例建模
2.3.2 确定执行者和用例
2.3.3 用例建模实例
2.4 建立静态模型
2.4.1 类图
2.4.2 包图
2.5 建立动态模型
2.5.1 消息
2.5.2 状态图
2.5.3 顺序图
2.5.4 合作图
2.5.5 活动图
2.6 建立实现模型
2.6.1 组件图
2.6.2 部署图
2.7 RUP统一过程及其应用
2.7.1 UML与RUP统一过程
2.7.2 RUP的二维开发模型
2.7.3 RUP的迭代开发模式
小结
习题二
第3章 软件需求工程
3.1 软件需求的基本概念
3.1.1 软件需求的任务
3.1.2 功能需求与非功能需求
3.2 需求工程过程
3.2.1 需求工程的基本活动
3.2.2 获取需求
3.2.3 需求分析与建模
3.2.4 需求的有效性验证
3.2.5 需求管理
3.3 软件需求获取技术
3.3.1 面谈法
3.3.2 问卷调查法
3.3.3 需求专题讨论会
3.3.4 原型法获取需求
3.3.5 面向用例的方法
3.4 需求分析与建模技术
3.4.1 需求分析方法
3.4.2 结构化分析(SA方法
3.4.3 面向对象的分析(OOA方法
3.5 软件需求案例分析
3.5.1 案例1——用SA法建立需求模型
3.5.2 案例2——用OOA法建立需求模型
小结
习题二
第4章 软件设计
4.1 软件设计概述
4.1.1 软件设计在开发阶段中的重要性
4.1.2 软件设计阶段的任务
4.1.3 软件设计的目标
4.1.4 软件设计过程
4.2 软件体系结构设计
4.2.1 系统结构性模型——集中式系统模型
4.2.2 系统结构性模型——层次结构模型
4.2.3 系统结构性模型——分布式系统模型
4.2.4 控制模型
4.2.5 模块分解
4.3 详细设计描述工具
4.4 面向对象的设计
4.4.1 面向对象设计的准则
4.4.2 面向对象设计的基本任务
4.5 用户界面设计
4.5.1 用户界面设计的特性与设计任务
4.5.2 用户界面设计的基本原则
4.5.3 用户界面的基本类型
4.5.4 用户交互设计
4.6 MVC设计模式
4.7 软件设计实例
小结
习题四
第5章 软件构造
5.1 程序设计语言的选择
5.1.1 程序设计语言的分类
5.1.2 高级程序设计语言的基本组成
5.1.3 程序设计语言选择准则
5.2 程序设计方法
5.2.1 结构化程序设计
5.2.2 面向对象程序设计
5.3 程序设计风格
5.3.1 源程序文件
5.3.2 语句构造方法
5.3.3 数据说明方法
5.3.4 输入/输出技术
5.4 算法与程序效率
5.4.1 算法转换过程中的指导原则
5.4.2 影响效率的因素
5.5 软件代码审查
5.6 软件复用
5.6.1 软件复用的级别
5.6.2 软件复用过程
5.6.3 可复用构件
5.6.4 基于复用的开发过程
5.6.5 构件的组装和复用
5.7 软件构造实例
5.7.1 实现环境
5.7.2 系统编码实现
5.7.3 用户界面
小结
习题五
第6章 软件测试
6.1 软件测试概述
6.1.1 软件测试的基本概念
6.1.2 软件测试的特点和基本原则
6.1.3 软件测试过程
6.1.4 静态分析与动态测试
6.2 白盒法测试
6.2.1 语句覆盖
6.2.2 判定覆盖
6.2.3 条件覆盖
6.2.4 判定-条件覆盖
6.2.5 条件组合覆盖
6.3 黑盒法测试
6.3.1 等价分类法
6.3.2 边界值分析法
6.3.3 错误推测法
6.3.4 因果图法
6.4 软件测试的策略
6.4.1 单元测试
6.4.2 集成测试
6.4.3 确认测试
6.4.4 系统测试
6.4.5 ?测试和?测试
6.4.6 综合测试策略
6.5 软件调试
6.5.1 软件调试过程
6.5.2 软件调试策略
6.6 面向对象的测试
6.6.1 面向对象测试的特点
6.6.2 面向对象测试模型
6.6.3 面向对象测试类型
6.6.4 分析模型测试
6.6.5 面向对象的测试用例
6.7 自动化测试
6.7.1 自动化测试概述
6.7.2 实施自动化测试的前提条件
6.7.3 自动化测试过程
6.7.4 自动化测试的原则
6.7.5 敏捷测试
小结
习题六
第7章 软件维护
7.1 软件维护的基本概念
7.1.1 软件维护的目的
7.1.2 软件维护的分类
7.1.3 软件维护的特性
7.1.4 软件维护的代价
7.2 软件维护的过程
7.2.1 软件维护的组织和维护过程管理
7.2.2 维护工作的流程
7.3 软件维护技术
7.4 软件可维护性
7.4.1 软件可维护性的定义
7.4.2 提高可维护性的方法
7.5 软件再工程技术
7.5.1 逆向工程
7.5.2 软件再工程过程
7.5.3 再工程的成本及效益分析
7.5.4 再工程的风险分析
小结
习题七
第8章 软件项目管理
8.1 软件项目管理概述
8.1.1 软件项目管理的特点
8.1.2 软件项目管理的主要活动
8.2 软件项目可行性研究
8.2.1 可行性研究的任务
8.2.2 可行性研究报告
8.3 软件项目计划
8.3.1 软件项目计划内容
8.3.2 软件开发进度计划
8.4 软件项目成本估算技术
8.4.1 影响成本估算的因素
8.4.2 成本估算模型
8.4.3 成本/效益分析
8.5 软件项目人力资源管理
8.5.1 软件团队建设
8.5.2 团队人员的选择
8.6 软件项目风险管理
8.6.1 软件项目风险管理概述
8.6.2 软件项目风险管理过程
8.6.3 风险管理的理论和模型
8.7 软件质量保证
8.8 软件配置管理
8.8.1 软件配置管理的基本概念
8.8.2 软件配置管理的活动
小结
习题八
第9章 软件能力成熟度模型
9.1 CMM概述
9.1.1 软件过程成熟度的基本概念
9.1.2 软件过程的成熟度等级
9.2 CMM的结构
9.2.1 关键过程域
9.2.2 关键实践
9.2.3 共同特性
9.3 CMM的实施与评估
9.3.1 软件过程评估的必要性
9.3.2 软件过程评估及参考模型
9.3.3 软件过程改进
9.3.4 CMM评估的执行步骤
9.3.5 软件企业如何实施CMM
9.3.6 CMM与ISO 9000标准
9.4 软件能力成熟度模型集成
9.4.1 CMMI的产生与发展
9.4.2 CMMI的模型
9.4.3 CMMI的评估
9.4.4 CMMI与CMM的比较
小结
习题九
第10章 软件工程课程设计
10.1 课程设计的目的和要求
10.2 课程设计步骤及安排
10.3 可视化建模工具Rational Rose
10.3.1 Rose工具简介
10.3.2 绘制业务用例图
10.3.3 绘制用例图
10.3.4 绘制类图
10.3.5 绘制协作图与顺序图
10.3.6 绘制活动图
10.3.7 绘制状态图
10.3.8 绘制构件图和部署图
10.4 案例分析
10.4.1 案例一:ATM系统
10.4.2 案例二:网上拍卖系统
10.4.3 案例三:会议管理系统
10.4.4 案例四:仓库信息管理系统
参考文献
猜您喜欢