技术开发 频道

软件质量保证的成功之路

【IT168 分析评论】

    1 概述

    在软件开发团队中,由于质量被视为软件产品的生命,而始终被人们所高度关注;然而在现实生活中,许多软件产品却时常陷入质量低下的旋涡,总是不尽人意。究其根源,在于这些软件产品对其质量内涵的把握,仅仅停留在减少软件运行错误、加强软件测试、避免软件缺陷的一般性层面,而对整个软件开发生命周期的全过程质量管理,缺乏总体架构。因此,在大型软件产品的开发与设计中,始终体现全过程质量管理思想的Rational Unified Process?(简称RUP)和提供全生命周期支持的软件开发平台,则展现出强大的生命力和独特魅力。

    2 全过程质量保证

    2.1 质量定义

    在RUP中,质量定义如下:

    满足或超出认定的一组需求,并使用经过认可的评测方法和标准来评估,还使用认定的流程来生产。

    由此可见,质量不仅是我们孜孜以求的结果,它更体现在软件开发的整个过程。

    2.2 过程质量

    在过程质量方面,经常举的一个例子就是汽车生产过程。让我们一起来想象一个场景:在上个世纪初的一家汽车销售公司里,汽车销售员正在为作为准客户的您推销两款汽车,其中一款是由某公司引入当时世界上非常先进的生产线和工艺流程生产的产品,而另一款是由厂家技术精湛的师傅花了一个多月的时间用车床加大锤手工精制而成。排除其它汽车购买因素,在汽车的质量方面,您会作何感想呢?精明的你一定会作个简单分析,第一辆车的质量是由汽车生产线和生产工艺本身决定的,每一辆同型号车的质量完全相同,它是由汽车生产的过程质量决定的;而第二辆车的质量在很大程度上则依赖于生产汽车的师傅水平,不同的师傅生产出的汽车质量可能相差很大。因此通过了解市场上同型号车的质量状况,你可以轻松做到对第一辆车心中有数;但对第二辆,你则需要花一番功夫弄清楚师傅的资质背景,从而判断汽车的质量。由此可见,你对第一辆车的信任,来自于过程质量,而汽车作为日常消费商品被大规模生产和销售的基础也是过程质量,是它使汽车生产的规模经济成为可能。

    软件开发过程质量就是指为了生成工件而对可接受流程(包括质量评测和质量标准)的实施和遵守程度。软件生产的过程质量与汽车类似,体现在三个层次:一是产品本身和用来生产、组装软件产品的零部件质量,包括用来进行软件开发或在软件开发过程中产生的代码、文档、模型和可执行系统等工件;二是软件开发活动本身对标准化软件开发过程的遵守程度,主要体现在软件开发过程的标准化、流程化、自动化程度和团队基本协作平台的效率;三是用来对整个软件产品进行验收的评测手段,它应该是被业界广泛认可和接受的方法。

    一个软件生产企业的过程质量一般可以用它的软件过程成熟度等级(例如CMM/CMMI的级别)来决定,这也正是印度的软件公司能够获取很多外包项目的重要原因。但我们应该更清醒的看到:真正保证软件质量的不是CMM/CMMI的一纸评估报告,而是软件生产过程本身的成熟度,包括我们赖以达到成熟等级的方法、工具和软件开发平台。可喜的是国内越来越多的企业已认识到这一点,把更多的功夫花在使用合适的方法、采用恰当的工具和平台,切实提高软件生产过程的成熟度。

    2.3 RUP的质量保证思想

    Rational Unified Process? (简称RUP)是一个可以通过Web来使用的软件工程过程。作为软件工业事实上的标准,它回答了我们以下问题:在整个软件开发过程中,应该由谁(角色)在什么时候(详细工作流程)做什么(活动)和产生什么样的开发结果(工件),以完成整个项目的开发目标。建立有效的工作过程,可以提高团队的生产效率,控制开发过程中的风险,保证软件开发进度并且提高软件产品质量。同时通过为所有重要的开发活动提供全面的指南、模板和示例,使整个软件开发团队能够有效共享成功经验,提高团队效率,最终保证软件开发质量。

    1) RUP的质量保证思想之一:全过程质量保证思想

    RUP把整个软件开发过程分解成:业务建模、需求管理、分析设计、实施、测试、部署、配置与变更管理、项目管理和环境等九个核心工作规程。每个核心工作规程由多个详细工作流程组成。基于人类对软件工作过程最原始的感受,RUP使用角色、活动和作为输入输出的工件来组织每个详细工作流程,实现软件开发组织内部人、资源和流程的融合。RUP通过建立完整的软件开发过程,使得产品的质量由项目团队的每个成员共同负责,具体体现在:

    每个角色承担相应的质量任务

    每个活动产生合格的工件

    为每个工件建立指南、模板和检查点

    每个工作流程设定相应的工作指南和检查点

    在RUP中,整个软件开发过程如上图所示,它以指定的工件为输入,通过软件开发角色和标准化的软件开发活动,生产出满足质量要求的输出工件。为确保每个工作环节的有效执行和每个工作环节产生的工件质量,RUP为主要工作流程提供了对应的工作指南和检查点,为每个工件建立指南、模板和检查点,从而保证了软件开发的过程质量。

    2) RUP的质量保证思想之二:软件工程成功经验共同铸就软件质量的思想

    激烈的市场竞争催生高质量的软件。同时,软件行业经过几十年的发展,软件生产工艺、软件开发方法和工具都大大进步、日趋成熟,这一切使软件开发质量越来越好。RUP以迭代式软件开发、架构为核心的软件开发、用例驱动的软件开发和风险驱动的软件开发为特色,集中体现了以下六个软件工程成功经验,通过它们共同铸就了高品质软件:

    迭代式软件开发:能够有效控制项目风险、增加对项目控制能力、减少需求变更对项目的影响,实现持续的质量验证;

    有效管理需求:能够做到质量保证从头作起,在软件开发一开始,就把好需求质量关,实现需求的可追踪性和需求变更的有效管理;

    基于构件和面向服务的软件架构:采用可视化建模技术来构建以构件为基础、面向服务的系统框架,可以有效地管理系统的复杂度,增强系统的灵活性和可扩展性;

    可视化建模:能够有效解决团队沟通、管理系统复杂度、提高软件重用;

    持续的质量验证:借助迭代式软件开发方法,可以大大提前软件集成测试和系统测试在整个开发生命周期中的时间,实现持续地软件质量验证,做到尽早测试、尽早反馈,从而确保产品满足客户的需求;

    管理变更:能够为整个软件开发团队提供基本协作平台,使企业管理好自己的软件资产,通过有效管理所有的变更请求,使开发团队能够很好的控制开发进度、及时了解项目状况,同时为项目的量化管理提供帮助。

    由此可见,在软件开发过程中,高品质软件是由以上软件工程的成功经验共同铸就的。

0
相关文章