软件工程--Java语言实现
1999-09
机械工业出版社
沙切斯(美)
袁兆山/等
无
目 录
译者序
前言
第3版ClassicalandObject-Oriented Software Engineering序言
第一部分 软件过程
第1章 软件工程的范围
1.1历史方面
1.2经济方面
1.3维护方面
1.4规格说明和设计方面
1.5群体编程方面
1.6面向对象的范型
1.7常用术语
本章回顾
进一步阅读
问题
第2章 软件过程及问题
2.1客户、开发人员和用户
2.2需求阶段
2.3规格说明阶段
2.4计划阶段
2.5设计阶段
2.6实现阶段
2.7集成阶段
2.8维护阶段
2.9退役
2.10软件产品中的问题:本质问题和非本质问题
2.10.1复杂性
2.10.2一致性
2.10.3可变性
2.10.4不可见NTG
2.10.5没有银弹吗
本章回顾
进一步阅读
问题
第3章 软件生命周期模型
3.1边做边改模型
3.2瀑布模型
3.3快速原型模型
3.4增量模型
3.5螺旋模型
3.6各种生命周期模型的比较
3.7能力成熟度模型
3.8ISO9000
本章回顾
进一步阅读
问题
第4章 逐步求精、CASE和其他商用工具
4.1逐步求精
4.2成本效益分析
4.3计算机辅助软件工程CASE
4.4CASE的范围
4.5软件版本
4.5.1修订版本
4.5.2变体版本
4.6配置控制
4.6.1产品维护期间的配置控制
4.6.2基线版本
4.6.3产品开发期间的配置控制
4.7构造工具
4.8CASE技术提高了生产力
4.9软件度量
本章回顾
进一步阅读
问题
第5章 测试原理
5.1质量问题
5.1.1软件质量保证
5.1.2管理的独立性
5.2基于非执行的测试
5.2.1走查
5.2.2走查的管理
5.2.3审查
5.2.4审查和走查的比较
5.2.5审查的尺度
5.3基于执行的测试
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.6由谁来执行基于执行的测试
5.7何时结束测试
本章回顾
进一步阅读
问题
第6章 对象
6.1什么是模块
6.2内聚性
6.2.1偶然内聚性
6.2.2逻辑内聚性
6.2.3暂时内聚性
6.2.4过程内聚性
6.2.5通信内聚性
6.2.6信息内聚性
6.2.7功能内聚性
6.2.8内聚性举例
6.3耦合
6.3.1内容耦合
6.3.2共用耦合
6.3.3控制耦合
6.3.4特征耦合
6.3.5数据耦合
6.3.6耦合举例
6.4数据封装
6.4.1数据封装和产品开发
6.4.2数据封装和产品维护
6.5抽象数据类型
6.6信息隐藏
6.7对象的概念
6.8多态性和动态联编
6.9对象的内聚性和耦合
6.10重用
6.11重用实例研究
6.11.1Raytheon的导弹系统部
6.11.2东芝软件工厂
6.11.3NASA软件
6.11.4GTEDataServices
6.11.5HP公司
6.12重用和维护
6.13对象和生产率
本章回顾
进一步阅读
问题
第二部分 软件过程的各个阶段
第7章 需求阶段
7.1需求分析技术
7.2快速原型
7.3人的因素
7.4作为一种规格说明技术的快速原型
7.5快速原型的重用
7.6快速原型的其他用途
7.7快速原型的管理意义
7.8有关快速原型的经验
7.9联合式应用设计
7.10需求分析技术的比较
7.11需求阶段的测试
7.12需求阶段的CASE工具
7.13需求阶段的度量
7.14MSG实例研究:需求阶段
7.15MSG实例研究:快速原型
本章回顾
进一步阅读
问题
第8章 规格说明阶段
8.1规格说明文档
8.2非形式化规格说明
8.3结构化系统分析
8.4其他的半形式化技术
8.5实体关系模型
8.6有穷状态机
8.7Petri网
8.8Z
8.8.1电梯问题:Z
8.8.2对Z的分析
8.9其他的形式化技术
8.10规格说明技术的比较
8.11规格说明阶段的测试
8.12规格说明阶段的CASE工具
8.13规格说明阶段的度量
8.14MSG实例研究:结构化系统分析
本章回顾
进一步阅读
问题
第9章 面向对象的分析阶段
9.1面向对象范型与结构化范型的比较
9.2面向对象的分析
9.3电梯问题:面向对象的分析
9.3.1类模型
9.3.2动态建模
9.3.3功能建模
9.4 面向对象的生命周期模型
9.5面向对象分析阶段中的CASE工具
9.6MSG实例研究:面向对象的分析
本章回顾
进一步阅读
问题
第10章 计划阶段
10.1项目开发周期和开发成本估计
10.1.1产品规模的度量
10.1.2成本估计技术
10.1.3中级COCOMO
10.1.4跟踪开发周期和成本估计
10.2软件项目管理计划的组成部分
10.3软件项目管理计划的结构
10.4IEEE软件项目管理计划
10.5测试计划
10.6面向对象项目的规划
10.7培训需求
10.8文档标准
10.9计划阶段的CASE工具
10.10计划阶段的测试
10.11MSG实例研究:计划阶段
本章回顾
进一步阅读
问题
第11章 设计阶段
11.1设计和抽象
11.2面向行为的设计
11.3数据流分析
11.3.1数据流分析的例子
11.3.2扩展
11.4事务分析
11.5面向数据的设计
11.6Jackson系统开发
11.6.1JSD概述
11.6.2为什么要在本章介绍Jackson系统开发
11.6.3电梯问题:Jackson系统开发
11.6.4JSD分析
11.7Jackson、Warnier和Orr的技术
11.8面向对象的设计
11.9详细设计
11.10面向行为的设计、面向数据的设计
和面向对象的设计之比较
11.11与实时系统有关的困难
11.12实时系统设计技术
11.13设计阶段的测试
11.14设计阶段的CASE工具
11.15设计阶段的度量
11.16MSG实例研究:面向对象的设计
本章回顾
进一步阅读
问题
第12章 实现阶段
12.1编程语言的选择
12.2第四代语言
12.3结构化程序设计
12.3.1结构化程序设计的历史
12.3.2为什么goto语句是有害的
12.4良好的编程习惯
12.5编码标准
12.6程序员组的组织
12.7民主制程序员组方法
12.8典型的主席制程序员组方法
12.8.1NewYorkTimes项目
12.8.2典型的主席制程序员组方法的不切实际性
12.9超越主席制程序员组和民主制程序员组的方法
12.10可移植性
12.10.1硬件的不兼容性
12.10.2操作系统的不兼容性
12.10.3数值软件的不兼容性
12.10.4编译器的不兼容性
12.11为什么要支持可移植性
12.12获得可移植性的技术
12.12.1可移植的系统软件
12.12.2可移植的应用软件
12.12.3可移植的数据
12.13模块重用
12.14模块测试事例的选择
12.14.1规格说明测试与代码测试的比较
12.14.2规格说明测试的可行性
12.14.3代码测试的可行性
12.15黑盒模块测试技术
12.15.1等价测试和边界值分析
12.15.2功能测试
12.16玻璃盒模块测试技术
12.16.1结构化测试:语句、分支、路径覆盖
12.16.2复杂性度量
12.17代码走查和审查
12.18模块测试技术的比较
12.19Cleanroom
12.20测试对象
12.21模块测试的管理方面
12.22测试分布式软件
12.23实时软件的测试
12.24实现阶段的CASE工具
12.25MSG实例研究:黑盒测试事例
本章回顾
进一步阅读
问题
第13章 实现和集成阶段
13.1实现和集成
13.1.1自顶向下的实现和集成方法
13.1.2自底而上的实现和集成方法
13.1.3三明治式实现和集成方法
13.1.4面向对象产品的实现和集成方法
13.1.5实现和集成阶段的管理问题
13.2实现和集成阶段的测试
13.3用户图形界面的集成阶段测试
13.4产品测试
13.5验收测试
13.6实现和集成阶段的CASE工具
13.7整个软件过程的CASE工具
13.8基于编程语言的环境
13.9面向结构的环境
13.10工具箱环境
13.11集成环境
13.11.1过程集成
13.11.2工具集成
13.11.3其他形式的集成
13.12商业应用的开发环境
13.13公用工具的基础结构
13.14各类环境的比较
13.15实现和集成阶段的度量
13.16MSG实例研究:实现和集成阶段
本章回顾
进一步阅读
问题
第14章 维护阶段
14.1为什么维护是必须的
14.2维护人员需要什么
14.3维护实例研究
14.4维护管理
14.4.1错误报告
14.4.2授权产品更改
14.4.3确保可维护性
14.4.4反复维护的问题
14.5面向对象的软件维护
14.6开发技能与维护技能之比较
14.7逆向工程
14.8维护阶段的测试
14.9维护阶段的CASE工具
14.10维护阶段的度量
本章回顾
进一步阅读
问题
结束语――JAVA:软件工程的实例研究
第三部分 附 录
附录A 艺术商人OsbertOglesby
附录B 软件工程资源
附录C MSG实例研究:快速原型模型
附录D MSG实例研究:结构化系统分析
附录E MSG实例研究:软件项目管理计划
附录F MSG实例研究:设计
附录G MSG实例研究:黑箱测试用例
附录H MSG实例研究:源代码
参考文献索引
无