第 1 章 引言
1.1 研究背景与意义
目前随着人类科学技术和整个计算机整个产业的成长和发展,计算机软件产业也得到了不断的改进,计算机应用程序单一的功能逐渐变得复杂化,综合化。软件在人类生产生活中起着难以替代的作用,并且已经应用到当今社会的各个角落。然而,软件质量也越来越引起人们的关注和重视。一个没有质量或者质量不能保证的软件不仅关乎开发企业的生存发展,更会对整个社会的生产生活产生极大的影响。软件质量管理的重要性由此可见一斑。随着软硬件的发展,软件项目的编码复杂度也随着提升,客户的需求差异也越来越大,软件的需求变化也越来越快。传统的软件开发模型已经难以适应新的变革,一种新的开发模式即敏捷软件开发应运而生。软件开发从传统的瀑布式模型转为更为轻量的,快速迭代和交付的敏捷方法。
随着人类社会的不停地发展和进步,尤其伴随着现代化技术的不断成长与发展,人们的安全意识得到了加强,作为安防领域重要组成部分的视频监控系统得到了不断的发展,例如人脸识别、车牌识别等技术都取得了大规模的应用。由于监控摄像过程中所产生的视频量呈现出海量增长的态势,并且监控视频又具有一定的特殊性,很大一部分场景都是无用或者静止的。通过人工进行简单视频检索的方式处理已经远远地不能满足客户发展的需要。L 公司的智能视频处理系统的产生就是在这个背景下做出。L 公司通过接入的摄像头,对它们产生的视频进行分析监测,从其中分析出有价值的事件,进行分类存储分析整理,以便于后续的条件检索。
L 公司的这一大型软件系统代码量相当庞大,模块众多,功能繁多,而且客户主要是海外客户,需求变动频繁,对系统的功能添加,缺陷修复等难度极大,监控视频的特殊性又必须保证软件的高质量,高可用性,稍微不留意极有可能造成功能回退,从而引起客户的不满。另外,为了使用软件开发的需要,L 公司的开发管理团队也不断的发展,从单纯的一个团队扩展到了跨国的两个团队。而团队的扩大,尤其是扩大到两个国家更是加剧了这个境况,因为两个团队分工不同,人数有限,而面对的需求多变,每一个团队不一定都能很快的满足客户的各种功能需求以及快速的解决客户所遇到的问题,否则会造成很恶劣的影响。正因如此,为了适应软件开发的需要,L 公司由传统的模式转变为敏捷开发模式,以加快软件功能的交付速度,提高客户的响应速度。
........................
第 3 章 L 公司敏捷软件开发中的质量管理现状与问题分析 ............. 19........................
1.2 研究现状
1.2.1 国内外质量管理研究现状
由于国外的软件行业的发展较之国内来说比较早,因此国外对于在软件质量的研究上也较早,他们有的从软件工程的角度,也就是说,从技术角度来看,如何找到提高软件产品质量的方法,包括研发模型和开发方法等,有些人则是从管理的角度来看,譬如从软件项目管理方法的角度,研究探讨软件项目管理知识的结构与框架。他们提出了不少的管理模型或者标准,例如 CMMI, TQC, ISO9000 等。
国内由于起步晚,但是随着软件产业的迅猛发展,也不断的在探索尝试软件质量管理方法,目前很多都是在使用国外的模型与标准,并对这些标准或者模型进行认证,从而成为进入国际软件市场的敲门砖,而不太关注是否真正的改进了软件过程。但是还有一些企业对这些模型与标准综合自己的实际情况进行改进,提高自己的软件质量。
1.2.2 敏捷软件开发中的质量管理研究现状分析
1.2.1 国内外质量管理研究现状
由于国外的软件行业的发展较之国内来说比较早,因此国外对于在软件质量的研究上也较早,他们有的从软件工程的角度,也就是说,从技术角度来看,如何找到提高软件产品质量的方法,包括研发模型和开发方法等,有些人则是从管理的角度来看,譬如从软件项目管理方法的角度,研究探讨软件项目管理知识的结构与框架。他们提出了不少的管理模型或者标准,例如 CMMI, TQC, ISO9000 等。
国内由于起步晚,但是随着软件产业的迅猛发展,也不断的在探索尝试软件质量管理方法,目前很多都是在使用国外的模型与标准,并对这些标准或者模型进行认证,从而成为进入国际软件市场的敲门砖,而不太关注是否真正的改进了软件过程。但是还有一些企业对这些模型与标准综合自己的实际情况进行改进,提高自己的软件质量。
1.2.2 敏捷软件开发中的质量管理研究现状分析
当前阶段对于敏捷开发质量管理还没有一套成熟而且普适的理论体系,目前敏捷开发质量管理大部分是从传统的质量管理体系例如 CMMI 发展而来,并且结合敏捷开发的特点对传统的质量管理模型进行改进,从而适应本企业的开发方式。
目前已有的研究很多都是从理论角度探讨了敏捷中融合 CMMI,大部分文献通过对比敏捷的过程与 CMMI 的过程域,从而分析出需要改进的敏捷过程。但是文献缺少具体的改进策略与实践,对于企业中实施 CMMI 与敏捷软件开发融合缺少具体的指导.
目前很多软件公司都已经实施过 CMMI 质量管理,或多或少都涉及到了CMMI 质量管理和敏捷软件开发过程的如何无缝的,低成本的融合问题。与CMMI 质量管理类似,敏捷软件开发也有清晰的适用范围。CMMI 质量管理和敏捷软件开发方法在涉及到某些价值观取向,应用原则以及项目实践的方法上既存在着显著的区别或者说是对立,与此同时它们之间还存在着一定的互补关系。CMMI 质量管理模型与敏捷软件开发过程都有着良好的实践经验。CMMI质量管理作为一个庞杂的过程体系来说,其中包含着大量的参考实践的方法。
.........................
目前已有的研究很多都是从理论角度探讨了敏捷中融合 CMMI,大部分文献通过对比敏捷的过程与 CMMI 的过程域,从而分析出需要改进的敏捷过程。但是文献缺少具体的改进策略与实践,对于企业中实施 CMMI 与敏捷软件开发融合缺少具体的指导.
目前很多软件公司都已经实施过 CMMI 质量管理,或多或少都涉及到了CMMI 质量管理和敏捷软件开发过程的如何无缝的,低成本的融合问题。与CMMI 质量管理类似,敏捷软件开发也有清晰的适用范围。CMMI 质量管理和敏捷软件开发方法在涉及到某些价值观取向,应用原则以及项目实践的方法上既存在着显著的区别或者说是对立,与此同时它们之间还存在着一定的互补关系。CMMI 质量管理模型与敏捷软件开发过程都有着良好的实践经验。CMMI质量管理作为一个庞杂的过程体系来说,其中包含着大量的参考实践的方法。
.........................
第 2 章 相关理论综述
2.1 敏捷软件开发相关理论研究
人们为了应对软件危机,软件行业也在不断的提出新的模型与标准,在20世纪90年代,越来越多的文献开始推荐使用迭代与增量开发,到2000年末,不断的有更多的敏捷开发方法被提出并开始应用于各种不同的软件项目中。2001年,17位在DSMP, XP, Scrum, FSD 等领域的专家组成的代表团齐聚美国犹他州的雪鸟滑雪山庄,探求出软件开发方法未来发展的一致理念。他们制定出一份简洁明了的《敏捷宣言》。敏捷软件开发由敏捷价值观和敏捷原则两方面构成。
敏捷价值观是一套全新的软件开发观念,是敏捷软件开发方法的精华。敏捷价值观如下:
2.1 敏捷软件开发相关理论研究
人们为了应对软件危机,软件行业也在不断的提出新的模型与标准,在20世纪90年代,越来越多的文献开始推荐使用迭代与增量开发,到2000年末,不断的有更多的敏捷开发方法被提出并开始应用于各种不同的软件项目中。2001年,17位在DSMP, XP, Scrum, FSD 等领域的专家组成的代表团齐聚美国犹他州的雪鸟滑雪山庄,探求出软件开发方法未来发展的一致理念。他们制定出一份简洁明了的《敏捷宣言》。敏捷软件开发由敏捷价值观和敏捷原则两方面构成。
敏捷价值观是一套全新的软件开发观念,是敏捷软件开发方法的精华。敏捷价值观如下:
(1) 对个体与交互的重视度大于对过程和工具
(2) 可用的软件相对于文档来说更加重要
(3) 对客户协作的重视程度要大于合同谈判
(4) 对与变化的响应终于遵循计划
敏捷价值观中承认右项的价值,但是相对来说更加重视左项的价值(柯闻秀,曲红,2009)。
(2) 可用的软件相对于文档来说更加重要
(3) 对客户协作的重视程度要大于合同谈判
(4) 对与变化的响应终于遵循计划
敏捷价值观中承认右项的价值,但是相对来说更加重视左项的价值(柯闻秀,曲红,2009)。
敏捷软件开发有十二个原则。 将敏捷价值观落实到了具体的可操作的原则上,这些原则包括了软件项目管理的所有基本流程,坚持这十二项原则是成功实施敏捷软件的基础。
敏捷软件开发模型的核心在于:以人为根本、持续迭代、渐进并且循环开发。(宋砚秋,卢梓烨,2013)。在敏捷软件开发过程中,一个大的软件项目由多个子项目组成,每一个子项目的成果都是必须经过测试的,子项目的结果具备集成和可以运行的特点。也就是说,就是把一个大项目分成多个互相关联,但是也可独立运作的小项目,并且它们可以分别独立完成,在这一过程之中交付的软件一直处于可以正常的使用状态(党源源,付晓琳等,2009)。
..........................
2.2 质量管理相关理论
软件质量是软件生命力之所以存在的核心(Duarte, 2014)。质量问题比较严重的产品不仅仅消费着大量的人力成本和资源,还会给客户和社会带来极大的浪费。根据 ISO8402 术语规定, 质量就是: “反映实体满足显性和隐形需要的能力的特征总和”。软件质量是指: “在功能和性能方面满足用户要求,遵守规定的标准和规范,以及正式软件的某些公认性质”(高沛然,李明,2017)。
..........................
2.2 质量管理相关理论
软件质量是软件生命力之所以存在的核心(Duarte, 2014)。质量问题比较严重的产品不仅仅消费着大量的人力成本和资源,还会给客户和社会带来极大的浪费。根据 ISO8402 术语规定, 质量就是: “反映实体满足显性和隐形需要的能力的特征总和”。软件质量是指: “在功能和性能方面满足用户要求,遵守规定的标准和规范,以及正式软件的某些公认性质”(高沛然,李明,2017)。
软件质量作为一种软件产品,它可以清楚地描述软件开发文档中明确给出的功能和性能要求,开发标准,以及所有专业软件应具有的隐藏特征一致的功能。(张璇,2017)从管理角度来说对软件质量进行衡量,我们可以把可能影响到软件质量的因素分成三个方面,分别用来反应软件产品在被客户使用时的客户的三种观点:
产品运行时,客户主要的关注点在与软件产品的运行是否正确、是否可以稳定运行、软件运行是否高效、软件的功能是否完整、软件是否可用;
产品运行时,客户主要的关注点在与软件产品的运行是否正确、是否可以稳定运行、软件运行是否高效、软件的功能是否完整、软件是否可用;
产品修改时,则客户主要关注产品是否可理解、出现问题的时候维修起来是否比较简单快速; 产品转移时则客户更多的关注点在于软件的可移植性以及软件的可再用性。
在 20 世纪 70 年代的软件危机之后,软件质量管理引起了人们的关注,也不断发展出各种质量体系和模型,目前国外已存在较成熟的质量模型除 ISO9000和 CMM /CMMI 外, 尚有国际标准 SPICE、TickIT、Trillium、Six Sigma 等。(周伟良,
在 20 世纪 70 年代的软件危机之后,软件质量管理引起了人们的关注,也不断发展出各种质量体系和模型,目前国外已存在较成熟的质量模型除 ISO9000和 CMM /CMMI 外, 尚有国际标准 SPICE、TickIT、Trillium、Six Sigma 等。(周伟良,
2013)相比与 ISO9000 等质量标准的广泛应用场景,CMMI 天生就是为软件的质量诞生的一个模型,鉴于 CMMI 的软件适用性以及 L 公司的实际使用场景,本文主要讲述的是 CMMI 质量模型.#p#分页标题#e#
CMMI 也就是 Capability Maturity Model Integration,中文名称为能力成熟度模型集成或者称之为软件能力成熟度集成模型。CMMI 软件能力成熟度模型通过提供一个单一集成化模型来改善一个组织的各种过程,这一集成模型框架有力的减少了各个模型的不一致性,并且也减少了各个模型间的重复,增加了相互之间的透明度和理解(白思俊,朱宏超,2005)。最终建立了一个自动化的,利于扩展的模型。因此 CMMI 可以用来改进组织的质量和效率。CMMI 首要关注的特征点有以下的四个方面分别是成本收益,清晰的重点,过程集中还有灵活性。
.....................
.....................
3.1 L 公司软件产品简介 ................ 19
3.2 L 公司管理与开发概况 .................. 20
第 4 章 L 公司基于 CMMI 的敏捷软件开发质量管理实施 ................ 43
4.1 调整组织结构 .............................. 44
4.1.1 组织机构调整 ................... 45
4.1.2 明确责任分工 ......................... 45
第 5 章 研究成果验证 ........................ 57
5.1 实施效果分析 ............................. 57
5.1.1 软件缺陷降低 ...................... 57
5.1.2 功能交付延期减少 ...................... 57
第 5 章 研究成果验证
5.1 实施效果分析
5.1.1 软件缺陷降低
实施 CMMI 质量管理后,随着软件测试流程的规范以及自动化测试的应用,以及严格的代码审核,软件缺陷有了大幅的降低,通常在系统交付前就可以发现软件缺陷,大大降低了客户缺陷。
本节将从实施 CMMI 质量管理前后 6 个月的千行代码缺陷率,平均各阶段缺陷率,平均客户缺陷数等入手进行分析。
5.1.1 软件缺陷降低
实施 CMMI 质量管理后,随着软件测试流程的规范以及自动化测试的应用,以及严格的代码审核,软件缺陷有了大幅的降低,通常在系统交付前就可以发现软件缺陷,大大降低了客户缺陷。
本节将从实施 CMMI 质量管理前后 6 个月的千行代码缺陷率,平均各阶段缺陷率,平均客户缺陷数等入手进行分析。
........................
第 6 章 结论与展望
随着需求变更的迅捷,客户需求变更的日益频繁。敏捷软件开发逐渐成为日益流行的软件开发模式,但是敏捷软件开发作为快速开发方法对于质量管理缺乏有效规范与指导,敏捷软件开发更多的关注的是软件开发过程,因此在一定程度上对软件质量缺少必要的手段与规范,而 L 公司在采用敏捷开发的时候又整合了两个国家的团队加之视频监控软件的特殊性,更加的对软件产品质量提出了要求,软件产品质量更决定了公司的成长与发展。
CMMI 作为成熟的质量模型与行业标准。尽管过于庞大,本身与敏捷软件开发没有太大的交叉,而且严格的 CMMI 又与敏捷软件开发的快速反应存在一定的冲突。但是 CMMI 经过与敏捷软件开发的对比,加之适度的裁剪,同时对敏捷开发做出适度的微调,本文在敏捷软件开发的基础上应用 CMMI 从而为敏捷软件开发的质量提供一定的保障。
本文通过对 CMMI 与敏捷软件开发结合,综合公司的实际情况,并且应用PDCA 循环进行持续改进敏捷软件开发中的质量管理。
L 公司在敏捷软件开发过程中实施 CMMI 质量管理,主要是在敏捷开发的基础上,结合 CMMI 质量管理过程领域中敏捷开发所不支持的部分领域,对敏捷软件开发做出一定的调整,并且结合公司的实际情况制定了新的组织结构与几个措施来完善敏捷软件开发过程中的质量管理。
(1) 调整公司的组织结构,完善质量管理团队,增加自动化测试队伍,明确各个角色的分工,权责分明,由质量管理团队作为主要参与人,对 CMMI 进行实践。
(2) 调整工程管理,对需求管理进行规范,同时对需求变更结合 CMMI 与敏捷开发进行改进。
(3) 完善过程管理,制定相应的软件开发质量保证计划,调整质量控制流程。并且结合 PDCA 循环,对质量进行持续改善。
参考文献(略)