来源:期刊VIP网所属分类:软件开发发布时间:2022-05-11浏览:次
摘 要:针对软件质量保证(Software Quality Assurance, SQA)技术在实际应用过程中任务量大、方法效率低下、容易受主观判断干扰等问题,探讨了质量管理体系(Quality Management System, QMS)和能力成熟度模型集成(Capability Maturity Model Integration, CMMI)的概念,对软件质量保证技术进行研究,包括传统的软件质量保证技术PDCA循环以及七种统计技术;设计了辅助实施质量保证(Quality Assurance)的自动化软件管理工具,分析了软件质量保证应用的现状,总结了质量管理工具的应用要点。结果表明,质量保证自动化技术的应用研究对改善软件质量、提高工作效率具有实践价值。
关键词:质量保证;质量管理体系;软件质量管理工具
1 引言(Introduction)
計算机技术的迅猛发展促进了计算机应用的日新月异,尤其在武器装备系统中,软件所占比重逐年提高,因此对软件程序的质量提出了更高的要求。美国政府机关的数据曾显示,美国每年由于软件质量问题造成的经济损失高达600亿美元。
近十年来,基于CMMI的软件工程化被广泛应用于中国各大企事业单位。实施CMMI的本质是帮助组织有效地改善软件工程管理的核心问题,进而提高软件质量[1]。软件质量保证作为确保软件项目管理实施规范化的一种技术,其监督对象是在组织级定义的项目层面的过程活动和工作产品。
本文明确了质量保证在质量管理中的作用,探讨了依据国际标准和军用标准建立质量管理体系中的软件质量保证的实施过程及技术方法,以及在运用软件质量保证进行项目监督评价时所使用的自动化管理工具的设计实现。
2 软件质量保证的相关概念(Related concepts of SQA)
任何组织都需要管理,当管理的对象是产品的质量时,则为质量管理。质量管理是关于质量的一切管理活动,例如确定质量方针、质量目标,建立质量管理体系,具体包括质量策划、质量控制、质量保证和质量改进。20 世纪60 年代初,美国的A.V.费根鲍姆提出了全面质量管理TQM(Total Quality Management)的概念,将企业各部门在研制质量、维持质量和提高质量方面的活动构成一种有效体系。中国自20 世纪70 年代末开始推行全面质量管理,并取得了一定成效。
国际标准和国家标准对质量管理是这样定义的:质量管理是在质量方面指挥和控制组织的协调活动。《装备质量管理术语》(GJB 1405A—2006)中规定了装备科研生产使用中涉及的装备质量管理术语[2]。
质量管理体系作为在质量方面指挥和控制组织的管理体系,是组织内部建立的、系统的质量管理模式,为实现质量目标,将资源与过程管理方法相结合,涵盖了确定需求、生产研制、检验交付等全过程的策划、实施、监控与改进活动。质量保证是质量管理的一部分,按照质量管理体系的规定实施有计划的系统活动,以保证产品质量为基础,使用户确信产品或服务满足规定的质量要求,致力于获得用户的信任。
2.1 质量管理体系的概念
20 世纪60 年代,美军制定了MIL-Q-8958A等系列军用质量管理标准,在标准MIL-Q-9858A中提出了“质量保证”的概念。20 世纪70 年代末,英国将军方在制定合同时使用的质量保证方法引入市场环境,制定了英国国家质量管理标准BS 5750。20 世纪80 年代末,国际标准化组织制定的国际质量管理标准ISO 9000系列开始在世界范围内推行质量管理与质量保证,该系列标准适用于不同类型产品与性质的组织。
质量保证在ISO 9000:2005中被定义为质量管理的一部分,目的在于通过进行严格的试验来获取顾客信任,满足最终顾客使用的环境、寿命以及产品的相关标准要求。质量保证关注的是与质量活动相关的政策、制度、流程、规范,通過质量保证人员在软件全生命周期的质量评价活动,确保软件项目的实施符合相关标准、制度和规范。
20 世纪80 年代,美国卡耐基梅隆大学软件工程研究所(Software Engineering Institute,SEI)组织软件管理方面的专家研发了一种软件能力成熟度评估标准CMM(Capability Maturity Model),用于指导软件开发过程的改进和软件开发能力的评估。CMMI是CMM模型的更新版本。2018 年,CMMI研究院正式发布了CMMI 2.0中文版,该版本是针对软件、产品和系统的优良实践发布的过程改进模型,致力于利用当前的优良实践,改善业务绩效,以业务绩效为焦点,为使用Scrum的敏捷项目过程提供直接指导。中国人民解放军总装备部参考CMMI最新版本也开始进行GJB 5000A的改版工作,并将在2022 年底完成军工企事业单位依据GJB 5000B的体系换版工作。
CMMI为组织提供了一个单一的集成框架,一共包括五个级别,不同的级别包含的过程域也不尽相同。所有过程域分为四大类:过程管理类、项目管理类、工程管理类、支持管理类。支持管理类中包含“过程与产品质量保证”过程域,该过程域为项目管理层提供了项目过程和相关工作产品的客观信息,如图1所示。
软件质量保证属于支持管理类过程域中的过程和产品质量保证,用以在项目整个生命周期提供对所有过程域中所描述的过程和工作产品的客观评价,并确保这些评价提出的所有问题得到解决,从而确保交付高质量的产品和服务。
2.2 软件质量保证的应用现状
随着移动互联网的蓬勃发展以及云计算、大数据技术的更新换代,软件开发模式也正在发生着适应性变革。敏捷开发作为一种灵活的开发方式正被越来越多的企业所采纳,其面向用户预期的迭代开发方法使软件从需求分析到设计完成的周期变短,更适用于需求变动频繁、快速应对风险、交付周期短的项目。但这种开发模式也使软件质量管理工作的难度更大,更难以建立行之有效的软件质量管理体系。CMMI 2.0则可以辅助使用诸如Scrum这样的敏捷模式的企业更好地实现其管理价值,尤其能够在跨项目的组织层面实现敏捷的规模化,提升组织的敏捷开发能力。
一个组织的质量管理体系通常是国家标准以及军用标准的本地化,在遵守法律法规要求的前提下,所制定规范的适宜性对企业来说至关重要。而对于军用软件,一个完备的武器装备系统可能由多个承制单位合作研发,项目管理难度普遍较大,而其涉及的软件质量关系到国家安全,复杂的管理过程更需要适宜的质量保证技术和高效的软件管理工具的辅助。
国家标准要求研制单位必须采用评审、审计和测试等具体手段来控制质量。在软件开发的每个阶段结束时,都应组织正式的技术评审,即由软件技术人员按照软件需求规格说明和设计文档,对软件产品进行严格的评审。大多数情况下,评审和测试能有效地发现文档以及软件中的缺陷和错误,但这两种技术方法关注的是产品本身的质量,不包括研制过程的质量,而软件质量保证则可以通过监督技术评审等过程的规范性来保证评审的有效性。
软件质量保证的应用需要一个统一的认知环境和价值观,对于企业来说,适宜有效的质量管理体系下的软件质量保证活动可以发挥杠杆作用,帮助软件研发工作提高协调性,提高生产率,改善产品质量,提升竞争优势。
3 软件质量保证的技术方法(Technical method of SQA)
软件质量保证是一套有计划的、系统的技术方法,其所制定的标准、步骤、规程和方法应该保证能够正确地被所有项目所采用。软件质量保证是对软件研制过程的一种管理,以独立于项目组的角色履行独立审查职责。通过对软件产品和过程活动的评审和评价来验证软件研制过程是否正确遵循已制定的计划、标准和规程,同时为开发人员和管理层提供反映产品和过程质量的信息和数据,辅助项目取得高质量的软件产品。
3.1 软件质量保证的传统技术
全面质量控制(Total Quality Control, TQC)理论起源于美国,20 世纪60 年代,为了在一定经济条件下生产尽可能高质量的产品,朱兰、费根堡姆提出质量活动策划应该覆盖所有职能部门。该理论在发达工业国家开始推行,尤其在日本应用广泛,并于20 世纪80 年代逐渐发展为全面质量管理的概念。
全面质量管理的基本方法是PDCA(Plan-Do-Check-Act)循环,又称戴明环。PDCA循环将质量管理分为四个阶段,即计划(Plan)、执行(Do)、检查(Check)、处理(Act)。该工作方法是企业管理各项活动的一般规律,软件质量保证实施的一般步骤也基本遵从该管理方法。
在执行和检查阶段,为了更好地分析问题,全面质量管理可使用14 种质量管理工具。其中,被称为“老七种”的方法运用了统计技术,包括“因果图”“流程图”“直方图”“检查单”“散点图”“排列图”“控制图”,这些方法普遍用于质量改进,其概念如下:
推荐阅读:软件开发中测试驱动开发的运用
期刊VIP网,您身边的高端学术顾问
文章名称: 软件质量保证应用软件自动化技术研究
文章地址: http://www.qikanvip.com/ruanjiankaifa/62241.html