顶部
收藏

软件工程——理论与实践(第2版)

“十一五”国家规划教材

作者:
许家珆 白忠建 吴磊
定价:
39.00元
ISBN:
978-7-04-028044-9
版面字数:
580.000千字
开本:
16开
全书页数:
400页
装帧形式:
平装
重点项目:
“十一五”国家规划教材
出版时间:
2009-10-30
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
软件工程专业课程

本书是普通高等教育“十一五”国家级规划教材,第1版是教育部新世纪网络课程建设工程“软件工程网络课程”子课题的配套教材。新版在继承第1版的“内容先进、注重实践、案例导向”特点的基础上,根据软件工程的最新发展进行了较大幅度的调整。教材内容涵盖ACM/IEEE制定的“软件工程教育知识体系”和教育部计算机专业教学指导委员会制定的《计算机专业规范》中对软件工程课程的要求,提供了更加丰富的案例,力求保证内容的科学性和先进性,并突出软件工程的实践性。

全书共13章。内容包括软件工程概述、软件需求工程、软件设计、面向对象方法基础、统一建模语言UML、软件实现、软件复用与构件技术、软件测试、软件维护、软件工具与集成化环境、软件项目管理、软件能力成熟度模型CMM。

随书附赠光盘一张,包含教材配套的电子教案和教材中部分习题的参考答案。

本书可作为高等院校计算机及相关专业软件工程课程的教材或教学参考书,也可供广大工程技术人员参考使用。

  • 第1章 软件工程概述
    • 1.1 软件工程的产生和发展
      • 1.1.1 软件工程的发展过程
      • 1.1.2 软件危机
      • 1.1.3 软件工程的定义
      • 1.1.4 软件工程研究的内容
      • 1.1.5 软件工程的基本原则
    • 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.4 软件开发方法
      • 1.4.1 结构化开发方法
      • 1.4.2 原型化开发方法
      • 1.4.3 面向对象的开发方法
    • 1.5 软件工具与软件开发环境
      • 1.5.1 CASE发展的两个阶段
      • 1.5.2 软件开发环境的分类
    • 小结
    • 习题一
  • 第2章 软件需求工程
    • 2.1 软件需求的基本概念
      • 2.1.1 软件需求的任务
      • 2.1.2 功能需求与非功能需求
    • 2.2 需求工程过程
      • 2.2.1 需求工程的基本活动
      • 2.2.2 需求的获取和分析
      • 2.2.3 需求的有效性验证
      • 2.2.4 需求管理
    • 2.3 软件需求获取技术
      • 2.3.1 需求获取的困难
      • 2.3.2 需求获取方法
    • 2.4 需求分析与建模
      • 2.4.1 需求分析方法
      • 2.4.2 结构化分析方法
      • 2.4.3 面向对象的分析方法
    • 2.5 软件需求案例分析
      • 2.5.1 案例1———医院病房监护系统
      • 2.5.2 案例2———网上竞价拍卖系统
    • 小结
    • 习题二
  • 第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.2.6 分布式对象结构
      • 3.2.7 中间件
      • 3.2.8 其他体系结构
    • 3.3 模块分解
      • 3.3.1 模块分解的目的
      • 3.3.2 模块间的关系
      • 3.3.3 模块的独立性
      • 3.3.4 信息隐蔽
    • 3.4 详细设计描述工具
      • 3.4.1 程序流程图
      • 3.4.2 N-S图
      • 3.4.3 PAD图
    • 3.5 用户界面设计
      • 3.5.1 用户界面设计的特性与设计任务
      • 3.5.2 用户界面设计的基本原则
      • 3.5.3 用户界面的基本类型
      • 3.5.4 信息输入输出界面
      • 3.5.5 MVC模式
    • 小结
    • 习题三
  • 第4章 面向对象方法基础
    • 4.1 面向对象方法概述
      • 4.1.1 什么是面向对象方法
      • 4.1.2 面向对象方法的主要特点
    • 4.2 面向对象的基本概念
      • 4.2.1 对象与类
      • 4.2.2 继承
      • 4.2.3 多态性
      • 4.2.4 消息
    • 4.3 面向对象的分析
      • 4.3.1 需求分析中的问题
      • 4.3.2 OOA的特点
      • 4.3.3 OOA的基本任务和分析过程
    • 4.4 面向对象的设计
      • 4.4.1 面向对象设计的准则
      • 4.4.2 面向对象设计的基本任务
    • 4.5 典型的面向对象方法
      • 4.5.1 Booch方法
      • 4.5.2 Coad/Yourdon方法
      • 4.5.3 对象模型技术
      • 4.5.4 OOSE方法
    • 小结
    • 习题四
  • 第5章 统一建模语言UML
    • 5.1 UML概述
      • 5.1.1 UML的形成
      • 5.1.2 UML的特点
      • 5.1.3 UML建模及其构成
      • 5.1.4 UML的图形表示
      • 5.1.5 通用模型元素
    • 5.2 建立用例模型
      • 5.2.1 需求分析与用例建模
      • 5.2.2 确定执行者
      • 5.2.3 确定用例
      • 5.2.4 确定用例之间的关系
      • 5.2.5 用例建模实例
    • 5.3 建立静态模型
      • 5.3.1 类与类图
      • 5.3.2 确定类之间的关系
      • 5.3.3 类图应用举例
      • 5.3.4 包图
    • 5.4 建立动态模型
      • 5.4.1 消息
      • 5.4.2 状态图
      • 5.4.3 顺序图
      • 5.4.4 协作图
      • 5.4.5 活动图
      • 5.4.6 动态建模应用举例
    • 5.5 建立实现模型
      • 5.5.1 构件图
      • 5.5.2 配置图
    • 5.6 UML 2.0
      • 5.6.1 UML 2.0简介
      • 5.6.2 UML 2.0的可视化图
      • 5.6.3 UML 2.0的顺序图
    • 5.7 RUP统一过程及其应用
      • 5.7.1 UML与RUP统一过程
      • 5.7.2 RUP的特点
      • 5.7.3 RUP的二维开发模型
      • 5.7.4 RUP的迭代开发模式
    • 小结
    • 习题五
  • 第6章 软件实现
    • 6.1 程序设计语言的选择
      • 6.1.1 程序设计语言的分类
      • 6.1.2 程序设计语言的基本组成
      • 6.1.3 程序设计语言选择准则
    • 6.2 结构化程序设计
      • 6.2.1 结构化程序设计概念和特点
      • 6.2.2 结构化程序设计的基本原理
      • 6.2.3 优化设计
    • 6.3 程序设计风格
      • 6.3.1 源程序文件
      • 6.3.2 语句构造方法
      • 6.3.3 数据说明方法
      • 6.3.4 输入/输出技术
    • 6.4 算法与程序效率
      • 6.4.1 算法转换过程中的指导原则
      • 6.4.2 影响效率的因素
    • 6.5 软件代码审查
    • 小结
    • 习题六
  • 第7章 软件复用与构件技术
    • 7.1 软件复用概述
      • 7.1.1 软件复用的基本概念
      • 7.1.2 软件复用的级别
      • 7.1.3 软件复用的形式
    • 7.2 软件复用的实施与过程
      • 7.2.1 软件复用技术的实施
      • 7.2.2 基于复用的软件开发过程
    • 7.3 可复用构件与构件工程
      • 7.3.1 可复用构件
      • 7.3.2 基于构件的软件工程
    • 7.4 领域工程分析和基于构件的开发
      • 7.4.1 领域分析
      • 7.4.2 构件的开发与构件库
      • 7.4.3 基于构件的开发
    • 7.5 基于构件的软件开发特点
      • 7.5.1 软件开发的质量
      • 7.5.2 软件开发的效率
      • 7.5.3 软件开发的成本
    • 7.6 软件构件技术的技术规范
      • 7.6.1 OMG的CORBA
      • 7.6.2 微软的COM
      • 7.6.3 Sun的EJB
      • 7.6.4 Web服务
    • 小结
    • 习题七
  • 第8章 软件测试
    • 8.1 软件测试的基本概念
      • 8.1.1 软件测试的重要性和目的
      • 8.1.2 软件测试的特点和基本原则
      • 8.1.3 软件测试过程
      • 8.1.4 静态分析与动态测试
    • 8.2 白盒法测试
      • 8.2.1 逻辑覆盖
      • 8.2.2 语句覆盖
      • 8.2.3 判定覆盖
      • 8.2.4 条件覆盖
      • 8.2.5 判定-条件覆盖
      • 8.2.6 条件组合覆盖
    • 8.3 黑盒法测试
      • 8.3.1 等价分类法
      • 8.3.2 边界值分析法
      • 8.3.3 错误推测法
      • 8.3.4 因果图法
    • 8.4 软件测试的策略
      • 8.4.1 单元测试
      • 8.4.2 集成测试
      • 8.4.3 确认测试
      • 8.4.4 系统测试
      • 8.4.5 α测试和β测试
      • 8.4.6 验收测试
      • 8.4.7 综合测试策略
    • 8.5 软件调试
      • 8.5.1 软件调试过程
      • 8.5.2 软件调试策略
    • 8.6 面向对象的测试
      • 8.6.1 面向对象测试的特点
      • 8.6.2 面向对象测试的类型
      • 8.6.3 分析模型测试
      • 8.6.4 类的测试
      • 8.6.5 类模型测试
      • 8.6.6 面向对象的测试用例
    • 小结
    • 习题八
  • 第9章 软件维护
    • 9.1 软件维护的基本概念
      • 9.1.1 软件维护的目的
      • 9.1.2 软件维护的类型
      • 9.1.3 软件维护的特性
      • 9.1.4 软件维护的代价
    • 9.2 软件维护的过程
      • 9.2.1 维护组织
      • 9.2.2 维护工作的流程
      • 9.2.3 维护工作的组织管理
    • 9.3 软件维护技术
      • 9.3.1 面向维护的技术
      • 9.3.2 维护支援技术
      • 9.3.3 维护档案记录
      • 9.3.4 维护工作评价
    • 9.4 软件可维护性
      • 9.4.1 软件可维护性的定义
      • 9.4.2 提高可维护性的方法
    • 9.5 逆向工程和再工程
      • 9.5.1 逆向工程
      • 9.5.2 软件重构
      • 9.5.3 再工程的成本/效益分析
      • 9.5.4 再工程的风险分析
    • 小结
    • 习题九
  • 第10章 软件工具与集成化环境
    • 10.1 软件工具
      • 10.1.1 软件开发工具
      • 10.1.2 软件维护工具
      • 10.1.3 软件管理与支持工具
    • 10.2 集成化CASE环境
      • 10.2.1 概述
      • 10.2.2 集成化的CASE开发环境的体系结构
    • 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 软件开发工具Power-Designer
      • 10.4.1 PowerDesigner工具简介
      • 10.4.2 PowerDesigner的6个模块
      • 10.4.3 PowerDesigner与Rose建模工具的对比
    • 小结
    • 习题十
  • 第11章 软件项目管理
    • 11.1 软件项目管理概述
      • 11.1.1 软件项目管理的特点
      • 11.1.2 软件项目管理的主要活动
      • 11.1.3 软件项目风险管理
    • 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 IBM估算模型
      • 11.3.5 Putnam估算模型
      • 11.3.6 COCOMO模型
      • 11.3.7 成本/效益分析
    • 11.4 软件项目组织与人员管理
      • 11.4.1 软件开发进度计划
      • 11.4.2 人员配备与组织
      • 11.4.3 软件开发小组与软件生产率
    • 11.5 软件质量保证
      • 11.5.1 软件质量因素的定义
      • 11.5.2 软件质量保证工作
      • 11.5.3 软件项目的跟踪与控制
    • 11.6 企业资源规划ERP
      • 11.6.1 资源管理发展过程
      • 11.6.2 ERP系统的管理思想
      • 11.6.3 应用ERP与企业的关系
      • 11.6.4 ERP的风险及其预防
      • 11.6.5 ERP应用成功的标志
      • 11.6.6 SAPERP简介
    • 小结
    • 习题十一
  • 第12章 软件能力成熟度模型CMM
    • 12.1 CMM概述
      • 12.1.1 CMM发展历史与主要用途
      • 12.1.2 软件过程成熟度的基本概念
      • 12.1.3 软件过程的成熟度等级
    • 12.2 CMM的内部结构
      • 12.2.1 关键过程域
      • 12.2.2 关键实践
      • 12.2.3 共同特性
    • 12.3 CMM的应用
      • 12.3.1 软件过程评估与软件能力评价
      • 12.3.2 软件过程改进
    • 12.4 CMM的实施与评估
      • 12.4.1 软件过程评估的必要性
      • 12.4.2 软件过程评估参考模型
      • 12.4.3 CMM评估的执行步骤
      • 12.4.4 软件企业如何实施CMM
      • 12.4.5 CMM与ISO9000标准
    • 12.5 软件能力成熟度模型集成CMMI
      • 12.5.1 CMMI的产生与发展
      • 12.5.2 CMMI的基本思想
      • 12.5.3 CMMI的基本内容
    • 小结
    • 习题十二
  • 第13章 软件工程课程设计
    • 13.1 课程设计目的和要求
      • 13.1.1 目的和要求
      • 13.1.2 命题原则
    • 13.2 课程设计步骤安排
      • 13.2.1 确定课题
      • 13.2.2 需求分析
      • 13.2.3 软件设计
      • 13.2.4 编码与测试
      • 13.2.5 验收测试
    • 13.3 案例分析
      • 13.3.1 案例一:ATM系统
      • 13.3.2 案例二:网上拍卖系统
      • 13.3.3 案例三:会议管理系统
      • 13.3.4 案例四:仓库信息管理系统
  • 参考文献
  • 参考网站

相关图书