发信人: peteryeah()
整理人: (2000-04-20 14:51:04), 站内信件
|
软件度量的目标
软件开发正在经受一场危机。费用超支(特别是在维护阶段的花费太大)、生产 率低下、以及质量不高等问题正困扰着它。简言之,软件开发经常处于失控状态 。软件之所以失控是因为没有度量。Tom Demarco 曾经说过:"没有度量就不能控 制。"这种说法是好的,但不完全。并不能说为了获得控制必须进行度量。度量活 动必须有明确的目标或目的,而正是这决定着我们选择哪种属性和实体进行度量 。这个目标与软件开发、使用时所涉及的人的层次有关。
以下主要从管理者和软件工程师两种角度来考虑,为了达到各种目标所要进行的 度量工作。
● 对管理者而言:
1.需要度量软件开发过程中的不同阶段的费用。
例如:度量开发整个软件系统的费用(包括从需求分析阶段到发布之后的
维护阶段)。必须清楚这个费用以决定在保证一定的利润的情况下的价格。
2.为了决定付给不同的开发小组的费用,需要度量不同小组职员的生产率。
3.为了对不同的项目进行比较、对将来的项目进行预测、建立基线以及设定合 理的改进目标等,需要度量开发的产品的质量。
4.需要决定项目的度量目标。例如:应达到多大的测试覆盖率、系统最后的可 靠性应有多大等。
5.为了找出是什么因素影响着费用和生产率,需要反复测试某一特定过程和资 源的属性。
6.需要度量和估计不同软件工程方法和工具的效用,以便决定是否有必要把它 们引入到公司中。
● 对软件工程师而言:
1.需要制定过程度量以监视不断演进的系统。这包括设计过程中的改动、在不 同的回顾或测试阶段发现的错误等等。
2.需使用严格的度量的术语来指定对软件质量和性能的要求,以便使这些要求 是可测试的。例如:系统必须"可靠",可用如下的更具体的文字加以描述:"平均 错误时间必须大于15个CPU时间片。"
3.为了合格需要度量产品和过程的属性。例如:看一个产品是否合格要看产品 的一些可度量的特性如"β测试阶段少于20个错误。","每个模块的代码行不超过 100行。",和开发过程的一些属性如"单元测试必须覆盖90%以上的用例。"等。
4.需要度量当前已存在的产品和过程的属性以便预测将来的产品。
例如:
(1).通过度量软件规格说明书的大小来预测目标系统的大小。
(2).通过度量设计文档的结构特性来预测将来维护的"盲点"。
(3).通过度量测试阶段的软件的可靠性来预测软件今后操作、运行的
可靠性。
研究上面我们列出的度量的目标和活动我们可以发现:软件度量的目标可大致概 括为两类。
其一,我们使用度量来进行估计。这使得我们可以同步地跟踪一个特定的软件项 目。
其二,我们应用度量来预测项目的一些重要的特性。但是,值得指出的是我们不 能过分夸大这些预测。因为它们并不是完全正确的。软件度量得到也仅仅是预测 而已。有些人甚至认为只要使用合适的模型和工具,所获得的预测可以精确到只 需使用极少的其他度量(甚至根本就不用使用度量)。事实上,这种期望是不现 实的。
-- .--------------------------------------------------.
| 明 我 责 任 ■ ■ |
| 爱 我 中 华 ■==ooO=========Ooo==■ |
| 兴 我 IT ■ \\ (o o) // ■ |
`-------------------------------------(_)----------'
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.129.18.40]
|
|