软件工程:实践者的研究方法

软件工程:实践者的研究方法
作 者: RoyerS Pressman 黄柏素 梅宏 黄柏素
出版社: 机械工业出版社
丛编项: 计算机科学丛书
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 软件方法
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者简介RogerS.Pressman是软件工程领域国际知名的咨询专家和作者。他以优等成绩从Connecticut大学获得学士学位,从Bridgeport大学获得硕士学位,从Connecticut大学获得工学博士学位。已有超过25年的产业经验。主要从事工程产品软件和系统软件的开发技术工作和管理工作。作为产业的实践者和管理者,Pressman博士主要从事的是航空航天应用中高级工程和制造的CAD/CAM系统的开发,他也从事科学及系统程序设计方面的工作。除了他的产业经验之外,Pressman博士还是Bridgeport大学计算机工程系的兼职副教授和该大学的计算机辅助设计和制造中心的主任。Pressman博士是R.S.Pressman&Associates,Inc公司的总裁,这是一家专门从事软件工程方法和培训的咨询公司。他是公司主要的咨询专家,专门负责帮助其他公司建立有效的软件工程方法。他开发了RSP&A软件工程评估方法,该方法采用独特的数量和质量分析混合的方式,帮助客户评估他们软件工程实践的当前状况。除了给500多个客户提供咨询服务外,R.S.Pressman&Associates,Inc公司还提供大量的软件工程培训及过程改善服务。公司开发了一个艺术式的录像课程“EssentialSoftwareEngineering”,它全面地讲述了产业界关于这一主题的内容。另一个产品“ProcessAdvisor”是指导企业软件工程改进的自测系统。Pressman博士还在产业期刊上发表了许多技术论文,是企业期刊的特约撰稿人并出版了6本书。除了本书外,还有:“MakingSoftwareEngineeringHappen(PrenticeHall出版公司出版)”,这是第一本涉及到改善软件工程实施过程中的主要管理问题的书籍;“SoftwareShock(DorsetHouse出版公司出版)”,该书叙述了软件及其对商业和社会的影响;“AManager'sGuidetoSoftwareEngineering(McGraw-Hill出版公司出版)”,该书使用独特的Q&A方式表示了创立和理解技术的管理指南。Pressman博士是杂志AmericanProgrammer(美国程序员)和IEEESoftware(IEEE软件)的编委,是IEEESoftware的Manager(管理员)专栏的编辑。他还是ACM、IEEE、TauBeta...

内容简介

本书以丰富的信息资源、广泛的角度深刻地论述了软件工程的方方面面,内容包括软件工程的相关语境、管理软件项目的方法、各种软件工程的方法论、面向对象的方法、客户/服务器软件工程、CASE等。本书内容新颖、见解独到,适合大学计算机专业高年级学生、研究生学习,也适合软件工程开发者、组织者、管理者参考。

图书目录

目 录

作者简介

译者简介

前言

第一部分 产品和过程

第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.4软件神话

1.5小结

参考文献

思考题

推荐阅读文献及其他信息源

第2章 过程

2.1软件工程——一种层次化技术

2.1.1过程、方法和工具

2.1.2 软件工程的一般视图

2.2软件过程

2.3软件过程模型

2.4线性顺序模型

2.5原型模型

2.6RAD模型

2.7演化软件过程模型

2.7.1增量模型

2.7.2螺旋模型

2.7.3构件组装模型

2.7.4并发开发模型

2.8形式化方法模型

2.9第四代技术

2.10过程技术

2.11产品和过程

2.12小结

参考文献

思考题

推荐阅读文献及其他信息源

第二部分 软件项目的管理

第3章 项目管理的概念

3.1管理的范围

3.1.1人员

3.1.2问题

3.1.3过程

3.2人员

3.2.1项目参与者

3.2.2项目负责人

3.2.3软件项目组

3.2.4协调和通信问题

3.3问题

3.3.1软件范围

3.3.2问题分解

3.4过程

3.4.1合并问题和过程

3.4.2过程分解

3.5项目

3.6小结

参考文献

思考题

推荐阅读文献及其他信息源

第4章 软件过程和项目的度量

4.1测度、度量和指标

4.2过程和项目领域中的度量

4.2.1过程度量和软件过程改进

4.2.2项目度量

4.3软件测量

4.3.1面向规模的度量

