智能化软件质量保证的概念与方法
作者 : 聂长海 编著
出版日期 : 2020-06-24
ISBN : 978-7-111-65807-8
适用人群 : 可以作为广大计算机、软件工程及相关领域从业人员,科研工作者工作、学习或进一步深造的重要参考书,也是广大读者开阔视野,开阔思路的有益读本。
定价 : 59.00元
教辅资源
扩展信息
语种 : 简体中文
页数 : 237
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本教材系统介绍软件质量保证的相关概念、理论和方法,特别是关于软件的一些新概念、新特性、新技术、新平台和新的应用场景对软件质量和软件质量保证提出的一些新要求或提供的一些新手段。教材覆盖的知识点超过了传统教材的一倍以上,大大扩充了传统软件质量保证教材的内涵和外延。

图书特色

图书前言

动机
我们正在进入智能化时代,软件正在定义和实现世界,软件本身的智能化以及软件开发和质量保证技术的智能化刻不容缓。自2015年开始,我在南京大学计算机科学与技术系开设了软件质量保证本科生课程。当时我也在为学生讲授软件测试课程,并已经持续了5年。2013年,我在参考市场上已有的近百本教材的基础上自己编写了《软件测试的概念与方法》,其中的内容更新程度超过50%。但当我开始着手准备软件质量保证课程的教材时,在对国内外课程内容的调研中发现了以下几个特点:
国外教材多数从一般的质量管理出发,过渡到软件质量管理和保证的理论及方法,对软件新技术涉及较少。
国内教材多数把软件测试和软件质量保证的理论和方法放在一起,有很多教材几乎各占一半。
几乎所有的教材都是按照软件工程的过程来组织的,即分别介绍需求分析、设计、编码、测试和维护等阶段的质量保证措施和方法,而且这部分内容约占一半以上。
因此,我在选择教材的时候就面临这样一些问题:
现有教材的内容与软件工程课程的教学内容重合度高,而我们的学生已经学过软件工程课程。
很多教材的内容与我正在主讲的软件测试课程重合度高。
现有传统教材的内容更新速度普遍比较慢,很多新知识还没有包括进去。
基于以上考虑,我们在教学实践中进行了一些尝试和探索,拟取长补短,编写一本能够反映技术进步、与时俱进的新教材。2019年暑假,在4年多教学实践的基础上,我编写了“智能化软件质量保证概念与方法讲义”作为临时教材,经过秋季学期的使用,又发现了讲义中一些新的问题。2020年春节期间,正值新型冠状病毒肆虐,在居家抗疫的非常时期,我安下心来系统地对讲义内容又进行了一轮修改,希望这本教材正式出版后能为正在迅速发展的软件领域抛砖引玉,做出一点贡献。
编写这本教材的一个初衷就是“把散落在茫茫书海和论文中的米粒捡起来,攒成米团献给大家”,或者“把珍珠收集起来,串成项链送给大家”。所以,这本教材也是我在多年教学和科研基础上的认识和总结。
编写框架
本书系统介绍智能化软件质量保证的概念、理论和方法,从中提炼出100个左右的知识点,讲解这些知识点的定义、目标、方法、原理、实例、优缺点、研究现状等。个别概念与方法因具体情况而有所剪裁,特别是有些还不是很成熟的方向,只能做粗略的介绍。
针对每一个知识点,首先介绍它的目的,即可用来做什么;接着具体介绍这个知识点的概念,即是什么;然后介绍其原理和理论基础等,即为什么;之后尽可能通过例子将该知识点描述得更清楚,并评论其长处和不足;最后介绍研究现状,为学者和研究人员提供知识来源。另外,作为教材,我们还需要检验和巩固学习效果,因此各节末尾还设计了思考题。
内容组织
经过5年的探索和积累,在充分继承已有教材优点的基础上,本教材充分收集和整理了智能化软件质量保证相关的新技术、新方法和新理论。全书共10章。其中,第1章作为概论,从软件与智能化软件、质量与质量观两条线出发,讨论软件质量及软件度量。特别重要的是,我把国务院2010年出台的《质量发展纲要(2011—2020年)》放进来,这是国家层面对各行各业质量工作的顶层设计、规划和工作安排,对于提高读者的质量认识水平和指导我们做好软件质量保证工作具有重要意义。
传统部分的内容包括:软件质量保证的重要过程和管理(第2章)、软件生命周期中的质量保证(第3章)和软件质量保证体系(第4章)。在传统质量保证的基础上,后续内容侧重于软件质量保证的自动化方法(第5章)、软件服务新环境(第6章)、软件新形式(第7章)、群智化与敏捷化开发(第8章)、软件智能化技术(第9章)和软件智能化开发支撑技术(第10章)。后面6章的内容是本教材的特色,基本上覆盖了智能化软件开发和质量保证的方方面面,而这部分内容是以前的教材几乎没有涉及的。
在本教材中我们整理了关于软件质量保证的100个左右的知识点(具体见第1章),其中绝大部分知识点都有专门的著作或教材加以讲解。例如,软件测试只是其中一个知识点,即1%的内容,但在高校中软件测试就是单独的一门课程,市场上有上百种软件测试教材和著作。在本教材共10章的内容中,只有第2、3、4章是对传统质量保证教材内容的重新组织,其他章节的内容基本上都是新增的知识点。
致谢
在教材编写的过程中,得到了南京大学计算机系各位老师的帮助。这里特别感谢计算机系主任及人工智能学院院长周志华教授对“学件”一节内容提供的支持和帮助。还要感谢周毓明教授在“软件度量”方面,许蕾副教授在“软件分析”方面,陈林副教授在“软件重构”方面,以及我系青年教师吴化尧博士和钮鑫涛博士在很多方面提供的帮助。
感谢北京航空航天大学蔡开元教授在“软件控制论”方面,北京科技大学孙昌爱教授在“智能化软件”方面,哈尔滨工业大学苏小红教授在“软件安全”方面,东南大学李必信教授在“软件体系结构”方面,西北工业大学董云卫教授在“信息物理系统”方面,南京邮电大学张迎周教授在“程序分析”方面,中国电信研究院移动通信研究所张志荣高级工程师在“5G”方面,美国甲骨文公司首席软件工程师高维忠在“区块链技术”方面提供的很多支持和帮助。感谢南京晓庄学院徐家喜老师和王燕老师、中国电信江苏省公司李忠超高级工程师等帮助收集和整理教学资料。
感谢我的博士生陆超逸、张文茜协助收集和整理资料。感谢2015至2019年这5年来选修我的“软件质量保证”课程的同学,与他们进行的教学研讨,以及他们每个人在学期结束时提交的调查报告,给我提供了开阔的思路和丰富的材料,这些对形成本教材的内容也起到了非常重要的作用。
本书在编写过程中得到了科技部重点研发计划项目“面向服务的群智化生态化软件开发方法与环境”(No.2018YFB1003800)、南京大学软件新技术国家重点实验室、南京大学计算机科学与技术系、华为科技有限公司等项目和单位的支持。

