现代软件工程

现代软件工程
作 者: 陈松乔 任胜兵 王国军
出版社: 清华大学出版社
丛编项: 高等院校计算机与信息技术应用新技术教材
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《现代软件工程》作者简介

内容简介

从软件工程概念正式提出至今,已经经历了将近40年的发展,取得在大量的理论和应用研究成果,形成和促进了软件产业的飞速发展,在社地作画活中扮演着愈来愈重要的角色。正是由于学术界和产业界的不懈努力,软件工程正逐步发展成为一门成熟的专业学科。本教材正是为了适应软件工程高等教育的需要,组织具有多年软件工程教学和实践经验的教师编写而成的。本书系统地介绍了软件工程的概念、原理、方法、技术、标准和相关法律法规。全书共十章,以软件生存周期为主线,对软件工程有关的分析、设计、验证、维护和管理等方面内容作了详尽阐述,突出结构化技术、面向对象技术和组件技术在软件开发过程中的运用,强调软件产品质量和软件过程质量的分析和保证。本书最后简要介绍了软件工程标准化和软件知识产权的有关内容及其对软件工程的影响。本书包括了软件生存期过程、用例建模、面向对象软件设计模式和模型/视图/控制器框架等相关内容的介绍。并且,为方便读者理解与应用设计模式和模型/视图/控制器框架,本书附录中给出了简明、完整的程序代码。本书内容新颖,讲述力求理论联系实际、深入浅出、循序渐进。每章均附有习题。本书主要用作高等院校计算机科学与技术专业本科学生的“软件开发技术”课程或研究生“软件工程”课程的教材,也可作为其他相关专业的教学用书,或作为从事软件开发的科技人员的参考书、培训教材等。

图书目录

第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. 4. 1 软件工具

1. 4. 2 CASE集成环境

1. 5 软件生存期过程

1. 6 软件工程常用生存周期模型

1. 6. 1 瀑布模型

1. 6. 2 快速原型化模型

1. 6. 3 快速应用开发模型

1. 6. 4 渐增模型

1. 6. 5 螺旋模型

1. 7 软件工程的并行工程

1. 7. 1 簇的基本概念

1. 7. 2 并行工程的提出

1. 7. 3 簇的基本步骤和任务

1. 7. 4 簇模型与并行工程

1. 7. 5 无缝开发和可逆性的基本概念

1. 8 小结

习题1

第2章 需求分析

2. 1 需求分析的目标

2. 2 行性分析

2. 2. 1 可行性分析内容

2. 2. 2 可行性分析基本步骤

2. 2. 3 系统流程图

2. 3 需求收集

2. 3. 1 需求收集的内容

2. 3. 2 需求收集的方法

2. 4 需求规格说明

2. 5 数据流建模

2. 5. 1 数据流图中的常用符号

2. 5. 2 数据流图的用途

2. 5. 3 数据词典和加工说明

2. 6 实体-关系建模

2. 6. 1 实体-关系图

2. 6. 2 基数和模态

2. 6. 3 实体-关系图的例子

2. 7 系统行为建模

2. 7. 1 处理模型和控制模型的关系

2. 7. 2 一个控制流图的例子

2. 7. 3 一个状态转换图的例子

2. 8 IDEF0功能建模

2. 8. 1 IDEF0图

2. 8. 2 IDEF0建模步骤

2. 8. 3 有关注意事项

2. 9 IDEF1X数据建模

2. 9. 1 IDEF1X图

2. 9. 2 IDEF1X建模步骤

2. 10 用例建模

2. 10. 1 用例图

2. 10. 2 参与者及用例的描述

2. 10. 3 用例建模步骤

2. 11 面向对象建模

2. 11. 1 面向对象建模的发展

2. 11. 2 面向对象基础

2. 11. 3 面向对象分析模型

2. 11. 4 对象模型的建立

2. 11. 5 行为模型的建立

2. 11. 6 功能模型的建立

2. 12 统一建模语言UML

2. 12. 1 UML的基本实体

2. 12. 2 UML的目标

2. 12. 3 UML的范畴

2. 12. 4 UML图的使用实例

2. 13 小结

习题2

第3章 概要设计

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. 3 面向数据流图的设计方法

3. 3. 1 软件结构的图形表示

3. 3. 2 数据流分析

3. 3. 3 事务分析

3. 3. 4 软件结构的改进

3. 4 面向对象的设计方法

3. 4. 1 软件复用

3. 4. 2 面向对象设计

3. 5 面向对象软件设计模式

3. 5. 1 设计模式的描述与分类

3. 5. 2 创建型模式

3. 5. 3 结构型模式

3. 5. 4 行为型模式

3. 6 模型-视图-控制器框架

3. 7 小结

习题3

第4章 详细设计

4. 1 详细设计的目标与任务

4. 1. 1 详细设计的目标

4. 1. 2 详细设计的任务

4. 2 结构化程序的详细设计技术与工具

4. 2. 1 结构化程序的详细设计技术

4. 2. 2 结构化程序的详细设计工具

4. 3 Jackson程序设计方法

4. 3. 1 Jackson图

4. 3. 2 Jackson伪代码

4. 3. 3 Jackson程序设计方法的步骤

4. 4 Warnier程序设计方法

4. 4. 1 Warnier图

4. 4. 2 Warnier程序设计步骤

