书籍详情
软件工程——理论与实践
作者:许家珆等编著
出版社:高等教育出版社
出版时间:2004-01-01
ISBN:9787040141474
定价:¥25.90
购买这本书可以去
内容简介
“软件工程”是一门指导计算机软件开发和维护的工程学科,近年来随着我国信息化建设的开展,软件工程取得了前所未有的飞速发展。本书作为教育部新世纪网络课程建设工程的子课题“软件工程网络课程”配套教材,是在吸取了国内外有关教材的精华,并结合编者多年来进行软件工程的教学及软件开发实践经验,体会的基础上编写的。内容注重科学性、先进性,强调实践性,提供了丰富的软件开发实例和素材,反映了软件工程的最新发展技术。全书共分11章,前10章系统地介绍了传统的软件工程方法,面向对象的软件工程方法,基于构件的软件工程方法以及软件测试,软件工程管理等的基本概念、方法和技术;第11章提供了一个综合性的设计型实验“软件工程课程设计”,给出了多个采用面向对象的方法开发的软件实例,还介绍了面向对象的软件开发工具RationalRose。本书可作为高等院校“软件工程”课程的教材或教学参考书,也可供广大工程技术人员和科研人员参考使用。
作者简介
暂缺《软件工程——理论与实践》作者简介
目录
第1章 软件工程概述
1.1 软件工程的产生和发展
1.1.1 软件工程的发展过程
1.1.2 软件危机
1.1.3 软件工程的定义
1.1.4 软件工程研究的内容
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.3.5 喷泉模型
1.3.6 智能模型
1.4 软件开发方法
1.4.1 结构化开发方法
1.4.2 面向数据结构的开发方法
1.4.3 原型化开发方法
1.4.4 面向对象的开发方法
1.5 软件工具与软件开发环境
习题一
第2章 软件需求分析
2.1 基本概念
2.1.1 软件需求分析的任务
2.1.2 需求分析的过程
2.1.3 软件需求分析的原则
2.1.4 需求分析方法
2.2 结构化分析方法
2.2.1 SA法概述
2.2.2 数据流图
2.2.3 实例:医院病房监护系统
2.2.4 分层DFD图的改进
2.2.5 数据词典
2.2.6 加工逻辑说明
2.3 原型化方法
2.3.1 软件原型的分类
2.3.2 快速原型开发模型
2.4 系统动态分析
2.4.1 状态迁移图
2.4.2 Petri网
习题二
第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.3.4 信息隐蔽
3.4 结构化设计方法
3.4.1 结构化设计方法概述
3.4.2 数据流图的分类与典型的系统结构
3.4.3 变换分析
3.4.4 事务分析
3.4.5 实例:银行贷款文件管理
3.4.6 模块结构图的改进
3.5 JACKSON系统开发方法
3.5.1 JACKSON方法简介
3.5.2 JACKSON方法的设计过程
3.5.3 JACKSON方法的技术构成
3.6 详细设计描述工具
3.6.1 程序流程图
3.6.2 N-S图
3.6.3 PAD图
3.7 用户界面设计
3.7.1 用户界面的特性及设计任务
3.7.2 用户界面的基本类型
3.7.3 输入/输出用户界面设计
3.8 程序编码
3.8.1 程序设计语言的选择
3.8.2 结构化程序设计
3.8.3 程序设计风格
3.8.4 算法与程序效率
习题三
第4章 面向对象方法
4.1 面向对象方法概述
4.1.1 什么是面向对象方法
4.1.2 面向对象方法的主要特点
4.2 面向对象的基本概念
4.2.1 对象与类
4.2.2 继承
4.2.3 多态性
4.2.4 消息
4.2.5 方法
4.3 面向对象的分析
4.3.1 需求分析中的问题
4.3.2 面向对象分析的特点
4.3.3 面向对象分析的基本任务与分析过程
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.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.3.5 用例图实例
5.4 建立静态模型
5.4.1 类图与对象图
5.4.2 类的识别
5.4.3 属性与操作识别
5.4.4 类之间的关系
5.4.5 包图
5.5 建立动态模型
5.5.1 消息
5.5.2 状态图
5.5.3 顺序图
5.5.4 合作图
5.5.5 活动图
5.6 实现模型
5.6.1 构件图
5.6.2 配置图
习题五
第6章 软件复用和构件技术
6.1 软件复用概述
6.1.1 软件复用的基本概念
6.1.2 软件复用的级别
6.1.3 软件复用的形式
6.2 可复用构件与构件工程
6.2.1 可复用构件
6.2.2 基于构件的软件工程
6.3 领域工程分析和基于构件的开发
6.3.1 领域分析
6.3.2 构件的开发与构件库
6.3.3 基于构件的开发
6.4 基于构件的软件开发特点
6.4.1 开发的质量
6.4.2 开发的效率
6.4.3 开发的成本
6.5 软件构件技术的技术规范
6.5.1 对象管理组织的CORBA
6.5.2 微软的COM
6.5.3 Sun的EJB
习题六
第7章 软件测试
7.1 软件测试的基本概念
7.1.1 软件测试的目的和重要性
7.1.2 软件测试的特点和原则
7.1.3 软件测试的基本步骤
7.1.4 静态分析与动态测试
7.2 白盒法测试
7.2.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.3.3 错误推测法
7.3.4 因果图法
7.4 软件测试的策略
7.4.1 单元测试
7.4.2 组装测试
7.4.3 确认测试
7.4.4 系统测试
7.4.5 α测试和β测试
7.4.6 综合测试策略
7.5 排错技术
7.5.1 排错的原则
7.5.2 几种主要的排错方法
7.6 面向对象的测试
7.6.1 在面向对象语境中的单元测试
7.6.2 在面向对象语境中的集成测试
7.6.3 在面向对象语境中的确认测试
习题七
第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.3 软件维护技术
8.3.1 面向维护的技术
8.3.2 维护支援技术
8.3.3 维护档案记录
8.3.4 维护工作评价
8.4 软件可维护性
8.4.1 软件可维护性的定义
8.4.2 提高可维护性的方法
8.5 逆向工程和再工程
8.5.1 逆向工程
8.5.2 软件重构
8.5.3 再工程的成本/效益分析
8.5.4 再工程的风险分析
习题八
第9章 软件工具与集成化环境
9.1 软件开发工具
9.2 集成化CASE环境
9.2.1 概述
9.2.2 集成化的CASE开发环境的体系结构
9.3 软件开发工具Rational Rose
9.3.1 Rose工具简介
9.3.2 业务用例图
9.3.3 用例图
9.3.4 类图
9.3.5 协作图与时序图
9.3.6 活动图
9.3.7 状态图
9.3.8 构件图和部署图
习题九
第10章 软件工程管理
10.1 软件工程管理概述
10.1.1 软件管理的任务与目标
10.1.2 软件的作用范围
10.1.3 资源要求
10.2 可行性研究
10.2.1 可行性研究的任务
10.2.2 系统的描述
10.2.3 可行性研究报告
10.3 成本估算技术
10.3.1 影响成本估算的因素
10.3.2 成本估算模型
10.3.3 Halstead理论模型
10.3.4 专家估算模型
10.3.5 IBM估算模型
10.3.6 Putnam估算模型
10.3.7 COCOMO模型
10.3.8 成本估算方法
10.3.9 成本/效益分析
10.4 软件项目的组织与计划
10.4.1 软件项目管理的特点
10.4.2 软件开发进度计划
10.4.3 人员配备与组织
10.4.4 软件开发小组与软件生产率
10.5 软件质量保证
10.5.1 软件质量因素的定义
10.5.2 软件质量保证工作
10.5.3 软件项目的跟踪与控制
10.6 软件能力成熟度模型(CMM)
10.6.1 CMM的基本概念
10.6.2 软件过程的成熟度等级
10.6.3 关键过程区域
10.6.4 软件企业如何实施CMM
习题十
第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 案例一ATM系统
11.3.2 案例二医院病房监护系统
11.3.3 案例三会议系统
参考文献及参考网站
1.1 软件工程的产生和发展
1.1.1 软件工程的发展过程
1.1.2 软件危机
1.1.3 软件工程的定义
1.1.4 软件工程研究的内容
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.3.5 喷泉模型
1.3.6 智能模型
1.4 软件开发方法
1.4.1 结构化开发方法
1.4.2 面向数据结构的开发方法
1.4.3 原型化开发方法
1.4.4 面向对象的开发方法
1.5 软件工具与软件开发环境
习题一
第2章 软件需求分析
2.1 基本概念
2.1.1 软件需求分析的任务
2.1.2 需求分析的过程
2.1.3 软件需求分析的原则
2.1.4 需求分析方法
2.2 结构化分析方法
2.2.1 SA法概述
2.2.2 数据流图
2.2.3 实例:医院病房监护系统
2.2.4 分层DFD图的改进
2.2.5 数据词典
2.2.6 加工逻辑说明
2.3 原型化方法
2.3.1 软件原型的分类
2.3.2 快速原型开发模型
2.4 系统动态分析
2.4.1 状态迁移图
2.4.2 Petri网
习题二
第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.3.4 信息隐蔽
3.4 结构化设计方法
3.4.1 结构化设计方法概述
3.4.2 数据流图的分类与典型的系统结构
3.4.3 变换分析
3.4.4 事务分析
3.4.5 实例:银行贷款文件管理
3.4.6 模块结构图的改进
3.5 JACKSON系统开发方法
3.5.1 JACKSON方法简介
3.5.2 JACKSON方法的设计过程
3.5.3 JACKSON方法的技术构成
3.6 详细设计描述工具
3.6.1 程序流程图
3.6.2 N-S图
3.6.3 PAD图
3.7 用户界面设计
3.7.1 用户界面的特性及设计任务
3.7.2 用户界面的基本类型
3.7.3 输入/输出用户界面设计
3.8 程序编码
3.8.1 程序设计语言的选择
3.8.2 结构化程序设计
3.8.3 程序设计风格
3.8.4 算法与程序效率
习题三
第4章 面向对象方法
4.1 面向对象方法概述
4.1.1 什么是面向对象方法
4.1.2 面向对象方法的主要特点
4.2 面向对象的基本概念
4.2.1 对象与类
4.2.2 继承
4.2.3 多态性
4.2.4 消息
4.2.5 方法
4.3 面向对象的分析
4.3.1 需求分析中的问题
4.3.2 面向对象分析的特点
4.3.3 面向对象分析的基本任务与分析过程
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.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.3.5 用例图实例
5.4 建立静态模型
5.4.1 类图与对象图
5.4.2 类的识别
5.4.3 属性与操作识别
5.4.4 类之间的关系
5.4.5 包图
5.5 建立动态模型
5.5.1 消息
5.5.2 状态图
5.5.3 顺序图
5.5.4 合作图
5.5.5 活动图
5.6 实现模型
5.6.1 构件图
5.6.2 配置图
习题五
第6章 软件复用和构件技术
6.1 软件复用概述
6.1.1 软件复用的基本概念
6.1.2 软件复用的级别
6.1.3 软件复用的形式
6.2 可复用构件与构件工程
6.2.1 可复用构件
6.2.2 基于构件的软件工程
6.3 领域工程分析和基于构件的开发
6.3.1 领域分析
6.3.2 构件的开发与构件库
6.3.3 基于构件的开发
6.4 基于构件的软件开发特点
6.4.1 开发的质量
6.4.2 开发的效率
6.4.3 开发的成本
6.5 软件构件技术的技术规范
6.5.1 对象管理组织的CORBA
6.5.2 微软的COM
6.5.3 Sun的EJB
习题六
第7章 软件测试
7.1 软件测试的基本概念
7.1.1 软件测试的目的和重要性
7.1.2 软件测试的特点和原则
7.1.3 软件测试的基本步骤
7.1.4 静态分析与动态测试
7.2 白盒法测试
7.2.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.3.3 错误推测法
7.3.4 因果图法
7.4 软件测试的策略
7.4.1 单元测试
7.4.2 组装测试
7.4.3 确认测试
7.4.4 系统测试
7.4.5 α测试和β测试
7.4.6 综合测试策略
7.5 排错技术
7.5.1 排错的原则
7.5.2 几种主要的排错方法
7.6 面向对象的测试
7.6.1 在面向对象语境中的单元测试
7.6.2 在面向对象语境中的集成测试
7.6.3 在面向对象语境中的确认测试
习题七
第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.3 软件维护技术
8.3.1 面向维护的技术
8.3.2 维护支援技术
8.3.3 维护档案记录
8.3.4 维护工作评价
8.4 软件可维护性
8.4.1 软件可维护性的定义
8.4.2 提高可维护性的方法
8.5 逆向工程和再工程
8.5.1 逆向工程
8.5.2 软件重构
8.5.3 再工程的成本/效益分析
8.5.4 再工程的风险分析
习题八
第9章 软件工具与集成化环境
9.1 软件开发工具
9.2 集成化CASE环境
9.2.1 概述
9.2.2 集成化的CASE开发环境的体系结构
9.3 软件开发工具Rational Rose
9.3.1 Rose工具简介
9.3.2 业务用例图
9.3.3 用例图
9.3.4 类图
9.3.5 协作图与时序图
9.3.6 活动图
9.3.7 状态图
9.3.8 构件图和部署图
习题九
第10章 软件工程管理
10.1 软件工程管理概述
10.1.1 软件管理的任务与目标
10.1.2 软件的作用范围
10.1.3 资源要求
10.2 可行性研究
10.2.1 可行性研究的任务
10.2.2 系统的描述
10.2.3 可行性研究报告
10.3 成本估算技术
10.3.1 影响成本估算的因素
10.3.2 成本估算模型
10.3.3 Halstead理论模型
10.3.4 专家估算模型
10.3.5 IBM估算模型
10.3.6 Putnam估算模型
10.3.7 COCOMO模型
10.3.8 成本估算方法
10.3.9 成本/效益分析
10.4 软件项目的组织与计划
10.4.1 软件项目管理的特点
10.4.2 软件开发进度计划
10.4.3 人员配备与组织
10.4.4 软件开发小组与软件生产率
10.5 软件质量保证
10.5.1 软件质量因素的定义
10.5.2 软件质量保证工作
10.5.3 软件项目的跟踪与控制
10.6 软件能力成熟度模型(CMM)
10.6.1 CMM的基本概念
10.6.2 软件过程的成熟度等级
10.6.3 关键过程区域
10.6.4 软件企业如何实施CMM
习题十
第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 案例一ATM系统
11.3.2 案例二医院病房监护系统
11.3.3 案例三会议系统
参考文献及参考网站
猜您喜欢