顶部
收藏

软件工程(第二版)

面向21世纪课程教材

作者:
齐治昌 谭庆平 宁洪
定价:
32.00元
ISBN:
978-7-04-014628-8
版面字数:
600.000千字
开本:
16开
全书页数:
458页
装帧形式:
平装
重点项目:
面向21世纪课程教材
出版时间:
2004-03-15
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
软件工程专业课程

  软件工程第二版覆盖CC2001对软件工程课程的基本要求,内容包括:软件开发模型、软件项目管理、需求分析、软件设计、软件编码与测试、软件维护、配置管理、软件工程管理、软件工程工具和环境。本书结合目前软件工程教学的需要,特别介绍了统一建模语言(UML),并以此为基础讨论面向对象的需求分析与软件设计方法;介绍集成化CASE环境,Java与Internet环境下的软件开发技术;介绍支持软件过程改进的“软件能力成熟度模型”(CMM)。书中含有丰富的例题与习题,便于教学和自学。
  本书强调软件工程的理论与实践相结合、技术与管理相结合、方法与CASE工具相结合。教材思路清晰、语言简练,具有实用性和可操作性,可作为高等院校计算机专业或信息类相关专业高年级本科生或研究生教材,也可作为软件开发人员的参考书。
  • 第一章 软件与软件工程
    • 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.2.3 软件工程的原则
    • 1.3 软件生存周期
      • 1.3.1 软件定义
      • 1.3.2 软件开发
      • 1.3.3 软件使用、维护和退役
    • 1.4 软件开发模型
      • 1.4.1 瀑布模型
      • 1.4.2 原型模型
      • 1.4.3 螺旋模型
      • 1.4.4 基于四代技术的模型
      • 1.4.5 变换模型
      • 1.4.6 组合模型
    • 1.5 CASE工具及环境
      • 1.5.1 计算机辅助软件工程
      • 1.5.2 CASE工具
      • 1.5.3 集成化的CASE环境
    • 小结
    • 习题
  • 第二章 软件项目管理
    • 2.1 软件度量
      • 2.1.1 度量、测量和估算
      • 2.1.2 面向规模的度量
      • 2.1.3 面向功能的度量
      • 2.1.4 代码行度量与功能点度量的比较
    • 2.2 软件项目估算
      • 2.2.1 代码行、功能点和工作量估算
      • 2.2.2 经验估算模型之一:CoCoMo模型
      • 2.2.3 经验估算模型之二:Putnam模型
    • 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 软件开发过程的管理
      • 2.6.1 风险分析
      • 2.6.2 进度安排
      • 2.6.3 软件开发标准
      • 2.6.4 软件质量保证
      • 2.6.5 软件开发人员的组织与分工
      • 2.6.6 软件项目的开发过程管理
    • 2.7 软件过程及软件成熟度模型CMM
      • 2.7.1 引言
      • 2.7.2 CMM的基本概念
      • 2.7.3 能力成熟度模型CMM
      • 2.7.4 能力成熟度模型集成CMMI
      • 2.7.5 CMM和CMMI的选择和应用
    • 2.8  软件项目管理中的CASE工具
    • 小结
    • 习题
  • 第三章 计算机系统工程
    • 3.1 计算机系统工程
      • 3.1.1 硬件和硬件工程
      • 3.1.2 软件和软件工程
      • 3.1.3 人机工程
      • 3.1.4 数据库工程
    • 3.2 可行性研究
      • 3.2.1 引言
      • 3.2.2 经济可行性
      • 3.2.3 技术可行性
      • 3.2.4 方案选择
    • 3.3 系统模型与模拟
      • 3.3.1 系统模型
      • 3.3.2 系统建模和模拟
    • 3.4 系统规格说明及评审
      • 3.4.1 系统规格说明
      • 3.4.2 系统规格说明评审
    • 小结
    • 习题
  • 第四章 需求分析基础
    • 4.1 分析的任务与原则
    • 4.2 初步需求获取技术
      • 4.2.1 访谈与会议
      • 4.2.2 观察用户工作流程
      • 4.2.3 用户和开发人员共同组成联合小组
      • 4.2.4 实例分析
    • 4.3 需求建模
    • 4.4 问题抽象、问题分解与多视点分析
    • 4.5 支持需求分析的快速原型技术
    • 4.6 需求规格说明与评审
      • 4.6.1 需求规格说明书的目标与内容
      • 4.6.2 需求评审
    • 小结
    • 习题
  • 第五章 面向数据流的分析方法
    • 5.1 数据流图与数据字典
    • 5.2 实体-关系图
      • 5.2.1 数据对象、属性与关系
      • 5.2.2 实体-关系图
    • *5.3 数据流图的实时系统扩充
      • 5.3.1 Ward& Mellor扩充
      • 5.3.2 Hatley & Pirbhai扩充
    • 5.4 基于数据流的分析方法
      • 5.4.1 创建数据流模型
      • 5.4.2 创建控制流模型
      • 5.4.3 过程规格说明
    • 5.5 *基于数据流图的需求分析CASE工具
      • 5.5.1 核心思想
      • 5.5.2 语言机制
      • 5.5.3 动态分析
      • 5.5.4 基于CASE工具的需求分析
    • 小结
    • 习题
  • 第六章 面向对象的需求分析
    • 6.1 面向对象的概念与思想
    • 6.2 UML概述
      • 6.2.1 UML的语言机制
      • 6.2.2 基于UML的软件开发过程
    • 6.3 基于UML的需求分析
      • 6.3.1 开发场景
      • 6.3.2 生成用例
      • 6.3.3 用活动图表示用例
      • 6.3.4 生成用例图
      • 6.3.5 建立顶层架构
      • 6.3.6 建立领域概念模型
    • 小结
    • 习题
  • 第七章 面向数据的分析方法与形式化方法
    • 7.1 面向数据结构的系统开发方法
      • 7.1.1 Warnier图
      • 7.1.2 DSSD方法
    • 7.2 Jackson系统开发方法
      • 7.2.1 标识实体与行为
      • 7.2.2 生成实体结构图
      • 7.2.3 创建软件系统模型
    • *7.3 形式化方法
      • 7.3.1 主要思想
      • 7.3.2 形式化规格说明语言简介
      • 7.3.3 形式化需求描述
      • 7.3.4 形式化方法的现状与发展趋势
    • 小结
    • 习题
  • 第八章 软件设计基础
    • 8.1 软件设计过程
    • 8.2 软件设计基本概念
      • 8.2.1 抽象与逐步求精
      • 8.2.2 模块化与信息隐藏
      • 8.2.3 软件总体结构设计
      • 8.2.4 数据结构设计
      • 8.2.5 软件过程设计
    • 8.3 过程设计技术和工具
      • 8.3.1 结构化程序设计
      • 8.3.2 图形表示法
      • 8.3.3 判定表
      • 8.3.4 过程设计语言(PDL)
      • 8.3.5 过程设计工具之比较
    • 8.4 设计规格说明与评审
    • 小结
    • 习题
  • 第九章 面向数据流的设计方法
    • 9.1 基本概念和设计过程
    • 9.2 变换分析
    • 9.3 事务分析
    • 9.4 启发式设计策略
    • 9.5 设计优化原则
    • 9.6 实时系统设计
      • 9.6.1 实时系统性能要求
      • 9.6.2 实时系统设计要素
      • 9.6.3 实时系统设计方法
      • 9.6.4 设计实例
    • 小结
    • 习题
  • 第十章 面向对象的设计方法
    • 10.1 设计用例实现方案
      • 10.1.1 顺序图
      • 10.1.2 协作图
      • 10.1.3 提取边界类、实体类和控制类
      • 10.1.4 构造交互图
      • 10.1.5 精化类图
    • 10.2 设计技术支撑方案
      • 10.2.1 数据持久存储服务
      • 10.2.2 并发与同步控制服务
      • 10.2.3 技术支撑方案与用例实现方案的融合
    • 10.3 设计用户界面
    • 10.4 精化设计模型
      • 10.4.1 状态图
      • 10.4.2 精化体系结构
      • 10.4.3 精化类之间的关系
      • 10.4.4 精化类的属性和操作
      • 10.4.5 设计状态图
      • 10.4.6 设计活动图
    • 小结
    • 习题
  • 第十一章 面向数据的设计方法
    • 11.1 面向数据设计
    • 11.2 Jackson系统开发方法
      • 11.2.1 JSD分析技术回顾
      • 11.2.2 扩充功能性过程
      • 11.2.3 施加时间约束
      • 11.2.4 实现与JSP技术
      • 11.2.5 产生过程表示
    • 11.3 基于结构化数据的系统开发(DSSD)方法
      • 11.3.1 DSSD设计步骤
      • 11.3.2 推导输出数据的逻辑结构
      • 11.3.3 推导处理过程的逻辑结构
      • 11.3.4 复杂过程逻辑的描述
    • 小结
    • 习题
  • 第十二章 人机界面设计
    • 12.1 人的因素
      • 12.1.1 人类感知基础
      • 12.1.2 用户的技能
      • 12.1.3 任务与用户的特殊要求
    • 12.2 人机界面风格
    • 12.3 人机界面设计过程
      • 12.3.1 界面设计的有关模型
      • 12.3.2 任务分析与建模
      • 12.3.3 界面设计的一般问题
      • 12.3.4 实现工具
    • 12.4 人机界面实现的原则
      • 12.4.1 一般可交互性
      • 12.4.2 信息显示
      • 12.4.3 数据输入
    • 12.5 人机界面标准
    • 12.6 支持界面设计的CASE工具
    • 小结
    • 习题
  • 第十三章 程序设计语言和编码
    • 13.1 程序设计语言
      • 13.1.1 程序设计语言的特性
      • 13.1.2 程序设计语言的基本机制
      • 13.1.3 程序设计语言的演变和分类
      • 13.1.4 程序设计语言的选择
    • 13.2 程序设计过程
      • 13.2.1 面向对象语言对OOD的支持
      • 13.2.2 基于对象语言对OOD的支持
      • 13.2.3 过程式语言对OOD的支持
    • 13.3 编程标准
    • 13.4 编程风格
    • 13.5 程序设计支持环境(PSE)
    • 小结
    • 习题
  • 第十四章 软件测试
    • 14.1 基本概念
      • 14.1.1 软件测试的目标
      • 14.1.2 测试阶段的信息流程
      • 14.1.3 测试用例和场景的设计
      • 14.1.4 软件测试的步骤
    • 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 基于CASE工具的软件测试和排错
      • 14.4.1 自动测试工具
      • 14.4.2 调试器
    • 小结
    • 习题
  • 第十五章 软件维护
    • 15.1 软件维护的分类
    • 15.2 维护过程
      • 15.2.1 结构化与非结构化的维护
      • 15.2.2 维护的成本
      • 15.2.3 可能存在的问题
    • 15.3 可维护性
      • 15.3.1 影响可维护性的因素
      • 15.3.2 若干量化的测度
      • 15.3.3 保证可维护性的复审
    • 15.4 维护活动
      • 15.4.1 维护组织
      • 15.4.2 维护的报告与评估
      • 15.4.3 维护活动的事件流
      • 15.4.4 保存维护记录
      • 15.4.5 评价维护活动
    • 15.5 维护的副作用
    • 15.6 逆向工程与重构工程
      • 15.6.1 恢复信息的级别
      • 15.6.2 恢复信息的方法
    • 小结
    • 习题
  • 第十六章 软件配置管理
    • 16.1 软件配置管理
      • 16.1.1 基线技术
      • 16.1.2 软件配置项
    • 16.2 软件配置管理任务
      • 16.2.1 标识配置对象
      • 16.2.2 版本控制
      • 16.2.3 系统建立
      • 16.2.4 修改控制
      • 16.2.5 配置审计
      • 16.2.6 配置状况报告
    • 16.3 软件配置管理标准
    • 16.4 配置管理的CASE工具
    • 小结
    • 习题
  • 第十七章 软件重用技术
    • 17.1 软件重用
      • 17.1.1 软件重用的概念
      • 17.1.2 软件重用的过程与意义
      • 17.1.3 重用项目的管理
    • 17.2 软部件库的构造
      • 17.2.1 域分析
      • 17.2.2 软部件的开发
      • 17.2.3 软部件库的组织
    • 17.3 软部件的重用
      • 17.3.1 检索与提取软部件
      • 17.3.2 理解与评价软部件
      • 17.3.3 修改软部件
      • 17.3.4 软部件的合成
    • 17.4 面向对象的软件重用技术
      • 17.4.1 类库的构造
      • 17.4.2 类库的检索
      • 17.4.3 面向对象的合成
    • 17.5 软件重用项目的管理
      • 17.5.1 组织机构
      • 17.5.2 软件重用的考核指标
      • 17.5.3 创造重用氛围
    • 17.6 支持软件重用的CASE工具
      • 17.6.1 软件重用对CASE工具的需求
      • 17.6.2 类库的组织与检索工具
    • 小结
    • 习题
  • 第十八章 快速原型技术
    • 18.1 瀑布模型的缺陷
    • 18.2 快速原型方法
      • 18.2.1 原型及其作用
      • 18.2.2 快速原型的构造过程
    • 18.3 基于快速原型的进化式软件开发
      • 18.3.1 螺旋模型
      • 18.3.2 螺旋模型的评价
    • 18.4 快速原型的技术支持
      • 18.4.1 用户界面自动生成工具
      • 18.4.2 面向数据库应用的开发工具
      • 18.4.3 四代语言
      • 18.4.4 可重用工具
      • 18.4.5 程序设计环境
    • 小结
    • 习题
  • 第十九章 集成化CASE环境
    • 19.1 概述
    • 19.2 CASE工具的集成形式
      • 19.2.1 信息交换
      • 19.2.2 公共界面
      • 19.2.3 公共信息管理与信息共享
      • 19.2.4 高度集成
    • 19.3 集成化CASE环境的总体结构
      • 19.3.1 界面集成
      • 19.3.2 工具集成
      • 19.3.3 信息集成
      • 19.3.4 软件工程信息库
    • 19.4 可移植的通用工具环境PCTE
      • 19.4.1 基本机制
      • 19.4.2 用户接口
      • 19.4.3 分布式机制
    • 小结
    • 习题
  • *第二十章 新型软件开发技术
    • 20.1 Internet与Java简介
      • 20.1.1 Internet简介
      • 20.1.2 Java的发展历史
      • 20.1.3 Java的特征
      • 20.1.4 Java的语法机制
      • 20.1.5 Java的意义
    • 20.2 Java与Internet环境下的软件开发
      • 20.2.1 基于Java的软件开发过程
      • 20.2.2 Java与多媒体主页的制作
      • 20.2.3 Java与交互式主页的制作
      • 20.2.4 Java与图形界面
      • 20.2.5 Java与网络程序设计
    • 20.3 对象链接与嵌入(OLE)技术
      • 20.3.1 OLE简介
      • 20.3.2 构件对象模型
      • 20.3.3 结构化存储与复合文件
      • 20.3.4 数据对象传送
      • 20.3.5 复合文档
      • 20.3.6 OLE自动化
      • 20.3.7 OLE控件
    • 20.4 CORBA与分布计算技术
      • 20.4.1 分布计算环境
      • 20.4.2 分布计算技术
      • 20.4.3 CORBA概述
      • 20.4.4 Internet环境下的分布式软件开发
    • 小结
    • 习题
  • 参考文献

相关图书