软件工程:实践者的研究方法(原书第7版·本科教学版)
作者 : (美)Roger S.Pressman 著
译者 : 郑人杰 马素霞 等译
丛书名 : 计算机科学丛书
出版日期 : 2011-07-18
ISBN : 978-7-111-35350-8
定价 : 55.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 410
开本 : 16
原书名 : Software Engineering:A Practitioner's Approach,Seventh Edition
原出版社: McGraw-Hill
属性分类: 教材
包含CD :
绝版 :
图书简介

本书全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第7版在结构和内容上均有调整、更新和充实,更加突出软件过程,强调普遍使用的软件工程方法。本版基于原书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。

图书特色

软件工程
实践者的研究方法
(原书第7版·本科教学版)
(美)Roger S. Pressman 著 郑人杰 马素霞 等译

Roger Pressman编写的这部翔实而全面的软件工程指南,广泛适合软件工程专业的学生及投身软件工程实践或需要参与这种实践的软件开发人员和管理人员。
 —— 《IEEE Software》
这是一本经典的现代教材,叙述清晰而又具有权威性。本书包含大量插图、例子、习题和参考资料……如果读者心存疑问:“软件工程是什么?它现在在哪里?”那么最好阅读这本书。
—— 《ACM Computing Reviews》 

本书主要内容包括:
第一部分 软件过程,介绍了说明性模型和敏捷过程模型。
第二部分 建模,介绍了现代分析与设计方法,重点放在基于UML的建模方面。
第三部分 质量管理,是第7版中新增加的内容,描述质量评审技术、软件质量保证、软件测试、软件配置管理的各个方面。
第四部分 软件项目管理,介绍与计划、管理和控制软件项目有关的主题。

作者简介:
Roger S. Pressman 软件过程改善和软件工程技术方面国际知名的权威人士。30多年来,他作为软件工程师、管理人员、教授、作者及咨询顾问始终工作在软件工程领域。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任《IEEE Software》杂志的Manager专栏的编辑。Pressman博士是知名的演讲者,曾在许多行业会议上演讲,他还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)等组织的成员。

图书前言

成功的计算机软件能够很好地满足使用者的要求,能在相当长时间内无故障地运行,容易修改还很好用,这样的软件能够也确实会把事情办好。但是,如果软件做得不好,用户就会不满意,它经常出错,难于修改,甚至难于使用,就可能(也的确)会把事情办糟。我们当然希望开发出好的软件,把事情办好,避免那些潜在的糟糕事情发生。要获得成功,在设计和构建软件时需要有规范,需要采用工程化方法。
  在本书第1版问世以来的近30年中,软件工程已经从少数倡导者提出的一些朦胧概念发展成为一门正规的工程学科,已被公认为是一个值得深入研究、认真学习和热烈讨论的课题。在整个行业中,软件工程师已经代替程序员成为人们优先选择的工作岗位。软件过程模型、软件工程方法和软件工具都已在全行业的所有环节成功采用。
  尽管管理人员和工作在第一线的专业人员都承认,需要有更为规范的软件方法,但他们却始终在争论着应该采用什么样的规范。有许多个人和公司至今仍在杂乱无章地开发着自己的软件,甚至即使他们正在开发的系统要服务于当今最为先进的技术,也仍然如此。许多专业人员和学生并不了解现代方法。于是所开发的软件质量很差,造成了严重的后果。此外,有关软件工程方法真实性质的争论一直持续进行着。软件工程的重要地位问题已成为研究课题。人们对软件工程的态度已经有所改变,研究工作已取得了进展,不过要成为一门完全成熟的学科还有大量的工作要做。
  作者希望本书第7版成为引导读者进入正在成熟的工程学科的入门读物。和以前的六个版本一样,第7版对学生和专业人员同样具有很强的吸引力,它既是软件专业人员的工作指南,同时也是大学高年级学生和一年级研究生的综合性参考书。
  第7版中包含了很多新的内容,它绝不是前一版的简单更新。这一版不仅作了适当修改,而且调整了全书的结构,以改进教学顺序;同时更加强调一些新的和重要的软件工程过程和软件工程实践知识。此外,下面的图示表明了已作了修订与更新的“支持系统”,它为学生、教师和专业人员提供了大量的专业知识资源,从而丰富和充实了本书的内容。读者可查阅专为本书建立的网站(www.mhhe. com/pressman)获得这些资源。