4. 5 面向对象程序的详细设计

4. 5. 1 面向对象程序的特性

4. 5. 2 设计原则

4. 6 基于组件的程序设计方法

4. 6. 1 三层应用体系结构

4. 6. 2 CORBA对象总线技术

4. 6. 3 COM对象总线技术

4. 6. 4 组件库技术

4. 7 小结

习题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. 2. 1 代码复审内容

5. 2. 2 代码会审

5. 2. 3 走查

5. 2. 4 办公桌检查

5. 3 白盒测试

5. 3. 1 逻辑覆盖法

5. 3. 2 基本路径覆盖法

5. 3. 3 循环覆盖法

5. 4 黑盒测试

5. 4. 1 等价分类法

5. 4. 2 边界值分析法

5. 4. 3 猜错法

5. 4. 4 因果图法

5. 5 单元测试

5. 5. 1 测试策略

5. 5. 2 测试内容

5. 5. 3 测试的阶段及活动

5. 5. 4 测试软件

5. 6 集成测试

5. 6. 1 测试内容

5. 6. 2 测试策略

5. 6. 3 非渐增式测试

5. 6. 4 渐增式测试

5. 6. 5 回归测试

5. 7 确认测试

5. 7. 1 确认测试内容

5. 7. 2 a测试和B测试

5. 8 系统测试

5. 8. 1 恢复测试

5. 8. 2 安全性测试

5. 8. 3 可用性测试

5. 8. 4 安装测试

5. 8. 5 互连测试

5. 9 程序正确性证明

5. 9. 1 程序正确性定义

5. 9. 2 Floyd不变式断言法

5. 9. 3 Floyd良序集方法

5. 9. 4 程序正确性证明的局限性

5. 10 调试

5. 10. 1 调试的步骤

5. 10. 2 调试的策略

5. 10. 3 调试的原则

5. 11 小结

习题5

第6章 软件质量和软件质量保证体系

6. 1 软件质量

6. 1. 1 软件质量特性

6. 1. 2 软件质量评价

6. 1. 3 软件质量保证

6. 1. 4 软件质量管理

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. 4 ISO 9000软件质量体系

6. 4. 1 ISO 9000族国际标准

6. 4. 2 企业软件质量体系的建立和实施

6. 5 软件配置管理

6. 5. 1 软件配置项

6. 5. 2 软件配置管理

6. 6 软件过程能力成熟度模型简介

6. 6. 1 基本概念

6. 6. 2 软件过程能力成熟度等级

6. 6. 3 关键过程域

6. 6. 4 关键实践

6. 6. 5 软件过程能力成熟度模型的应用

6. 7 小结

习题6

第7章 软件维护技术

7. 1 软件维护的基本概念

7. 1. 1 软件维护类型

7. 1. 2 软件维护策略

7. 1. 3 软件维护成本

7. 1. 4 软件维护的副作用

7. 1. 5 软件维护的困难

7. 2 软件维护过程

7. 2. 1 维护组织

7. 2. 2 维护申请

7. 2. 3 维护工作流程

7. 2. 4 维护记录与评价

7. 3 软件可维护性

7. 3. 1 影响软件可维护性的软件属性

7. 3. 2 软件可维护性的定量度量

7. 3. 3 提高可维护性的方法

7. 4 软件再工程技术

7. 4. 1 逆向工程

7. 4. 2 重构

7. 4. 3 正向工程

7. 4. 4 再工程成本/效益分析

7. 4. 5 再工程风险分析

7. 5 小结

习题7

第8章 软件项目计划

8. 1 成本估计

8. 1. 1 自顶向下成本估计

8. 1. 2 自底向上成本分析

8. 1. 3 基于经验模型的成本估计

8. 2 效益分析

8. 2. 1 度量方法

8. 2. 2 效益分析

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. 5 项目组织与计划

8. 5. 1 人员组织规律

8. 5. 2 人员组织形式

8. 5. 3 项目计划

8. 6 小结

习题8

第9章 软件工程标准化与文档写作

9. 1 软件工程标准

9. 1. 1 软件工程标准的类型

9. 1. 2 软件工程标准的层次

9. 1. 3 软件工程国家标准

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. 3. 5 详细设计说明书的主要内容及写作要求

9. 3. 6 其他文档

9. 4 软件文档的管理

9. 4. 1 软件文档编写过程的管理

9. 4. 2 软件文档使用过程的管理

9. 5 小结

习题9

第10章 软件知识产权保护与道德规范

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. 2. 4 软件著作权的权利内容

10. 2. 5 软件著作权的权利限制

10. 2. 6 软件著作权的取得

10. 2. 7 软件著作权的归属

10. 2. 8 软件著作权的行使

10. 2. 9 案例分析

10. 3 软件著作权登记

10. 3. 1 实施计算机软件著作权登记的作用

10. 3. 2 软件著作权登记的形式

10. 3. 3 软件著作权登记程序

10. 4 软件商业秘密

10. 4. 1 商业秘密

10. 4. 2 计算机软件商业秘密

10. 5 软件工程师职业道德规范

10. 5. 1 职业道德

10. 5. 2 软件工程师职业道德规范

10. 6 小结

习题10

附录A COM开发实例

附录B 设计模式实例

附录C 中英文术语对照表

参考文献