形式化技术在软件工程中有效的提高了开发的效率、改进了软件开发的质量、减少了开发费用。形式化的技术容易在软件的规约上取得一致性,它属于一种非常有效的交流方式。
(一)非形式化的缺点
用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。
矛盾是指一组相互冲突的陈述。
1二义性是指读者可以用不同方式理解的陈述。
2含糊性
3不完整性
4抽象层次混乱是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。
为了克服非形式化方法的缺点,人们把数学引入软件开发过程,创造了基于数学的形式化方法。
(二)形式化方法的优点
1数学能够简洁准确地描述物理现象、对象或动作的结果,因此是理想的建模工具。
2数学以在不同的软件工程活动之间平滑地过渡。
3数学提供了高层确认的手段。
(三)应用形式化方法的准则
1应该建立详尽的文档。
2不应该放弃质量标准。
3不应该盲目依赖形式化方法。
4应该测试、测试再测试。
5应该重用。