书籍详情

面向对象与传统软件工程(原书第5版 计算机科学丛书)

面向对象与传统软件工程(原书第5版 计算机科学丛书)

作者:(美)Stephen R.Schach著;韩松等译;韩松译

出版社:机械工业出版社

出版时间:2003-09-01

ISBN:9787111124771

定价:¥48.00

购买这本书可以去
内容简介
  本书是一部实用性很强的教学用书,被国外多所大学用作课堂教材。为了便于学生学性掌握,作者将本书内容分为两部分。第一部分给出了软件工程的理论基础,第二部分全面介绍了软件生命周期的各个阶段。第二部分的一个显著特点是通过案例研究来说明有关技术。在本书中,作者更详细地说明了如何完成案例研究出修改,让学生通过动手操作掌握知识。本书突出特点:不依赖于发语言介绍有关技术,并为案例研究提供了C++和Java源代码增加了极限编程和ISO/IEC12207方面的最新内容涵盖600多篇参考材料,便于读者进一步阅读,其中包括许多新材料思考题集内容广泛,其中包含练习、基于小组的学期项目、基于研究论文的问题以及一些基于案例研究的问题包括面向对象及传统范型,为学生们毕业后所面临的各种职业考验做准备在第二部分每一章的末尾,专门用一小节讨论了软件生命周期每个阶段所面临的挑战StephenR.Schach,1972年获魏兹曼科学院物理学理科硕士学位,1973年获开普敦大学应用数学博士学位。1972-1983年间,在开普敦大学应用数学和计算机科学系任教,1983年以来在范德比尔特大学工作。作者在软件工程领域有广泛研究,特别是对软件维护与开放源码分析与设计的教材,署名出版物(包括录像带)达100部之多。他还在国际上广泛讲授软件工程方面的课程,包括重用、CASE和面向对象范型等。本书是一本经典的软件工程教科书,自1990年出版以来,这已是第5次修订出版。全书共分两部分:第一部分介绍了以项目开发为基础的软件工程基础的理论基础;第二部分讲述了软件生命周期的各个阶段。本书内容全面,其突出特点是理论与实践相结合,以一个具体的案例详细说明了软件开发过程的每个阶段。大量的思考题繁简得当,由浅入深,既考察了学生的基础知识扎实程度,又锻炼了学生的实际应用能力。本书还提供大量的参考资料,便于读者进一步深入阅读各个主题。
作者简介
  StephenR.Schach,1972年获魏兹曼科学院物理学理科硕士学位,1973年获开普敦大学应用数学博士学位。1972-1983年间,在开普敦大学应用数学和计算机科学系任教,1983年以来在范德比尔特大学工作。作者在软件工程领域有广泛研究,特别是对软件维护与开放源码分析与设计的教材,署名出版物(包括录像带)达100部之多。他还在国际上广泛讲授软件工程方面的课程,包括重用、CASE和面向对象范型等。