4.3.2面向功能的度量

4.3.3扩展的功能点度量

4.4调和不同的度量方法

4.5软件质量度量

4.5.1概述影响质量的因素

4.5.2测量质量

4.5.3缺陷排除效率

4.6在软件过程中集成度量

4.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第5章 软件项目计划

5.1对估算的观察

5.2项目计划目标

5.3软件范围

5.3.1获取定义软件范围所需的信息

5.3.2一个范围定义的例子

5.4 资源

5.4.1人力资源

5.4.2可复用软件资源

5.4.3环境资源

5.5软件项目估算

5.6分解技术

5.6.1软件规模估算

5.6.2基于问题的估算

5.6.3一个基于LOC估算的例子

5.6.4一个基于FP估算的例子

5.6.5基于过程的估算

5.6.6一个基于过程估算的例子

5.7经验估算模型

5.7.1估算模型的结构

5.7.2COCOMO模型

5.7.3软件方程式

5.8自行开发或购买的决策

5.8.1创建决策树

5.8.2外购

5.9自动估算工具

5.10小结

参考文献

思考题

推荐阅读文献及其他信息源

第6章 风险管理

6.1被动和主动的风险策略

6.2软件风险

6.3识别风险

6.3.1产品规模风险

6.3.2商业影响风险

6.3.3客户相关的风险

6.3.4过程风险

6.3.5技术风险

6.3.6开发环境风险

6.3.7与人员数目及经验相关的风险

6.3.8风险因素和驱动因子

6.4风险预测

6.4.1建立风险表

6.4.2评估风险影响

6.4.3风险评估

6.5风险缓解、监控和管理

6.6安全性风险和危险

6.7RMMM计划

6.8小结

参考文献

思考题

推荐阅读文献及其他信息源

第7章 项目进度安排及跟踪

7.1基本概念

7.1.1关于“延迟”的评注

7.1.2 基本原则

7.2 人员和工作量之间的关系

7.2.1一个例子

7.2.2一个经验关系

7.2.3工作量分布

7.3为软件项目定义任务集合

7.3.1严格度

7.3.2定义适应性准则

7.3.3计算任务集合选择因子的值

7.3.4解释TSS值并选择任务集合

7.4选择软件工程任务

7.5主要任务的求精

7.6定义任务网络

7.7进度安排

7.7.1时间表

7.7.2跟踪进度

7.8项目计划

7.9小结

参考文献

思考题

推荐阅读文献及其他信息源

第8章 软件质量保证

8.1质量概念

8.1.1质量

8.1.2质量控制

8.1.3质量保证

8.1.4 质量的成本

8.2质量运动

8.3软件质量保证

8.3.1背景

8.3.2SQA活动

8.4软件复审

8.4.1软件缺陷对成本的影响

8.4.2缺陷的放大和消除

8.5正式技术复审

8.5.1复审会议

8.5.2复审报告和记录保存

8.5.3复审指南

8.6SQA的形式化方法

8.7统计质量保证

8.8软件可靠性

8.8.1可靠性和可用性的度量

8.8.2软件的安全和危险的分析

8.9SQA计划

8.10ISO9000质量标准

8.10.1ISO对质量保证系统的方法

8.10.2ISO9001标准

8.11小结

参考文献

思考题

推荐阅读文献及其他信息源

第9章 软件配置管理

9.1软件配置管理

9.1.1基线

9.1.2软件配置项

9.2SCM过程

9.3软件配置中对象的标识

9.4版本控制

9.5变化控制

9.6配置审计

9.7状态报告

9.8SCM标准

9.9小结

参考文献

思考题

推荐阅读文献及其他信息源

第三部分 传统软件工程方法

第10章 系统工程

10.1基于计算机的系统

10.2系统工程层次结构

10.2.1系统建模

10.2.2信息工程:概述

10.2.3产品工程:概述

10.3信息工程

10.4信息策略计划

10.4.1企业建模

10.4.2业务级数据建模

10.5业务域分析

10.5.1处理建模

10.5.2信息流建模

10.6产品工程

10.6.1系统分析

10.6.2说明客户需要

10.6.3可行性研究

10.6.4经济分析

10.6.5技术分析

10.7系统体系结构建模

10.8系统建模和仿真

10.9系统规约

10.10小结

参考文献

思考题

