开发方法---形式化方法

形式化方法

    形式化方法是指采用严格的数学方法,使用形式化规约语言来精确定义软件系统。非形式化的开发方法是通过自然语言、图形或表格描述软件系统的行为和特性,然后基于这些描述进行设计和开发,而形式化开发则是基于数学的方式描述、开发和验证系统。

形式化方法包括形式化描述和基于形式化描述的形式化验证两部分内容。形式化描述就是用形式化语言进行描绘,建立软件需求和特性,即解决软件“做什么”的问题。形式化验证指的是验证已有的程序是否满足形式化描述的定义。形式化描述主要可以分为两类,一类是通过建立计算模型来描述系统的行为特性,另一类则通过定义系统必须满足的一些属性来描述系统。形式化描述又称之为形式化规约,相对于自然语言描述,形式化描述是精确的、可验证的,避免了模糊性与二义性,消除需求中相互矛盾的地方,避免需求定义人员和开发人员对需求的理解偏差。

    形式化描述可以通过计算机技术进行自动处理,进行一致性的检查和证明,提高需求分析的效率和质量。通过形式化描述,需求分析的质量大大提高,很多自然语言描述无法避免的缺陷在需求分析阶段就会被发现,并得到解决,从而降低后期开发和维护的成本,并提升软件的质量和可靠性。

    在一些要求高可靠性的关键应用上,采用形式化开发方法可以保证软件系统的可靠性。如巴黎地铁 14 号线和 Roissy 机场穿梭车的自动控制系统。这两个系统中的部分程序使用了形式化方法进行开发,并取得了很好的效果,如表 6-1 所示。

 

    表 6-1 中的 ADA 代码行数表示运用形式化方法开发的软件系统规模,这些代码是形式化方法自动生成的,开发人员并不需要直接修改这些代码。

    这两个案例都没有进行单元测试,而在非形式化开发中,这类关键应用系统的软件的单元测试和集成测试都是非常重要的工作,通常要付出高昂的代价。形式化开发的优点可见一般。

展开阅读全文

没有更多推荐了,返回首页