聂长海
2020年2月14日
于南大和园

上架指导

计算机\软件工程

封底文字

本书系统介绍智能化软件质量保证的概念、理论和方法,特别是关于智能化软件的新概念、新特性、新技术、新平台和新应用场景。全书将零散的知识点整合起来,涵盖软件质量保证体系、自动化方法、软件服务新环境、软件新形式、群智化与敏捷化开发、软件智能化技术、智能化开发支撑技术等内容,不仅可以作为高等院校软件质量保证课程的教材,也是相关领域从业人员和科研工作者的有益参考。
本书特色
全面关注新技术。为了更好地适应智能化时代“软件定义与实现一切”的社会需求,书中特别讨论了5G、工业4.0、雾计算、CPS、知件、学件、DevOps、知识图谱、大数据、区块链等新技术,为软件智能化提供新的技术手段。
大幅扩充知识点。囊括约100个知识点,大大扩充了传统教学内容的内涵和外延。详细讲解这些知识点的定义、目标、方法、原理、实例、优缺点、研究现状等,并且在各节的末尾设计了思考题。
有效降低重合度。通过引入新技术和扩充知识点,显著降低了本书内容与软件工程、软件测试等课程的重合度。书中用3章重组传统教学内容,使之更加精练;用6章讲解新技术、新方法和新理论,便于更加与时俱进地开展教学。
作者简介
聂长海 南京大学计算机科学与技术系教授、博士生导师。中国计算机学会杰出会员,容错专委会常务委员,软件工程专委会委员,形式化专委会委员。江苏省计算机学会副秘书长。在ACM TOSEM、IEEE TSE和ACM CSUR等顶级期刊发表及合作发表学术论文近百篇,获得多项发明专利和软件著作权。曾主持国家863项目、国家重点研发项目课题和多项国家自然科学基金项目,多次作为重要项目成员获得省部级科研奖。著有《组合测试》(2015)和《软件测试的概念与方法》(2013)。

作者简介

