顶部
收藏

软件工程(第4版)

“十二五”普通高等教育本科国家级规划教材

作者:
齐治昌 谭庆平 宁洪
定价:
59.00元
ISBN:
978-7-04-050960-1
版面字数:
700.000千字
开本:
16开
全书页数:
暂无
装帧形式:
平装
重点项目:
“十二五”普通高等教育本科国家级规划教材
出版时间:
2019-03-14
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
软件工程专业课程

本书是在第3版的基础上修改而成的,阐述了信息时代软件、软件工程及软件工程教育的地位和作用,基于计算机的系统和业务过程建模。书中分析了传统软件开发过程向统一过程RUP的进化,系统地介绍了RUP、UML和面向对象的软件开发方法,以及软件开发的需求、设计、实现、测试、交付、维护、软件度量、软件项目管理和软件开发组织的过程改进等专题。本书简化了前版中结构化软件开发方法的相关内容,充实了目前常用的基于构件的软件开发、持续集成(CI)等方面的内容。

本书强调理论与实践相结合,软件工程的技术、方法与工具相结合,软件项目的技术活动与管理活动相结合。书中含有丰富的例题、习题和参考文献。

本书可作为高等学校计算机或信息类专业高年级本科生教材,也可作为硕士研究生教材及软件开发人员参考书。

  • 前辅文
  • 第1章 软件与软件工程
    • 1.1 软件的概念
      • 1.1.1 软件与软件的组成
      • 1.1.2 软件生存周期
      • 1.1.3 软件的特点
      • 1.1.4 几类常用的软件
      • 1.1.5 软件的质量
      • 1.1.6 软件的安全与保护
    • 1.2 软件工程的概念
      • 1.2.1 软件工程的定义
      • 1.2.2 软件工程的发展
      • 1.2.3 软件工程的目标和原则
      • 1.2.4 软件开发的主要方法
    • 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.5 软件工程人的因素
      • 1.5.1 软件工程教育
      • 1.5.2 软件工程学科
      • 1.5.3 软件工程从业人员的职业道德
    • 1.6 软件工具及软件开发环境
      • 1.6.1 软件工具
      • 1.6.2 软件开发环境
    • 1.7 基于计算机的系统
      • 1.7.1 基于计算机的系统的概念
      • 1.7.2 基于计算机的系统的功能组件
      • 1.7.3 典型的基于计算机的系统
      • 1.7.4 基于计算机的系统的研制
    • 小结
    • 习题1
  • 第2章 UML与RUP统一过程
    • 2.1 案例说明
    • 2.2 面向对象的软件开发方法
      • 2.2.1 面向对象的概念
      • 2.2.2 面向对象方法的优势
    • 2.3 UML概述
    • 2.4 RUP统一过程
      • 2.4.1 RUP软件过程框架
      • 2.4.2 RUP的5个阶段
      • 2.4.3 RUP的9个工作流
    • 小结
    • 习题2
  • 第3章 需求工程概论
    • 3.1 软件需求的概念
      • 3.1.1 软件需求的分类
      • 3.1.2 软件需求的质量要素
    • 3.2 需求工程的预备知识
      • 3.2.1 与用户/客户交流的技巧
      • 3.2.2 需求调查的基本方法
      • 3.2.3 需求建模的基本方法
    • 3.3 需求工程的过程模型
      • 3.3.1 需求工程中的活动
      • 3.3.2 迭代式过程模型
      • 3.3.3 过程模型的裁剪
    • 小结
    • 习题3
  • 第4章 需求获取
    • 4.1 软件需求的初始表示
      • 4.1.1 用例
      • 4.1.2 用例图
      • 4.1.3 用例的表示
      • 4.1.4 类图
      • 4.1.5 活动图
    • 4.2 需求获取的过程模型
    • 4.3 定义软件问题
      • 4.3.1 标识客户和用户
      • 4.3.2 理解业务背景
      • 4.3.3 策划并实施需求调查
      • 4.3.4 定义软件系统的轮廓
    • 4.4 创建框架用例
      • 4.4.1 策划并实施用例调查
      • 4.4.2 以框架用例记录调查结果
      • 4.4.3 创建用例图
      • 4.4.4 整合并评审框架用例
    • 4.5 精化用例
      • 4.5.1 用例交互动作序列的描述方法
      • 4.5.2 分解或合并用例
      • 4.5.3 构建完整用例
      • 4.5.4 精化用例图
      • 4.5.5 精化业务规则及非功能需求
    • 4.6 评审用例模型
    • 小结
    • 习题4
  • 第5章 需求分析与验证
    • 5.1 分析模型的表示
      • 5.1.1 顺序图
      • 5.1.2 通信图
      • 5.1.3 状态图
      • 5.1.4 扩充机制
    • 5.2 需求分析的过程模型
    • 5.3 需求优先级分析
      • 5.3.1 确定需求项优先级
      • 5.3.2 编排用例分析的优先顺序
    • 5.4 用例分析
      • 5.4.1 精化领域概念模型
      • 5.4.2 设置分析类
      • 5.4.3 构思分析类之间的协作关系
      • 5.4.4 导出分析类图
    • 5.5 利用快速原型辅助需求分析
    • 5.6 评审分析模型
    • 5.7 需求规约
    • 5.8 需求验证
    • 小结
    • 习题5
  • 第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.3.1 软件设计中的活动
      • 6.3.2 迭代式设计过程模型
      • 6.3.3 设计过程模型的裁剪
    • 小结
    • 习题6
  • 第7章 软件体系结构设计
    • 7.1 软件体系结构的概念
      • 7.1.1 何谓体系结构
      • 7.1.2 体系结构视图
    • 7.2 体系结构的表示
      • 7.2.1 包图
      • 7.2.2 构件图
      • 7.2.3 部署图
      • 7.2.4 对象图
    • 7.3 体系结构设计的过程模型
    • 7.4 体系结构设计模式
      • 7.4.1 何谓设计模式
      • 7.4.2 通用的体系结构模式
    • 7.5 概念设计
      • 7.5.1 关键需求辨识
      • 7.5.2 体系结构初创
    • 7.6 体系结构精化
      • 7.6.1 逻辑视图体系结构的精化
      • 7.6.2 开发视图体系结构的设计
      • 7.6.3 物理视图体系结构的设计
      • 7.6.4 运行视图体系结构的设计
      • 7.6.5 数据视图体系结构的设计
      • 7.6.6 软件体系结构文档
    • 7.7 基于构件的体系结构设计
      • 7.7.1 软件复用概述
      • 7.7.2 构件创立
      • 7.7.3 构件复用
    • 7.8 体系结构验证
    • 小结
    • 习题7
  • 第8章 人机交互设计
    • 8.1 以用户为中心的设计
      • 8.1.1 以用户为中心的设计理念
      • 8.1.2 人类信息处理模型
      • 8.1.3 以用户为中心的设计方法
    • 8.2 用户界面设计的基本原则
    • 8.3 用户界面设计模型的表示
    • 8.4 用户界面设计的过程模型
    • 8.5 用户及任务分析
      • 8.5.1 用户分析
      • 8.5.2 任务分析
    • 8.6 用户界面的概念设计
    • 8.7 用户界面流设计
    • 8.8 用户界面的精化
    • 小结
    • 习题8
  • 第9章 软件详细设计
    • 9.1 详细设计的任务与过程模型
    • 9.2 用例设计
      • 9.2.1 设计用例实现方案
      • 9.2.2 构造设计类图
      • 9.2.3 整合并优化用例实现方案
    • 9.3 子系统设计
      • 9.3.1 确立内部设计元素
      • 9.3.2 导出设计类图
      • 9.3.3 设计状态图与活动图
    • 9.4 构件设计
    • 9.5 类设计
      • 9.5.1 精化类间关系
      • 9.5.2 精化属性和操作
      • 9.5.3 设计状态图与活动图
    • 9.6 数据模型设计
      • 9.6.1 确定持久数据条目
      • 9.6.2 确定持久数据的组织结构
      • 9.6.3 确立持久数据操作
      • 9.6.4 优化持久数据操作的性能
    • 9.7 设计整合与验证
      • 9.7.1 设计规约
      • 9.7.2 设计验证
    • 小结
    • 习题9
  • 第10章 软件实现
    • 10.1 软件实现的任务
    • 10.2 软件实现过程
    • 10.3 软件实现与程序设计语言
      • 10.3.1 程序设计语言的演变和分类
      • 10.3.2 程序设计语言的基本机制
      • 10.3.3 程序设计语言的选择
    • 10.4 编程实现
      • 10.4.1 将编程作为问题求解
      • 10.4.2 程序设计范型
      • 10.4.3 编程标准
      • 10.4.4 编程风格
      • 10.4.5 极限编程与结对编程
    • 10.5 软件调试
      • 10.5.1 调试过程
      • 10.5.2 软件缺陷的分类
      • 10.5.3 调试方法
      • 10.5.4 调试技术
    • 小结
    • 习题10
  • 第11章 结构化软件开发
    • 11.1 面向数据流的分析方法
      • 11.1.1 数据流图与数据字典
      • 11.1.2 实体-关系图
      • 11.1.3 数据流图的实时系统扩充
      • 11.1.4 基于数据流的分析方法
    • 11.2 面向数据流的设计方法
      • 11.2.1 基本概念和设计过程
      • 11.2.2 变换分析
      • 11.2.3 事务分析
    • 11.3 实时系统设计
      • 11.3.1 实时系统性能要求
      • 11.3.2 实时系统设计要素
      • 11.3.3 实时系统设计方法
      • 11.3.4 设计实例
    • 小结
    • 习题11
  • 第12章 软件测试
    • 12.1 软件测试的概念
      • 12.1.1 软件测试的任务
      • 12.1.2 测试阶段的信息流程
      • 12.1.3 测试用例及其设计
      • 12.1.4 软件测试的原则
    • 12.2 软件测试的过程模型
    • 12.3 软件测试方法
      • 12.3.1 白盒测试
      • 12.3.2 黑盒测试
    • 12.4 软件测试活动及实施策略
      • 12.4.1 单元测试
      • 12.4.2 集成测试
      • 12.4.3 确认测试
      • 12.4.4 系统测试
    • 12.5 面向对象软件的测试
      • 12.5.1 类的测试
      • 12.5.2 交互测试
      • 12.5.3 继承的测试
    • 小结
    • 习题12
  • 第13章 软件维护
    • 13.1 软件维护与进化的概念
    • 13.2 软件维护的过程模型
      • 13.2.1 结构化与非结构化的维护
      • 13.2.2 维护的成本
      • 13.2.3 可能存在的问题
    • 13.3 可维护性
    • 13.4 维护活动及实施策略
    • 13.5 维护的副作用
    • 13.6 逆向工程与软件重构
    • 小结
    • 习题13
  • 第14章 持续集成
    • 14.1 持续集成概述
      • 14.1.1 持续集成的相关概念
      • 14.1.2 持续集成的过程与管道
      • 14.1.3 持续集成的价值
    • 14.2 版本控制
      • 14.2.1 集中与分布式版本控制
      • 14.2.2 版本控制的主线与分支
      • 14.2.3 功能开关
    • 14.3 构建
    • 14.4 测试
      • 14.4.1 单元测试自动化
      • 14.4.2 集成测试自动化
      • 14.4.3 确认测试自动化
    • 14.5 代码质量分析
    • 14.6 发布与部署
    • 小结
    • 习题14
  • 第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.2.4 对象点度量
      • 15.2.5 软件复用的度量
    • 15.3 软件复杂性度量
      • 15.3.1 软件复杂性及度量原则
      • 15.3.2 控制结构的复杂性度量
      • 15.3.3 体系结构的复杂性度量
    • 15.4 软件质量度量
      • 15.4.1 软件质量的概念
      • 15.4.2 软件质量度量的三层次模型
      • 15.4.3 Boehm、FURPS和ISO 9126度量模型
      • 15.4.4 软件质量的评价准则度量
    • 15.5 软件可靠性度量
      • 15.5.1 软件可靠性的概念
      • 15.5.2 软件修复和软件有效性
      • 15.5.3 软件可靠性估算
    • 15.6 制定软件度量大纲的方法和工具
      • 15.6.1 制定软件度量大纲的方法
      • 15.6.2 软件度量工具
    • 小结
    • 习题15
  • 第16章 软件项目管理与过程改进
    • 16.1 软件项目管理与过程模型
      • 16.1.1 软件项目管理的概念
      • 16.1.2 软件项目管理的过程模型
      • 16.1.3 软件项目管理的原则
      • 16.1.4 软件项目制品
    • 16.2 软件项目度量与估算
      • 16.2.1 软件项目分解
      • 16.2.2 采用代码行、功能点度量的工作量估算
      • 16.2.3 软件项目的生产率度量
      • 16.2.4 一般经验估算模型
      • 16.2.5 COCOMO模型
      • 16.2.6 COCOMO Ⅱ模型
      • 16.2.7 Putnam模型
    • 16.3 风险分析
      • 16.3.1 风险标识
      • 16.3.2 风险估算
      • 16.3.3 风险评价和管理
    • 16.4 软件项目计划
      • 16.4.1 任务分配与工程进度
      • 16.4.2 任务分解与并行化
      • 16.4.3 工作量分布
      • 16.4.4 工程进度安排
    • 16.5 软件项目人员和组织
      • 16.5.1 软件项目人员
      • 16.5.2 软件项目团队
      • 16.5.3 软件项目的人员组织
      • 16.5.4 评审或估算专家
      • 16.5.5 软件项目的人员分布
    • 16.6 软件质量保证
      • 16.6.1 软件开发标准
      • 16.6.2 软件质量保证活动
      • 16.6.3 基于统计的软件质量保证
    • 16.7 软件配置管理
      • 16.7.1 软件配置管理的概念
      • 16.7.2 软件配置管理的任务
      • 16.7.3 软件配置管理标准
      • 16.7.4 配置管理工具
    • 16.8 软件过程改进
      • 16.8.1 CMM的基本概念
      • 16.8.2 能力成熟度模型CMM
      • 16.8.3 能力成熟度模型集成CMMI
      • 16.8.4 CMM和CMMI的选择和应用
    • 小结
    • 习题16
  • 参考文献

本数字课程与“十二五”普通高等学校本科国家级规划教材《软件工程(第4版)》纸质教材一体化设计,紧密配合,为读者提供教学视频、电子教案等教学资源。充分运用多种形式的媒体资源,丰富知识的呈现形式,拓展教材内容。在有效帮助读者提升课程学习效果的同时,也为读者自主学习学习提供思维与探索的空间。

相关图书