嵌入式系统建模方法
摘要:嵌入式系统的实时性、并发性、分布性和高可靠性等特点使得系统的开发面临巨大挑战,迫切需要相应开发方法的指导和开发工具的支持。本文简要介绍了嵌入式系统在开发过程中的建模方法,包括非形式化和形式化两种方法。重点叙述了两种建模方法的区别和应用,以及形式化描述的主要内容。
0 引言
嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用环境对功能、实时性、可靠性、成本、体积、功耗等严格约束的专用计算机系统。随着嵌入式实时软件规模和复杂度的不断增大,嵌入式软件的建模方法,实现技术以及软件可靠性和安全性验证等方面都遇到了新的困难和挑战,需要有新的思想和方法。
建模在软件开发过程中具有极其重要的作用,使用模型可以提高开发者对整个软件的观察深度和控制复杂度的能力,给不同的开发阶段提供全局统一的视图和指导,提高软件质量、生产率和可靠性。
1 非形式化建模方法与形式化建模方法概述
设计者为构建系统模型,需要解决两方面问题。一方面,设计者要决定采用什么方法或手段对系统进行建模,即为系统模型选择基本的计算模型或图形符号。根据计算模型的形式化程度不同,建模方法可以分为两类:一类方法以具有严格语法和语义定义的数学模型或形式化模型为基础,称为形式化建模方法;
另一类方法则使用不具有严格语法和语义定义的自然语言或简单的图、表、符号等描述系统,称为非形式化建模方法。建模方法的选择由系统的可靠性要求和计算模型的可用性共同决定,一般需要二者的折衷。可靠性要求高的嵌入式系统必须采用形式化方法建模以保证模型正确性。
2 非形式化建模方法
非形式化建模方法简称非形式化方法。只要用来创建系统模型的计算模型或建模语言没有严格的语法和语义定义,该建模方法就属于非形式化方法(informal)方法或欠形式化(less formal)方法,如传统的用图、文本、表格或简单符号等进行系统分析和设计的方法。
虽然对非形式化方法小心运用并结合彻底检查可以实现高质量系统的开发,但是文本或简单符号的应用偏差可能产生各种问题,如多个子模型描述系统相同方面的特性是矛盾的或不一致的,当模型被解释或翻译时产生二义性或歧义,模型所描述的系统功能或行为是不完整的。因此,很难保证在模型基础上的系统实现是正确的,从而无法满足嵌入式系统对高可靠性的要求。
可靠性的保证取决于两个方面,一是产品的验证与测试,二是开发的方法与过程。在安全关键的(safety-critical)嵌入式系统开发中,可靠性不能通过测试和反复试用来保证,需要一种良好构造的(well-structured)和形式化的方法,使得在系统实现前经过严格的设计、分析和验证。形式化建模方法的优势不仅仅局限于分析和验证,形式化过程本身就能够提高设计的质量。
3 形式化建模方法
嵌入式系统的规模和复杂性不断增加,仅靠手工方法已经无法保证正确的设计与实现。开发方法研究的最终目标就是能够借助计算机自动、准确地实现系统,而数学是实现这一目标的最有效的方法或手段。保证软件开发过程中的正确性和可靠性是开发人员必须解决的
问题,尤其是安全攸关(safety-critical)领域的系统更是如此。而形式化方法是解决此问题的一个有前途、有希望的技术,它建立在严格的数学基础之上,能够使系统有较高的正确性和可信度。
所谓形式化方法是指建立在严格数学基础上的软件开发方法。它的数学基础主要有图论、逻辑、代数、自动机等。现在对形式化方法还没有统一的定义。凡是采用严格的数学工具、具有精确的数学语义的软件开发方法都可以称为形式化方法。
形式化方法非常适合描述嵌入式系统的动态行为,如Petri网对系统并发性行为建模能力好,有限状态机能够清晰反映系统的反应式行为,ESTELLE、LOTOS和SDL是ISO制订的用来描述通信协议的形式描述技术标准,适合分布式系统的描述、分析与验证等。为满足嵌入式系统的实时性需求,一般需要对这些模型或语言进行实时扩展,以实现对系统时间约束的描述与验证,如时间Petri网,SDL-RT,RT-LOTOS等。
形式化方法的最大好处在于,可以在系统开发早期最大限度地检测和纠正其它方法不易发现的错误和缺陷,如检测不一致、不明确或不完整,避免死锁、活锁、不可执行的行为以及系统外部性能不符合服务要求等问题。并且还可以通过数学证明与逻辑分析的方法验证
系统是否具有所期望的性质。因此,形式化方法在嵌入式系统领域受到越来越多的关注,尤其在网络通信协议领域,经常使用形式化方法,一方面可以验证协议本身的正确性,另一方面可以保证协议实现的可靠性。
但是形式化方法在应用上存在一些缺欠:形式化 模型一般只能描述系统单一方面特性,如Petri网、FSM和各种时态逻辑只能描述系统行为特性而不能描述功能和结构特性,往往需要多个模型共同描述同一个系统;形式化模型的可读性和可理解性差,并且要求设计者必须具有较高的数学逻辑基础。这些缺欠或多或少抵消了形式化方法在严密性与可靠性上的优势,限制了形式化方法在工业上的普遍应用。
但是随着计算机技术的不断发展,一方面涌现出许多新的形式化方法,另一方面许多非形式化技术被赋予形式化基础。将非形式化的图形转换为具有精确语义定义的形式化规约,成为许多嵌入式实时、分布式、高可靠性系统分析和设计的常用方法。
4 形式化描述
形式化描述(formal specification)是形式化方法的主要研究内容之一。描述的内容包括:
功能特性、行为特性、结构特性、时间特性。功能特性侧重于系统的功能方面,即做什么;行为特性侧重于系统的具体行为演化,即如何做;结构特性侧重于系统的组成,以及各个组成部分或者子系统间的联系和复合;时间特性则侧重于时间相关的系统特性,如时序约束。
形式化描述方法可分为操作类、描述类和双重类描述方法。操作类方法基于状态和迁移,其本质上是可执行的,所以它较直观;描述类方法基于数学公理和概念,通过逻辑和代数给出系统的状态空间,具有高度抽象、便于通过工具自动验证的特点;双重类方法兼有前两种方法的特点。
操作类方法通过可执行模型描述系统,即模型本身能够采用静态分析和执行模型得到验证。操作类方法可以分为两种:(1) 基于模型:图示化,直观;(2) 基于语言:程序,一种可执行的形式规约。
描述类方法的数学基础是代数或者逻辑。这类方法具有数学上的严密性和高度抽象性,侧重于对系统进行功能特性的描述。基于不同的数学基础,描述类方法又可以分为基于代数的描述方法和基于逻辑的描述方法。
理想的形式化描述技术,应该既具有操作类方法的可执行性和可视性,又具有描述类方法的可验证性。双重类方法则是在这方面的努力。
现在形式化方法已经发展成使用各种形式描述语言来描述系统,并贯穿系统开发的各阶段。典型的形式描述语言包括Z、S D L、ESTELLE、LOTOS等,可以充分描述系统功能、行为,以及各种特性,如并发性、不确定性、时序性等。每种形式描述语言都以一种或多种形式化模型为基础,包括Petri网、有限状态机FSM、时态逻辑TL、通信进程演算CCS等。这些形式化模型可以在层次上形成并发系统、实时系统和混杂系统的抽象模型表示,是系统分析、验证、测试、综合以及自动化实现的基础。
5 结束语
由于嵌入式系统本身的特点,使得嵌入式系统开发工作比较困难。在嵌入式系统设计过程中,为解决不同阶段的问题需要采用相应的设计或建模方法,并由此来决定决定系统软件和硬件的实现方式。
参考文献
[1]郭兵.嵌入式软件开放式集成开发平台体系结构研究:[博士论文].电子科技大学,2002.5
[2]陈文智.Pcanel——基于模型驱动的嵌入式系统设计平台:[博士论文].浙江大学,2005.1
[3]王宜怀,刘晓升.嵌入式技术基础与实践[M].北京:嵌入式系统开发是什么清华大学出版社,2007.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论