目录
出版者的话
专家指导委员会
译者序
前言
第一部分 软件工程介绍
第1章 软件工程的范畴
1.1 历史方面
1.2 经济方面
1.3 维护性方面
1.4 规格说明和设计阶段
1.5 小组编程方面
1.6 面向对象范型
1.7 术语
本章回顾
进一步阅读指导
思考题
参考文献
第2章 软件过程
2.1 客户、开发人员和用户
2.2 需求阶段
2.2.1 需求阶段测试
2.2.2 需求阶段文档
2.3 规格说明阶段
2.3.1 规格说明阶段测试
2.3.2 规格说明阶段文档
2.4 设计阶段
2.4.1 设计阶段测试
2.4.2 设计阶段文档
2.5 实现阶段
2.5.1 实现阶段测试
2.5.2 实现阶段文档
2.6 集成阶段
2.6.1 集成阶段测试
2.6.2 集成阶段文档
2.7 维护阶段
2.7.1 维护阶段测试
2.7.2 维护阶段文档
2.8 退役
2.9 软件生产中存在的问题:本质的和偶发的
2.9.1 复杂性
2.9.2 一致性
2.9.3 可变性
2.9.4 不可见性
2.9.5 没有银弹吗
2.10 改进软件过程
2.11 能力成熟度模型
2.12 软件过程改进方面的其他努力
2.13 软件过程改进的成本和效益
本章回顾
进一步阅读指导
思考题
参考文献
第3章 软件生命周期模型
3.1 建造-修补模型
3.2 瀑布模型
3.3 快速原型开发模型
3.4 增量模型
3.5 极限编程
3.6 同步-稳定模型
3.7 螺旋模型
3.8 面向对象的生命周期模型
3.9 生命周期模型的比较
本章回顾
进一步阅读指导
思考题
参考文献
第4章 软件小组
4.1 小组组织
4.2 民主小组方法
4.3 传统的主程序员小组方法
4.3.1 纽约时报项目
4.3.2 传统的主程序员小组方法的不实用性
4.4 超越主程序员小组和民主小组
4.5 同步-稳定小组
4.6 极限编程小组
本章回顾
进一步阅读指导
思考题
参考文献
第5章 软件工程工具
5.1 逐步求精法逐步求精法示例
5.2 成本-效益分析法
5.3 软件度量
5.4 CASE
5.5 CASE的分类
5.6 CASE的范围
5.7 软件版本
5.7.1 修订版
5.7.2 变种版
5.8 配置控制
5.8.1 产品维护期间的配置控制
5.8.2 基线
5.8.3 产品开发过程中的配置控制
5.9 建造工具
5.10 使用CASE技术提高生产率
本章回顾
进一步阅读指导
思考题
参考文献
第6章 测试
6.1 质量问题
6.1.1 软件质量保证
6.1.2 管理独立
6.2 非执行测试
6.2.1 走查
6.2.2 管理走查
6.2.3 审查
6.2.4 审查与走查的对比
6.2.5 评审的长处和短处
6.2.6 评审的度量
6.3 执行测试
6.4 应该测试什么
6.4.1 实用性
6.4.2 可靠性
6.4.3 健壮性
6.4.4 性能
6.4.5 正确性
6.5 测试与正确性证明
6.5.1 正确性证明的例子
6.5.2 正确性证明案例研究
6.5.3 正确性证明和软件工程
6.6 谁来完成执行测试
6.7 何时停止测试
本章回顾
进一步阅读指导
思考题
参考文献
第7章 从模块到对象
7.1 什么是模块
7.2 内聚
7.2.1 偶然性内聚
7.2.2 逻辑性内聚
7.2.3 时间性内聚
7.2.4 过程性内聚
7.2.5 通信性内聚
7.2.6 功能性内聚
7.2.7 信息性内聚
7.2.8 内聚示例
7.3 耦合
7.3.1 内容耦合
7.3.2 共用耦合
7.3.3 控制耦合
7.3.4 印记耦合
7.3.5 数据耦合
7.3.6 耦合示例
7.3.7 耦合的重要性
7.4 数据封装
7.4.1 数据封装和产品开发
7.4.2 数据封装和产品维护
7.5 抽象数据类型
7.6 信息隐藏
7.7 对象
7.8 继承、多态和动态绑定
7.9 对象的内聚和耦合
7.10 面向对象范型
本章回顾
进一步阅读指导
思考题
参考文献
第8章 可复用性、可移植性和互操作性
8.1 复用的概念
8.2 复用的障碍
8.3 复用案例研究
8.3.1 Raytheon导弹系统部
8.3.2 东芝软件工厂
8.3.3 NASA软件
8.3.4 GTE数据服务
8.3.5 惠普公司
8.3.6 欧洲航天局
8.4 对象和复用
8.5 设计和实现阶段的复用
8.5.1 设计复用
8.5.2 应用框架
8.5.3 设计模式
8.5.4 软件体系结构
8.6 复用和维护
8.7 可移植性
8.7.1 硬件的不兼容性
8.7.2 操作系统的不兼容性
8.7.3 数值计算软件的不兼容性
8.7.4 编译器的不兼容性
8.8 为什么需要可移植性
8.9 实现可移植性的技术
8.9.1 可移植的系统软件
8.9.2 可移植的应用软件
8.9.3 可移植的数据
8.10 互操作性
8.10.1 COM
8.10.2 CORBA
8.10.3 COM和ODRBA的比较
8.11 互操作性的未来趋势
本章回顾
进一步阅读指导
思考题
参考文献
第9章 计划和估算
9.1 计划和软件过程
9.2 周期和成本估算
9.2.1 产品规模的度量
9.2.2 成本估算的技术
9.2.3 中间COCOMO
9.2.4 COCOMO II
9.2.5 跟踪周期和成本估算
9.3 软件项目管理计划的组成
9.4 软件项目管理计划框架
9.5 1EEE软件项目管理计划
9.6 测试计划
9.7 计划面向对象的项目
9.8 培训需求
9.9 文档标准
9.10 用于计划和估算的CASE工具
9.11 测试软件项目管理计划
本章回顾
进一步阅读指导
思考题
参考文献
第二部分 软件生命周期的各个阶段
第10章 需求阶段
10.1 需求获取
10.1.1 访谈
10.1.2 情景
10.1.3 其他需求获取技术
10.2 需求分析
10.3 快速原型开发
10.4 人的因素
10.5 作为一种规格说明技术的快速原型开发
10.6 复用快速原型
10.7 快速原型开发模型的管理含意
10.8 快速原型开发的试验
10.9 需求获取和需求分析技术
10.10 在需求分析阶段测试
10.11 需求阶段的CASE工具
10.12 需求阶段的度量
10.13 面向对象的需求
10.14 “空中美食”案例研究:需求阶段
10.15 “空中美食”案例研究:快速原型
10.16 需求阶段面临的挑战
本章回顾
进一步阅读指导
思考题
参考文献
第11章 规格说明阶段
11.1 规格说明文档
11.2 非形式化规格说明案例研究:文本处理
11.3 结构化系统分析Sally的软件商店
11.4 其他半形式化的技术
11.5 建造实体-关系模型
11.6 有限状态机电梯问题:有限状态机
11.7 Petri网
11.8 Z规格说明语言
11.8.1 电梯问题:Z规格说明
11.8.2 Z的分析
11.9 其他形式化技术
11.10 规格说明技术的比较
11.11 在规格说明阶段测试
11.12 规格说明阶段的CASE工具
11.13 规格说明阶段的度量
11.14 “空中美食”案例研究:结构化系统分析
11.15 “空中美食”案例研究:软件项目管理计划
11.16 规格说明阶段面临的挑战
本章回顾
进一步阅读指导
思考题
参考文献
第12章 面向对象分析阶段
12.1 面向对象分析
12.2 电梯问题:面向对象分析
12.3 用例建模
12.4 类建模
12.4.1 名词提取
12.4.2 CRC卡片
12.5 动态建模
12.6 在面向对象分析阶段测试
12.7 面向对象分析阶段的CASE工具
12.8 “空中美食”案例研究:面向对象分析
12.9 面向对象分析阶段面临的挑战
本章回顾
进一步阅读指导
思考题
参考文献
第13章 设计阶段
13.1 设计和抽取
13.2 面向行为设计
13.3 数据流分析
13.3.1 数据流分析示例
13.3.2 扩展
13.4 事务分析
13.5 面向数据设计
13.6 面向对象设计
13.7 电梯问题:面向对象设计
13.8 详细设计的形式化技术
13.9 实时设计技术
13.10 设计期间的测试
13.11 设计阶段的CASE工具
13.12 设计阶段的度量
13.13 “空中美食”案例研究:面向对象设计
13.14 设计阶段面临的挑战
本章回顾
进一步阅读指导
思考题
参考文献
第14章 实现阶段
14.1 编程语言的选择
14.2 第四代语言
14.3 良好的编程习惯
14.4 编码标准
14.5 模块复用
14.6 模块测试用例选择
14.6.1 规格说明测试与代码测试
14.6.2 规格说明测试的可行性
14.6.3 代码测试的可行性
14.7 黑盒模块测试技术
14.7.1 等价测试和边界值测试
14.7.2 功能测试
14.8 玻璃盒模块测试技术
14.8.1 结构测试:语句覆盖、分支覆盖以及路径覆盖
14.8.2 复杂性度量
14.9 代码走查和审查
14.10 模块测试技术的比较
14.11 净室
14.12 测试对象时潜在的问题
14.13 模块测试的管理方面
14.14 何时该重写而不是调试一个模块
14.15 实现阶段的CASE工具
14.16 “空中美食”案例研究:黑盒测试用例
14.17 实现阶段面临的挑战
本章回顾
进一步阅读指导
思考题
参考文献
第15章 实现与集成阶段
15.1 实现与集成介绍
15.1.1 自顶向下的实现与集成
15.1.2 自底向上的实现与集成
15.1.3 三明治式实现与集成
15.1.4 面向对象产品的实现与集成
15.1.5 实现与集成阶段的管理问题
15.2 实现与集成期间的测试
15.3 图形用户界面的集成测试
15.4 产品测试
15.5 验收测试
15.6 实现与集成阶段的CASE工具
15.7 软件开发全过程的CASE工具
15.8 集成化开发环境
15.9 商业应用软件开发环境
15.10 公共工具基础结构
15.11 开发环境的潜在问题
15.12 实现与集成阶段的度量
15.13 “空中美食”案例研究:实现与集成阶段
15.14 实现与集成阶段面临的挑战
本章回顾
进一步阅读指导
思考题
参考文献
第16章 维护阶段
16.1 维护的必要性
16.2 对维护程序员的要求
16.3 维护工作案例研究
16.4 维护管理
16.4.1 错误报告
16.4.2 批准对产品的修改
16.4.3 确保软件的可维护性
16.4.4 反复维护造成的问题
16.5 面向对象软件的维护
16.6 维护技能与开发技能
16.7 逆向工程
16.8 维护阶段的测试
16.9维护阶段的CASE工具
16.10 维护阶段的度量
16.11 “空中美食”案例研究:维护阶段
16.12 维护阶段面临的挑战
本章小结
进一步阅读指导
思考题
参考文献
附录
附录A Broadlands地区儿童医院
附录B 软件工程资料
附录C “空中美食”案例研究:C快速原型
附录D “空中美食”案例研究:Java快速原型
附录E “空中美食”案例研究:结构化系统分析
附录F “空中美食”案例研究:软件项目管理计划
附录G “空中美食”案例研究:面向对象的分析
附录H “空中美食”案例研究:C++实现的设计
附录I “空中美食”案例研究:Java实现的设计
附录J “空中美食”案例研究:黑盒测试用例
附录K “空中美食”案例研究:C++源代码
附录L “空中美食”案例研究:Java源代码
参考文献
索引
猜您喜欢

读书导航