当前位置:文档之家› 第2讲过程和项目度量

第2讲过程和项目度量

• 随着技术工作的启动,其他项目度量也开始有意义了。生产率 模型、评审的时间、功能点以及交付的源代码行数来测量。此 工程任务中所发现的错误也要进行跟踪。在软件从需求到设计 需要收集技术度量来评估设计质量,并提供若干指标,这些指 生成及测试所采用的方法。
第2讲过程和项目度量
过程领域和项目 领域中的度量
• 面向规模的度量并不被普遍认为是测量软件开发过程的最好方法 大多数的争议都是围绕着使用代码行(LOC)作为关键的测量是否
• LOC测量的支持者们声称LOC是所有软件开发项目的“生成品” 行计算;许多现有的软件估算模型使用LOC或KLOC作为关键的输 有大量的文献和数据涉及到LOC。
• 另一方面,反对者们则认为LOC测量依赖于程序设计语言;它们 但较小的程序会产生不利的评判;它们不适用于非过程语言;而 时需要一些可能难以得到的信息(如,早在分析和设计完成之前 估算出要产生的LOC)。
• 每千行代码(KLOC)的错误数。
• 每千行代码(KLOC)的缺陷数。
• 每千行代码(KLOC)的成本。
• 每千行代码(KLOC)的文档页数。
• 除此之外,还能够计算出其他有意义的度量:
• 每人·月错误数。
• 每人·月千代码行( KLOC )。
• 每页文档的成本。
第2讲过程和项目度量
软件测量
面向规模的度量
• 这些数据可由团队进行复查,以找出能够改善小组性能的指标 • 公用度量一般吸取了原本是个人的或团队的私有信息。收集和
陷率(肯定不能归因于某个个人)、工作量、时间及相关的数据 组织过程性能的指标。
第2讲过程和项目度量
过程领域和项目 领域中的度量
过程度量和软件过程改进
• 软件度量规则: • 解释度量数据时使用常识,并考虑组织的敏感性。 • 向收集测量和度量的个人及团队定期提供反馈。 • 不要使用度量去评价个人。 • 与开发者和团队一起设定清晰的目标,并确定为达到这些 量。 • 不要用度量去威胁个人或团队。 • 指出问题区域的度量数据不应该被“消极地”看待,这些 进的指标。 • 不要在某一个别的度量上纠缠,而无暇顾及其他重要的度
第2讲过程和项目度量
2020/11/25
第2讲过程和项目度量
主要内容
过程领域和项目领域中的度量 有软件过程中集中度量
软件测量 小型组织的度量
软件质量 制定软件
第2讲过程和项目度量
通过提供目标评估的机制,测量使我们能够对项目 深入的了解。Lord Kelvin曾经说过:
当你能够测量你所说的事物,并能用数字表达它时 有了一定的了解;但当你不能测量它,也不能用数字 说明你对它的了解还很贫乏,不令人满意:这可能是 ,但你在思想上还远远没有进入科学的境地。 • 测量可以应用于软件过程中,目的是持续地改进软件 • 测量也可以应用于整个软件项目中,辅助进行估算、 生产率评估及项目控制。 • 最后,软件工程师还可以使用测量来帮助评估工作产 并在项目进展过程中辅助进行战术决策。
第2讲过程和项目度量
进行测量的理由: • 刻画-通过刻画而获得对过程、产品、资源和环 建立同未来评估进行比较的基线; • 评价-通过评价来确定相对于计划的状况; • 预测-通过理解过程和产品间的关系,并构造这 来进行预测; • 改进-通过识别障碍、根本原因、低效率和其他 和过程性能的机会来进行改进。
第2讲过程和项目度量
软件测量
面向功能的度量
• 面向功能的软件度量使用功能(由应用系统提供)测量数据作为 用最广泛的面向功能的度量是功能点(Function Point,FP)。功 信息域的特性及复杂性来计算的。
• 与LOC测量一样,功能点测量也是有争议的。支持者们认为FP与 关,对于使用传统语言和非过程语言应用系统来说,它都比较理 所依据的数据是在项目开发初期就可能得到的数据。因此,作为 ,FP更有吸引力。
第2讲过程和项目度量
软件测量
• 将项目度量联合起来可以得到整个软件组织公用的过程度量。 如何将来自不同个人或项目的度量结合起来呐?
• 为了说明这个问题,我们看一个简单的例子:
• 两个不同项目团队中的人将他们在软件工程过程中所发现 记录和分类。然后,将这睦个人的测量结合起来就产生了
• 在软件发布前,团队A在软件过程中发现了342个错误,团 误。所有其他情况都相同,那么在整个过程中哪个团队能 呢?
第2讲过程和项目度量
测度、度量和指标
• 当获取到单个的数据点(如在一个模块的复审中发现的错误数)时 量。
• 测度的发生是收集一个或多个数据点的结果(如调研若干个模块的 一次复审所发现的错误数的测量)。
• 软件度量在某种程度上与单个的测量相关(如每一次复审所发现的 或复审中每人/小时所发现的错误的平均数)。
• 因为不知道项目的规模或复杂性,所以我们不能回答这个 度量采用规范化的方法,就有可能产生能够在更大的组织 软件度量。如此说来,面向规模的度量和面向功能的度量 。
第2讲过程和项目度量
软件测量
面向规模的度量
• 面向规模的软件度量是通过规范化质量和(或)生产率的测量值 些测量都基于已经开发的软件的“规模”。
• 如果软件组织一直表列出了在过去几年中完成的每一个软件开发项目及 数据。
• 查看alpha项目的数据(图2-2):花费了24个人·月的工作量,成 ,产生了12 100行代码。
• 应该注意到表中记录的工作量和成本涵盖了所有软件工程活动( 码及测试),而不仅仅是编码。
工程方法)也有影响。另外,过程三角形存在于环
境条件的圆圈之内,环境条件包括:开发环境(如
CASE工具)、商业条件(如交付期限,业务规则)、
客户特性(如通信的容易程度)。
第2讲过程和项目度量 图2-1 软件质
过程领域和项目 领域中的度量
过程度量和软件过程改进
我们可以间接地测量一个软件过程的功效。也就是说,我们可 获得的结果导出一组度量。这些结果包括: • 在软件发布之前发现的错误数的测量, • 交付给最终用户并由最终用户报告的缺陷的测量, • 交付的工作产品的测量, • 花费的工作量的测量, • 花费的时间的测量, • 与进度计划是否一致的测量,以及其他测量。
• 私有过程数据是软件工程师个人改进其工作的重要驱动力。
第2讲过程和项目度量
过程领域和项目 领域中的度量
过程度量和软件过程改进
• 某些过程度量对软件项目团队是私有的,但对所有团队成员是 • 主要软件功能(由多个开发人员完成)的缺陷报告、 • 正式技术复审中发现的错误、 • 以及每个构件或功能的代码行数或功能点数。
• 测量数据由项目团队收集,然后被转换成度量数据在项目期间使 可传送给那些负责软件过程改进的人员。因此,很多相同的度量 领域,又可用于项目领域。
第2讲过程和项目度量
过程领域和项目 领域中的度量
过程度量和软件过程改进
• 改进任何过程的唯一合理的方法是测量该过程的特定属性,再根 一组有意义的度量,然后使用这组度量提供的指标来导出过程改
• alpha项目更进一步的信息包括:产生了365页的文档;在软件发
了134个错误;软件发布给客户之后运行的第一年中遇到了29个
参加了alpha项目的软件开发工作。
第2讲过程和项目度量
图2-2 面向规模的度量
第2讲过程和项目度量
软件测量
面向规模的度量
• 为了产生能和其他项目中同类度量进行比较的度量,我们选择代 化值。根据表中所包含的基本数据,每个项目都能产生一组简单 量:
第2讲过程和项目度量
过程领域和项目 领域中的度量
项目度量
• 软件过程度量主要用于战略的目的。软件项目度量则是战术的 者和软件项目组经过使用项目度量及从其中导出的指标,可以 程和技术活动。
• 在大多数软件项目中,项目度量的第一个应用是在估算阶段。 收集的度量可以作为估算当前软件工作工作量及时间的基础。 ,可以将花费的工作量及时间的测量与最初的估算值(及项目进 目管理者可以使用这些数据来监控项目的进展。
• 但是,在我们讨论软件度量及它们对软件过程改进的影响之前, 仅是众多“改进软件质量和组织性能的控制因素”中的一种[P
• 在图2-1中,过程位于三角形的中央,连接了三
个对软件质量和组织绩效有重大影响的因素。人
员的技能和激励被认为是对质量和绩效最有影响
的因素[BOE81]。产品复杂性对质量和团队绩
效也有相当大的影响。过程中采用的技术(如软件
• 反对者们则声称这种方法需要某种“熟练手法”,因为计算的依 非客观的数据,信息域(及其他方面)的计算可能难以在事后收 有直接的物理意义,它仅仅是一个数字而已。
第2讲过程和项目度量
软件测量
调和代码行和功能点的度量方法
• 代码行和功能点度量之间的关系依赖于实现软件所采用的程序 计的质量。很多研究试图将FP测量和LOC测量联系起来。引用 Gaffney[ALB83]的话说: 本研究的论点是:应用(程序)所提供的功能数能够从所使用的 数据的主要组成部分的详细记录中估算出来,或是直接从记 一步,功能的估算应该与要开发的LOC数及开发所需的工作
项目度量
• 项目度量的目的是双重的。 • 首先,这些度量能够指导进行一些必要的调整以避免延迟 及风险,从而使得开发时间减到最少。 • 其次,项目度量可在项目进行的基础上评估产品质量,并 技术方法以改进质量。
• 随着质量的提高,错误会减到最小,而随着错误数的减少,项 工作量也会降低。这就导致整个项目成本的降低。
测量是一个管理工具,如果能正确地使用,它将为项 供洞察力。因此,测量能够帮助项目管理者和软件团 项目成功的决策。
第2讲过程和项目度量
测度、度量和指标
第2讲过程和项目度量
测度、度量和指标
• 虽然术语“measure”(测量)、“measurement”(测度)和“metrics 地使用,但注意到它们之间的细微差别是很重要的。因为“mea “Measurement”(测度)既可以作为名词也可以作为动词,所以它 混淆。在软件工程领域中, • “measure”(测量)对一个产品过程的某个属性的范围、数量、 小提供了一个定量的指示。 • “Measurement”(测度)则是确定一个测量的行为。 • IEEE的软件工程术语标准辞典 (IEEE Standard Glossary of Software Engineering Terms)[IEE93 “metric”(度量)为“对一个系统、构件或过程具有的某个给定 定量测量”。
相关主题