第7版内容
  本版共有22章,分为四个部分。
   第一部分  软件过程,给出了软件过程的各种不同观点,考虑到所有重要的过程模型,还涉及惯用过程和敏捷过程在指导思想上的分歧。
   第二部分  建模,给出了分析方法和设计方法,其中重点介绍了面向对象方法和UML建模。
   第三部分  质量管理,提供了有关质量管理的概念、规程、技术和方法,使得软件团队能够很好地评估软件质量,评审软件工程工作产品,实施软件质量保证规程,并正确地运用有效的测试策略和战术。
第7版支持系统
   第四部分  软件项目管理,介绍了与计划、管理和控制软件开发项目的人员有关的问题。
   沿用前面几版的做法,全书各章中仍然使用了对话框(名为SafeHome),框中针对某个虚构的软件团队工作中遇到的困难展开对话,其目的是对相关各章的内容给出方法与工具的补充材料。
致谢
  本书第7版的工作是我一生中持续最久的技术项目。甚至在书稿完成后,我仍然不断地从一些技术文献中提取信息,准备加以吸收和组织,并且对来自世界各地读者的意见和建议加以评估和分类。正是这个原因,我十分感谢这些书籍和文章(包括发表在纸制媒体和电子媒体上)的作者,在过去近30年中是他们给了我不少见解和想法。
  我要特别感谢渥太华(Ottawa)大学的Tim Lethbridge,他帮助我制作了UML和OCL的案例及配合本书内容的案例研究。Colby学院的Dale Skrien制作了附录1的UML教材。他们的帮助和意见都是十分珍贵的。还要特别感谢密歇根大学迪尔本分校(University of Michigan-Dearborn)的Bruce Maxim,他帮助我开发了与本书配套的网站。最后我想感谢第7版的审校人员,他们提出的有深度的评审意见和批评都非常有价值。
Osman Balci, SK Jain,
  Virginia Tech University   National Institute of Technology Hamirpur
Max Fomitchev, Saeed Monemi,
  Penn State University   Cal Poly Pomona
Jerry (Zeyu) Gao, Ahmed Salem,
  San Jose State University   California State University
Guillermo Garcia, Vasudeva Varma,
  Universidad Alfonso X Madrid   IIIT Hyderabad
Pablo Gervas,
  Universidad Complutense de Madrid
  使用本书早期版本的产业界专业人员、大学教授和学生塑造了本书第7版的内容,他们花了很多时间提出建议、批评和想法,在此向他们致意。另外,还要感谢世界各地许多产业界客户,他们教给我的要比我能够教给他们的还要多。
  随着本书版本的更新,我的儿子Mathew和Michael已经长大成人。他们在现实生活中的成熟、品质和成功给了我灵感,没有什么比这更让我感到自豪了。最后,感谢我的妻子Barbara,她的宽容允许我花如此多的时间在办公室,她还鼓励我继续开展下一个版本的工作。
Roger S. Pressman

上架指导

计算机\软件工程

封底文字

Roger Pressman编写的这部翔实而全面的软件工程指南,广泛适合软件工程专业的学生及投身软件工程实践或需要参与这种实践的软件开发人员和管理人员。
  ——《IEEE Software》
这是一本经典的现代教材,叙述清晰而又具有权威性。本书包含大量插图、例子、习题和参考资料……如果读者心存疑问:“软件工程是什么?它现在在哪里?”那么最好阅读这本书。
——《ACM Computing Reviews》

