快捷搜索:

软件度量的方法体系

项目度量

项目度量是针对软件开拓项目的特定度量,目的在于度量项目规模、项目资源、项目进度、顾客知足度等,帮助项目治理进行项目节制。

规模度量

软件开拓项目规模度量(size measurement)是估算软件项目事情量、体例资源预算、策划合理项目进度的根基。规模度量是软件项目掉败的紧张缘故原由之一。一个好的规模度量模型可以办理这一问题。有效的软件规模度量是成功项目的核心要素:基于有效的软件规模度量可以策划合理的项目计划,合理的项目计划有助于有效地治理项目。规模度量的要点在于:由开拓明场的项目成员进行估算;机动运用实际开拓生发火业数据;杜绝盲目投合顾客需求的“交期逆推法”。

软件规模度量有助于软件开拓团队准确把握开拓光阴、用度散播以及缺陷密度等等。软件规模的估算措施有很多种,如:功能点阐发(FPA:function points analysis)、代码行(LOC:lines of code)、德尔菲法(Delphi technique)、COCOMO模型、特性点(feature point)、工具点(object point)、3-D功能点(3-D function points)、Bang度量(DeMarco's bang metric)、隐隐逻辑(fuzzy logic)、标准构件法(standard component)等,这些措施赓续细化为更多详细的措施。

1. 功能点阐发法

(1)功能点阐发法概述

功能点阐发法(FPA:function point analysis)是在需求阐发阶段基于系统功能的一种规模估算措施,是基于利用软件的外部、内部特点以及软件机能的一种间接的规模丈量。FPA法由IBM的工程师艾伦·艾尔布策(Allan Albrech)于20世纪70年代提出,随后被国际功能点用户协会(IFPUG:The International Function Point Users' Group)提出的IFPUG措施承袭,从系统的繁杂性和系统的特点这两个角度来度量系统的规模,其特性是:“在外部样子容貌外形确定的环境下可以度量系统的规模”,“可以对从用户角度把握的系统规模进行度量”。功能点可以用于“需求文档”、“设计文档”、“源代码”、“测试用例”度量,根据详细措施和编程说话的不合,功能点可以转换为代码行。经过ISO组织已经有多种功能点估算措施成为国际标准,如:①加拿大年夜人艾伦·艾布恩(Alain Abran)等人提出的周全功能点法(full function points);②英国软件度量协会(UKSMA:United Kingdom Software Metrics Association)提出的IFPUG 功能点法(IFPUG function points);③英国软件度量协会提出的Mark II FPA功能点法(Mark II function points);④荷兰功能点用户协会(NEFPUG:Netherlands Function Point Users Group)提出的NESMA 功能点法,以及软件度量合营协会(COSMIC:the COmmon Software Metrics Consortium)提出的COSMIC-FFP措施,这些措施都属于艾尔布策功能点措施的成长和细化。

(2)功能点阐发法的基础计数

功能点阐发的基础计数便是依据标准谋略出的系统(或模块)中所含每一种元素的数目:

①外部输入数(EI:external input):谋略每个用户输入,它们向软件供给面向利用的数据。输入应该与查询区分开来,分手谋略。

②外部输出数(EO:external output):谋略每个用户输出,它们向软件供给面向利用的信息。这里,输出是指报表、屏幕、掉足信息,等等。一个报表中的单个数据项不零丁谋略。

③外部查询数(EQ:external query):一个查询被定义为一次联机输入,它导致软件以联机输出的要领孕育发生实时的相应。每一个不合的查询都要谋略。

④内部逻辑文件(ILF:internal logical file):谋略每个逻辑的主文件,如数据的一个逻辑组合,它可能是某个大年夜型数据库的一部分或是一个自力的文件。

⑤外部接口文件(EIF:external interface file):谋略所有机械可读的接口,如磁带或磁盘上的数据文件,使用这些接口可以将信息从一个系统传送到另一个系统。

(3)功能点阐发的主要步骤

功能点阐发可以按照如图5-6所示步骤进行:

图5-6 功能点阐发的主要步骤

(4)案例:CSK股份有限公司的功能点阐发案例

【CSK股份有限公司的CSFPA概述】

在实施CSFPA之前,CSK以Step数措施来估算开拓规模。然则在使用VB、C++、Java、SQL等说话的项目开拓中,用Step数措施进行规模估算对照艰苦。为了以定量化手段低落以致打消估算差错,CSK在IFPUG(International Function Point Users Group)的FP法的根基上加以改善开拓出自身的CSFPA(CSK Simplified Function Point Analysis)法,并在企业内加以实施。CSK于1995年加入IFPUG组织,并于1998年开始正式开展活动。

CSFPA改善的两点是:增添了度量要件定义等上游工程的简略单纯丈量功能;避免应用工资身分太强的调剂系数。CSFPA法适用系统体例在项目估算时的FP度量、项目完成时的FP度量、实际数据的网络、统计阐发、工数模型化、质量指标化等方面具有CSK特有的要领,CSK在该措施的教导与培训、模型建筑、估算·质量计划的适用、结果评价·差异阐发等方面取得了优越的绩效。

【CSFPA法的估算步骤】

CSFPA法与IFPUG法的估算步骤有所不合,二者的相似点以及不合点请参照图5-7。

图5-7 CSFPA功能点估算步骤

【CSFPA法的推广运用】

为了遍及和适用CSFPA,CSK在企业内设立由多名专任职员组成的事务局,推进措施的定义以及掩护、治理、员工教导、度量声援、数据网络、统计阐发、数据使用等。下面对CSFPA的适用系统体例加以先容。

项目估算时的FP度量。在估算时度量软件规模,经由过程适用响应的工数模型测算估计工数,以此作为拟订日程的根据。CSFPA的工数模型以开拓的全历程为工具,按照项目的开拓范围进行估算,将样子容貌外形、品德、技巧的对应要件作为更改要素对此加以调剂。

项目完成时的FP度量。在项目完成阶段对FP数、应用情况、技巧、工数以及质量信息等几十个项目加以记录,对照估算时的FP数并进行差异阐发,以提升度量精度和模型有效性。

实际数据的网络。将度量的实际数据剃除非常点后纳入数据库,并加以阐发,然后向全企业公开。这种标本数据已经跨越400件。因为FP度量历程中因为度量者的不合可能导致较大年夜的偏差,事务局还面向履历甚浅的度量者供给现场支持,验证度量结果的妥帖性,前进度量的精度。别的,还与其他企业所供给的数据进行对照验证,持续网络数据。

统计阐发。对付网络起来的数据,还必要斟酌到项目特点的差异并加以阐发。作为阐发的边界,CSK建立了包括约50种类型(可视化对象类开拓、Web类开拓、掩护的主框架开拓等)的数据库,并对各自包括工数在内的10种以上的项目和FP值实施相关阐发。

工数模型化。CSK将FP数和工数的关系称之为“工数模型”,现在已经拥有可适用的6种工数模型。这些模型与实际数据的网络相共同,实施差异阐发,持续提升估算精度。

质量指标化。与工数模型一样,CSK将FP数和质量数据(缺陷、问题等)之间的相关关系作为质量模型加以供给。经由过程定义经过质量模型得到的指标,并与现存的指标相结合,建筑综合性的质量指标。

【CSK推进FP法的履历总结】

度量措施的教导与渗透—— 启蒙。要应用FP法进行度量,当然必要懂得度量规则。CSK在其“项目治理研修”这一系统体例中,对企业员工实施教导,解说FP法的定位、概要、应用措施,进行度量实习,让企业员工掌握FP法。

模型建筑—— 提升估算精度的路径。要应用各类模型提升估算的精度,必要度量项目特点以及仔细反省数据。CSK经由过程现场调研和声援活动,积累起专业常识和技能,并对技巧、样子容貌外形、质量方面的特点信息加以收拾,建筑得当CSK的估算模型,前进估算精度。

估算·质量计划的适用—— 拟订适当而精确的计划。建筑起来的模型在实际提案的时刻作为估算的根据或者在产品的质量计划拟订历程中适用。在模型赓续适用的环境下,这些模型的适用实例也就徐徐富厚起来。

结果评价·差异阐发—— 取得反馈信息至更高水平的运用。项目开拓历程中,变化点治理以及计划与实绩的差异阐发异常紧张。在这个历程中,必要得到适当的反馈信息,在把握繁杂的项目状况的同时必要机动应对这些变化和反馈。CSK在这方面也在积极运作并在全部企业内展开。

【CSK功能点法往后的展开】

将FP作为商务活动中的共通尺度是CSK导入FP法的主要目的之一。为了前进CSK与顾客之间将之作为共通尺度的认知度,CSK觉得必要实施如下事变:一是前进措施本身的认知度和信赖性;二是客不雅地验证度量数据的精度。FP是度量软件规模的手段,在软件开拓的商务活动、项目治理、资产治理等诸多场合中都是切实把握规模的依据,因此适当的价格供给高质量软件的根基,也是客不雅性表示CSK的临盆性的紧张身分。CSK在通信、节制、嵌入式开拓中正在试用COSMIC-FFP。

2. 代码行

代码行(line of code)指所有的可履行的源代码行数,包括可交付的事情节制说话(JCL:job control language)语句、数据定义、数据类型声明、等价声明、输入/输出款式声明等。一代码行(1LOC)的代价和人月均代码行数可以表现一个软件组织的临盆能力。组织可以根据对历史项目的审计来核算组织的单行代码代价。代码行LOC常用于源代码的规模估算,常应用的单位有:SLOC(single line of code)、KLOC(thousand lines of code)、LLOC(logical line of code)、PLOC(physical line of code)、NCLOC (non-commented line of code)、DSI(delivered source instruction)。

3. 德尔菲法

德尔菲法(Delphi technique)是最盛行的专家评估技巧,在没有历史数据的环境下,这种要领适用于评定以前与将来、新技巧与特定法度榜样之间的区别,但专家“专”的程度及对项目的理解程度是事情中的难点,只管德尔菲技巧可以减轻这种误差,在评定一个新软件实际资源时平日用得不多,然则,这种要领对抉择其他模型的输入时分外有用。德尔菲法鼓励参加者就问题互相评论争论。德尔菲法的步骤是:(1)和谐人向各专家供给项目规格和估算表格;(2)和谐人调集小组会和各专家评论争论与规模相关的身分;(3)各专家匿名填写迭代表格;(4)和谐人收拾出一个估算总结,以迭代表的形式返回给专家;(5)和谐人调集小组会,评论争论较大年夜的估算差异;(6)专家复查估算总结并在迭代表上提交另一个匿名估算;(7)重复4~6,直到最低估算和最高估算同等。

4. 构造性资源模型

构造性资源模型(COCOMO:constructive cost model)是一种正确、易于应用的基于模型的资源估算措施,最早由勃姆(Boehm)于1981年提出。该模型按其具体水等分为3级:基础COCOMO模型、中心COCOMO模型和具体COCOMO模型。基础COCOMO模型是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的函数来谋略软件开拓事情量。中心COCOMO模型则在用LOC为自变量的函数谋略软件开拓事情量的根基上,再用涉及产品、硬件、职员、项目等方面属性的影响因向来调剂事情量的估算。具体COCOMO模型包括中心COCOMO模型的所有特点,但用上述各类影响身分调剂事情量估算时,还要斟酌对软件工程历程中阐发、设计等各步骤的影响。COCOMO模型具有估算正确、易于应用的特征。在该模型中应用的基础量有以下几个:(1)DSI(源指令条数),定义为代码行数,包括除注释行以外的整个代码。若一行有两个语句,则算做一条指令。(2)MM(度量单位为人月)表示开拓事情量。(3)TDEV(度量单位为月)表示开拓进度,由事情量抉择。(4)COCOMO模型重点斟酌15种影响软件事情量的身分,并经由过程定义乘法因子,从而准确、合理地估算软件的事情量。

资源度量

软件开拓资源度量主要指软件开拓项目所需的财务性资源的估算。主要措施如下:

类比估算法。类比估算法是经由过程对照已完成的类似项目系统来估算资源,得当评估一些与历史项目在利用领域、情况和繁杂度方面相似的项目。其约束前提在于必须存在类似的具有可比性的软件开拓系统,估算结果的正确度依附于历史项目数据的完备性、准确度以及现行项目与历史项目的近似程度。

细分估算法。细分估算法是将全部项目系统分化成多少个小系统,逐个估算资源,然后合计起来作为全部项目的估算资源。细分估算法经由过程徐徐细化的要领对每个小系统进行具体的估算,可能得到切近实际的估算资源。其难点在于,难以把握各小系统整合为大年夜系统的整合资源。

周期估算法。周期估算法是按软件开拓周期进行划分,估算各个阶段的资源,然落后行汇总合计。周期估算法基于软件工程理论对软件开拓的各个阶段进行估算,很得当瀑布型软件开拓措施,然则必要估算者对软件工程各个阶段的功课量和互相间的比例具有相称的懂得。

顾客知足度度量

顾客知足是软件开拓项目的主要目的之一,而顾客知足目标要得以实现,必要建立顾客知足度度量体系和指标对顾客知足度进行度量。顾客知足度指标(CSI:customer satisfaction index)以顾客知足钻研为根基,对顾客知足度加以界定和描述。项目顾客知足度量的要点在于:确定种种信息、数据、资料滥觞的准确性、客不雅性、合理性、有效性,并以此建立产品、办事质量的衡量指标和标准。企业顾客知足度度量的标准会由于各企业的经营理念、经营计谋、经营重点、代价取向、顾客知足度查询造访结果等身分而有所不合。比如:NEC于2002年12月开始实施的CSMP 活动的度量尺度包括共感性、诚笃性、改革性、确凿性和迅速性,此中,将共感性和诚笃性作为CS活动的核心姿态,而将改革性、确凿性和迅速性作为供给商品和办事中弗成或缺的尺度。每个尺度包括两个要素,各要素包括两个项目,共计5大年夜尺度、10个要素和20个项目。例如,共感性这一尺度包括“懂得顾客的等候”、“从顾客的态度斟酌问题”这两个要素;“懂得顾客的等候”这一要素又包括“不仅仅能胜任今朝的事情还能意识到为顾客供给代价而专心投入”、“对顾客的期望不是生吞活剥而是根据顾客的态度和状况来思虑‘顾客到底必要什么’并加以应对”这两个项目。

美国专家斯蒂芬(Stephen H.Kan)在《软件质量工程的度量与模型》(Metrics and Models in Software Quality Engineering)中觉得,企业的顾客知足度要素如表5-11所示:

表5-11 顾客知足度要素及其内容

顾客知足度要素

顾客知足度要素的内容

技巧办理规划

质量、靠得住性、有效性、易用性、价格、安装、新技巧

支持与掩护

机动性、易达性、产品常识

市场营销

办理规划、打仗点、信息

治理

购买流程、哀求手续、包管刻日、留意事变

交付

定时、准确、交付落后程

企业形象

技巧引导、财务稳定性、履行印象

作为企业的顾客知足度的基础构成单位,项目的顾客知足度会受到项目要素的影响,主要包括:开拓的软件产品、开拓文档、项目进度以及交期、技巧水平、沟通能力、运用掩护等等。详细而言,可以细分为如表5-12所示的度量要素,并根据这些要素进行度量。

表5-12 顾客知足度项目度量要素

顾客知足度项目

顾客知足度度量要素

软件产品

功能性、靠得住性、易用性、效任性、可掩护性、可移植性

开拓文档

文档的构成、质量、外不雅、图表以及索引、用语

项目进度以及交期

交期的根据、进度迟延环境下的应对、进展申报

技巧水平

项目组的技巧水平、项目组的提案能力、项目组的问题办理能力

沟通能力

事故记录、样子容貌外形确认、Q&A

运用掩护

支持、问题发生时的应对速率、问题办理能力

产品度量

软件质量的生命周期及其度量

软件产品度量用于对软件产品进行评价,并在此根基之上推进产品设计、产品制造和产品办事优化。软件产品的度量实质上是软件质量的度量,而软件的质量度量与其质量的周期亲昵相关,如图5-8所示:

图5-8 软件质量的生命周期及其度量

软件质量度量模型

软件产品的度量主要针对作为软件开拓成果的软件产品的质量而言,自力于其历程。软件的质量由一系列质量要素组成,每一个质量要素又由一些衡量标准组成,每个衡量标准又由一些量度标准加以定量刻划。质量度量贯穿于软件工程的全历程以及软件交付之后,在软件交付之前的度量主要包括法度榜样繁杂性、模块的有效性和总的法度榜样规模,在软件交付之后的度量则主要包括渣滓的缺陷数和系统的可掩护性方面。一样平常环境下,可以将软件质量特点定义因素层模型。勃姆(Barry W. Boehm)在《软件风险治理》(Software Risk Management)中第一次提出了软件质量度量的层次模型。而麦考尔(McCall)等人将软件质量分化至能够度量的层次,提出FCM 3层模型(拜见表5-13):软件质量要素(factor)、衡量标准(criteria)和量度标准(metrics),包括11个标准,分为产品操作(product operation)、产品修正(product revision)和产品转移(product transition)。ISO 9126将软件质量总结为6大年夜特点,每个特点包括一系列副特点,其软件质量模型包括3层,即高层:软件质量需求评价准则(SQRC);中层:软件质量设计评价准则(SQDC);低层:软件质量度量评价准则(SQMC)。

表5-13 软件质量度量FCM模型

层 级

名 称

内 容

第一层

质量要素:描述和评价软件质量的一组属性

功能性、靠得住性、易用性、效任性、可掩护性、可移植性等质量特点以及将质量特点细化孕育发生的副特点

第二层

衡量标准: 衡量标准的组合反应某一软件质量要素

正确性、稳健性、安然性、通信有效性、处置惩罚有效性、设备有效性、可操作性、培训性、完整性、同等性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、布局性、文件完整性等

第三层

量度标准:

可由各应用单位自定义

根据软件的需求阐发、概要设计、具体设计、编码、测试、确认、掩护与应用等阶段,针对每一个阶段拟订问卷表,以此实现软件开拓历程的质量度量

凯悦(Lawrence E. Hyatt)和罗森贝克(Linda H. Rosenberg)在《识别项目风险以及评价软件质量的软件质量模型与度量》(A Software Quality Model and Metrics for Identifying Project Risks and Assessing Software Quality)中对照了这3种最常用的软件质量模型,其基础环境如表5-14所示。

表5-14 3种软件质量模型之对照

度量标准/目标

麦 考 尔

勃 姆

ISO 9126

精确性(Correctness)

X

X

可掩护性

靠得住性(Reliability)

X

X

X

完备性(Integrity)

X

X

可用性(Usability)

X

X

X

效任性(Efficiency)

X

X

X

可掩护性(Maintainability)

X

X

X

可测试性(Testability)

X

可掩护性

互操作性(Interoperability)

X

适应性(Flexibility)

X

X

可重用性(Reusability)

X

X

可移植性(Portability)

X

X

X

明确性(Clarity)

X

可变化性(Modifiability)

X

可掩护性

文档化(Documentation)

X

规复力(Resilience)

X

易懂性(Understandability)

X

有效性(Validity)

X

可掩护性

功能性(Functionality)

X

普遍性(Generality)

X

经济性(Economy)

X

软件质量度量措施

软件质量度量措施对照多,例如:(1)Halstead繁杂性度量法,基础思路是根据法度榜样中可履行代码行的操作符和操作数的数量来谋略法度榜样的繁杂性。操作符和操作数的量越大年夜,法度榜样布局就越繁杂。(2)McCabe繁杂性度量法,其基础思惟是法度榜样的繁杂性很大年夜程度上取决于法度榜样节制流的繁杂性,单一的顺序法度榜样布局最简单,轮回和选择所构成的环路越多,法度榜样就越繁杂。

过程度量

软件历程机能

过程度量是对软件开拓历程的各个方面进行度量,目的在于猜测历程的未来机能,削减历程结果的误差,对软件历程的行径进行目标治理,为历程节制、历程评价持续改良供给定量性根基。过程度量与软件开拓流程亲昵相关,具有计谋性意义。软件历程质量的短长会直接影响软件产品德量的短长,度量并评估历程、前进历程成熟度可以改进产品德量。相反,度量并评估软件产品德量会为前进软件历程质量供给需要的反馈和依据。过程度量与软件历程的成熟度亲昵相关,其度量模型如图5-9所示:

图5-9 软件历程机能的度量模型

软件历程治理中的过程度量

弗罗哈克(William A.Florac)、帕克(Robert E.Park)和卡尔顿(Anita D.Carleton)在《实用软件度量:历程治理和改良之度量》(Practical Software Measurement:Measuring for Process Management and Improvement)中描述了历程治理和项目治理的关系。觉得软件项目团队临盆产品基于三大年夜要素:产品需求、项目计划和已定义软件历程。度量数据在项目治理中将被用来:(1)识别和描述需求,(2)筹备能够实现目标的计划,(3)履行计划,(4)跟踪基于项目计划目标的事情履行状态和进展。而历程治理也能应用相同的数据和相关度量来节制和改良软件历程本身。这就意味着,软件组织能应用建构和保持度量活动的合营框架来为历程治理和项目治理两大年夜治理功能供给数据。

软件历程治理包括定义历程、计划度量、履行软件历程、利费用量、节制历程和改良历程,此上钩划度量和利费用量是软件历程治理中的紧张步骤,也是软件过程度量的核心内容。计划度量建立在对已定义软件历程的理解之上,产品、历程、资本的相关事变和属性已经被识别,网络和运费用量以进行历程机能跟踪的规定都被集成到软件历程之中。利费用量经由过程过程度量将履行软件历程所得到的数据,以及经由过程产品度量将产品相关数据用来节制和改良软件历程。

软件过程度量的内容

软件过程度量主要包括三大年夜方面的内容,一是成熟度度量(maturity metrics),主要包括组织度量、资本度量、培训度量、文档标准化度量、数据治理与阐发度量、历程质量度量等等;二是治理度量(management metrics),主要包括项目治理度量(如里程碑治理度量、风险度量、功课流程度量、节轨制量、治理数据库度量等)、质量治理度量(如质量检察度量、质量测试度量、质量包管度量等)、设置设置设备摆设摆设治理度量(如样子容貌外形变化节轨制量、版本治理节轨制量等);三是生命周期度量(life cycle metrics),主要包括问题定义度量、需求阐发度量、设计度量、制造度量、掩护度量等。

软件过程度量流程

软件历程的度量,必要按照已经明确定义的度量流程加以实施,这样能使软件过程度量功课具有可节制性和可跟踪性,从而前进度量的有效性。软件过程度量的一样平常流程主要包括:确认历程问题;网络历程数据;阐发历程数据;解释历程数据;陈诉请示历程阐发;提出历程建议;实施历程行动;实施监督和节制。这一度量历程的流程质量能包管软件过程度量得到有关软件历程的数据和问题,并进而对软件历程实施改良。

您可能还会对下面的文章感兴趣: