基于CSP的形式化方法研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江理工大学学报,第26卷,第4期,2009年7月

Journal of Zhejiang Sci Tech U niv ersity

Vol.26,N o.4,Jul.2009

文章编号:1673 3851(2009)04 0557 04

基于CSP的形式化方法研究

孙 麒,张云华

(浙江理工大学信息电子学院,杭州310018)

摘 要:CSP(通讯顺序进程)和B方法都是一种较好的用于实时控制系统构架分析的形式化方法,但是单独一种在描述实时控制系统构架时都存在不足。通过对CSP技术和B方法的研究,提出了一种能够描述分布式系统和实时控制系统的形式化方法 CSP B,CSP B集成了CSP技术和B方法,不仅具有CSP技术的特点,而且还有B方法的长处,并将CSP B运用到证券分配系统中。

关键词:CSP;B方法;形式化方法;CSP B

中图分类号:T P301.2 文献标识码:A

0 引 言

形式化方法的研究起源于Dijkstr a和H oare对程序验证以及Scott,Str atchey等人对程序语义的研究。随着人们对形式化技术研究的深入,出现了各种各样的形式化工具。例如,由IBM公司的维也纳实验室的研究小组提出的V DM;由牛津大学计算机研究室(OCUL)Pro gramm ing Research Group开发的Z语言,还有诸如Petri网[1],CCS和时序逻辑语言等形式化方法。但是这些形式化方法都是基于单一形式的形式化工具,只适合描述软件系统的某些方面(比如:控制,数据,结构,行为等)或者只适合描述某种类型的软件系统(比如:顺序系统,并发系统,分布式系统,实时系统等)。由于上述原因,人们开始研究各种不同的形式化方法的特点,并将它们综合起来,因此集成形式化方法成为了形式化方法发展的一个方向。

通讯顺序进程[2](co mmunicating sequential processes,CSP)是一种用来描述通过传递消息来进行通讯的并行代数系统的符号,是一种描述语言,一种记录研究系统类型的通用方法。同时,CSP也是一种研究与并发性(concurrency)相关的理论问题的优秀工具,它可以提供并发系统的形式化研究所需的所有机制。CSP比较容易描述异步并发系统,既具有直观的系统表示形式,又有严格的数学基础,在分析描述系统的并发、同步和竞争方面是很方便的。但是CSP是基于事件进程的,它在建模能力、数据抽象和提炼技巧方面有一定的缺陷。

B方法也是一种形式化方法[3]。它是计算机辅助软件工程中B技术、B方法和B工具集的简称,是一种健全的面向实际软件工程的基于数学理论的方法。但是B方法适用于顺序系统的行为,缺乏并发语义,在描述并发或分布式系统时显得不足[4]。

尽管CSP和B方法都是一种较好的形式化方法,可以用于系统构架分析。但是,单独一种方法在描述实时控制系统构架方面都存在不足,如CSP不擅长对数据和函数等进行定义,而B方法在描述系统并发控制等方面又存在局限。笔者将CSP和B方法进行结合研究,构造出一个集成B规范的CSP描述,即CSP B 形式化方法,以更好地对实时控制系统进行系统构架。在CSP B方法中,B方法扩展了CSP在数据和函数定义方面的能力,CSP扩展了B方法在明确表示操作语义和描述并发系统方面的能力。

收稿日期:2008-11-06

作者简介:孙 麒(1977- ),女,浙江诸暨人,讲师,主要从事软件工程与图形图像的研究。

1 C SP 和B

方法的集成

图1 CSP 规格和B 方法规格的映射关系CSP 和B 方法集成后描述系统的规格称为CSP B 规格。

CSP 规格和B 方法规格的映射规则如图1所示。CSP 和B 方

法的集成关键在于如何在新的定义中映射CSP 和B 方法,主

要策略就是通过在定义中引入CSP 来保持的系统的总体结

构、控制能力及行为,B 方法定义抽象数据结构、系统限制以

及功能处理。下面将具体对实现集成过程中的三个重要方

面:连接状态信息的表示、操作到信道的映射和操作语义的定

义分别作介绍。

1.1 连接状态信息的表示

B 抽象机的状态是从变量到值的映射,而CSP 进程的状态是一个进程表达式。下面用一个Simple 抽象机来说明,Sim ple 抽象机的规格如下:

MACH INE Sim ple

SET S AA={aa,bb,cc}

VARIABLES

x x INVARIANT

x x AA INIT IALISAT ION x x :=aa

OPERAT IONS

Set(new v al)!

PRE new v al AA

TH EN x x :=new v al

END;

res ∀Get !

BEGIN r es:=x x

END

对应Simple 的CSP 规格描述为Set?Val #Get!Val #MA IN 。那么Simple 抽象机执行完Set(cc)后的状态可以表示为{x x #cc},而Simple 的CSP 规格执行完Set(cc)后的状态可以表示为 #M AIN 。那么CSP 和B 方法的集成形式CSP B 可以用这一对状态来表示,其中第一个元素是{x x #cc},第二个元素为 #M AIN 。比如Sim ple 的CSP B 状态可以表示为({x x #cc}, #MA IN)。

1.2 操作到信道的映射

对于B 方法操作到CSP 信道的映射,采用的方法是将操作中的每一个参数和返回值转换为CSP 信道上的值[4]。为了简化CSP 规格,我们不要求CSP 提供所有的信道值。如果信道值丢失,那么任意的B 值都可以在那个参数上保持同步。

对于形式为X ∀op(Y)!S 的B 操作,将其简化为a ∀op(b),称为操作定义。首先定义一个信道函数,将B 操作定义映射为CSP 信道事件。让o p 表示一个带有n 个参数和m 个返回值的B 操作,其中m ∃0,n ∃0;让a 1,%,a n 表示参数值,让r 1,%,r n 表示返回值。定义:

channel(r 1,%,r n ∀op(a 1,%,a n ))={o p.a 1%a k |0&k &n }

∋{op.a 1%a n .r 1%r k |0&k &n }

对于Simple 抽象机有channel(Set(aa))={Set,Set.aa},channel(aa ∀Get)={Set,Set.aa}。这表示信道事件Set 将和B 操作Set 的所有执行保持同步,而信道事件Set.aa 将只和参数是aa 的Set 操作保持同步。

1.3 操作语义的定义B 方法的操作语义是由三重关系 #o (表示的。如果o=r 1,%,r m ∀op(a 1,%,a n ),那么 #o (表示初始状态558 浙 江 理 工 大 学 学 报2009年 第26卷

相关文档
最新文档