『软件工程5』详解软件项目管理之软件的度量(二)

简介: 笔记

3、扩展的功能点度量 —— 特征点


(1)基础知识

扩展的功能点也叫特征点度量法,是另外一种功能点度量;

②功能点度量最初主要是用于商业信息系统应用中;

强调数据维而排除了功能维及行为(控制)维;

因此,功能点度量不适合用于很多工程及嵌入式系统(它们强调功能及控制)。


(2)特征点

功能点测量的超集(superset),适用于算法复杂性较高的应用,主要应用于系统和工程软件的应用,例如,实时系统、过程控制软件及嵌入式软件应用。


(3)特征点的计算

17.png

由上图可以发现

在FP信息域值计算的基础上增加了一个新的软件特性,即算法——特定计算机程序中所包含的一个界定的计算问题;

在特征点的计算中,权值是固定的,而原来功能点的度量计算中,权值有简单、平均、复杂三种取值。

PS:权值即加权因子


4、调和不同的度量方法


Q:如果我知道LOC的数量,有没有可能估算功能点(FP)的数量?

A:代码行数和功能点之间的关系依赖于用来实现软件的程序设计语言设计质量

那么不同程序语言建造一个功能点所需的平均代码行数是多少呢?

如下图所示

18.png

看到这里,小伙伴们对功能点是否有一定了解了呢?

不妨试问下自己,如果开发一个信息系统需要用到56000行VB代码3000行SQL代码,那么该系统的功能点(FP)是多少?

56000LOC47LOC/FP+3000LOC40LOC/FP≈1192+75=1267个\frac{56000 LOC}{47 LOC/FP}+\frac{3000 LOC}{40 LOC/FP} ≈ 1192+75 = 1267个47LOC/FP56000LOC+40LOC/FP3000LOC1192+75=1267


七、软件质量度量



1、软件质量的度量


质量度量贯穿于软件工程的全过程以及软件交付给用户使用之后。

(1)交付前度量

  • 在软件交付之前得到的度量可作为判断设计和测试质量好坏的依据;
  • 这一类度量包括程序复杂性有效的模块性总的程序规模

(2)交付后度量

  • 在软件交付之后的度量则把注意力集中于还未发现的缺陷数系统的可维护性方面;


2、软件质量的度量指标


为了实现实时的质量评估,工程师们必须采用技术测量客观地评估质量,而不能采用主观的方法。以下列出4种客观的度量指标:


(1)正确性(最重要)

  • 一个程序必须正确地运行,并为它的用户提供某些输出;
  • 正确性要求软件执行所要求的功能;
  • 关于正确性的最常用的测量是每KLOC的缺陷数(Defects/KLOC),这里的缺陷数定义为“验证结果与需求不符的地方”。

思考

Q:缺陷数越高越好还是越少越好?

A:缺陷数越高,软件质量越低;所以缺陷数应该尽可能少。


(2)可维护性

  • 可维护性是指遇到错误时程序能被修改的容易程度,维护所占的工作量比其他活动都大,它无法直接测量
  • 面向时间:
    有一种简单的面向时间的度量,称MTTC(平均变更时间),可以作为可维护性的度量;
    这个时间包括分析变更要求设计适当的修改实现变更并测试、及把变更发送给所有的用户
  • 面向成本:
    还有一种面向成本的可维护性度量,称损坏度,指的是软件发布给最终用户后修改遇到缺陷的成本

思考

Q1:MTTC越低,可维护性越好还是越差呢?

A1:MTTC即平均变更时间,变更时间越少,说明软件质量越好;所以,MTTC越低,可维护性越好。

Q2:当每千代码行的缺陷数降低的同时,损坏度有可能提高吗?

A2:损坏度即遇到缺陷的成本。

举个例子:

假设在一个软件中,遇到50个缺陷,这50个缺陷都是些很小很细微的问题,很快就能修复完,那么所花费的成本也就不会很高;

再或者在另一个软件中,遇到5个缺陷,这5个缺陷刚好是5个非常重大的漏洞问题,需要很多时日才能修复完,那么所花费的成本就会很高,即损坏度提高;

所以,缺陷数低并不代表成本就会低,这也就意味着,当每千代码行的缺陷数降低的同时,损坏度有可能提高。


(3)完整性

  • 完整性是度量一个系统在安全方面的抗攻击的能力
  • 软件的三个成分,程序、数据和文档都会遭到攻击;
  • 度量完整性,需要定义两个附加的属性:危险性安全性
  • 危险性是特定类型的攻击将在一个给定时间内发生的概率;
  • 安全性是排除特定类型攻击的概率;
  • 一个系统的完整性可定义为 完整性=∑[1-危险性×( 1-安全性) ] 其中,对每一个攻击的危险性和安全性都进行累加。

思考

Q:某个攻击的危险性是70%,安全性是40%,那它的完整性等于多少?

A:完整性 = ∑ [1-危险性×( 1-安全性) ] = 1 - 0.7(1 - 0.4) = 1 - 0.7x0.6 = 1 - 0.42 = 0.58

试想下,一个完整性为0.58的系统,它合格吗?

答案自然是不合格的。一个软件,连最基础的60%的合格率都达不到,又怎么能合格呢。


(4)可用性

