《智能化软件质量保证的概念与方法》曲熠|(epub+azw3+mobi+pdf)电子书下载

图书名称:《智能化软件质量保证的概念与方法》

【作 者】曲熠
【丛书名】高等院校理工类专业规划教材
【页 数】 232
【出版社】 北京:机械工业出版社 , 2020.07
【ISBN号】978-7-111-65807-8
【分 类】软件质量-质量管理-高等学校-教材
【参考文献】 曲熠. 智能化软件质量保证的概念与方法. 北京:机械工业出版社, 2020.07.

图书封面:

图书目录:

《智能化软件质量保证的概念与方法》内容提要:

本书系统介绍智能化软件质量保证的概念、理论和方法,特别是关于智能化软件的新概念、新特性、新技术、新平台和新应用场景。全书共10章,主要内容包括:软件质量保证的重要过程和管理,软件生命周期中的质量保证,软件质量保证体系,软件质量保证的自动化方法,软件服务新环境,软件新形式,群智化与敏捷化开发,软件智能化技术,以及软件智能化开发支撑技术。本书可作为高等院校计算机、软件工程及相关专业的教材,或相关领域从业人员、科研工作者的参考书,也可帮助感兴趣的读者开阔视野和思路。

《智能化软件质量保证的概念与方法》内容试读

第1章

软件质量保证概论

我们已经进入了软件定义与实现无处不在的时代,从能够上九天揽月、下五洋捉鳖的大国重器,到身边的手机、手表及家用电器,都可以从中找到软件扮演的重要角色。软件不仅是推动社会发展的重要力量,同时也成了制约发展速度和质量的重要因素。

软件质量保证研究和讨论一系列用以提高和保证软件质量的理论、方法和规程体系,以及确保它们在生产实践过程中得到落实的措施。软件质量保证体系的建立和运行,不仅可以帮助软件开发人员提高软件开发的效率和质量,使软件开发管理人员轻松透明地管理复杂的开发过程,同时也可以极大地提高用户对软件产品质量的信心。

1.1软件质量保证的概念和理论体系

软件质量保证的概念

软件质量保证(Software Quality Assurance,SQA)是指建立一套有计划、有系统的方法,来向管理层保证拟定的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是否合乎标准。软件质量保证组在项目开始时就一起参与建立计划、标准和过程,目标是使软件项目满足组织机构的要求。

质量保证是一个需要从顶层管理角度给予充分关注的战略问题,它是一种积极主动的方法,通过对产品全生命周期建立有意义的、适当的过程,并确保这些过程得到遵循,从而确保质量。

软件质量保证是一种有计划的、系统化的行动模式,一种为使人们信任项目或者使产品符合已有技术需求而必需的行动。它是用于评价开发或者制造产品的过程的一组活动,与质量控制有区别。

软件质量保证的理论体系

软件质量保证经过几十年的发展,已经形成了一个具有丰富内涵的知识体系,本书将这些知识体系分成以下几个方面。

·基础部分:软件与智能化软件;质量与质量观;软件质量;软件度量;质量发展纲要。

·基本技术:验证与确认(V&V);软件评审与审计(review&audit);质量保证与质量控制(QA&QC):软件度量与软件质量度量(measure)。

2

智能化软件质量保证的概念与方法

·基本标准与规程:ISO;CMM;六西格玛标准。

·基本管理:配置管理:风险管理;质量管理;缺陷管理

·软件开发过程中的质量保证:需求分析的质量(头脑风暴);软件设计的质量;软件编码的质量;软件测试的质量;软件发布与维护的质量。

·软件质量保证体系:软件质量保证计划;软件质量保证组织;软件质量工程体系;软件质量保证的文档模板;软件质量工具;软件质量相关职业;软件质量经济学」

·工程化方法(X-软件工程):可信软件工程;自动化软件工程;基于搜索的软件工程:

面向对象软件工程;面向构件软件工程;面向服务软件工程;逆向软件工程;面向方面软件工程;计算机铺助软件工程(CASE):敏捷软件工程(AGILE):净室(cleanroom)软件工程;智能化软件工程;实证软件工程;基于项目的软件工程;大数据软件工程:群智软件工程;分布式软件工程;基于模型的软件工程;基于知识的软件工程;网构软件工程。

·新技术与新平台保障:云计算;雾计算;边缘计算;普适计算;互联网+与工业4.0;

物联网:5G。

·软件质量的特别要求:软件可靠性;软件安全性;软件可信性。

。软件开发形式创新:软件众包;软件生产线;开源软件;群智软件;DevOps。

·软件质量保证方法创新:形式化方法;模型检查:软件分析;软件演化;软件架构;仿真:定理证明;软件重构;容错计算;设计模式;软件控制论

·新型软件应用与系统的质量保证:移动Ap即;多核与并发系统;信息物理系统;智能软件;软件Agent;中间件;分布式系统;网构软件(internetware;知件(knowware):学件(learnware)

·软件智能化技术:数据挖掘:软件仓库挖掘;机器学习;知识图谱;统计预测;人工智能:大数据;区块链

学习软件质量保证具有重要的意义,不仅可以指导我们以科学的态度和方式做好相关工作,还可以进一步指导我们提高日常的学习和生活质量。为了学好这些知识,不仅需要深入理解其中的理论、方法和技术,还要结合国家层面关于质量的大政方针,特别是国务院颁布的质量发展纲要,紧密结合自己的工作、生活和学习情况,理论联系实际,学以致用,不断提高理论和实际应用水平。

思考题

1.什么是软件质量保证?

2.为什么要学习软件质量保证?

3.软件质量保证主要包括哪些内容?

4.怎样学习软件质量保证课程?

1.2软件与智能化软件

人们从不同的角度对软件给出了不同的定义,以下列出了一些主要定义。

维基百科:计算机软件(简称软件)是一系列使计算机能够完成某项工作的指令和数据的集合,与构建和执行系统任务的物理硬件相对应。软件包括所有被计算机系统处理的信息,如计算机程序、库、相关的不可执行的数据(如在线文档和数字媒体)等。计算机硬件和软件互相依存,缺一不可。

第1章软件质量保证概论

百度百科:软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲,软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单地说,软件就是程序加文档的集合体

EEE:软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。软

件包含计算机程序、规程、文档和软件系统运行所必需的数据四个部分。

当软件产品打包发布时,分发的不仅仅是代码,也包含许多支持,如帮助文档、用户手册、样本和实例、标签和补丁、产品支持信息、图标和标志、错误提示信息、广告和宣传材料、安装信息以及其他说明文件。它们都是软件产品的组成部分,客户都要查看或者使用。

从平台的角度,软件是程序与文档的结合体,即程序+文档(是什么);从认知的角度,软件是知识的固化,即知识+使用(含什么):从问题的角度,软件是针对各种需求的一种服务,即服务+需求(做什么)。(引自中国科学院院士、南京大学校长吕建教授)】

软件是对客观世界中问题空间与解空间的具体描述,是客观事物的一种反映,是知识的提炼和“固化”。客观世界是不断变化的,因此,构造性和演化性是软件的本质特征。如何使软件模型具有更强的表达能力,更符合人类的思维模式,即如何提升计算环境的抽象层次,在一定意义上讲,这紧紧围绕了软件的本质特征一构造性和演化性。(引自中国科学院院士、北京大学杨芙清教授)

软件经过三个发展阶段,从“软硬一体化阶段”,到“产品化、产业化阶段”,再到目前的“网络化、服务化阶段”。服务化已经成为互联网环境下软件应用的新形式,服务即软件(Service as a Software,SaaS)

软件的分类方式有很多种,可以依软件的目的分为以下几种:系统软件(如Windows、

Linux、macOS等),应用软件(如Office、AutoCAD),Web应用软件(如百度、Google),工程和科学软件(如Mathematics),嵌入式软件(如各种家电控制软件),人工智能软件(如各种机器学习软件等)。目前还有移动应用软件,主要在移动设备上安装和使用,如微信、支付宝等手机上的各种ApP。当然还有很多其他类型的软件,如网络工具、病毒防治、图形图像、媒体工具、管理/行业软件、桌面工具、教育教学、游戏娱乐、网站源码、编程开发、数码软件、硬件驱动等。依据许可方式的不同,大致可将软件区分为几类:专属软件、自由软件、共享软件、免费软件等。

软件已经成为重新定义和实现世界的基础设施,软件已经无处不在,同时,软件质量也日益成为制约社会发展和技术进步的关键因素。智能化软件的应用背景

我们正在进入智能化时代(互联网+和工业4.0时代),大数据、云计算和人工智能已经成为这个时代进步的“三驾马车”,分别为智能化时代提供数据、算力和算法层面的支持,成为各行各业技术革新和社会发展的重要引擎。

美、英、日、德、法、印等世界各国为推动智能化进程紧锣密鼓地制定了相应的发展战略及行动计划。2016年10月,美国总统奥巴马在白宫前沿峰会上发布《国家人工智能研究和发展战略计划》;同年12月20日,美国白宫跟进发布了一份关于人工智能的报告一《人工智能、自动化与经济》;日本政府也先后发布《机器人新战略》和《人工智能技术战略》。由此可见,世界各国已经把推动智能化软件的发展提升到国家战略的高度。

近年来,我国同样密集出台了一系列发展战略、行动计划和支持政策。2015年,国务院颁布《促进大数据发展行动纲要》,强调数据已成为国家基础性战略资源;李克强总理在两会

智能化软件质量保证的概念与方法

的政府报告中,提出“制定互联网+行动计划”的要求,推动移动互联网、云计算、大数据物联网与现代制造业结合,促进电子商务、工业互联网和互联网金融健康发展,引导互联网企业拓展国际市场。2016年,国家发改委、科技部、工信部、中央网信办联合发布了《“互联网+”人工智能三年行动实施方案》,提出了三大方向共九大工程,系统地阐述了我国在2016~2018年间推动人工智能发展的具体思路和内容。2017年,国务院颁布《新一代人工智能发展规划》,指出要抢抓人工智能发展的重大战略机遇,构筑我国人工智能发展的先发优势,加快建设创新型国家和世界科技强国:同年,工信部发布了《促进新一代人工智能产业发展的三年行动计划(2018一2020年)》,目的在于深入实施“中国制造2025”,加快人工智能产业发展,推动人工智能和实体经济深度融合,力争于2020年在一系列人工智能标志性产业取得重要突破,在若干重点领域形成国际竞争优势。

智能化软件的广泛应用

在当前全面推进战略性新兴产业及高技术制造业的形势下,智能化软件为提升现代企事业单位生产力水平提供了重要支撑,为国民经济飞速增长和社会持续稳定发展提供了有力保障。“智能化软件”是指能够产生人类智能行为的软件系统,通常通过学习或者自适应等方式获得处理问题的逻辑,具有强大的认知和问题解决能力,正在推动经济社会从数字化、网络化向智能化加速跃进。在智能化时代的背景下,大数据提供的海量数据、云计算带来的超强计算能力以及人工智能算法的不断演进为智能化软件的飞速发展插上了腾飞的翅膀。

目前,智能化软件在各个领域表现良好甚至达到了人类的水平。谷歌公司的AlphaGo围棋智能机器人依靠深度学习技术战胜了排名世界第一的围棋冠军柯洁及职业九段棋手李世石,

BM公司的深蓝智能计算系统战胜了国际象棋特级大师加里·卡斯帕罗夫。人工智能技术还

可以提升研究人员发现和解决问题的能力,助力科学研究与发现,造福人类。谷歌最新的人工智能AlphaFold,在一项极其困难的任务中击败了所有的人类对手,成功根据基因序列预测了生命基本分子一蛋白质的三维结构。医学影像企业Enlitic开发了从X光照片及CT扫描图像中找出恶性肿瘤的图像识别软件,利用深度学习方法对大量医疗图像数据进行机器学习,自动总结出病症的“特征”以及“模式”。智能化软件已经渗透到我们生活的每个角落,正在逐渐改变家居、出行、医疗、教育、金融、工作等诸多领域(如表1-】所示)。

表1-1智能化软件的应用实例

智能领域

应用实例

智能家电,如三星公司的智能冰箱Family Hub、亚马逊的Echo智能音箱;家居智能控制平台用于

智能家居

控制门、窗、家用电子设备等,如谷歌的Google Home家庭设备控制中心、扎克伯格的“贾维斯”智能管家、苹果的HomeKit智能家居平台

智慧出行

无人驾驶汽车;智能交通机器人,用于路口的交通指挥,降低交通警察工作量;智能交通监控可应用于停车场、高速路口收费站等,进行车辆抓拍

智慧工作

目前在服务行业有广泛应用,如京东的无人仓储、微软亚洲研究院利用智能化软件来优化现有的航运操作

智能医疗机器人用于外科手术、功能康复及辅助护理等方面,如Verb Surgical公司研发的新一代辅

智慧医疗

助手术的机器人;智能药物研发,如BM的Watson机器人;智能诊疗与智能影像识别;智能健康管理,如Welltok的健康管理平台

智慧教育

网络课程将占据主流,通过人机交互可以在线答疑,通过图像识别可以让机器批改试卷、识题答题等,教育资源丰富且共享

智能金融

准确预测股票价格,进行客户信誉度量和风险管理

第1章软件质量保证概论

(续)

智能领域

应用实例

智能零售

凭借丰富的客户数据,人工智能可以应用在定制产品推荐、购物助手、实时价格调整、库存管理、订单分配以及面向聊天机器人的客户服务等方面,如微软合作商推出的Fellow Robots服务机器人

智能电商

用于电商平台的商品管理,如创建个人推荐、预测商品价格、提高产品图像质量以及识别可疑广告和行为等,实例如Ubcoin Market

智能化软件的质量与安全隐患

智能化软件系统在为人类带来极大便利的同时,由于自身的复杂性和智能性等特点,在软件的可靠性和安全性等方面也会遇到普通软件从未面临的挑战。软件安全性指软件在受到恶意攻击或者非正常使用时仍提供所需功能的能力,是评判软件质量的重要标准之一,也是计算机软件研究的一个重要领域。单机时代的软件安全问题主要是操作系统容易感染病毒,而互联网普及以后,软件安全问题尤为突出。主要原因包括:

·软件开发人员大多安全意识不足,导致开发的软件存在安全缺陷。

·不断增加的软件复杂性和可扩展性需求凸显了软件安全问题的严重性。

。安全性相关缺陷(也称漏洞)是指在软件设计与实现过程中存在的一些容易被恶意攻击者所利用或有可能影响软件可靠运行的缺陷或不足。它不同于一般的软件缺陷,一个很难发现的软件缺陷可能只影响少部分用户或者产生轻微的影响,而一个很难发现的软件安全漏洞可能导致大量用户受到影响或者产生极为严重的影响。

智能化软件系统这类安全关键软件一旦发生故障,可能造成重大人员伤亡、财产损失、环境污染等危险事故。表1-2列举了一些近年来智能化软件系统发生的故障案例。

表1-2智能化软件故障案例

智能应用

案例描述

故障原因

名儿童向亚马逊Alexa下达播放“Diggerdigger”(一首儿童歌曲)的指令,亚马逊个人助

Alexa很难完全屏蔽成人内容,且很

亚马逊Alexa

手通过算法进行识别,竞然认为孩子想听情色内难鉴别是否是儿童在使用设备容,并开始播放

一个德国人的Echo音箱在他不在家的时候被

Echo音箱

意外地激活,午夜之后开始播放音乐,吵醒了邻

有可能是由于指令没有成功传达造成

居,邻居无奈报警

的误报

Tay被人灌输了种族歧视、反女权等思想,经

有人利用Ty无法甄别信息虚假性这

微软聊天机器人Tay

常说脏话,不但说自己喜欢希特勒,还说9·11

漏洞发动攻击,采用一些虚假谎言对

事件是小布什所为

Tay进行训练

谷歌无人驾驶汽车

2016年,谷歌的无人驾驶汽车和一辆公共汽

系统预测公共汽车会在一系列罕见的

车相撞

条件下减速或停车,而实际上公共汽车不可能停止

2016年,特斯拉的一辆无人驾驶汽车和一辆

拖车的外表颜色和天空相近并且底盘

特斯拉无人驾驶汽车

拖车相撞

较高,导致系统将一辆白色卡车误检测为天空

2015年“达芬奇”医疗机器人在心瓣修复手

医疗机器人“达芬奇”术中把病人的心脏“放错位置”,并戳穿其大动

测试无法真实模拟病人的情况,所以

脉,病人最终由于多器官衰竭逝世

难以全面测试系统所有可能的情况

2017年日本一架无人机因操作失误在坠落的

无人机飞行时受到无线电信号干扰:

无人机

过程中砸伤一名工人

致使飞行器跟遥控器失联,导致失控

6智能化软件质量保证的概念与方法

上述案例中的故障是智能化软件自身漏洞导致的,这些漏洞导致软件表现出不被期望的行为,如Eco音箱莫名启动,同时在一些安全关键的领域(如无人驾驶、航空航天等)带来灾难性影响。因此,在智能化软件系统充溢生活的今天,保障智能化软件的质量是一个意义深远的问题。如何有效保障智能化软件系统正确、高效、可靠地实现其既定任务是一个需要解决的重要问题。

思考题

1.什么是软件?软件有哪些特点?

2.什么是智能化软件?智能化软件有什么特点?

1.3质量与质量观

质量是质量保证领域最基本的概念之一,其内涵十分丰富,并且随着社会经济和科学技术的发展而不断充实、完善和深化,人们对质量概念的认识也经历着一个不断发展和深化的历史过程。

质量的定义包括常规定义(好与坏、便宜与否、缺陷多少等直观概念)与专业定义,狭义观点和广义观点等(见表1-3)。

表1-3狭义质量概念和广义质量概念的对比

主题

狭义质量概念(以内部为中心)】

广义质量概念(以人为中心)

产品

有形制成品(硬件)

硬件、软件、服务和研发流程

过程

直接与产品制造有关的过程

包括制造核心过程、销售支持性过程等的所有过程

产业

制造业

制造、服务、政府等各行各业,可以是赢利的或非赢利的

质量问题

技术问题

经营问题

客户

购买产品的客户

所有有关人员,无论是内部还是外部

认识质量

基于职能部门

基于普适的朱兰三部曲:质量计划、质量控制和质量改进

质量目标

工厂的各项指标

公司经营计划承诺和社会责任

劣质成本

与不合格的制造品有关

无缺陷使成本总和最低

质量评价

符合规范、程序和标准

满足客户的需求

改进提高

部门业绩

公司业绩

质量管理培训

集中在质量部门

全公司范围内

协调质量工作

中层质量管理人员

高层管理者组成的质量委员会

为了全面认识质量这个概念,以下给出一些有代表性的专业定义。

·六西格玛管理的定义:产品质量是顾客和供应者从商业关系的各个角度共同认知的价值观念。对于顾客来说,质量意味着用尽可能低的价格买到高质量的产品;对于供应者来说,质量意味着提供顾客期望水准产品的同时获得最大可能的利润。

·美国著名的质量管理专家朱兰博士从顾客的角度出发,提出了产品质量就是产品的适用性(fitness for use),即产品在使用时能成功地满足用户需要的程度。用户对产品的基本要求就是适用,适用性恰如其分地表达了质量的内涵。

·美国质量管理专家克劳斯比从生产者的角度出发,曾把质量概括为“产品符合规定要

···试读结束···

阅读剩余
THE END