推荐阅读文献及其他信息源

第11章 分析概念和原则

11.1需求分析

11.2通信技术

11.2.1过程的启动

11.2.2便利的应用规约技术

11.2.3质量功能部署

11.3分析原则

11.3.1信息域

11.3.2建模

11.3.3划分

11.3.4基本视图和实现视图

11.4软件原型

11.4.1选择原型方法

11.4.2原型方法和工具

11.5规约

11.5.1规约原则

11.5.2表示

11.5.3软件需求规约

11.6规约复审

11.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第12章 分析建模

12.1简史

12.2分析模型的元素

12.3数据建模

12.3.1数据对象、属性和关系

12.3.2基数和形态

12.3.3实体—关系图

12.4功能建模和信息流

12.4.1数据流图

12.4.2针对实时系统的扩展

12.4.3Ward和Mellor扩展

12.4.4Hatley和Pirbhai扩展

12.5行为建模

12.6结构化分析的技巧

12.6.1创建实体—关系图

12.6.2创建数据流模型

12.6.3创建控制流模型

12.6.4控制规约

12.6.5加工规约

12.7数据字典

12.8其他传统分析方法概述

12.8.1数据结构化系统开发

12.8.2Jackson系统开发

12.8.3SADT

12.9小结

参考文献

思考题

推荐阅读文献及其他信息源

第13章 设计概念和原则

13.1软件设计和软件工程

13.2设计过程

13.2.1设计和软件质量

13.2.2软件设计的演化

13.3设计原则

13.4设计概念

13.4.1抽象

13.4.2求精

13.4.3模块化

13.4.4软件体系结构

13.4.5控制层次

13.4.6结构划分

13.4.7数据结构

13.4.8软件过程

13.4.9信息隐蔽

13.5有效的模块设计

13.5.1功能独立性

13.5.2内聚

13.5.3耦合

13.6针对有效模块化的设计启发

13.7设计模型

13.8设计文档

13.9小结

参考文献

思考题

推荐阅读文献及其他信息源

第14章 设计方法

14.1数据设计

14.2体系结构设计

14.2.1贡献者

14.2.2应用域

14.3体系结构设计过程

14.3.1变换流

14.3.2事务流

14.4 变换映射

14.4.1一个实例

14.4.2设计步骤

14.5事务映射

14.5.1一个实例

14.5.2 设计步骤

14.6 设计的后处理

14.7体系结构设计优化

14.8接口设计

14.8.1内部和外部接口设计

14.8.2用户界面设计

14.9人机界面设计

14.9.1界面设计模型

14.9.2任务分析和建模

14.9.3设计问题

14.9.4实现工具

14.9.5设计评估

14.10界面设计指南

14.10.1一般交互

14.10.2信息显示

14.10.3数据输入

14.11过程设计

14.11.1结构化程序设计

14.11.2图形设计符号

14.11.3表格设计符号

14.11.4程序设计语言

14.11.5一个PDL实例

14.12小结

参考文献

思考题

推荐阅读文献及其他信息源

第15章 实时系统的设计

15.1系统考虑

15.2实时系统

15.2.1集成和性能问题

15.2.2中断处理

15.2.3实时数据库

15.2.4实时操作系统

15.2.5实时语言

15.2.6任务同步和通信

15.3实时系统的分析和仿真

15.3.1实时系统分析的数学工具

15.3.2仿真和建模技术

15.4实时设计

15.5小结

参考文献

思考题

推荐阅读文献及其他信息源

第16章 软件测试技术

16.1软件测试基础

16.1.1测试目标

16.1.2测试原则

16.1.3可测试性

16.2测试用例设计

16.3白盒测试

16.4基本路径测试

16.4.1流图符号

16.4.2环形复杂性

16.4.3导出测试用例

16.4.4图矩阵

16.5控制结构测试

16.5.1条件测试

16.5.2数据流测试

16.5.3循环测试

16.6黑盒测试

16.6.1基于图的测试方法

16.6.2等价划分

16.6.3边界值分析

16.6.4比较测试

16.7针对专门环境和应用的测试

16.7.1GUI测试

16.7.2客户/服务器体系结构的测试

16.7.3测试文档和帮助设施

16.7.4实时系统测试

16.8小结

参考文献

思考题

推荐阅读文献及其他信息源

第17章 软件测试策略