如果一个程序不具有“用户友好性”,即使它所执行的功能很有价值,也常常会失败。可使用性量化“用户友好性”,并依据以下四个特征进行度量:

  • 为学习系统所需要的体力上的智力上的技能;
  • 为达到适度有效使用系统所需要的时间;
  • 当软件被某些人适度有效地使用时所度量的在生产率方面的净增值
  • 用户角度对系统的主观评价 (可以通过问题调查表得到)。


八、DRE



1、DRE的全称


DRE,即Defect Removal Efficiency,表示缺陷排除效率。


2、衡量DRE的两种角度


(1)DRE=E/(E+D)

  • DRE是对质量保证及控制活动中滤除缺陷能力的一个测量;
  • E是软件交付给最终用户之前所发现的错误数,D是软件交付之后所发现的缺陷数。

(2)DREi=Ei/(Ei+Ei+1)DRE_i =E_i/(E_i+E_{i+1} )DREi=Ei/(Ei+Ei+1)

  • DRE也能够用于在项目中评估一个小组在错误传递到下一个活动或任务之前发现这些错误的能力。在这种情况下,我们定义DRE为:

即,DREi=Ei/(Ei+Ei+1)即,DRE_i =E_i/(E_i+E_{i+1} ),DREi=Ei/(Ei+Ei+1)

  • EiE_iEi是在软件工程活动i中所发现的错误数, Ei+1E_{i+1}Ei+1是在软件工程活动i+1中所发现的错误数,这些错误起源于软件工程活动i中未能发现的错误。
  • 可以把EiE_iEi理解为前一个活动Ei+1E_{i+1}Ei+1理解为后一个活动


3、思考题 —— think more


软件团队将软件交付给了最终用户。在使用的第一个月中,用户发现了8个缺陷。在交付之前,软件团队在正式的评审和所有的测试任务中发现了72个错误。那么,项目总的缺陷排除效率公式是DRE=E/ (  +  ),最后的结果是____(写成小数点的形式)。

解析:

  • 项目总的缺陷排除效率公式是 DRE=E/(E+D);
  • 最后的结果是 DRE = 72 / (72 + 8) = 0.9。


九、结束语



关于软件项目管理中软件的度量就讲到这里啦!



相关文章
|
数据采集 运维 监控
使用LamdbaUpdateWrapper的setSql作用及风险
使用LamdbaUpdateWrapper的setSql作用及风险
使用LamdbaUpdateWrapper的setSql作用及风险
|
12月前
|
SQL 算法 安全
『软件工程5』详解软件项目管理之软件的度量
该文章深入讲解了软件项目管理中软件度量的重要性,包括如何进行有效的度量、度量的目的以及如何利用度量结果来改进软件质量和开发过程。
『软件工程5』详解软件项目管理之软件的度量
|
11月前
|
敏捷开发 数据可视化 BI
配置状态报告是什么?包括哪些编制步骤?需要注意哪些关键环节?
配置状态报告(CSR)是项目管理和系统开发中用于跟踪和记录项目配置项状态的重要工具,涵盖软件、硬件、文档等。它不仅提供项目当前状态、历史变更及发展趋势的清晰视图,还通过增强项目透明度、有效管理变更、支持决策制定和促进知识共享,帮助项目团队做出明智决策,确保项目按计划顺利进行。随着项目规模和复杂度的增加,CSR的重要性愈发凸显,现代项目管理工具已实现其编制和管理的自动化与智能化。
|
Ubuntu Shell Docker
在Docker环境下如何“安装”Ubuntu
【8月更文挑战第18天】在Docker环境中“安装”Ubuntu实际上是指利用Ubuntu镜像构建容器。
1095 1
|
设计模式 人工智能 JSON
一文掌握大模型提示词技巧:从战略到战术
本文将用通俗易懂的语言,带你从战略(宏观)和战术(微观)两个层次掌握大模型提示词的常见技巧,真正做到理论和实践相结合,占领 AI 运用的先机。
239658 5
|
运维 C# UED
C# 一分钟浅谈:异常处理的最佳实践
【9月更文挑战第5天】在软件开发中,异常处理对保证程序稳定性和用户体验至关重要。本文从基础概念入手,详细讲解C#中的异常处理策略,并通过代码示例说明如何有效实现异常管理。文章涵盖`try`、`catch`和`finally`块的使用,探讨常见问题如忽略异常和过度捕获,并提出最佳实践建议,如使用具体异常类型、记录异常信息及优雅地处理异常,助力开发者构建更健壮的应用程序。
571 1
|
存储 安全 数据库
ensp中PPP(点对点协议)中的PAP认证 原理和配置命令
ensp中PPP(点对点协议)中的PAP认证 原理和配置命令
586 0
|
安全 网络协议 数据安全/隐私保护
网络技术基础(18)——PPP与PPPoE协议
【3月更文挑战第5天】本文介绍了广域网的基本架构和PPP协议。广域网涉及CE(用户边缘设备)、PE(服务提供商边缘设备)和P(服务提供商设备),其中CE为企业出口,PE类似光猫,P为运营商内部设备。PPP是数据链路层协议,用于点到点连接,提供PAP和CHAP安全认证,并通过LCP和NCP协商链路和网络层参数。PPP协商包括链路层、认证(可选)和网络层三个阶段。PPPoE协议结合了PPP和以太网优点,用于以太网上进行PPP认证和计费,其会话建立包含发现、会话和终结阶段。配置PPP或PPPoE时,需在对应接口设置账号密码和认证方式。
|
存储 C语言 Windows
C语言——文件操作(超全超详细)
C语言——文件操作(超全超详细)

热门文章

最新文章