本书自30年前第1版问世以来,一直受到软件工程界的高度重视,对该学科的发展具有深刻影响,其权威性是公认的、无可置疑的。它在全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第7版在结构和内容上均有调整、更新和充实,更加突出软件过程,强调普遍使用的软件工程方法。
本版基于原书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。


本版基于原书第7版进行精简,使内容更符合普通高校本科生的课程大纲,让本科生可以在一学期内掌握软件工程的最核心基础内容:
第一部分 软件过程,介绍了说明性模型和敏捷过程模型。
第二部分 建模,介绍了现代分析与设计方法,重点放在基于UML的建模方面。
第三部分 质量管理,是第7版中新增加的内容,描述质量评审技术、软件质量保证、软件测试、软件配置管理的各个方面。
第四部分 软件项目管理,介绍与计划、管理和控制软件项目有关的主题。

作者简介:
Roger S. Pressman 软件过程改善和软件工程技术方面的国际知名的权威人士。30多年来,他作为软件工程师、管理人员、教授、作者及咨询顾问始终工作在软件工程领域。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任《IEEE Software》杂志的Manager专栏的编辑。Pressman博士是知名的演讲者,曾在许多行业会议上演讲,他还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)等组织的成员。

翻译版:
ISBN:978-7-111-33581-8
定价:79.00

英文版:
ISBN:978-7-111-31871-2
定价:75.00

英文精编版:
ISBN:978-7-111-3
定价:

作者简介

(美)Roger S.Pressman 著:Roger S.Pressman 博士是软件过程改善和软件工程技术方面的国际知名的权威人士。30多年来,他作为软件工程师、管理人员、教授、作者及咨询顾问始终工作在软件工程领域。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任引《IEEE Software》杂志的Manager专栏的编辑。Pressman博士是知名的演讲者,曾在许多行业会议上演讲,他还是美国计算机协会(ACM)、美国电气与电子工程师协会(1EEE)等组织的成员。

译者简介

郑人杰 马素霞 等译:暂无简介

译者序

本书是国际知名软件工程专家Roger S. Pressman最近编著、并由美国McGraw-Hill出版社出版的《Software Engineering:A Practitioner誷 Approach》第7版的译本。该书自近30年前第1版问世以来,在软件工程界始终发挥着巨大而深远的影响,其权威性是公认的、无可置疑的,它在培养软件工程专业人才方面所起的作用也是显而易见的。
  本人自上世纪80年代中期开始从事高校软件工程课的教学工作,多年来一直是该书各个版本的忠实读者。这本书已成为我的重要教学参考,给了我许多启发和帮助。
  如今基于计算机的系统已经广泛而深入地渗透到国民经济、国防和人们日常生活的各个领域。计算机软件已成为许多关键系统的核心,甚至是灵魂,其作用越来越突出。如何提供合格、优良软件的问题必须受到重视。本书系统地论述了软件工程领域最新的基本知识,包括新的概念、原则、技术、方法和工具。同时书中还提供了许多供读者进一步研究的线索。
  与五年前的第6版相比,本书继承了一些优点,同时也做了不少改动、扩充和更新。
第7版特点
  1. 这个本科教学版内容分为四个部分,共22章。四个部分涉及:软件过程、建模、质量管理、软件项目管理。
  2. 与前一版本相比,本书在内容上更加突出了质量管理,将其作为四个部分之一。
  3. 在各章的最后仍然给出了小结、习题与思考题以及推荐读物与阅读信息,这些都非常适合有兴趣、有需要的读者沿着这些线索开展进一步的学习和研究。
  4. 本书仍然保留了历次版本的版面格式传统,即除了各章节文中插入的图表外,还穿插了许多方框,框中内容丰富多彩、形式多样,它们非常有利于理解相关的内容。这些方框包括:
  ?各章开头的“要点浏览”和“关键概念”。
  ?全书各章贯穿了一个统一的实例:住宅安全系统(SafeHome)的开发人员对话。
  ?各章文中夹有专题性注释框,为读者提供了专题信息,如:
  “任务集”—应开展工作的说明;
  “信息”—专门术语的解释;
  “软件工具”—作者推荐的最新市售软件工具。
  ?页边注,给出了“关键概念”、“引述”、“网上参考”、“建议”和“问题”等解释或信息。
