顶部
收藏

软件工程原理

“十一五”国家规划教材

作者:
沈备军 陈昊鹏 陈雨亭
定价:
48.00元
ISBN:
978-7-04-036906-9
版面字数:
760.000千字
开本:
16开
全书页数:
540页
装帧形式:
平装
重点项目:
“十一五”国家规划教材
出版时间:
2013-02-21
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
软件工程专业课程

本书覆盖软件工程知识体系(SWEBOK)(第3版)的全部核心知识域,从软件工程的本质出发,系统、全面地介绍软件过程、软件建模技术和方法以及软件工程管理,同时介绍一些热点新技术和新方法。全书分为三大部分,共20章。第一部分为软件工程基础,讲述软件工程的基本原则、软件过程以及从需求、设计、测试到维护的活动,共9章。第二部分为软件工程管理,讲述工程管理的重要知识域,包括软件项目管理、软件项目估算和计划、软件质量管理、软件风险管理、软件度量和人员管理,共6章。第三部分为高级主题,讲述当前热门的一些新技术和新方法,共5章。此外,本书还以一个汽车4S店业务管理系统为案例,阐述软件工程从需求、设计、测试到管理等各核心环节,使学生扎实地掌握理论知识,培养其解决实际问题的能力。

本书可供本科生、硕士生学习“软件工程”、“高级软件工程”、“软件过程”、“软件项目管理”等课程使用,同时对于从事软件开发、维护和管理的各类人员也可起到非常好的借鉴作用。

  • 前辅文
  • 第一部分 软件工程基础
    • 第1章 绪论
      • 1.1 软件
        • 1.1.1 软件的作用和特性
        • 1.1.2 软件的发展和面临的新挑战
        • 1.1.3 软件危机
      • 1.2 工程
        • 1.2.1 软件开发与艺术、科学和工程的关系
        • 1.2.2 工程的定义和特性
        • 1.2.3 工程的准则
      • 1.3 软件工程
        • 1.3.1 软件工程的概念和知识域
        • 1.3.2 软件工程的金三角
        • 1.3.3 控制软件开发的复杂性
        • 1.3.4 软件工程经济学
      • 1.4 案例概述
      • 本章小结
      • 参考文献
      • 习题1
    • 第2章 软件过程
      • 2.1 软件过程的概念
        • 2.1.1 软件过程的定义和作用
        • 2.1.2 软件过程的分类
        • 2.1.3 软件过程的核心元素
      • 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 XP
        • 2.4.3 Scrum
        • 2.4.4 MSF
      • 2.5 软件过程的选择、裁剪、评估和改进
        • 2.5.1 软件过程的选择和裁剪
        • 2.5.2 软件过程的评估
        • 2.5.3 软件过程的改进
      • 本章小结
      • 参考文献
      • 习题2
    • 第3章 软件建模
      • 3.1 模型和建模
        • 3.1.1 模型
        • 3.1.2 软件模型的3个层次:CIM、PIM和PSM
        • 3.1.3 软件建模方法
      • 3.2 结构化方法
        • 3.2.1 结构化分析
        • 3.2.2 结构化设计
      • 3.3 面向对象方法
        • 3.3.1 面向对象的基本概念
        • 3.3.2 面向对象的基本原则
        • 3.3.3 面向对象的分析和设计
        • 3.3.4 结构化方法和面向对象方法的比较
      • 3.4 基于构件的开发方法
        • 3.4.1 构件
        • 3.4.2 基于构件的软件开发
        • 3.4.3 构件开发
        • 3.4.4 构件管理
        • 3.4.5 应用开发和构件组装
        • 3.4.6 与面向对象方法的关系
      • 3.5 面向服务方法
        • 3.5.1 面向服务架构的基本概念
        • 3.5.2 面向服务建模的内涵
        • 3.5.3 面向服务建模的方法
      • 3.6 模型驱动开发方法
        • 3.6.1 从代码驱动到模型驱动
        • 3.6.2 元模型和MOF
        • 3.6.3 基于MDA的软件开发方法
      • 3.7 形式化方法
        • 3.7.1 形式化方法的概念
        • 3.7.2 形式化规约
        • 3.7.3 形式化开发
        • 3.7.4 形式化验证
      • 3.8 敏捷建模方法
        • 3.8.1 敏捷建模的原则
        • 3.8.2 敏捷建模的实践
      • 本章小结
      • 参考文献
      • 习题3
    • 第4章 需求工程
      • 4.1 软件需求面临的挑战
      • 4.2 需求工程的概念
        • 4.2.1 软件需求
        • 4.2.2 需求的层次
        • 4.2.3 优秀需求应具有的特性
        • 4.2.4 软件需求工程
      • 4.3 需求获取
        • 4.3.1 需求来源
        • 4.3.2 需求获取技术
      • 4.4 需求分析建模
        • 4.4.1 分析模型
        • 4.4.2 分析建模的准则
      • 4.5 需求定义和验证
        • 4.5.1 软件前景文档
        • 4.5.2 软件需求规约
        • 4.5.3 用户界面原型
        • 4.5.4 软件需求验证
      • 4.6 需求管理
        • 4.6.1 定义需求基线
        • 4.6.2 需求变更控制和版本控制
        • 4.6.3 需求跟踪
      • 本章小结
      • 参考文献
      • 习题4
    • 第5章 面向对象的分析建模
      • 5.1 面向对象的分析模型
        • 5.1.1 用例图
        • 5.1.2 活动图
        • 5.1.3 类图
        • 5.1.4 时序图
        • 5.1.5 通信图
        • 5.1.6 包图
      • 5.2 分析建模的步骤
      • 5.3 用例建模
        • 5.3.1 执行者的识别
        • 5.3.2 用例的识别
        • 5.3.3 用例图的构建
        • 5.3.4 用例规约的撰写
        • 5.3.5 用例模型的优化
      • 5.4 建立概念模型
      • 5.5 用例实现的识别
      • 5.6 分析类的识别
        • 5.6.1 3种分析类
        • 5.6.2 识别边界类
        • 5.6.3 识别控制类
        • 5.6.4 识别实体类
      • 5.7 用例分析
        • 5.7.1 职责分配的通用原则
        • 5.7.2 时序图和通信图的构建
        • 5.7.3 类图的构建
      • 本章小结
      • 参考文献
      • 习题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.3.4 安全性设计策略
        • 6.3.5 可测试性设计策略
        • 6.3.6 易用性设计策略
      • 6.4 架构风格
        • 6.4.1 通用结构的架构风格
        • 6.4.2 分布式系统的架构风格
        • 6.4.3 交互式系统的架构风格
        • 6.4.4 自适应系统的架构风格
        • 6.4.5 其他架构风格
      • 6.5 设计模式
        • 6.5.1 创建型设计模式
        • 6.5.2 结构型设计模式
        • 6.5.3 行为型设计模式
      • 6.6 人机界面设计
        • 6.6.1 界面设计原则
        • 6.6.2 人机交互方式
        • 6.6.3 界面设计过程
        • 6.6.4 界面设计问题.
      • 本章小结
      • 参考文献
      • 习题6
    • 第7章 面向对象的设计建模
      • 7.1 面向对象的设计模型
        • 7.1.1 设计建模过程
        • 7.1.2 构件图
        • 7.1.3 部署图
        • 7.1.4 状态机图
      • 7.2 架构设计
        • 7.2.1 4+1架构视图
        • 7.2.2 逻辑视图设计
        • 7.2.3 进程视图设计
        • 7.2.4 开发视图设计
        • 7.2.5 物理视图设计
        • 7.2.6 场景视图设计
        • 7.2.7 视图选择
      • 7.3 包和子系统设计
        • 7.3.1 包设计原则
        • 7.3.2 子系统设计
      • 7.4 类设计
        • 7.4.1 类设计原则
        • 7.4.2 类设计过程
      • 7.5 持久化设计
        • 7.5.1 实体对象模型与数据库设计
        • 7.5.2 数据库设计
        • 7.5.3 持久化框架
      • 本章小结
      • 参考文献
      • 习题7
    • 第8章 软件测试
      • 8.1 软件测试概念
        • 8.1.1 软件测试定义
        • 8.1.2 软件测试原则
        • 8.1.3 软件可测试性
      • 8.2 软件测试策略
        • 8.2.1 软件测试层次
        • 8.2.2 软件质量属性测试
        • 8.2.3 其他软件测试策略
      • 8.3 软件测试技术
        • 8.3.1 测试技术分类
        • 8.3.2 基于直觉和经验的测试
        • 8.3.3 基于代码的测试
        • 8.3.4 基于规约的测试
        • 8.3.5 基于错误的测试
        • 8.3.6 基于模型的测试
        • 8.3.7 基于应用类型的测试
      • 8.4 软件测试过程
        • 8.4.1 测试计划
        • 8.4.2 测试设计
        • 8.4.3 测试开发
        • 8.4.4 测试执行
        • 8.4.5 测试评估
      • 8.5 自动化测试
        • 8.5.1 自动化测试的定义和优势
        • 8.5.2 自动化测试适用的场合
        • 8.5.3 自动化测试的误区
        • 8.5.4 测试工具
      • 本章小结
      • 参考文献
      • 习题8
    • 第9章 软件演化和软件维护
      • 9.1 软件演化
        • 9.1.1 软件演化的定义
        • 9.1.2 软件演化法则
      • 9.2 软件维护基础
        • 9.2.1 软件维护的重要性
        • 9.2.2 软件维护的概念和分类
      • 9.3 软件维护的关键问题
        • 9.3.1 技术问题
        • 9.3.2 管理问题
        • 9.3.3 维护成本估算
      • 9.4 软件维护过程与维护活动
        • 9.4.1 维护过程
        • 9.4.2 维护活动
      • 9.5 软件维护技术
        • 9.5.1 程序理解
        • 9.5.2 逆向工程
        • 9.5.3 再工程
      • 本章小结
      • 参考文献
      • 习题9
  • 第二部分 软件工程管理
    • 第10章 软件项目管理
      • 10.1 项目和项目管理
        • 10.1.1 项目管理的基本概念
        • 10.1.2 项目管理的相关标准
        • 10.1.3 软件项目管理的特点
      • 10.2 项目管理的知识域和过程
        • 10.2.1 项目管理知识域
        • 10.2.2 项目管理过程
      • 10.3 软件项目从立项到收尾
        • 10.3.1 软件项目立项
        • 10.3.2 软件项目启动
        • 10.3.3 软件项目规划
        • 10.3.4 软件项目执行
        • 10.3.5 软件项目监控
        • 10.3.6 软件项目收尾
      • 10.4 软件项目经理的职责
      • 本章小结
      • 参考文献
      • 习题10
    • 第11章 软件项目估算和计划
      • 11.1 软件项目计划
        • 11.1.1 软件项目计划的内容
        • 11.1.2 软件项目规划的关键活动
      • 11.2 软件估算
        • 11.2.1 估算对项目的影响
        • 11.2.2 估算原则
        • 11.2.3 估算方法
        • 11.2.4 软件规模估算
        • 11.2.5 大致估算
      • 11.3 进度安排
        • 11.3.1 关键路径法
        • 11.3.2 进度计划
        • 11.3.3 战胜进度压力
      • 11.4 挣值管理
        • 11.4.1 3个基本参数
        • 11.4.2 4个评价指标
        • 11.4.3 两个预测变量
      • 本章小结
      • 参考文献
      • 习题11
    • 第12章 软件质量管理
      • 12.1 软件质量概念
        • 12.1.1 软件质量定义
        • 12.1.2 软件质量模型
        • 12.1.3 软件质量的价值和成本
      • 12.2 软件质量管理
        • 12.2.1 质量管理的发展
        • 12.2.2 软件质量管理的内容
      • 12.3 项目级软件质量管理
        • 12.3.1 软件质量计划
        • 12.3.2 验证和确认
        • 12.3.3 质量分析与评价
        • 12.3.4 软件配置管理
      • 12.4 组织级软件质量管理
        • 12.4.1 质量管理体系标准ISO 9000
        • 12.4.2 质量管理体系的建立
        • 12.4.3 质量管理体系的持续改进
      • 12.5 软件质量管理技术
        • 12.5.1 静态技术
        • 12.5.2 动态技术
      • 12.6 软件评审
        • 12.6.1 评审方法分类
        • 12.6.2 审查
        • 12.6.3 评审的陷阱
      • 12.7 软件审核
        • 12.7.1 审核分类
        • 12.7.2 审核过程
      • 本章小结
      • 参考文献
      • 习题12
    • 第13章 软件风险管理
      • 13.1 风险管理概念
        • 13.1.1 风险的定义和分类
        • 13.1.2 风险管理的成本和收益
        • 13.1.3 被动和主动的风险策略
      • 13.2 风险管理的成熟度模型
      • 13.3 风险管理过程
        • 13.3.1 风险识别
        • 13.3.2 风险分析与排序
        • 13.3.3 风险管理计划制定
        • 13.3.4 风险跟踪和报告
        • 13.3.5 风险控制
        • 13.3.6 从风险中学习
      • 13.4 十大软件风险
        • 13.4.1 需求误解
        • 13.4.2 缺少上层的支持
        • 13.4.3 需求变更失控
        • 13.4.4 未能合理管理客户期望值
        • 13.4.5 不现实的进度计划和成本预算
        • 13.4.6 质量低劣
        • 13.4.7 人员薄弱
        • 13.4.8 技术和架构风险
        • 13.4.9 软件外包失败
        • 13.4.10 缺乏足够的用户参与
      • 本章小结
      • 参考文献
      • 习题13
    • 第14章 软件度量
      • 14.1 软件度量的概念
        • 14.1.1 度量目的
        • 14.1.2 度量定义和分类
        • 14.1.3 度量原则
      • 14.2 软件产品度量
        • 14.2.1 产品结构度量
        • 14.2.2 产品质量度量
      • 14.3 软件过程度量
        • 14.3.1 过程度量的特性
        • 14.3.2 常用过程度量方法
        • 14.3.3 过程稳定性
        • 14.3.4 过程能力
        • 14.3.5 过程基准比对
      • 14.4 软件度量过程
        • 14.4.1 建立度量目标和选择度量
        • 14.4.2 定义度量规程
        • 14.4.3 获取度量数据
        • 14.4.4 分析度量数据
        • 14.4.5 存储和交流度量结果
      • 本章小结
      • 参考文献
      • 习题14
    • 第15章 软件人员管理
      • 15.1 软件人员管理模型
        • 15.1.1 软件人员的特点
        • 15.1.2 PCMM
      • 15.2 激励
        • 15.2.1 激励理论
        • 15.2.2 开发人员的激励因素
        • 15.2.3 最重要的激励因素
      • 15.3 团队建设
        • 15.3.1 高业绩团队
        • 15.3.2 团队建设方法
        • 15.3.3 团队建设的5个阶段
      • 15.4 团队模式
      • 15.5 沟通
        • 15.5.1 有效的沟通方法
        • 15.5.2 冲突管理
      • 本章小结
      • 参考文献
      • 习题15
  • 第三部分 高级主题
    • 第16章 软件产品线工程
      • 16.1 软件产品线工程的提出
      • 16.2 软件产品线工程的3个基本活动
        • 16.2.1 软件产品线工程的组成
        • 16.2.2 领域工程和应用工程的关系
      • 16.3 产品线的可变性
      • 16.4 领域工程
        • 16.4.1 领域
        • 16.4.2 领域分析
        • 16.4.3 领域设计
        • 16.4.4 领域实现
      • 16.5 领域工程的代表性方法
        • 16.5.1 FODA
        • 16.5.2 FORM
        • 16.5.3 Software Product Lines
        • 16.5.4 FAST
        • 16.5.5 PuLSE
        • 16.5.6 FeatuRSEB
        • 16.5.7 青鸟领域工程方法和FODM
      • 本章小结
      • 参考文献
      • 习题16
    • 第17章 面向服务的软件开发
      • 17.1 面向服务架构概述
        • 17.1.1 SOA产生的动因
        • 17.1.2 SOA与Web Services
        • 17.1.3 SOA对应用系统的分析与设计的影响
        • 17.1.4 SOA对应用系统的开发与部署的影响
      • 17.2 面向服务的分析与设计
        • 17.2.1 业务建模的方法
        • 17.2.2 企业服务总线
        • 17.2.3 服务组织方式
        • 17.2.4 业务服务到软件服务的映射
        • 17.2.5 服务粒度的确定
      • 17.3 面向服务的系统实现
        • 17.3.1 服务的实现
        • 17.3.2 Web 20客户端
        • 17.3.3 服务的调试与测试
      • 本章小结
      • 参考文献
      • 习题17
    • 第18章 形式化软件开发
      • 18.1 形式化方法的概念
      • 18.2 形式化规约
        • 18.2.1 数学基础
        • 18.2.2 形式化规约语言
        • 18.2.3 Z语言
      • 18.3 形式化验证
        • 18.3.1 定理证明
        • 18.3.2 模型检验
      • 18.4 软件开发过程中的形式化方法
        • 18.4.1 考虑因素
        • 18.4.2 在软件过程中引入形式化方法的策略
        • 18.4.3 形式化方法的10条戒律
      • 18.5 形式化方法的应用案例
        • 18.5.1 案例介绍
        • 18.5.2 具体案例:卡西尼号探测器故障保护软件
      • 18.6 形式化方法的争议及未来
      • 本章小结
      • 参考文献
      • 习题18
    • 第19章 软件安全工程
      • 19.1 软件安全基本概念
        • 19.1.1 信息安全基本概念
        • 19.1.2 软件确保与软件安全工程
      • 19.2 安全软件开发过程
      • 19.3 软件安全需求
        • 19.3.1 软件安全需求工程SQUARE
        • 19.3.2 合规性需求
      • 19.4 安全的软件架构与设计
        • 19.4.1 安全原则与目标
        • 19.4.2 安全模式与安全设计模式
        • 19.4.3 架构风险分析
      • 19.5 安全编码
        • 19.5.1 安全编码原则
        • 19.5.2 安全编码规范
        • 19.5.3 代码的静态分析
      • 19.6 安全测试与应急响应
      • 19.7 安全的项目管理
      • 本章小结
      • 参考文献
      • 习题19
    • 第20章 软件工程职业化建设和职业道德规范
      • 20.1 软件工程的职业化建设
        • 20.1.1 走向一个成熟的软件工程职业
        • 20.1.2 职业化建设的框架
        • 20.1.3 软件工程职业化建设的进展
        • 20.1.4 职业化建设的3个层次
      • 20.2 软件工程职业道德规范
        • 20.2.1 软件工程职业道德规范和职业实践标准
        • 20.2.2 职业道德规范的履行
        • 20.2.3 软件工程师的职业责任
      • 本章小结
      • 参考文献
      • 习题20
  • 附录 IEEE软件工程知识体系(SWEBOK)

相关图书