书籍详情
软件工程(高等教材)
作者:杨文龙等编
出版社:电子工业出版社
出版时间:1999-05-01
ISBN:9787505340589
定价:¥38.00
内容简介
《软件工程》一书是中国计算机学会教育专业委员会与全国高等学校计算机教育研究会推荐的大学计算机学科本科教材,并被选人1996—2D0年全国工科电子类规划教材。全书分八篇共二十章。该书系统地介绍了软件与软件工程、传统的开发方法、面向对象的开发方法、Petri网原理与应用、语言与实现、质量与质量保证、软件计划与管理、软件开发工具与环境等最新内容,各章均配有习题。读者将从本书中综览软件工程发展的全貌,掌握软件工程学科各领域重要的基本原理、方法、技术与应用。为更深入地学习、研究软件工程的理论和从事软件工程实践打下良好的基础。本书适用于大学计算机学科本科学生和研究生,也可作为软件开发工程技术人员和经营管理人员学习及参考用书。
作者简介
暂缺《软件工程(高等教材)》作者简介
目录
第一篇 软件与软件工程
第一章 软件与软件工程
第一节 软件的发展
第二节 软件的定义
一. 软件的含义
二. 软件的特点
三. 软件的种类
第三节 软件危机
第四节 软件工程开发模式
一. 瀑布式模型
二. 原型开发模型
三. 螺旋模型
四. 四代技术
五. 面向对象生存期模型
六. 过程开发模型(混合模型)
第二篇 传统的开发方法
第二章 分析原理
第一节 分析任务与分析员
一. 分析任务
二. 分析员
第二节 问题域
第三节 通信技术
一. 过程的开始
二. 方便的应用规范技术
第四节 分析原理
一. 信息域
二. 建模
三. 划分
四. 基本和实现观点
第五节 规格说明
一. 规格说明原则
二. 表达式
三. 软件需求规格说明
第六节 规格说明评审
第三章 结构化分析
第一节 基本符号及其扩充
一. 数据流图
二. 实时系统应用中的扩充
三. Ward和Mellor扩充形式
四. Hatley和Pirbhai扩充形式
五. 行为建模
六. 密集数据应用的扩充形式
第二节 结构化分析方法
一. 构造数据流模型
二. 构造控制流模型
三. 控制规格说明
四. 过程规格说明
第三节 数据字典
第四章 设计原理
第一节 软件设计的重要性
第二节 设计过程
一. 设计与软件质量
二. 软件设计的发展
第三节 设计基本原理 .
一. 抽象
二. 细化
三. 模块化
四. 软件体系结构
五. 控制层次
六. 数据结构
七. 软件过程
八. 信息隐藏
第四节 模块化设计
一. 模块类型
二. 模块的独立性
三. 聚合
四. 耦合
第五节 数据设计
第六节 体系结构设计
一. 模块大小
二. 深度和宽度与扇出和扇人
三. 判定的作用域和模块的控制域
第七节 过程设计
一. 结构化程序设计
二. 图形设计表示法
三. 表格设计表示法
四. 过程设计语言
第八节 设计规格说明
第五章 面向数据流的设计
第一节 结构图
第二节 数据流的类型
一. 变换流
二. 事务流
第三节 从数据流图到程序结构图的转换
一. 变换流设计
二. 事务流设计
三. 混合流设计
第四节 设计步骤
第五节 设计的后处理
第六章 面向数据结构的设计
第一节 Jackson的结构图解和图解逻辑
一. Jackson的结构图解
二. Jackson的图解逻辑
第二节Warnier-Orr图
第三节, Jackson的开发方法
一. 基本设计方法
二. 处理多个数据结构
三. 回溯
四. 结构冲突
五. 程序反演
第四节 Warnier-Orr的开发方法
一. 简化的设计方法
二. LOS的导出
三. LPS的导出
四. 复杂过程逻辑
第七章 原型开发
第一节 原型的定义
第二节 原型开发的应用
第三节 原型开发的分类
一. 抛弃式原型开发
二. 演化式原型开发
三. 增量式原型开发
第四节 原型开发的活动
一. 原型开发目标的建立
二. 功能选择
三. 原型构造
四. 评价
第五节 原型开发技术
一. 功能原型
二. 用户界面原型
第三篇 面向对象的开发方法
第八章 面向对象的分析与设计
第一节 面向对象方法的基本概念和特征
第二节 面向对象分析
——. 确定对象
二. 确定属性
三. 定义操作
四. 对象间通信
五. 完成对象定义
第三节 面向对象设计
一. 面向对象设计概念
二. 面向对象设计方法
三. 程序构件及接口
四. 细节设计
第四节 Booch的面向对象方法及实例
一. 方法
二. 步骤
三. 实例
第五节 其他面向对象设计方法
一. ESA的HOOD方法
二. Rumbaugh等的OMT方法
三. Wirfs-Brock的RDD方法
第九章 面向对象编程
第一节 面向对象编程概念
一. 对象
二. 类和实例
三. 继承
四. 封装
五. 多态性
第二节 面向对象编程语言
一. 面向对象编程语言的分类
二. 几种典型的面向对象编程语言
第十章 实时设计
第一节 实时系统
一. 集成及性能问题
二. 中断处理
三. 实时数据库
四. 实时操作系统
五. 实时语言
六. 任务同步和通信
第二节 实时系统分析. 仿真与设计
一. 分析与仿真
二. 设计方法
第三节 面向对象的实时系统构造方法
一. 基本点
二. 分析
三. 构造
四. 测试与验证
第四篇 Petri网原理与应用
第十一章 Petri网原理与应用
第一节 Petri网的定义
第二节Petri网的基本原理
一. Petri网的静态结构
二. Petri网的动态特征
三. 转移启动规则
第三节 建模实例
一. 有限状态机
二. 并行活动
三. 数据流计算
四. 通信协议
五. 同步控制
六. 生产者/消费者系统
七. 形式语言
八. 机械加工
第四节 行为特性
一. 可达性
二. 有界性
三. 活性
四. 可逆性
五. 可覆盖性
六. 持久性
七. 同步距离
八. 公平性
第五节 Petri网的特性分析方法
一. Petri网的行为特性分析方法
二. Petri网的结构特性分析方法
第六节 Petri网子类及其行为特性分析方法
一. Petri网子类
二. Petri网子类的某些行为特性分析
第七节 改进Petri网及其应用
一. 谓词/转移网
二. 着色网
三. 时间网
四. 随机网
第八节 从Petri网到程序结构的转换
一. 流程图的方法
二. 编程语言的方法
三. 面向对象的程序设计方法
第五篇 语言与实现
第十二章 规格说明. 设计和原型开发语言
第一节 规格说明语言
一. 规格说明的方法
二. 规格说明语言
第二节设计语言
第三节 原型开发语言
一. 原型开发语言的需求
二. 原型开发话言的执行
三. 原型开发语言的一个实例:PSDL
第十三章 编程语言与编码
第一节—翻译过程
第二节 编程语言特性
一. 心理学观点
二. 语法/语义问题
三. 工程观点
四. 语言选择
五. 编程语言与软件工程
第三节 编程语言基础
一. 数据类型和数据分类
二. 子程序
三. 控制结构
四. 对面向对象方法的支持
第四节 语言分类和发展
一. 第一代语言
二. 第二代语言
三. 第三代语言
四. 第四代语言
五. 第五代语言
第五节 编码风格
一. 代码文档化
二. 数据说明
三. 语句构造
四. I/0
第六节 效率
一. 代码效率
二. 内存效率
三. I/O效率
第七节 保护性编程
第八节冗余编程
第六篇 质量与质量保证
第十四章 软件质量与质量保证
第一节软件质量
一. 软件质量定义
二. 软件质量因素
第二节 软件质量保证
一. 质量保证策略
二. 软件质量保证活动
第三节 软件评审
一. 软件缺陷的费用影响
二. 缺陷的扩大和排除
第四节 正式技术评审
一. 评审会议
二. 评审报告和记录保存
三. 评审指南
四. 评审检查表
第五节 软件质量度量
一. Halsteadd的软件科学度量
二. McCabe复杂性度量
第六节 软件可靠性
一. 可靠性和可用性度量
二. 软件可靠性模型
三, 软件安全性
第七节 软件质量保证的方法
一. 考查对SQA的需要
二. SQA计划的制定和标准的采用
第十五章 软件测试
第一节 软件测试的目标
第二节 软件测试的原则
第三节 软件测试的过程和步骤
一. 软件测试过程
二. 软件测试步骤
三. 单元测试
四. 组装测试
五. 确认测试
六. 系统测试
第四节 软件测试技术
一. 测试用例设计
二. 纠错技术
第五节 实时系统测试
一. 任务测试
二. 行为测试
三. 任务间测试
四. 系统测试
第六节 测试计划和测试分析报告
第十六章 软件维护
第一节 软件维护的分类
第二节 软件维护的特点
一. 软件工程与软件维护的关系
二. 维护费用
三. 维护中的问题
第三节 软件的可维护性
一. 控制因素
二. 定量度量
三. 评审
第四节 软件的维护任务
一. 维护机构
二. 编写报告
三. 维护流程
四. 记录保存
五. 评价
第五节 软件维护的副作用
一. 修改代码的副作用
二. 修改数据的副作用
三. 修改文档的副作用
第六节 维护“奇异码”
第七节 反推工程和再生工程
第八节 预防性维护
第七篇 计划与管理
第十七章 软件计划与管理
第一节 确定工作范围和资源
一. 软件工作范围
二. 资源
第二节 成本估算
一. 成本估算方法
二. 成本估算模型
三. 软件生产率数据
四. 代码行的成本估算方法
五. 每项任务工作量的成本估算方法
第三节 进度安排
一. 软件工作的特殊性
二. 各阶段工作量的分配
三. 制定开发进度
第四节 配置管理
一. 基线
二. 交付项的发行
三. 配置控制的机制
第五节 软件开发组织
第六节 软件计划
第七节 软件产权保护
一. 软件知识产权的法律保护
二. 计算机软件是著作权保护的客体
三. 软件著作权人享有的专有权力
四. 软件著作权的登记
第八篇 工具与环境
第十八章 人机界面设计
第一节 用户分析
一. 用户分类
二. 影响用户行为特性的因素
三. 用户的使用需求分析
四. 人—机界面的设计原则
第二节 任务分析与模型建立
一. 结构化分析
二. 面向对象分析
第三节 人—机界面的交互方式
一. 问答式对话
二. 菜单界面
三. 功能键
四. 图符界面
五. 填表界面
六. 命令语言界面
七. 查询语言界面
八. 自然语言界面
第四节 人—机界面的开发过程
一. 人—机界面开发的瀑布式模型
二. 人—机界面开发的原型模型
第五节 界面设计的一般准则
一. 一般交互
二. 信息显示
三. 数据输入
第六节 智能人—机界面的设计
一. 智能界面的定义
二. 智能界面的构成
三. 智能界面的相关技术
四. 建立智能界面的过程
第十九章 数据库在CASE中的应用
第一节 工程思想
第二节 历史回顾
第三节 数据库
一. 数据类型和灵活性
二. 元数据:数据字典
三. 类属工具:查询语言
四. 完整性和内部一致性
第四节 软件工程的数据
一. 程序
二. 程序结构
三. 程序的可选表达式
四. 程序的描述
五. 接口与可重用性
六. 需求与约束
七. 设计环境和运行环境
八. 测试和测试评价
第五节 CASE的数据模型和模型层次
一. 数据模型评价准则
二. 文件系统模型
三. 实体. 关系模型
四. 对象模型
五. 超文本模型
六. 早期模型
七. 建模回顾
第六节 面向对象数据库与CASE
一. 面向对象数据库概要
二. 面向对象数据库管理系统的研究与开发状况
三. 面向对象数据库管理系统的性能
四. CASE数据库
五. 面向对象GASE数据库需进一步研究的课题
第二十章 软件开发工县与环境
第一节 软件开发工具
第二节 软件开发环境
一. 按解决的问题分类
二. 按现有软件开发环境的演变趋向分类
三. 按集成化程度分类
第三节 计算机辅助软件工程(CASE)
一. I-CASE集成方式
二. I-CASE框架结构
三. I-CASE中心库
第四节 实例
一. Ada编程支持环境
二. 青鸟系统
参考文献
第一章 软件与软件工程
第一节 软件的发展
第二节 软件的定义
一. 软件的含义
二. 软件的特点
三. 软件的种类
第三节 软件危机
第四节 软件工程开发模式
一. 瀑布式模型
二. 原型开发模型
三. 螺旋模型
四. 四代技术
五. 面向对象生存期模型
六. 过程开发模型(混合模型)
第二篇 传统的开发方法
第二章 分析原理
第一节 分析任务与分析员
一. 分析任务
二. 分析员
第二节 问题域
第三节 通信技术
一. 过程的开始
二. 方便的应用规范技术
第四节 分析原理
一. 信息域
二. 建模
三. 划分
四. 基本和实现观点
第五节 规格说明
一. 规格说明原则
二. 表达式
三. 软件需求规格说明
第六节 规格说明评审
第三章 结构化分析
第一节 基本符号及其扩充
一. 数据流图
二. 实时系统应用中的扩充
三. Ward和Mellor扩充形式
四. Hatley和Pirbhai扩充形式
五. 行为建模
六. 密集数据应用的扩充形式
第二节 结构化分析方法
一. 构造数据流模型
二. 构造控制流模型
三. 控制规格说明
四. 过程规格说明
第三节 数据字典
第四章 设计原理
第一节 软件设计的重要性
第二节 设计过程
一. 设计与软件质量
二. 软件设计的发展
第三节 设计基本原理 .
一. 抽象
二. 细化
三. 模块化
四. 软件体系结构
五. 控制层次
六. 数据结构
七. 软件过程
八. 信息隐藏
第四节 模块化设计
一. 模块类型
二. 模块的独立性
三. 聚合
四. 耦合
第五节 数据设计
第六节 体系结构设计
一. 模块大小
二. 深度和宽度与扇出和扇人
三. 判定的作用域和模块的控制域
第七节 过程设计
一. 结构化程序设计
二. 图形设计表示法
三. 表格设计表示法
四. 过程设计语言
第八节 设计规格说明
第五章 面向数据流的设计
第一节 结构图
第二节 数据流的类型
一. 变换流
二. 事务流
第三节 从数据流图到程序结构图的转换
一. 变换流设计
二. 事务流设计
三. 混合流设计
第四节 设计步骤
第五节 设计的后处理
第六章 面向数据结构的设计
第一节 Jackson的结构图解和图解逻辑
一. Jackson的结构图解
二. Jackson的图解逻辑
第二节Warnier-Orr图
第三节, Jackson的开发方法
一. 基本设计方法
二. 处理多个数据结构
三. 回溯
四. 结构冲突
五. 程序反演
第四节 Warnier-Orr的开发方法
一. 简化的设计方法
二. LOS的导出
三. LPS的导出
四. 复杂过程逻辑
第七章 原型开发
第一节 原型的定义
第二节 原型开发的应用
第三节 原型开发的分类
一. 抛弃式原型开发
二. 演化式原型开发
三. 增量式原型开发
第四节 原型开发的活动
一. 原型开发目标的建立
二. 功能选择
三. 原型构造
四. 评价
第五节 原型开发技术
一. 功能原型
二. 用户界面原型
第三篇 面向对象的开发方法
第八章 面向对象的分析与设计
第一节 面向对象方法的基本概念和特征
第二节 面向对象分析
——. 确定对象
二. 确定属性
三. 定义操作
四. 对象间通信
五. 完成对象定义
第三节 面向对象设计
一. 面向对象设计概念
二. 面向对象设计方法
三. 程序构件及接口
四. 细节设计
第四节 Booch的面向对象方法及实例
一. 方法
二. 步骤
三. 实例
第五节 其他面向对象设计方法
一. ESA的HOOD方法
二. Rumbaugh等的OMT方法
三. Wirfs-Brock的RDD方法
第九章 面向对象编程
第一节 面向对象编程概念
一. 对象
二. 类和实例
三. 继承
四. 封装
五. 多态性
第二节 面向对象编程语言
一. 面向对象编程语言的分类
二. 几种典型的面向对象编程语言
第十章 实时设计
第一节 实时系统
一. 集成及性能问题
二. 中断处理
三. 实时数据库
四. 实时操作系统
五. 实时语言
六. 任务同步和通信
第二节 实时系统分析. 仿真与设计
一. 分析与仿真
二. 设计方法
第三节 面向对象的实时系统构造方法
一. 基本点
二. 分析
三. 构造
四. 测试与验证
第四篇 Petri网原理与应用
第十一章 Petri网原理与应用
第一节 Petri网的定义
第二节Petri网的基本原理
一. Petri网的静态结构
二. Petri网的动态特征
三. 转移启动规则
第三节 建模实例
一. 有限状态机
二. 并行活动
三. 数据流计算
四. 通信协议
五. 同步控制
六. 生产者/消费者系统
七. 形式语言
八. 机械加工
第四节 行为特性
一. 可达性
二. 有界性
三. 活性
四. 可逆性
五. 可覆盖性
六. 持久性
七. 同步距离
八. 公平性
第五节 Petri网的特性分析方法
一. Petri网的行为特性分析方法
二. Petri网的结构特性分析方法
第六节 Petri网子类及其行为特性分析方法
一. Petri网子类
二. Petri网子类的某些行为特性分析
第七节 改进Petri网及其应用
一. 谓词/转移网
二. 着色网
三. 时间网
四. 随机网
第八节 从Petri网到程序结构的转换
一. 流程图的方法
二. 编程语言的方法
三. 面向对象的程序设计方法
第五篇 语言与实现
第十二章 规格说明. 设计和原型开发语言
第一节 规格说明语言
一. 规格说明的方法
二. 规格说明语言
第二节设计语言
第三节 原型开发语言
一. 原型开发语言的需求
二. 原型开发话言的执行
三. 原型开发语言的一个实例:PSDL
第十三章 编程语言与编码
第一节—翻译过程
第二节 编程语言特性
一. 心理学观点
二. 语法/语义问题
三. 工程观点
四. 语言选择
五. 编程语言与软件工程
第三节 编程语言基础
一. 数据类型和数据分类
二. 子程序
三. 控制结构
四. 对面向对象方法的支持
第四节 语言分类和发展
一. 第一代语言
二. 第二代语言
三. 第三代语言
四. 第四代语言
五. 第五代语言
第五节 编码风格
一. 代码文档化
二. 数据说明
三. 语句构造
四. I/0
第六节 效率
一. 代码效率
二. 内存效率
三. I/O效率
第七节 保护性编程
第八节冗余编程
第六篇 质量与质量保证
第十四章 软件质量与质量保证
第一节软件质量
一. 软件质量定义
二. 软件质量因素
第二节 软件质量保证
一. 质量保证策略
二. 软件质量保证活动
第三节 软件评审
一. 软件缺陷的费用影响
二. 缺陷的扩大和排除
第四节 正式技术评审
一. 评审会议
二. 评审报告和记录保存
三. 评审指南
四. 评审检查表
第五节 软件质量度量
一. Halsteadd的软件科学度量
二. McCabe复杂性度量
第六节 软件可靠性
一. 可靠性和可用性度量
二. 软件可靠性模型
三, 软件安全性
第七节 软件质量保证的方法
一. 考查对SQA的需要
二. SQA计划的制定和标准的采用
第十五章 软件测试
第一节 软件测试的目标
第二节 软件测试的原则
第三节 软件测试的过程和步骤
一. 软件测试过程
二. 软件测试步骤
三. 单元测试
四. 组装测试
五. 确认测试
六. 系统测试
第四节 软件测试技术
一. 测试用例设计
二. 纠错技术
第五节 实时系统测试
一. 任务测试
二. 行为测试
三. 任务间测试
四. 系统测试
第六节 测试计划和测试分析报告
第十六章 软件维护
第一节 软件维护的分类
第二节 软件维护的特点
一. 软件工程与软件维护的关系
二. 维护费用
三. 维护中的问题
第三节 软件的可维护性
一. 控制因素
二. 定量度量
三. 评审
第四节 软件的维护任务
一. 维护机构
二. 编写报告
三. 维护流程
四. 记录保存
五. 评价
第五节 软件维护的副作用
一. 修改代码的副作用
二. 修改数据的副作用
三. 修改文档的副作用
第六节 维护“奇异码”
第七节 反推工程和再生工程
第八节 预防性维护
第七篇 计划与管理
第十七章 软件计划与管理
第一节 确定工作范围和资源
一. 软件工作范围
二. 资源
第二节 成本估算
一. 成本估算方法
二. 成本估算模型
三. 软件生产率数据
四. 代码行的成本估算方法
五. 每项任务工作量的成本估算方法
第三节 进度安排
一. 软件工作的特殊性
二. 各阶段工作量的分配
三. 制定开发进度
第四节 配置管理
一. 基线
二. 交付项的发行
三. 配置控制的机制
第五节 软件开发组织
第六节 软件计划
第七节 软件产权保护
一. 软件知识产权的法律保护
二. 计算机软件是著作权保护的客体
三. 软件著作权人享有的专有权力
四. 软件著作权的登记
第八篇 工具与环境
第十八章 人机界面设计
第一节 用户分析
一. 用户分类
二. 影响用户行为特性的因素
三. 用户的使用需求分析
四. 人—机界面的设计原则
第二节 任务分析与模型建立
一. 结构化分析
二. 面向对象分析
第三节 人—机界面的交互方式
一. 问答式对话
二. 菜单界面
三. 功能键
四. 图符界面
五. 填表界面
六. 命令语言界面
七. 查询语言界面
八. 自然语言界面
第四节 人—机界面的开发过程
一. 人—机界面开发的瀑布式模型
二. 人—机界面开发的原型模型
第五节 界面设计的一般准则
一. 一般交互
二. 信息显示
三. 数据输入
第六节 智能人—机界面的设计
一. 智能界面的定义
二. 智能界面的构成
三. 智能界面的相关技术
四. 建立智能界面的过程
第十九章 数据库在CASE中的应用
第一节 工程思想
第二节 历史回顾
第三节 数据库
一. 数据类型和灵活性
二. 元数据:数据字典
三. 类属工具:查询语言
四. 完整性和内部一致性
第四节 软件工程的数据
一. 程序
二. 程序结构
三. 程序的可选表达式
四. 程序的描述
五. 接口与可重用性
六. 需求与约束
七. 设计环境和运行环境
八. 测试和测试评价
第五节 CASE的数据模型和模型层次
一. 数据模型评价准则
二. 文件系统模型
三. 实体. 关系模型
四. 对象模型
五. 超文本模型
六. 早期模型
七. 建模回顾
第六节 面向对象数据库与CASE
一. 面向对象数据库概要
二. 面向对象数据库管理系统的研究与开发状况
三. 面向对象数据库管理系统的性能
四. CASE数据库
五. 面向对象GASE数据库需进一步研究的课题
第二十章 软件开发工县与环境
第一节 软件开发工具
第二节 软件开发环境
一. 按解决的问题分类
二. 按现有软件开发环境的演变趋向分类
三. 按集成化程度分类
第三节 计算机辅助软件工程(CASE)
一. I-CASE集成方式
二. I-CASE框架结构
三. I-CASE中心库
第四节 实例
一. Ada编程支持环境
二. 青鸟系统
参考文献
猜您喜欢