读者对象
  总体上,本书适合于高校计算机相关专业本科教学,为软件工程课的教学服务。
  参加本书翻译工作的以华北电力大学和清华大学的教师为主,包括马素霞(第14~16章,附录)、宋兰(第4~6章)、韩新启(第11~13章)、王素琴(第18~20章)、谢萍(第21~22章)、白晓颖(第1、2章)、董渊(第3章)、石敏(第7、8章)、周长玉(第9、10章)、马应龙(第17、13章)。在翻译过程中,得到了清华大学计算机系宋克清、毛苗同学及华北电力大学控制与计算机工程学院董哲、王琰洁、孙胜晶、赵东旭、秦贞远同学的帮助,内蒙古大学的郇失宇老师专门抽出时间对第3两章进行了审阅,在此对他们的辛勤劳动表示感谢。本人将全部译稿、马素霞教授将大部分译稿作了仔细审核与修改。尽管已经尽了最大的努力,但限于水平,对内容的理解和中文表达难免有不当之处,敬请读者批评指正。另外,原书中个别的问题(包括错误及不妥之处)均在译者注中指出。
  总之,这是一本非常优秀的软件工程读物,本人十分高兴地向国内读者推荐。我们相信,认真阅读它,会使你获益匪浅。
郑人杰
2011年1月

图书目录

