The Wayback Machine - https://web.archive.org/web/20221028225702/https://baike.sogou.com/kexue/d10166.htm

句法方法

编辑

在软件工程中,语法方法是开发正确软件程序的技术。这些技术试图通过检查代码在句法而不是语义层面上产生的结构来检测并防止某些类型的缺陷(bug)。

1 使用编辑

当形式化方法不是一个选择时,语法方法经常被使用,并且通常是一个更简单,更重要,开销更小的替代方法。在非关键任务系统中,形式化方法被证实对于它们提供的好处来说太昂贵了。建模、人员、执行和开发的成本往往会超过防止可能的失败所带来的好处。这种方法围绕使用从所讨论的系统创建的抽象依赖图。抽象依赖图是由单向边连接的顶点的有向图。惯例中,图的顶点和边代表系统中函数或组件的输入和输出。通过检查创建的抽象依赖图,开发人员可以检测系统中的句法异常(或Preece异常)。虽然异常并不总是缺陷,但它们经常为发现系统缺陷提供线索。因此,系统中的异常有助于开发人员指出找到正确的缺陷方向。

2 反常编辑

异常有四种主要类型:

  • 冗余——如果从图形中移除一个块,终端是可达的,则该块就是冗余的
  • 冲突——如果相同的输入隐含着不同的输出,则系统包含冲突
  • 循环——图表中的循环表示系统中的循环
  • 缺陷——如果输入的子集没有终端,那么此块就有缺陷

虽然异常经常指向缺陷,但它们也能很容易地反映系统中正常的预期功能。开发人员有责任调查异常情况,以确定它们是问题的线索还是简单的错误警报。

通过创建系统的可视有向图,有几个明显的可视标志指示上述异常:

  • 没有输入的子图可能遗漏了一些重要的东西;
  • 当观察系统的传递闭包(节点下游的所有节点)时,在其自身传递闭包中的节点指示一个循环;
  • 当观察系统的传递闭包时,行对之间的包容表示冗余;
  • 冲突变得更加语义化,而不是句法化,因此有些难以理解。

当形式化方法被证明成本太高时,系统可以只在句法层进行检查。这并不彻底,因为它只在表面层面上观察系统。然而,它确实给开发人员提供了许多关于系统缺陷可能在哪里的线索。

阅读 88
版本记录
  • 暂无