软件工程 (原书第8版)
作者 : Ian Sommerville
译者 : 程成 陈霞
丛书名 : 计算机科学丛书
出版日期 : 2007-04-02
ISBN : 7-111-20459-6
定价 : 55.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 513
开本 : 16开
原书名 : Software Engineering,Eighth Edition
原出版社: Addision-Wesley
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是系统介绍软件工程理论的经典教材,自1982年初版以来,随着软件工程学科的发展不断更新,培养了一代又一代软件工程人才,对学科本身也产生了重大影响。全书共分7篇,涵盖了整个软件开发过程各个阶段的内容,从初始的需求导出到设计和开发,再到软件项目管理。本书适合作为本科生和研究生的教材,同时也可供软件工程人员参考。

  本书特点:
  ● 包括了软件工程理论与实践的最新进展,并讨论了系统工程的相关主题。
  ● 详述了敏捷方法与复用的相关知识。
  ● 涵盖了系统安全性、保险性与可靠性,给出了在开发关键系统时的最佳实践。
  ● 通过一个信息系统和一个控制系统的案例分析,阐述了软件生命周期的步骤。

  与以前的版本相比,第8版更新了部分内容,并增加了有关最新主题的三章:
  ● 信息安全工程,介绍了有关安全软件的描述和设计中需要考虑的诸多问题。
  ● 面向服务的软件工程,解释了如何将可复用的Web服务用于开发新的应用。
  ● 面向方面的软件开发,描述了基于关注点分离的新技术。

  该书英文原版设有专门的网站 (http://www.pearsoned.co.uk/sommerville),提供了对该书相关资料的链接,主要包括PowerPoint和PDF两种形式的讲稿、在线测验题、案例分析、进一步阅读的建议等。

图书特色

图书前言

本书第1版出版已经是20多年前的事了。那一版是在早期的小型机(PDPˉ11)的哑终端上完成的,那时该小型机大概价值50000美元。而这一版是在无线笔记本电脑上完成的,这台笔记本计算机价值不到2000美元,而它的能力却要比PDPˉ11强上很多倍。软件在那个时候主要是大型机软件,而个人计算机才刚刚崭露出来。那个时候谁也不会意识到将来软件会普及到什么地步,也无法预测它将给世界带来怎样的改变。
  硬件在过去20多年中的变化是相当显著的,软件上的变化似乎也同样巨大。的确,我们在构建大而复杂的系统方面的能力已经有了极大的提高。国家的公共事业和基础设施———能源、通信和交通运输———依赖非常复杂而又庞大的可信赖的计算机系统。对于构建业务系统,我们有一系列技术———J2EE、.NET、EJB、SAP、BPEL4WS、SOAP、CBSE———这些技术使得我们部署大型的基于Web的应用要比过去快很多。
  然而,尽管在过去的20多年间很多东西都发生了改变,当我们抛开具体技术来审视软件工程的基本过程时,我们发现很多都还是一样的。我们在20年前就知道了软件过程的瀑布模型是有严重问题的,然而发表在《IEEE Software》的2003年12月刊上的一篇综述文章表明,目前40%的公司仍然在使用这一方法。尽管有些技术(例如审查技术)从20世纪70年代中期开始已经得到了更有效的使用,测试仍然是主导的程序有效性验证技术。CASE工具,尽管目前是基于UML语言的,仍然主要是图表编辑器,再辅之以某些检测和代码生成功能。
  当前的软件工程方法和技术使得我们构建大型复杂系统的能力较之过去有了很大提高。然而,还是有很多项目不能按期完成,经费超支,软件达不到用户的要求。当作者在写本书第7版的时候,英国的一份政府调查报告了一个项目的情况,该项目提供一个全国范围内的系统,此系统将被法院用于审问未成年犯罪嫌疑人。此系统的开发费用当初估计是1.56亿英镑,预计在2001年交付使用。在2004年,费用已经攀升到3.9亿英镑,而且尚不能完全运行。因而,软件工程教学仍然是一个紧迫的任务。
  在过去的数年间,软件工程方面最大的进展是UML作为面向对象系统描述语言的出现,以及像极限编程这样的敏捷方法的进展。敏捷方法是为了适应快速系统开发,明确地将用户包括在开发团队中,降低开发过程中纸面上的工作和官僚作风。尽管它受到很多批评,作者认为这些方法体现了很好的软件工程实践。它们有良好定义的过程,注意系统描述和用户需求,有很高的质量标准。
  然而,此次修订版本没有变成敏捷方法的教本。相反,作者集中阐述基本的软件工程过程———描述、设计、开发、检验和有效性验证、管理。读者需要理解这些过程和相关的技术,决定敏捷方法对你来讲是否是最好的开发策略,以及如何调整和改变这些方法来适应你的特殊开发环境。贯穿全书的一个主题是要求极高的系统———这类系统的失败会导致严重的后果,对它的系统可靠性要求是极高的。在本书的每一篇中,作者分别讨论与要求极高的系统工程相关的一些专门的软件工程技术。
  每本书不可避免地要反映作者的观点和偏好。某些读者可能会反对作者的观点和所选择的材料。这些不同的声音对学科多样性是有好处的,对学科发展也是至关重要的。尽管如此,作者还是希望所有的软件工程师和软件工程的学生能从中发现自己感兴趣的东西。
  本书的结构
   本书是按照基本的软件工程过程来组织的。它包含7篇。前面6篇集中于软件工程过程,最后一篇论述了一些重要的软件工程的新技术。
  第1篇:对软件工程的介绍。将软件工程放在一个更广阔的系统上下文中来分析,给出了软件工程过程和管理方面的一些概念。
  第2篇:涵盖了与需求工程相关的过程、技术以及可交付的材料等。包括对软件需求、系统建模、形式化描述以及达到特定可靠性的专门技术的讨论。
  第3篇:这一篇专门介绍软件设计和设计过程。六章中有三章聚焦在软件体系结构这一重要话题上。其他话题包括面向对象设计、实时系统设计以及用户界面设计。
  第4篇:讲解开发的一些方法,包括敏捷方法、软件复用、CBSE以及要求极高的系统的开发。因为变更现在在开发中占有如此大的比例,作者将有关软件进化和维护的材料都合并在这一篇中了。第5篇:集中介绍软件检验和有效性验证。包括有关静态V&V、测试和要求极高的系统的验证等章。
  第6篇:本篇涵盖了一系列管理的话题,包括人的管理、成本管理、质量管理、过程改善和配置管理。
  第7篇:最后一篇包括三章,内容专注于一些已经开始使用的重要的新技术。包括信息安全工程、面向服务的软件工程和面向方面的软件开发。
  在每一篇的引言中,作者详细地介绍了篇中的结构和内容的编排。
  本书的参考文献放在华章网站,请登录华章网站(www.hzbook.com)免费下载。———编辑注
  第8版的变化
   这个新版本包括三章全新的内容。这三章组织在第7篇中,这一篇讨论作者认为会对软件工程的未来有重要影响的技术。这一篇包括如下三章:
  ·第30章信息安全工程。这一章讨论如何确保你的软件是安全的并能抵御外部攻击。
  ·第31章面向服务的软件工程。这一章介绍使用可复用Web服务的新的应用开发方法。
  ·第32章面向方面的软件开发。这一章介绍基于关注点分离的新的软件开发技术。
  相对第7版,其他章节基本未改变,除了个别对第30~32章中的新材料的引用之处。关于第6版和第7版之间的差别,详细信息可见本书配套网站。
  读者群
  本书是针对本科生和研究生课程的,同时也针对商业和工业领域工程师。本书
可以用作一般软件工程课程或者是像高级程序设计、软件描述、软件设计和管理等课程的教科书。软件工程师可以将它作为一般性读物或者是用于更新自己在某个特殊方面的知识,例如需求工程、体系结构设计、可靠性软件开发和过程改善等专题。无论课本中的例子的实用性如何,作者试图让它们反映软件工程师所必须开发的一些应用的类型。
  作为教学用书
  本书广泛用于软件工程课程,如果你使用过第7版,你会发现第8版完全与它兼容。我故意未对第7版的第1~29章做改变。如果你使用这些章用于授课,就没有必要改变补充材料和相关的课程计划。新加的章是独立的,你可以选择性地介绍其中一些内容给你的学生,让他们对本课题的发展有一定的了解。
  若将本书作为软件工程课程的教材,可以有三种使用方式:
  1.软件工程一般性介绍课程 对于没有任何软件工程经验的学生,教师可以从第一篇开始,然后选择本书各篇中的个别章节讲授。这样可以给学生本学科的一个概貌,对于感兴趣的学生也可以得到更多进一步学习的机会。如果授课方法是基于项目的,那么前几章提供了足够多的材料让学生尽快进入角色,而当项目深入的时候,再参考后面的各章。
  2.某些软件工程特别主题的介绍性或中等难度课程 本书适用于软件需求描述、软件设计、软件工程管理、可靠性系统开发和软件进化课程。对每个主题来说,每一篇都可以单独拿出来作为介绍性或中等难度的课程教材。除了每一章相关联的进一步的阅读材料外,作者也在网站上提供了更多相关论文和书籍。
  3.某些软件工程特别主题的更高级课程 本书各章可以构成某个专门软件课程的基础,但是它们必须辅之以进一步的阅读材料来充实更详细的内容。例如,作者基于本书内容讲授系统工程的硕士课程。在本书网站上,包含了本课程和要求极高的系统工程课程两个方面的详细内容。
  本书的好处在于它可以用在多个相关课程中。本书可用于软件工程导论课程与描述、设计和要求极高的系统课程中。在讲授基于组件的软件工程和系统工程时,在使用本书的同时还要发给学生额外的论文。采用一本教材展现给学生本学科的一致的视图,省去了学生买很多本书之苦。
  为了便于阅读,作者在本书末给出了一个关键词汇的术语表,还在网站上
给出了附加的定义。另外,在每一章还有:
  ·在章首给出了一组清晰的目标;每章中的要点提示;
  ·建议的进一步的阅读资料———这些要么是已出版的书,要么是很容易得到的论文(在本书网站上还能发现其他推荐阅读材料和相关链接);
  ·练习,包括设计练习。
   软件工程知识体系(http://www.swebok.org)是为专业软件工程师定义关键技术知识域而设立的。该体系将内容组织在10个标题下:需求、设计、构造、测试、维护、配置管理、管理、过程、工具和方法以及质量。要想在一本书中涵盖SWEBOK体系所提出的所有知识域是不可能的,所以本书讨论了所有的顶层域。
  网页
  出版商提供的本书配套网站是:
  http://www.pearsoned.co.uk/sommerville
  为了支持将本书用于软件工程课程,作者在网站上包含了广泛的教辅材料。如果沿着教师材料链接,能够发现以下内容:
  ·本书各章的电子讲稿(PowerPoint和PDF)
  ·每一章的课堂测验问题案例研究项目建议
  ·课程结构描述
  ·每一章建议的进一步的阅读材料和网站资源
  ·每一章练习的答案和小测验的答案(仅供教师使用)
  作者自己的网站,除了提供出版商网站上的所有材料,还提供了广泛的增补材料,如到其他网站的链接,作者所作的讲演稿,为相关课程如系统工程所开发的教学材料,以及本书先前版本的网站。这个站点的URL是:
  http://www.cs.stˉandrews.ac.uk/%7Eifs/
  无论是在先前的版本还是此版本中,作者的策略是在书中尽量包含最少量的Web链接。其原因是这些链接一直都在变化,一旦印刷,就不可能对它们进行更新。因此,本书的网页就包含了大量的有关软件工程的资源和材料。
  致谢
  在对本书更新的这些年中,有太多的人们对本书贡献了力量,作者想在此感谢所有对老版本提出意见和对改进提出建设性建议的人(评论者、学生以及给作者发过电子邮件的使用者)。位于英国和美国的培生教育机构的编辑人员和制作人员也提供了很多支持和帮助,是他们保证了本书能在这么短的时间内拿出来。在此特别感谢Simon Plumtree、Mary Lince、Ros Woodward、Keith Mansfield、Patty Mahtani、Daniel Rausch、Carol Noble以及Sharon Burkhardt的支持和帮助。
  在写作本书之时,作者就要离开兰卡斯特大学并前往苏格兰的圣安德鲁斯大学任教。作者在此感谢兰卡斯特大学所有同事多年来的鼓励和支持。
  最后,作者还要感谢家人,她们在本书写作期间忍受着孤独和寂寞,并在作者遇到困难时给予了理解和鼓励。将最大的感谢送给作者的妻子Anne和女儿Ali与Jane,感谢她们的帮助和支持。
  Ian Sommerville
  2006年2月

封底文字

本书是系统介绍软件工程理论的经典教材,自1982年初版以来,随着软件工程学科的发展不断更新,培养了一代又一代软件工程人才,对学科本身也产生了重大影响。全书共分7篇,涵盖了整个软件开发过程各个阶段的内容,从初始的需求导出到设计和开发,再到软件项目管理。本书适合作为本科生和研究生的教材,同时也可供软件工程人员参考。 本书特点: ● 包括了软件工程理论与实践的最新进展,并讨论了系统工程的相关主题。 详述了敏捷方法与复用的相关知识。 ● 涵盖了系统安全性、保险性与可靠性,给出了在开发关键系统时的最佳实践。 ● 通过一个信息系统和一个控制系统的案例分析,阐述了软件生命周期的步骤。 与以前的版本相比,第8版更新了部分内容,并增加了有关最新主题的三章: ● 信息安全工程,介绍了有关安全软件的描述和设计中需要考虑的诸多问题。 ● 面向服务的软件工程,解释了如何将可复用的Web服务用于开发新的应用。 ● 面向方面的软件开发,描述了基于关注点分离的新技术。 该书英文原版设有专门的网站 (http://www.pearsoned.co.uk/sommerville),提供了对该书相关资料的链接,主要包括PowerPoint和PDF两种形式的讲稿、在线测验题、案例分析、进一步阅读的建议等。

图书序言

Ian Sommerville英国著名软件工程专家,曾任教于兰卡斯特大学,现为圣安德鲁斯大学软件工程学教授。他在软件工程的教学和科研方面有20多年的经验。他是IEEE CS组织编撰“软件工程知识体系”(SWEBOK) 的专家委员会成员之一。他的研究领域包括计算机系统工程、需求工程、系统可靠性以及软件进化。

作者简介

Ian Sommerville:Ian Sommerville: 英国著名软件工程专家,曾任教于兰卡斯特大学,现为圣安德鲁斯大学软件工程学教授。他在软件工程的教学和科研方面有20多年的经验,是IEEE CS组织编撰“软件工程知识体系” (SWEBOK) 的专家委员会成员之一。他的研究领域包括计算机系统工程、需求工程、系统可靠性以及软件进化。

译者简介

程成 陈霞:暂无简介

图书目录

出版者的话
专家指导委员会
前言 第1篇 概 览
第1章 概述 2
1.1 软件工程中的常见问题 3
1.1.1 什么是软件 3
1.1.2 什么是软件工程 4
1.1.3 软件工程和计算机科学的区别 4
1.1.4 软件工程和系统工程有何区别 4
1.1.5 什么是软件过程 4
1.1.6 什么是软件过程模型 5
1.1.7 什么是软件工程的成本 5
1.1.8 什么是软件工程方法 7
1.1.9 什么是CASE 7
1.1.10 什么是优良软件的属性 7
1.1.11 软件工程所面临的主要问题 8
1.2 职业和道德上的责任 8
要点 10
进一步的阅读资料 10
练习 11
第2章 社会-技术系统12
2.1 系统总体特性 13
2.2 系统工程 15
2.2.1 系统需求定义 16
2.2.2 系统设计 16
2.2.3 系统建模 18
2.2.4 子系统开发 19
2.2.5 系统集成 20
2.2.6 系统进化 20
2.2.7 系统退役 20
2.3 机构、人员和计算机系统 21
2.4 遗留系统 23
要点 24
进一步的阅读资料 25
练习 25
第3章 要求极高的系统26
3.1 一个简单的安全性要求极高的系统 27
3.2 系统可依赖性 29
3.3 可用性和可靠性 30
3.4 安全性 33
3.5 信息安全性 35
要点 36
进一步的阅读资料 37
练习 37
第4章 软件过程38
4.1 软件过程模型 39
4.1.1 “瀑布”模型 39
4.1.2 进化式开发 41
4.1.3 基于组件的软件工程 42
4.2 过程反复 43
4.2.1 增量式开发 43
4.2.2 螺旋式开发 44
4.3 过程活动 45
4.3.1 软件描述 45
4.3.2 软件设计和实现 46
4.3.3 软件有效性验证 48
4.3.4 软件进化 50
4.4 Rational统一过程 50
4.5 计算机辅助软件工程 52
要点 55
进一步的阅读资料 55
练习 55
第5章 项目管理57
5.1 管理活动 58
5.2 项目规划 59
5.2.1 项目计划 60
5.2.2 项目里程碑和可交付的文档 60
5.3 项目调度 61
5.4 风险管理 65
5.4.1 风险识别 66
5.4.2 风险分析 67
5.4.3 风险规划 67
5.4.4 风险监控 68
要点 69
进一步的阅读资料 69
练习 69第2篇 需求
第6章 软件需求72
6.1 功能需求和非功能需求 73
6.1.1 功能需求 73
6.1.2 非功能需求 74
6.1.3 领域需求 76
6.2 用户需求 77
6.3 系统需求 79
6.4 接口描述 82
6.5 软件需求文档 83
要点 85
进一步的阅读资料 85
练习 85
第7章 需求工程过程87
7.1 可行性研究 88
7.2 需求导出和分析 89
7.2.1 需求发现 91
7.2.2 深入实际 96
7.3 需求有效性验证 97
7.4 需求管理 98
7.4.1 持久的和易变的需求 98
7.4.2 需求管理规划 99
7.4.3 需求变更管理 100
要点 101
进一步的阅读资料 101
练习 101
第8章 系统模型103
8.1 上下文模型 104
8.2 行为模型 105
8.2.1 数据流模型 106
8.2.2 状态机模型 106
8.3 数据模型 109
8.4 对象模型 110
8.4.1 继承模型 111
8.4.2 对象聚合 113
8.4.3 对象行为建模 113
8.5 结构化方法 114
要点 115
进一步的阅读资料 116
练习 116
第9章 要求极高的系统的描述117
9.1 风险驱动的描述 118
9.1.1 风险识别 118
9.1.2 风险分析和分类 119
9.1.3 风险分解 120
9.1.4 风险降低评估 122
9.2 安全性描述 122
9.3 信息安全性描述 124
9.4 软件可靠性描述 125
9.4.1 可靠性度量 126
9.4.2 非功能性的可靠性需求 127
要点 129
进一步的阅读资料 129
练习 130
第10章 形式化描述132
10.1 软件过程中的形式化描述 133
10.2 子系统接口描述 135
10.3 行为描述 139
要点 144
进一步的阅读资料 144
练习 144第3篇 设计
第11章 体系结构设计148
11.1 体系结构设计决策 150
11.2 系统组成 151
11.2.1 容器模型 151
11.2.2 客户机/服务器模型 152
11.2.3 分层模型 153
11.3 模块化分解类型 154
11.3.1 面向对象的分解 155
11.3.2 面向功能的流水线操作 155
11.4 控制类型 156
11.4.1 集中式控制 157
11.4.2 事件驱动的系统 158
11.5 参考体系结构 159
要点 161
进一步的阅读资料 161
练习 161
第12章 分布式系统体系结构163
12.1 多处理器体系结构 164
12.2 客户机/服务器体系结构 165
12.3 分布式对象体系结构 168
12.4 机构间分布式计算 172
12.4.1 对等体系结构 173
12.4.2 面向服务的系统体系结构 174
要点 177
进一步的阅读资料 177
练习 177
第13章 应用体系结构179
13.1 数据处理系统 180
13.2 事务处理系统 182
13.3 事件处理系统 186
13.4 语言处理系统 188
要点 189
进一步的阅读资料 190
练习 190
第14章 面向对象的设计191
14.1 对象和对象类 192
14.2 面向对象设计过程 196
14.2.1 系统上下文和使用模型 197
14.2.2 体系结构的设计 198
14.2.3 对象识别 198
14.2.4 设计模型 200
14.2.5 对象接口描述 202
14.3 设计进化 203
要点 204
进一步的阅读资料 204
练习 205
第15章 实时软件的设计206
15.1 系统设计 208
15.2 实时操作系统 210
15.3 监控系统 212
15.4 数据采集系统 216
要点 218
进一步的阅读资料 219
练习 219
第16章 用户界面设计221
16.1 设计问题 223
16.1.1 用户交互 224
16.1.2 信息表示 225
16.2 用户界面设计过程 230
16.3 用户分析 230
16.4 用户界面原型构造 233
16.5 界面评估 234
要点 235
进一步的阅读资料 236
练习 236第4篇 开发
第17章 快速软件开发240
17.1 敏捷方法 243
17.2 极限编程 244
17.2.1 极限编程中的测试 246
17.2.2 结对编程 248
17.3 快速应用开发 248
17.4 软件原型构造 251
要点 253
进一步的阅读资料 253
练习 254
第18章 软件复用255
18.1 复用概览 257
18.2 设计模式 258
18.3 基于生成器的复用 260
18.4 应用框架 262
18.5 应用系统复用 263
18.5.1 商业现成产品的复用 263
18.5.2 软件产品线 265
要点 268
进一步的阅读资料 268
练习 268
第19章 基于组件的软件工程270
19.1 组件和组件模型 271
19.1.1 组件模型 273
19.1.2 面向复用的组件开发 275
19.2 CBSE过程 276
19.3 组件合成 278
要点 282
进一步的阅读资料 283
练习 283
第20章 要求极高的系统的开发284
20.1 可靠的过程 286
20.2 可靠的编程 287
20.2.1 保护的信息 287
20.2.2 安全的编程 288
20.2.3 异常处理 289
20.3 容错 292
20.3.1 缺陷检测和损害评估 292
20.3.2 缺陷恢复和修补 296
20.4 容错体系结构 297
要点 299
进一步的阅读资料 299
练习 300
第21章 软件进化301
21.1 程序进化的动态特性 302
21.2 软件维护 303
21.3 进化过程 307
21.4 遗留系统的进化 310
要点 313
进一步的阅读材料 314
练习 314
第5篇 检验和有效性验证
第22章 检验和有效性验证316
22.1 检验和有效性验证规划 318
22.2 软件审查 320
22.3 自动静态分析 323
22.4 检验和形式化方法 325
要点 328
进一步的阅读资料 328
练习 329
第23章 软件测试330
23.1 系统测试 332
23.1.1 集成测试 332
23.1.2 发布测试 334
23.1.3 性能测试 336
23.2 组件测试 336
23.3 测试用例设计 339
23.3.1 基于需求的测试 339
23.3.2 划分测试 340
23.3.3 结构化测试 342
23.3.4 路径测试 343
23.4 测试自动化 345
要点 346
进一步的阅读资料 347
练习 347
第24章 要求极高的系统的验证349
24.1 可靠性验证 350
24.1.1 操作简档 351
24.1.2 可靠性预测 352
24.2 安全性保证 354
24.2.1 安全性论证 355
24.2.2 过程保证 356
24.2.3 运行时安全检查 358
24.3 信息安全评估 359
24.4 安全和可靠性案例 360
要点 362
进一步的阅读资料 362
练习 362第6篇 管理
第25章 人员管理366
25.1 职员挑选 367
25.2 职员激励 369
25.3 团队管理 371
25.3.1 小组的组成 371
25.3.2 小组的凝聚力 372
25.3.3 小组的沟通 374
25.3.4 小组的结构 374
25.3.5 工作环境 375
25.4 人员能力成熟度模型 377
要点 378
进一步的阅读资料 378
练习 378
第26章 软件成本估算380
26.1 软件生产率 381
26.2 估算技术 384
26.3 算法成本建模 386
26.3.1 COCOMO模型 387
26.3.2 项目规划中的算法成本模型 393
26.4 项目的工期和人员配备 395
要点 396
进一步的阅读资料 396
练习 396
第27章 质量管理398
27.1 过程和产品质量 399
27.2 质量保证和质量标准 400
27.2.1 ISO9000 401
27.2.2 文档化标准 403
27.3 质量规划 404
27.4 质量控制 404
27.5 软件测量和度量 406
27.5.1 测量过程 407
27.5.2 产品度量 408
27.5.3 测量的分析 409
要点 410
进一步的阅读资料 411
练习 411
第28章 过程改善412
28.1 过程和产品质量 413
28.2 过程分类 414
28.3 过程度量 416
28.4 过程分析和建模 417
28.5 过程变更 420
28.6 CMMI过程改善框架 421
28.6.1 分阶段CMMI模型 423
28.6.2 连续CMMI模型 424
要点 424
进一步的阅读资料 425
练习 425
第29章 配置管理426
29.1 配置管理规划 428
29.1.1 配置项识别 428
29.1.2 配置数据库 429
29.2 变更管理 429
29.3 版本和发布管理 432
29.3.1 版本标识 432
29.3.2 发布管理 434
29.4 系统构建 436
29.5 用于配置管理的CASE工具 436
29.5.1 变更管理支持 437
29.5.2 版本管理支持 437
29.5.3 系统构建支持 438
要点 439
进一步的阅读资料 440
练习 440第7篇 新兴技术
第30章 信息安全工程444
30.1 信息安全的概念 445
30.2 信息安全风险管理 447
30.2.1 初步风险评估 447
30.2.2 生存期风险评估 449
30.3 面向信息安全的设计 450
30.3.1 体系结构设计 451
30.3.2 设计准则 453
30.3.3 针对部署的设计 455
30.4 系统生存能力 456
要点 458
进一步的阅读资料 459
练习 459
第31章 面向服务的软件工程460
31.1 服务作为可复用的组件 462
31.2 服务工程 465
31.2.1 可选服务识别 465
31.2.2 服务接口设计 467
31.2.3 服务实现和部署 468
31.2.4 遗留系统服务 469
31.3 使用服务的软件开发 470
31.3.1 工作流设计和实现 472
31.3.2 服务测试 474
要点 475
进一步的阅读资料 475
练习 476
第32章 面向方面的软件开发477
32.1 关注点的分离 478
32.2 方面、连接点和切入点 480
32.3 采用方面的软件工程 483
32.3.1 面向关注点的需求工程 484
32.3.2 面向方面的设计和编程 486
32.3.3 检验和有效性验证 488
要点 490
进一步的阅读资料 490
练习 491
术语表492
索引500
译后记514

教学资源推荐
作者: 刘小松 等编著
作者: [英]伊恩·萨默维尔(Ian Sommerville) 著
作者: 赵翀 孙宁 编著 贲可荣 主审
参考读物推荐
作者: (美)Capers Jones
作者: 李龙 刘文贞 铁坤 编著
作者: (美)Jim Highsmith
作者: John D.McGregor David A.sykes 著