出版者的话
改编者序
译者序
前言
第1章 软件和软件工程 1
1.1 软件的本质 2
1.1.1 定义软件 3
1.1.2 软件应用领域 5
1.1.3 遗留软件 6
1.2 软件工程 7
1.3 软件过程 8
1.4 软件工程实践 10
1.4.1 实践的精髓 10
1.4.2 一般原则 11
1.5 软件神话 13
1.6 小结 14
习题与思考题 15
推荐读物与阅读信息 15
第一部分 软件过程
第2章 过程模型 18
2.1 通用过程模型 19
2.1.1 定义框架活动 20
2.1.2 明确任务集 21
2.1.3 过程模式 21
2.2 惯用过程模型 23
2.2.1 瀑布模型 24
2.2.2 增量过程模型 25
2.2.3 演化过程模型 26
2.2.4 协同模型 30
2.2.5 演化模型的最终评述 31
2.3 专用过程模型 31
2.3.1 基于构件的开发 32
2.3.2 形式化方法模型 32
2.3.3 面向方面的软件开发 32
2.4 统一过程 34
2.4.1 简史 34
2.4.2 统一过程的阶段 34
2.5 过程技术 35
2.6 产品与过程 36
2.7 小结 37
习题与思考题 37
推荐读物与阅读信息 38
第3章 敏捷开发 39
3.1 什么是敏捷 40
3.2 敏捷及变更的成本费用 41
3.3 敏捷过程是什么 41
3.3.1 敏捷原则 42
3.3.2 敏捷开发的战略 42
3.3.3 人的因素 43
3.4 极限编程 44
3.4.1 极限编程的权值 44
3.4.2 极限编程过程 45
3.4.3 工业极限编程 47
3.4.4 关于XP的争论 48
3.5 其他敏捷过程模型 49
3.5.1 自适应软件开发 50
3.5.2 Scrum 51
3.5.3 动态系统开发方法 52
3.5.4 Crystal 53
3.5.5 特征驱动开发 53
3.5.6 精益软件开发 54
3.5.7 敏捷建模 54
3.5.8 敏捷统一过程 55
3.6 敏捷过程工具集 56
3.7 小结 57
习题与思考题 57
推荐读物与阅读信息 58
第二部分 建模
第4章 理解需求 62
4.1 需求工程 63
4.2 建立根基 67
4.2.1 确认利益相关者 67
4.2.2 识别多重观点 67
4.2.3 协同合作 67
4.2.4 首次提问 68
4.3 导出需求 68
4.3.1 协作收集需求 69
4.3.2 质量功能部署 71
4.3.3 用户场景 71
4.3.4 导出工作产品 72
4.4 开发用例 73
4.5 构建需求模型 76
4.5.1 需求模型的元素 77
4.5.2 分析模式 79
4.6 协商需求 79
4.7 确认需求 80
4.8 小结 81
习题与思考题 81
推荐读物与阅读信息 82
第5章 需求建模:场景、信息与类分析 84
5.1 需求分析 85
5.1.1 总体目标和原理 85
5.1.2 分析的经验原则 86
5.1.3 域分析 86
5.1.4 需求建模的方法 88
5.2 基于场景建模 89
5.2.1 新建初始用例 89
5.2.2 细化初始用例 91
5.2.3 编写正规的用例 92
5.3 补充用例的UML模型 94
5.3.1 开发活动图 94
5.3.2 泳道图 94
5.4 数据建模概念 95
5.4.1 数据对象 96
5.4.2 数据属性 96
5.4.3 关系 97
5.5 基于类的建模 98
5.5.1 识别分析类 98
5.5.2 描述属性 100
5.5.3 定义操作 101
5.5.4 类-职责-协作者建模 103
5.5.5 关联和依赖 107
5.5.6 分析包 108
5.6 小结 109
习题与思考题 109
推荐读物与阅读信息 110
第6章 需求建模:流程、行为和模式 111
6.1 需求建模策略 111
6.2 面向流程建模 112
6.2.1 创建数据流模型 112
6.2.2 创建控制流模型 114
6.2.3 控制规格说明 114
6.2.4 处理规格说明 116
6.3 生成行为模型 117
6.3.1 识别用例事件 118
6.3.2 状态表现 118
6.4 需求建模的模式 120
6.4.1 发现分析模式 121
6.4.2 需求模式举例:执行器-传感器 121
6.5 小结 124
习题与思考题 124
推荐读物与阅读信息 125
第7章 设计概念 126
7.1 软件工程中的设计 127
7.2 设计过程 129
7.2.1 软件质量指导原则和属性 129
7.2.2 软件设计的演化 130
7.3 设计概念 131
7.3.1 抽象 132
7.3.2 体系结构 132
7.3.3 模式 133
7.3.4 关注点分离 133
7.3.5 模块化 133
7.3.6 信息隐蔽 134
7.3.7 功能独立 134
7.3.8 求精 135
7.3.9 方面 135
7.3.10 重构 136
7.3.11 面向对象的设计概念 137
7.3.12 设计类 137
7.4 设计模型 139
7.4.1 数据设计元素 140
7.4.2 体系结构设计元素 140
7.4.3 接口设计元素 140
7.4.4 构件级设计元素 142
7.4.5 部署级设计元素 142
7.5 小结 143
习题与思考题 143
推荐读物与阅读信息 144
第8章 体系结构设计 145
8.1 软件体系结构 145
8.1.1 什么是体系结构 146
8.1.2 体系结构为什么重要 147
8.1.3 体系结构描述 147
8.1.4 体系结构决策 148
8.2 体系结构类型 148
8.3 体系结构风格 150
8.3.1 体系结构风格的简单分类 151
8.3.2 体系结构模式 153
8.3.3 组织和求精 154
8.4 体系结构设计 154
8.4.1 系统环境的表示 154
8.4.2 定义原型 155
8.4.3 将体系结构精化为构件 156
8.4.4 描述系统实例 157
8.5 评估可选的体系结构设计 158
8.5.1 体系结构权衡分析方法 158
8.5.2 体系结构复杂性 160
8.5.3 体系结构描述语言 160
8.6 使用数据流进行体系结构映射 161
8.6.1 变换映射 161
8.6.2 精化体系结构设计 166
8.7 小结 167
习题与思考题 167
推荐读物与阅读信息 167
第9章 构件级设计 169
9.1 什么是构件 170
9.1.1 面向对象的观点 170
9.1.2 传统观点 171
9.1.3 过程相关的观点 172
9.2 设计基于类的构件 173
9.2.1 基本设计原则 173
9.2.2 构件级设计指导方针 176
9.2.3 内聚性 176
9.2.4 耦合性 178
9.3 实施构件级设计 179
9.4 设计传统构件 183
9.4.1 图形化设计表示 183
9.4.2 表格式设计表示 184
9.4.3 程序设计语言 185
9.5 基于构件的开发 186
9.5.1 领域工程 187
9.5.2 构件合格性检验、适应性修改与组合 187
9.5.3 复用的分析与设计 189
9.5.4 构件分类与检索 189
9.6 小结 190
习题与思考题 191
推荐读物与阅读信息 191
第10章 用户界面设计 193
10.1 黄金规则 194
10.1.1 用户操纵控制 194
10.1.2 减轻用户记忆负担 195
10.1.3 保持界面一致 196
10.2 用户界面的分析与设计 197
10.2.1 用户界面分析和设计模型 197
10.2.2 过程 198
10.3 界面分析 199
10.3.1 用户分析 199
10.3.2 任务分析和建模 200
10.3.3 显示内容分析 204
10.3.4 工作环境分析 204
10.4 界面设计步骤 205
10.4.1 应用界面设计步骤 205
10.4.2 用户界面设计模式 207
10.4.3 设计问题 207
10.5 设计评估 209
10.6 小结 210
习题与思考题 211
推荐读物与阅读信息 211
第三部分 质量管理
第11章 质量概念 214
11.1 什么是质量 215
11.2 软件质量 215
11.2.1 Garvin的质量维度 216
11.2.2 McCall的质量因素 217
11.2.3 ISO 9126质量因素 217
11.2.4 定向质量因素 218
11.2.5 过渡到量化观点 219
11.3 软件质量困境 219
11.3.1 “足够好”的软件 219
11.3.2 质量成本 220
11.3.3 风险 221
11.3.4 疏忽和责任 222
11.3.5 质量和安全 222
11.3.6 管理活动的影响 222
11.4 实现软件质量 223
11.4.1 软件工程方法 223
11.4.2 项目管理技术 223
11.4.3 质量控制 224
11.4.4 质量保证 224
11.5 小结 224
习题与思考题 224
推荐读物与阅读信息 225
第12章 评审技术 226
12.1 软件缺陷对成本的影响 227
12.2 缺陷放大和消除 227
12.3 评审度量及其应用 229
12.3.1 分析度量数据 229
12.3.2 评审的成本效益 230
12.4 评审:正式程度 231
12.5 非正式评审 231
12.6 正式技术评审 233
12.6.1 评审会议 233
12.6.2 评审报告和记录保存 234
12.6.3 评审指导原则 234
12.6.4 样本驱动评审 235
12.7 小结 236
习题与思考题 236
推荐读物与阅读信息 237
第13章 软件质量保证 238
13.1 背景问题 239
13.2 软件质量保证的要素 239
13.3 软件质量保证的任务、目标和度量 241
13.3.1 软件质量保证任务 241
13.3.2 目标、属性和度量 241
13.4 软件质量保证的形式化方法 242
13.5 统计软件质量保证 243
13.5.1 一个普通的例子 243
13.5.2 软件工程中的六西格玛 244
13.6 软件可靠性 244
13.6.1 可靠性和可用性的测量 245
13.6.2 软件安全 246
13.7 ISO 9000质量标准 246
13.8 SQA计划 247
13.9 产品度量框架 248
13.9.1 测度、度量和指标 249
13.9.2 产品度量的挑战 249
13.9.3 测量原则 250
13.9.4 面向目标的软件测量 250
13.9.5 有效软件度量的属性 251
13.10 基于功能的度量 251
13.11 小结 254
习题与思考题 254
推荐读物与阅读信息 255
第14章 软件测试策略 256
14.1 软件测试的策略性方法 257
14.1.1 验证与确认 257
14.1.2 软件测试的组织 258
14.1.3 软件测试策略—宏观 258
14.1.4 测试完成的标准 260
14.2 策略问题 260
14.3 传统软件的测试策略 261
14.3.1 单元测试 261
14.3.2 集成测试 263
14.4 面向对象软件的测试策略 267
14.4.1 面向对象环境中的单元测试 267
14.4.2 面向对象环境中的集成测试 268
14.5 确认测试 268
14.5.1 确认测试准则 268
14.5.2 配置评审 269
14.5.3 a测试与b测试 269
14.6 系统测试 270
14.6.1 恢复测试 270
14.6.2 安全测试 270
14.6.3 压力测试 271
14.6.4 性能测试 271
14.6.5 部署测试 271
14.7 调试技巧 272
14.7.1 调试过程 272
14.7.2 心理因素 273
14.7.3 调试策略 274
14.7.4 纠正错误 275
14.8 小结 275
习题与思考题 276
推荐读物与阅读信息 276
第15章 测试传统的应用系统 278
15.1 软件测试基础 279
15.2 测试的内部视角和外部视角 280
15.3 白盒测试 281
15.4 基本路径测试 281
15.4.1 流图表示 281
15.4.2 独立程序路径 282
15.4.3 导出测试用例 284
15.5 控制结构测试 285
15.5.1 条件测试 285
15.5.2 数据流测试 286
15.5.3 循环测试 286
15.6 黑盒测试 287
15.6.1 等价类划分 287
15.6.2 边界值分析 288
15.7 小结 289
习题与思考题 289
推荐读物与阅读信息 289
第16章 测试面向对象的应用系统 291
16.1 扩展测试的视野 291
16.2 测试OOA和OOD模型 292
16.2.1 OOA和OOD模型的正确性 292
16.2.2 面向对象模型的一致性 293
16.3 面向对象测试策略 294
16.3.1 面向对象环境中的单元测试 294
16.3.2 面向对象环境中的集成测试 295
16.3.3 面向对象环境中的确认测试 295
16.4 面向对象测试方法 295
16.4.1 面向对象概念的测试用例
设计的含义 296
16.4.2 传统测试用例设计方法的可应用性 296
16.4.3 基于故障的测试 296
16.4.4 测试用例与类层次 297
16.4.5 基于场景的测试设计 297
16.4.6 表层结构和深层结构的测试 298
16.5 类级可应用的测试方法 299
16.5.1 面向对象类的随机测试 299
16.5.2 类级的划分测试 300
16.6 类间测试用例设计 300
16.6.1 多类测试 301
16.6.2 从行为模型导出的测试 301
16.7 小结 302
习题与思考题 303
推荐读物与阅读信息 303
第17章 软件配置管理 304
17.1 软件配置管理概述 305
17.1.1 SCM场景 305
17.1.2 配置管理系统元素 306
17.1.3 基线 306
17.1.4 软件配置项 307
17.2 SCM中心存储库 308
17.2.1 中心存储库的作用 308
17.2.2 一般特征和内容 308
17.2.3 SCM特征 309
17.3 SCM过程 310
17.3.1 软件配置中的对象标识 311
17.3.2 版本控制 311
17.3.3 变更控制 312
17.3.4 配置审核 315
17.3.5 状态报告 315
17.4 小结 316
习题与思考题 316
推荐读物与阅读信息 317
第四部分 软件项目管理
第18章 项目管理概念 320
18.1 管理涉及的范围 321
18.1.1 人员 321
18.1.2 产品 321
18.1.3 过程 321
18.1.4 项目 322
18.2 人员 322
18.2.1 利益相关者 322
18.2.2 团队负责人 322
18.2.3 软件团队 323
18.2.4 敏捷团队 325
18.2.5 协调与沟通问题 326
18.3 产品 327
18.3.1 软件范围 327
18.3.2 问题分解 327
18.4 过程 328
18.4.1 合并产品和过程 328
18.4.2 过程分解 328
18.5 项目 329
18.6 W5HH原则 330
18.7 关键实践 331
18.8 小结 331
习题与思考题 332
推荐读物与阅读信息 332
第19章 过程度量和项目度量 334
19.1 过程领域和项目领域中的度量 335
19.1.1 过程度量和软件过程改进 335
19.1.2 项目度量 336
19.2 软件测量 337
19.2.1 面向规模的度量 338
19.2.2 面向功能的度量 339
19.2.3 调和代码行度量和功能点
度量 339
19.2.4 面向对象的度量 341
19.2.5 面向用例的度量 342
19.3 软件质量度量 342
19.3.1 测量质量 343
19.3.2 缺陷排除效率 344
19.4 小结 345
习题与思考题 345
推荐读物与阅读信息 346
第20章 软件项目估算 347
20.1 对估算的观察 348
20.2 项目策划过程 349
20.3 软件范围和可行性 349
20.4 资源 350
20.4.1 人力资源 350
20.4.2 可复用软件资源 351
20.4.3 环境资源 351
20.5 软件项目估算 351
20.6 分解技术 352
20.6.1 软件规模估算 352
20.6.2 基于问题的估算 353
20.6.3 基于LOC估算的实例 354
20.6.4 基于FP估算的实例 356
20.6.5 基于过程的估算 356
20.6.6 基于过程估算的实例 357
20.6.7 基于用例的估算 358
20.6.8 基于用例的估算实例 359
20.6.9 协调不同的估算方法 359
20.7 经验估算模型 360
20.7.1 估算模型的结构 360
20.7.2 COCOMOⅡ模型 361
20.7.3 软件方程 362
20.8 面向对象项目的估算 363
20.9 小结 363
习题与思考题 364
推荐读物与阅读信息 365
第21章 项目进度安排 366
21.1 基本概念 367
21.2 项目进度的安排 368
21.2.1 基本原则 369
21.2.2 人员与工作量之间的关系 369
21.2.3 工作量分配 371
21.3 为软件项目定义任务集 371
21.3.1 任务集举例 372
21.3.2 软件工程活动求精 372
21.4 定义任务网络 373
21.5 进度安排 374
21.5.1 时序图 374
21.5.2 跟踪进度 376
21.5.3 跟踪OO项目的进展 377
21.6 挣值分析 378
21.7 小结 379
习题与思考题 379
推荐读物与阅读信息 380
第22章 风险管理 382
22.1 被动风险策略和主动风险策略 383
22.2 软件风险 383
22.3 风险识别 384
22.3.1 评估整体项目风险 385
22.3.2 风险因素和驱动因子 385
22.4 风险预测 386
22.4.1 建立风险表 387
22.4.2 评估风险影响 388
22.5 风险求精 390
22.6 风险缓解、监测和管理 390
22.7 RMMM计划 391
22.8 小结 393
习题与思考题 393
推荐读物与阅读信息 393
附录1 UML简介
附录2 面向对象概念
参考文献

教学资源推荐
参考读物推荐
作者: [英]桑德罗·曼卡索(Sandro Mancuso) 著
作者: Scott E.Donaldson;Stanley G.Siegel
作者: Robert E.Filman, Tzilia Elrad, Siobhan Clarke, Mehmet Aksit
作者: Andrew Haigh