Homework
阅读和了解什么是形式化方法
按照形式化的程度,可以把软件工程使用的方法划分为非形式化、半形式化和形式化3类。形式化是描述系统性质的基于数学的技术,即如果一种方法有坚实的数学基础,那它就是形式化的。人们把数学引入软件开发过程,创造了基于数学的形式化方法。
有穷状态机是表达规格说明的一种形式化方法。在形式化的规格说明语言中,Z语言赢得了广泛的赞誉。形式化规格说明是全球的总趋势。把形式化方法和欠形式化方法有机地结合起来,使它们取长补短,能获得更理想的效果。
应用形式化方法有如下准则:(1)应该选用适当的表示方法。(2)应该形式化但不要过分形式化。(3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。(5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用。
基于数学的形式化规格说明技术,目前还没有在软件产业界广泛应用,但与欠形式化的方法比较它有实质性的优点:形式化的规格说明可以用数学的方法研究、验证;形式化的规格说明消除了二义性,可减少差错;在开发大型软件系统的过程中应用该方法可减少含糊性,还可以在不同软件工程活动之间平滑地过渡,提供高层确认手段。
但形式化方法也有很多缺点:大多数形式化的规格说明主要关注于系统的功能和数据,而问题的时序、控制和行为等方面的需求却更难于表达;形式化方法比欠形式化方法更难学,在培训上要花大量投资,且对于某些软件工程师来说是一种“文化冲击”。