5W1H剖析软件度量

What

什么是度量?

度量存在于左右我们生活的很多系统的之中。在经济领域,度量决定着价格和付款的增加;在雷达系统中,度量使我们能透过云层探测到飞机;在医疗系统中,度量使得能够诊断某些特殊疾病;在天气预测系统中,度量是天气预报的基础……

度量的正式定义是:把数字或符号指定给实体的某一属性,以便以这种方式来根据已明确的规则来描述它们。

什么是软件度量?

软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程;

软件度量能够为项目管理者提供有关项目的各种重要信息,其实质是根据一定规则,将数字或符号赋予系统、构件、过程或者质量等实体的特定属性,即对实体属性的量化表示,从而能够清楚地理解该实体。软件度量贯穿整个软件开发生命周期,是软件开发过程中进行理解、预测、评估、控制和改善的重要载体。

Why在这里插入图片描述

为什么需要软件度量?

费用超支(特别是在维护阶段的花费太大)、生产率低下、以及质量不高等问题正困扰着软件开发。简言之,软件开发经常处于失控状态。软件之所以失控是因为没有度量。Tom Demarco 曾经说过:"没有度量就不能控制。"这种说法是好的,但不完全。并不能说为了获得控制必须进行度量。度量活动必须有明确的目标或目的,而正是这决定着我们选择哪种属性和实体进行度量,这个目标与软件开发、使用时所涉及的人的层次有关。

利用度量来改进软件过程,人们是无法管理不能度量的事物。在软件开发的历史中,我们可以意识到,在60年代末期的大型软件所面临的软件危机反映了软件开发中管理的重要性。而对于管理层人员来说:没有对软件过程的可见度就无法管理;而没有对见到的事物有适当的度量或适当的准则去判断、评估和决策,也无法进行优秀的管理。我们说软件工程的方法论主要在提供可见度方面下工夫。但仅仅是方法论的提高并不能使其成为工程学科。这就需要使用度量。度量是一种可用于决策的可比较的对象。度量已知的事物是为了进行跟踪和评估。对于未知的事物,度量则用于预测。

Who

谁需要软件度量?

软件度量的根本目的是为了管理的需要。因为人们是无法管理不能度量的事物,利用度量来改进软件过程。

对管理者而言

1.需要度量软件开发过程中不同阶段的成本。

例如:度量开发整个软件系统的费用(包括从需求分析阶段到发布之后的维护阶段)。必须清楚这个费用以决定在保证一定的利润的情况下的价格。

2.需要度量不同小组职员的生产率,以决定付给开发小组费用。

3.为了对不同的项目进行比较、对将来的项目进行预测、建立基线以及设定合理的改进目标等,需要度量开发的产品的质量。

4.需要决定项目的度量目标。例如:应达到多大的测试覆盖率、系统最后的可靠性应有多大等。

5.为了找出是什么因素影响着费用和生产率,需要反复测试某一特定过程和资源的属性。

6.需要度量和估计不同软件工程方法和工具的效用,以便决定是否有必要把它们引入到公司中。

对软件工程师而言

1.需要制定过程度量以监视不断演进的系统。这包括设计过程中的改动、在不同的回顾或测试阶段发现的错误等等。

2.需使用严格的度量的术语来指定对软件质量和性能的要求,以便使这些要求是可测试的。例如:系统必须"可靠",可用如下的更具体 的文字加以描述:“平均错误时间必须大于15个CPU时间片。”

3.为了合格需要度量产品和过程的属性。例如:看一个产品是否合格要看产品的一些可度量的特性如“β测试阶段少于20个错误。”,“每个模块的代码行不超过100行。”,和开发过程的一些属性如“单元测试必须覆盖90%以上的用例。”等。

4.需要度量当前已存在的产品和过程的属性以便预测将来的产品。例如:

(1).通过度量软件规格说明书的大小来预测软件的大小。

(2).通过度量设计文档的结构特性来预测将来维护的"盲点"。

(3).通过度量测试阶段的软件的可靠性来预测软件今后操作、运行的可靠性。

Where

软件度量包括哪些方面?

软件度量贯穿软件开发全过程,是软件开发过程中进行理解、预测、评估、控制和改善的重要载体。软件度量包括3个维度,即项目度量、产品度量和过程度量。

项目度量:包括项目的进度和过程的度量、资源和成本的度量等;目的在于度量项目规模、项目成本、项目进度、顾客满意度等,辅助项目管理进行项目控制。

产品度量:包括产品的质量、产品的规模和稳定性等;软件产品度量用于对软件产品进行评价,并在此基础之上推进产品设计、产品制造和产品服务优化。

过程度量:过程度量是对软件开发过程的各个方面进行度量,目的在于预测过程的未来性能,减少过程结果的偏差,对软件过程的行为进行目标管理,为过程控制、过程评价持续改善提供定量性基础。

When

何时需要进行软件度量?

软件开发项目的全生命周期是一个软件项目从概念到完成所经过的所有阶段,主要由:概念或立项阶段、规划或定义阶段、执行(实施、监控)阶段和结束(试运行或结束)阶段。

在概念或立项阶段需要对软件项目进行目标和概念的确定,确定目标并为启动项目做准备,在这个阶段需要预估软件的规模(项目的资源和成本度量等);

在规划或定义阶段需要对软件项目的规划制定工作路线,这个阶段需要预估工作量、拆解任务及制定计划(项目进度与计划度量);

在执行(实施、监控)阶段需要对软件项目的开发实施过程进行管控与分析,提高研发效能(过程度量、产品度量);

在结束(试运行或结束)阶段需要对软件运行状态进行评估,产品质量进行分析、顾客满意度进行调研等(项目度量、产品度量、过程度量)

How

怎样进行软件度量?

如何进行软件度量的重要性是显而易见的。首先我们必须弄清楚“软件度量”是一个包含很多完全不同的活动的术语。它主要包括:软件项目规模度量、成本度量、顾客满意度度量、进度度量等。

软件规模的估算方法有很多种,如:功能点分析(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)等,这些方法不断细化为更多具体的方法。

软件成本度量主要指软件开发项目所需的财务性成本的估算,主要有类比估算法、细分估算法、周期估算法。

顾客满意度度量,需要建立顾客满意度度量体系和指标对顾客满意度进行度量。顾客满意度指标(CSI:customer satisfaction index)以顾客满意研究为基础,对顾客满意度加以界定和描述。项目顾客满意度量的要点在于:确定各类信息、数据、资料来源的准确性、客观性、合理性、有效性,并以此建立产品、服务质量的衡量指标和标准。

总结:

1)、软件度量的三个方面

产品:各种文档和程序;

过程:各种软件开发活动;

资源:各种资源如人员、费用等;

2)、软件度量的方法

分解方法,采用“分而治之”的策略,对软件项目进行分解,再采用逐步求精的方式进行估算,最后通过累加获得整体的估算结果。(WBS方法)

算术模型,通过估算模型来产生估算。

专家判断或经验法,如德尔菲法(Delphi technique)。

比例法是比较科学的一种传统估算方法,是基于类比的估算技术,根据过去类似的项目,直接进行类比获得当前项目的估算结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值