17.1软件测试的策略途径

17.1.1验证和确认

17.1.2软件测试的组织

17.1.3一种软件测试策略

17.1.4测试完成的标准

17.2策略问题

17.3单元测试

17.3.1单元测试考虑

17.3.2单元测试规程

17.4集成测试

17.4.1自顶向下集成

17.4.2自底向上集成

17.4.3回归测试

17.4.4关于集成测试的讨论

17.4.5集成测试文档

17.5确认测试

17.5.1确认测试的标准

17.5.2配置复审

17.5.3Alpha和Beta测试

17.6系统测试

17.6.1恢复测试

17.6.2安全测试

17.6.3压力测试

17.6.4性能测试

17.7调试的技巧

17.7.1调试过程

17.7.2心理考虑

17.7.3调试方法

17.8小结

参考文献

思考题

推荐阅读文献及其他信息源

第18章 软件的技术度量

18.1软件质量

18.1.1McCall的质量因素

18.1.2FURPS

18.1.3到量化视图的变迁

18.2软件技术度量框架

18.2.1技术度量的挑战

18.2.2测度原则

18.2.3有效软件度量的属性

18.3分析模型的度量

18.3.1基于功能的度量

18.3.2“撞击值”度量

18.3.3规约质量的度量

18.4设计模型的度量

18.4.1高层设计度量

18.4.2构件级设计度量

18.4.3界面设计度量

18.5源代码度量

18.6对测试的度量

18.7对维护的度量

18.8小结

参考文献

思考题

推荐阅读文献及其他信息源

第四部分 面向对象的软件工程

第19章 面向对象的概念和原则

19.1面向对象的范型

19.2面向对象概念

19.2.1类和对象

19.2.2属性

19.2.3操作方法和服务

19.2.4消息

19.2.5封装、继承和多态

19.3标识对象模型的元素

19.3.1标识类和对象

19.3.2表示属性

19.3.3定义操作

19.3.4完成对象定义

19.4面向对象软件项目的管理

19.4.1OO的公共过程框架

19.4.2面向对象项目的度量和估算

19.4.3一种OO估算和进度安排方法

19.4.4面向对象项目的跟踪过程

19.5小结

参考文献

思考题

推荐阅读文献及其他信息源

第20章 面向对象分析

20.1面向对象的分析

20.1.1传统方法和OO方法

20.1.2OOA概述

20.2领域分析

20.2.1复用和领域分析

20.2.2 领域分析过程

20.300分析模型的类属成分

20.4OOA过程

20.4.1使用实例

20.4.2类—责任—协作者建模

20.4.3定义结构和层次

20.4.4定义主题和子系统

20.5对象—关系模型

20.6对象—行为模型

20.6.1用使用实例标识事件

20.6.2状态表示

20.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第21章 面向对象设计

21.1面向对象系统的设计

21.1.1传统方法和OO方法

21.1.2设计问题

21.1.3OOD概述

21.2OO设计模型的类属成分

21.3系统设计过程

21.3.1划分分析模型

21.3.2并发性和子系统分配

21.3.3任务管理构件

21.3.4数据管理构件

21.3.5资源管理构件

21.3.6人机界面构件

21.3.7子系统间通信

21.4对象设计过程

21.4.1对象描述

21.4.2设计算法和数据结构

21.4.3程序构件和接口

21.5设计模式

21.5.1描述设计模式

21.5.2 在设计中使用设计模式

21.6面向对象编程

21.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第22章 面向对象测试

22.1扩大测试的视角

22.2测试OOA和OOD模型

22.2.1OOA和OOD模型的正确性

22.2.2OOA和OOD模型的一致性

22.3面向对象的测试策略

22.3.1在OO语境中的单元测试

22.3.2在OO语境中的集成测试

22.3.3在OO语境中的有效性测试

22.4OO软件的测试用例设计

22.4.1OO概念的测试用例设计的含义

22.4.2传统测试用例设计方法的可用性

22.4.3基于故障的测试

22.4.4OO编程对测试的影响

22.4.5测试用例和类层次

22.4.6基于场景的测试设计

22.4.7测试表层结构和深层结构

22.5在类级别上可用的测试方法

22.5.1对OO类的随机测试

22.5.2在类级别上的划分测试

22.6类间测试用例设计

22.6.1多个类测试

22.6.2从行为模型导出的测试

22.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第23章 面向对象系统的技术度量

23.1面向对象度量的目的

23.2区别性的特征

23.2.1局部化

23.2.2封装

23.2.3信息隐蔽

23.2.4继承

23.2.5抽象

23.3对OO设计模型的度量

23.4面向类的度量

23.4.1CK度量套件

23.4.2Lorenz和Kidd建议的度量

23.5面向操作的度量

23.6对面向对象测试的度量

23.7对面向对象项目的度量

23.8小结

参考文献

思考题

推荐阅读文献及其他信息源

第五部分 软件工程高级课题

第24章 形式化方法

24.1基本概念

24.1.1少量的形式化方法的不足

24.1.2软件开发中的数学

24.1.3形式化方法概念

24.2数学预备知识

24.2.1集合和构造性规约

24.2.2集合运算符

24.2.3逻辑运算符

24.2.4序列

24.3应用数学符号描述形式规约

24.4形式化规约语言

24.5用Z表示一个软件构件的例子

24.6形式化方法的十条戒律

24.7形式化方法——未来之路

24.8小结

参考文献

思考题

推荐阅读文献及其他信息源

第25章 净室软件工程

25.1净室方法

25.1.1净室策略

25.1.2什么使得净室独特?

25.2功能规约

25.2.1黑盒规约

25.2.2状态盒规约

25.2.3清晰盒规约

25.3设计求精和验证的优点

25.3.1设计求精和验证

25.3.2设计验证的优点

25.4净室测试

25.4.1统计的使用测试

25.4.2认证

25.5小结

参考文献

思考题

推荐阅读文献及其他信息源

第26章 软件复用

26.1管理问题

26.1.1复用的障碍

26.1.2硬件类比

26.1.3建立复用途径的一些建议

26.2复用过程

26.2.1可复用的软件制品

26.2.2一个过程模型

26.3领域工程

26.3.1领域分析过程

26.3.2领域特征

26.3.3结构建模和结构点

26.4建造可复用构件

26.4.1为了复用的分析和设计

26.4.2构造方法

26.4.3基于构件的开发

26.5分类和检索构件

26.5.1描述可复用构件

26.5.2复用环境

26.6软件复用经济学

26.6.1对质量、生产率和成本的影响

26.6.2使用结构点的成本分析

26.6.3复用度量

26.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第27章 再工程

27.1业务过程再工程

27.1.1业务过程

27.1.2业务过程再工程的原则

27.1.3BPR模型

27.1.4几句警告

27.2软件再工程

27.2.1软件维护

27.2.2软件再工程过程模型

27.3逆向工程

27.3.1理解处理的逆向工程

27.3.2理解数据的逆向工程

27.3.3用户界面的逆向工程

27.4重构

27.4.1代码重构

27.4.2数据重构

27.5正向工程

27.5.1向客户/服务器体系结构的正向工程

27.5.2向面向对象体系结构的正向工程

27.5.3用户界面的正向工程

27.6再工程经济学

27.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第28章 客户/服务器软件工程

28.1客户/服务器系统的结构

28.1.1C/S系统的软件构件

28.1.2软件构件的分布

28.1.3分布应用构件的指南

28.1.4连接C/S软件构件

28.1.5中间件和对象请求代理体系结构

28.2对C/S系统的软件工程

28.3分析建模问题

28.4对C/S系统的设计

28.4.1传统设计方法

28.4.2数据库设计

28.4.3某设计方法的概述

28.4.4加工设计的迭代

28.5测试问题

28.5.1整体C/S测试策略

28.5.2C/S测试策略

28.6小结

参考文献

思考题

推荐阅读文献及其他信息源

第29章 计算机辅助软件工程

29.1什么是CASE?

29.2构造CASE的积木块

29.3CASE工具分类

29.4集成化CASE环境

29.5集成体系结构

29.6CASE中心库

29.6.1在I-CASE中中心库的角色

29.6.2特征和内容

29.7小结

参考文献

思考题

推荐阅读文献及其他信息源

第30章 未来之路

30.1软件的重要性——再论

30.2变化的范围

30.3人及他们建造系统的方式

30.4“新”的软件过程

30.5表示信息的新模式

30.6技术作为推动力

30.7结束语

参考文献

思考题

推荐阅读文献及其他信息源