倪新洁 梁彪
【摘要】软件度量管理作为一种有效的软件开发过程的管理方式,目前在我国软件行业受到了广泛重视,本文分析软件度量体系构架,然后重点分析基于FPA方法的软件度量,并就其应用作了说明。
【关键词】软件;度量;管理;应用
在信息化时代,计算机技术被广泛应用于各行各业,这种广泛的应用,与软件企业为各个行业打造的行业专用应用软件息息相关。在软件企业研制软件的过程中,需要对软件未来的运行情况进行分析与预测,减少软件的过程结果偏差,进而促进项目的管理者对有关的软件的开发工作实行精准的管理,同时还能使相关人员尽快发现项目进行过程中的不足和制约软件发展的问题,为软件开发的过程控制[1]、评价和进行改善提供一定的管理依据,使整个软件开发组织能够更好的进行软件的开发活动。为了达到软件开发中的这一目的,需要进行软件的度量。软件的度量就是采用不同的量度对软件生命周期中的各个元素进行度量。
当前,在软件行业,为了进行项目的有效管理和监控,可以依据软件度量相关的理论知识建立一套专门的测试流程,按照现代化的方式对项目过程进行定量的度量。在软件开发企业,如果实行了软件度量管理策略,那么将会使项目经理在负责项目进行过程中,能够更加便捷的确定项目开发的规模、投入的资金和物力、制定项目进度计划和工作量核算标准以及绩效考核等方面的工作。
一、软件开发过程度量体系架构
从当前在各企业进行的软件度量分析,可以看出软件开发过程中的度量体系的架构应该包含以下方面的核心内容:(1)开发一个行之有效的度量过程,并让这个过程称为软件开发过程中进行项目管理的一个部分(2)对软件开发的过程资源进行定制与整合,进而拟定项目及相关手续的过程计划;(3)按照拟定的计划和相关手续进行项目管理的度量过程;(4)依据项目进行时间和进度情况以及度量任务的改变,对原有计划的度量手续进行改进,然后改善度量管理的过程。
为了满足上述软件体系架构应该包含的核心内容,以美国的卡内基——梅隆大学的软件工程研究所的相关专家和学者为主的相关研究者提出了一个软件度量过程体系结构图,具体如图1所示。
图1 软件度量过程体系结构
(一)度量过程计划的制定
对于一个软件开发过程,为了更好的实施对这个项目的管理,借助度量管理的手段进行管理,现实意义重大。在这个过程中,首先应做好度量过程技术的制定。制定一套有效的度量过程计划需要重视如下两个方面的问题,一个是对度量需求的大小要有明确的认识,进而依据需求大小制定一个与这个活动相适应的度量过程。为此,我们采用目标、问题、度量的方法对需求进行分解和识别。另一个是将整个度量过程的步骤进行定义,主要是定义完整、一致、可操作的度量。对于数据的采集方法进行定义,确定采用怎样的方式进行数据的记录与保存,以及定义可以对相关度量数据采用何种方法进行分析的技术。
(二)度量过程的实施
度量过程的实施是依据制定的度量过程计划来进行的。因此,实施度量过程也有两个方面的内容:一个是进行数据的采集,即依据已经度量好的操作去进行数据的采集,并做好记录与存储工作;另一个方面就是对采集到的数据进行分析并提交分析报告。
(三)改进度量过程
改进度量过程是度量过程体系中可能存在的一个活动,这是一个进行不断优化的过程活动。这个活动存在的目的就是为了对度量过程进行不断的改善与优化,使这个度量过程能够适应项目进行过程中各种突发问题对项目管理产生的干扰。
二、软件规模度量方法及其应用
(一)度量方法介绍
在软件行业中应用度量,首次还是应用在估算软件的规模上,在这个应用过程中,形成了多种方法。例如:功能点分析法、代码行分析法、专家判定法模型、特征点、对象点、模糊逻辑等。而且这些方法在实际应用中会衍生出多种具体的方法。在其中,功能点分析法( Function Points Analysis, FPA)产生于上世纪70年代中期,目的是为了解决LOC度量过程中的一些问题和局限性,IBM聘请Allan Alhrecht等人进行不断深入研究之后总结出的一套经验方法。这个方法面世之后,立刻就被国际功能点用户协会提出的一种全新的IFPUG方法继承与取代。这个新方法的出现,使得软件度量方法得到国家软件行业相关企业和个人的推崇和接受。本文探讨的正是一种基于FPA的软件度量体系是如何建立的,以及其在软件开发过程项目管理实践中的应用。
对我国当前的软件开发过程进行分析,发现在软件开发过程中,基于FPA法的度量管理手段已经开始了较好的应用。基于FPA方法的度量管理在项目管理过程中,能够协助相关管理者解决软件开发过程中出现的相关问题,对于项目开发的成本和进度也能较好的进行控制,而且这样的度量管理手段能够十分方便的进行变化,促进对软件开发过程的管理,提升软件开发的效果。如下将详细介绍基于FPA方法的软件度量体系。
(二)基于FPA方法的软件度量体系及其应用
随着知识经济水平的不断提高,加上信息化建设步伐的加速,计算机软件行业得到了迅猛的发展,这也给软件产业的发展带来了一定的挑战。对于软的开发过程实施有效的管理不仅能够提升软件开发过程的成本和效果,而且还能促进企业管理水平的提升。对于一个成功的开发软件系统的过程,开发出的软件能够按时保质的完成并交付给用户。从对国内外软件项目开发的管理来看,影响软件开发过程成败的因素多种多样,而这其中的关键因素主要是软件开发成本的估算和管理控制。因此,对于一个即将进行的软件开发项目,需要对这个项目的规模大小、研发需要的资源和进度等情况作出一个合理的估算。
借助于当前在软件发展行业广泛应用的度量体系来解决企业软件项目管理方面的问题,其现实意义和作用巨大。如下将对基于FPA构建满足决策者需求的度量方法进行探讨。
1.FPA方法介绍
对于一个软件项目的规模,FPA方法认为由三个部分组成:信息处理规模、技术复杂程度和功能点数(FP)。
(1)信息处理规模
依据FPA方法,分析软件开发的度量管理过程,发现采用这样的方法对信息进行标注,能够计算出对系(或模块)中的每一种元素的数目,将计算出的元素数目与加权值的合计数进行相乘,即为信息的处理规模,成为UAF。 每一种描述权值对应的数据如表1所示。
表1 功能点权值表
功能点 统计值 加权因数
容易 较难 偏难 容易 较难 偏难
外部输入数 I1 I2 I3 2 3 5
外部输出数 O1 O2 O3 3 4 6
外部查询数 Q1 Q2 Q3 2 5 7
内部逻辑 LF1 LF2 LF3 8 10 14
外部接口
文件数 EF1 EF2 EF3 6 7 12
计算的方法为:FP=I+O+Q+LF+EF
式中每一项的计算值分别是统计值和加权系数的累加。其值分别为对应的加权因素的系数乘积之和。
(2)技术复杂度
基于FPA方法的独立管理体系,其复杂度需要借助于调整系数的值。在这种方法中,调整系数的值与与14个通用系统的特性有关,每一个特性都有与之相应的相关描述,进而帮助确定系统特性的影响程度。影响程度的取值范围为0~5之间,影响程度越大,数值越高。对这些特性进行评估,能够得到系统的调整系数。
(3)计算功能点数
对于修订后的功能系数,直接将功能点书和修订系数进行相乘即可得到。
2.FPA方法在软件工程开发管理中的应用
仅仅从前文所述的FPA法的计算方法来看,这种方法的适用范围似乎只是对于一个软件开发项目进行前期的规模化运作进行任务规模估算的工具,对于具体的项目工程管理视乎没有重要的用途。然而事实却与这个情况相反,因为这个方法是借助功能点为基本度量的出发点。如果结合相关的度量方法体系,有效的设定相关的指标,并对过程进行中的各种确定的量的数据进行收集和进行有效分析,则对于项目管理者做出决定有很重大的作用,能够进一步改善软件开发中存在的问题。为此,我们将讨论基于FPA的度量方法在软件管理中的应用。
(1)计划度量
对于项目管理组织,产品质量的稳定和用户的满意程度,是他们关注的首要问题;其次,就是估算项目管理中一个软件开发项目的规模,对项目的完成情况进行监督,对成本进行控制的过程,这个过程有实际的度量数据。另外,对于项目管理组织,还要(下转第73页)(上接第70页)定期依据相关的考核标准对整个研发和生产团队的生产能力和过程能力进行分析与评价。为此,分析管理者的需求,对其进行有效的分解和识别,然后将这些需求转变为可以进行直接量化的关键度量,并用一致和能够重复进行的方法对必要的数据进行收集。
(2)完善和提升度量体系,促进软件开发过程改进
作为进行度量的基础的FPA法,由于正处于不断完善和发展的过程,对于不同的项目管理过程,其可能并不适用,在进行估算时可能存在一定的主观性。为此,项目管理组织可以依据项目需要,对相关过程和体系进行定制和优化,采用统一的标准,达成一致进行分析并促进管理。同时,度量过程也不仅仅是对项目的历史信息进行评价,也不仅仅是为了一份分析报告。以功能点为衡量方法的度量体系,对软件各阶段的产出物进行衡量和控制,并用于评价组织过程绩效的改进,从而得到在软件工程中的最佳实践。
三、总结
FPA方法是一种广大用户均能理解的度量方法,它能够在项目进行的各个阶段发挥作用,为项目的正常进行提供技术支撑。对于我国进行的软件开发度量管理,在引入全新的基于FPA的独立体系之后,改善了我国软件开发过程中开发效率低,管理力度不强的问题,克服了我国作坊式软件开发先天性的不足,促进了我国软件开发的全面开花,也提升了相关软件企业在世界范围内的影响力。
参考文献
[1]周伟良.软件开发过程质量与产品质量度量方法研究[D].合肥工业大学,2012.
[2]郭都.基于软件度量技术的项目管理系统关键模块设计[D].中国科学院大学(工程管理与信息技术学院),2013.
[3]王珺.基于度量的航空机载软件质量控制研究[D].电子科技大学,2012.
作者简介:倪新洁(1968—),男,大学本科,工程师,从事企业技术管理工作。