介绍
用于实时系统规范和分析的定时形式化方法已经存在很长时间了。如今,人们普遍认为(Alur,1991年;Gollu等人,1994年;Asarin等人,1998年),密集时间方法更具表现力,更适合合成和细化,因为时间量不需要预先确定。除了灵活性之外,密集时间的决策程序每天都越来越高效。
实时系统的密集形式化方法已经得到了广泛的研究,扩展了大量的未命名形式,这些形式在方法、目标和抽象层次上有所不同:时序逻辑、一阶逻辑、状态机、进程代数、同步语言等(调查见(Ostroff,1992))。在一般定时形式化方法的背景下,特别是根据定时过程代数和实时逻辑对实时系统进行规范时,定时自动机提供了一种简单但通用的方法来建模实时系统的行为。虽然时间自动机可以被视为标准的时间状态机,但就属性规范而言,情况似乎并不那么清楚:各种逻辑已应用于需求规范(Alur和Henzinger,1992)。
就分析而言,假设密集时间的形式技术早在年就有了起源(Alur等人,1993)。本文介绍了第一种具有实值时钟的时间自动机模型检测算法。该算法的主要思想是从时间自动机的稠密状态空间构造一个抽象的有限状态空间,称为区域图。自从尽可能获得系统的精确有限模型以来,许多工作都将此解扩展到了其他类型的分析中。理论结果出现后不久,主要在学术领域开发了验证工具:KRONOS1然后是UPPAAL。2这两种工具在很大程度上都是基于时间自动机的,尽管它们在属性规范语言上有所不同。实际案例研究,如UPPAAL和KRONOS所处理的案例,强调了时间模型和方法几乎可以供从业者使用。
然而,这些时间理论基础与业界不愿在软件过程中采用形式化方法的态度形成了鲜明对比;传统不定时系统中观察到的技术转让问题再次出现。为了更接近从业者,迫切需要将形式化方法纳入软件过程,在这方面,迭代和增量开发是一个重要的里程碑。在传统方法中,首先应实现一组功能并确定其需求;然后生成软件的规范和设计模型;最后对系统进行了正式的验证、实现和测试。在迭代和增量开发中,软件不是一次查看一组功能并为这些功能生成设计,而是逐个功能进行设计和实现。
尽管在软件工程中是一种常见的实践,而且它已被证明可以缩短上市时间,但迭代和增量开发与正式方法的集成仍然不成熟。作为知识表示的工具,我们假设多值推理适合增量和迭代规范过程:
- •
对于形式化方法,已知多值推理,特别是多值逻辑,通过允许二价原则之外的附加真值,支持不确定性和不一致性的显式建模(Chechik等人,2001)。在软件工程领域,有很多情况下我们需要在不确定性或不一致性下建模和推理。一方面,当软件系统的完整信息未知或无法获得时,或者当这些信息被抽象出来时,可能会出现不确定性(Bruns和Godefroid,1999)。另一方面,在软件系统的开发过程中可能会出现分歧(Nuseibeh等人,2001),例如,当合并不同利益相关者提供的冲突观点时(Menzies等人,1999),或者当合并系统的冲突观点或观点时(Liu等人,2002;Easterbrook和Chechik,2001)。
- •
对于与软件过程有关的内容,在迭代和增量方法中,随着对问题的了解越来越多,系统逐渐形成,也就是说,在这个过程中,不确定性和不一致性是普遍存在的,也是可取的。一方面,过程的迭代性质要求对迭代之间的分歧进行推理,作为一致性检查的一种形式。另一方面,由于系统规范在过程中是不完整的,因此增量性质要求对不确定性进行推理。
SCTL/MUS方法论(Pazos Arias和García Duque,2001)研究了多值推理,以支持规范过程中迭代和增量的形式生命周期。在此基础上,最近引入了定时SCTL/MUS(SCTL/MUS-T)(Fernández Vilas等人,2002a,Ferná),将定时自动机和实时时序逻辑扩展为多值推理,作为一种形式化适用于实时和安全关键系统的增量过程的手段。本文重点通过一个案例研究来说明SCTL/MUS-T方法。首先,我们简要介绍了实时形式化方法SCTL/MUS-T(2 SCTL/MUS-T方法概述,3面向模型的规范:MUS-T,4面向属性的规范:SCTL-T)。然后,通过规范(5案例研究,6启动过程,7应用SCTL/MUS-T方法,8需求和场景(非故障锅炉))、综合和验证(9过程中的迭代(非故障炉),10适应故障锅炉)的著名蒸汽锅炉案例研究(Abrial等人,1996),我们方法的新颖之处在于逐步指定蒸汽锅炉的控制器。最后,我们总结了我们正在研究的主要结论和主题(第11节)。