在软件工程中,语法方法是开发正确软件程序的技术。这些技术试图通过检查代码在句法而不是语义层面上产生的结构来检测并防止某些类型的缺陷(bug)。
当形式化方法不是一个选择时,语法方法经常被使用,并且通常是一个更简单,更重要,开销更小的替代方法。在非关键任务系统中,形式化方法被证实对于它们提供的好处来说太昂贵了。建模、人员、执行和开发的成本往往会超过防止可能的失败所带来的好处。这种方法围绕使用从所讨论的系统创建的抽象依赖图。抽象依赖图是由单向边连接的顶点的有向图。惯例中,图的顶点和边代表系统中函数或组件的输入和输出。通过检查创建的抽象依赖图,开发人员可以检测系统中的句法异常(或Preece异常)。虽然异常并不总是缺陷,但它们经常为发现系统缺陷提供线索。因此,系统中的异常有助于开发人员指出找到正确的缺陷方向。
异常有四种主要类型:
虽然异常经常指向缺陷,但它们也能很容易地反映系统中正常的预期功能。开发人员有责任调查异常情况,以确定它们是问题的线索还是简单的错误警报。
通过创建系统的可视有向图,有几个明显的可视标志指示上述异常:
当形式化方法被证明成本太高时,系统可以只在句法层进行检查。这并不彻底,因为它只在表面层面上观察系统。然而,它确实给开发人员提供了许多关于系统缺陷可能在哪里的线索。
暂无