聂长海 编著:聂长海 南京大学计算机科学与技术系教授、博士生导师。中国计算机学会杰出会员,容错专委会常务委员,软件专委会委员,形式化专委会委员。江苏省计算机学会副秘书长。在ACM TOSEM、IEEE TSE和ACM CSUR等顶级期刊发表及合作发表学术论文近百篇,获得多项发明专利和软件著作权。曾主持国家863项目、国家重点研发项目课题和多项国家自然科学基金项目,多次作为重要项目成员获得省部级科研奖。著有《组合测试》(2015)和《软件测试的概念与方法》(2013)。

图书目录

前言
第1章 软件质量保证概论1
1.1 软件质量保证的概念和理论体系1
1.2 软件与智能化软件2
1.3 质量与质量观6
1.4 软件质量8
1.4.1 软件可靠性10
1.4.2 软件安全性14
1.4.3 软件可信性17
1.5 软件度量17
1.6 质量发展纲要(2011—2020年)20
第2章 软件质量保证的重要过程和管理21
2.1 软件评审与审计21
2.2 验证和确认25
2.3 QA & QC28
2.4 软件缺陷管理30
2.5 软件配置管理33
2.6 软件项目的风险管理37
2.7 软件质量管理40
2.8 全面质量管理43
第3章 软件生命周期中的质量保证45
3.1 需求分析的质量45
3.2 软件设计的质量48
3.2.1 设计过程48
3.2.2 设计原理49
3.2.3 设计工具51
3.2.4 设计模式53
3.3 软件编码的质量53
3.4 软件测试的质量55
3.5 软件发布的质量59
3.6 软件维护的质量61
第4章 软件质量保证体系65
4.1 软件质量相关职业65
4.2 软件质量图表工具67
4.3 软件质量经济学71
4.4 软件质量保证组织73
4.4.1 SQA组织的建立73
4.4.2 常见的SQA组织模型74
4.4.3 SQA组织的目标与责任75
4.4.4 SQA人员78
4.5 软件质量保证计划79
4.6 软件质量工程体系82
4.7 软件质量保证的文档模板83
4.8 软件质量保证的标准与规范88
4.8.1 ISO88
4.8.2 CMM91
4.8.3 六西格玛94
第5章 软件质量保证的自动化方法97
5.1 形式化方法97
5.2 模型检查101
5.3 定理证明105
5.4 仿真109
5.5 容错计算112
第6章 软件服务新环境117
6.1 云计算117
6.2 雾计算121
6.3 边缘计算123
6.4 普适计算125
6.5 物联网127
6.6 “互联网+”与工业4.0129
6.7 第五代移动通信技术:5G131
第7章 软件新形式134
7.1 多核与并发系统134
7.2 中间件136
7.3 分布式系统139
7.4 软件Agent145
7.5 信息物理系统148
7.6 移动App150
7.7 智能软件154
7.8 网构软件157
7.9 知件160
7.10 学件162
第8章 群智化与敏捷化开发165
8.1 软件生产线165
8.2 DevOps168
8.3 开源软件170
8.4 软件生态系统173
8.5 软件众包175
8.5.1 软件众包与外包175
8.5.2 软件众包的重要事件175
8.5.3 软件众包的目标176
8.5.4 软件众包实例176
8.5.5 软件众包的局限和争议178
8.5.6 小结179
第9章 软件智能化技术180
9.1 数据挖掘180
9.2 软件仓库挖掘183
9.3 机器学习185
9.4 知识图谱187
9.4.1 知识图谱的研究背景188
9.4.2 知识图谱概述188
9.4.3 知识图谱关键技术189
9.4.4 知识图谱典型应用191
9.4.5 知识图谱的问题与挑战191
9.4.6 小结191
9.5 统计预测192
9.6 人工智能193
9.7 大数据197
9.8 区块链199
第10章 软件智能化开发支撑技术203
10.1 软件分析203
10.2 软件演化205
10.3 软件架构211
10.4 设计模式215
10.5 软件重构218
10.6 软件控制论220
10.7 软件工程的理论与方法222
参考文献226

教学资源推荐
作者: [英]伊恩·萨默维尔(Ian Sommerville) 著
作者: (美)Richard O.Duda Peter E.Hart David G.Stork
作者: (美)Jeffrey L. Whitten;Lonnie D. Bentley 著
参考读物推荐
作者: 吴伟敏 秦 军 林巧民 何丽萍
作者: Chris Raistrick, Paul Francis, John Wright, Colin Carter, Lan Wilkie
作者: 主编 何泾沙 周悦
作者: (印)Swapna Kishore,Rajesh Naik