分享

除了评审之外,我们还有没有其它方法来提高早期缺陷的发现率呢?

 东北十三少 2020-10-16

经验数据表明,每过一个项目阶段,缺陷清除的成本会翻一番。那么,假设一个缺陷在需求分析阶段的成本是2人时,如果它没有在需求分析阶段被修复,在经过设计、编码、测试、交付之后,这个缺陷的修复成本就会变成32人时。

所以,能够在早期发现并修复缺陷,会给软件开发节省大量的成本。

在需求分析阶段,发现缺陷的主要手段就是对需求规格说明的评审。而实际上,评审的有效性受着多方面因素的制约:

  • 需求分析人员对业务的熟悉程度;

  • 评审人员的能力和水平;

  • 评审人员的责任心与积极性;

  • 评审的时机;

  • 评审的时间长度;

  • 评审的标准;

  • 需求规格说明的质量。

所以,要提高评审绩效也不是那么容易的。那么,除了评审之外,我们有没有其它方法来提高早期缺陷的发现率呢?

答案是有的。那就是对需求规格说明进行形式化的验证。

通常需求规格说明都是用自然语言来描述的,由于语言本身的特性,决定了需求规格说明无法避免一些不完整、前后不一致,不精确和有歧义的问题。这种规格说明,我们称其为非形式的规格说明。

与之相对的,需求规格说明可以使用基于某些数学概念和记号的语言进行描述,这种规格说明就是形式化的规格说明。由于它是基于数学概念的语言来描述的,与非形式的规格说明相比,本身就已经具有精确性和无歧义性的特征。

另外,形式化的规格说明是基于数学概念,它可以像数学中的定理一样,进行推理与证明。即能够形式的验证需求的完整性和一致性。

需求规格说明的形式化有以下几种方法:

  • 公理方法。它利用前置条件与后置条件描述程序的行为。

  • Z语言。它是基于集合论和一阶为谓词演算的语言形式。

  • 代数规格说明。它是关于抽象数据类型的代数描述。

  • 进程描述语言,它用于描述开发进程的行为。

  • 专用的规格说明语言。

即便仅仅是看到这些形式化的名称,不用深入了解,我们也都清楚形式化方法是难于掌握的。这也是为什么形式化规格说明难以普及的原因。而且形式化方法的开发工具与环境还有待于进一步开发,证明技术还不够成熟。这些都限制了形式化证明方法的推广和使用。

但是,这种方法对于从事高质量高安全软件开发的组织来说,还是应当进行研究,并逐步推进的。至少,我们要把形式化和非形式化这两种方法结合起来使用,使二者相互补充。对于关键软件,要采用形式化验证技术,以确保质量;对于一般软件,可以沿用非形式规格说明的评审进行验证。

这正是:

修复成本有规律,缺陷早现成本低

形式验证效果好,验证手段不唯一

参考书目:《软件工程形式化方法与语言》,李莹等,浙江大学出版社


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多