软件体系结构软件体系结构形式化描述分解课件_第1页
软件体系结构软件体系结构形式化描述分解课件_第2页
软件体系结构软件体系结构形式化描述分解课件_第3页
软件体系结构软件体系结构形式化描述分解课件_第4页
软件体系结构软件体系结构形式化描述分解课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1软件体系结构(4)软件体系结构形式化描述Software ArchitectureTHU SAGroup2内容概要形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例THU SAGroup3抽象认识事物本质的惯用法抽象是人类对实际事物在针对某一特定关点下的简化突出我们希望认识的各个元素允许我们对关注的结构和行为进行辨识和分析在构建新的实例时可以作为蓝图THU SAGroup4抽象实例:运动系统THU SAGroup5抽象实例:动力系统mFa忽略了施力者和受力者的实体忽略了次要的环境作用,如地面、空气忽略了传力媒介突出了力和运动状态之间的关系THU SA

2、Group6形式化的抽象实际事物形式化方法形式化描述精确描述分析与评估计算和预测THU SAGroup7内容概要形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例THU SAGroup8软件体系结构的描述软件体系结构和软件体系结构描述不同的两个概念软件体系结构是附属于系统之中。只要存在系统,体系结构就存在如:每个石头都会有重量软件体系结构描述是将体系结构可视化的手段和产物如:表示一个石头的重量THU SAGroup9如何理解体系结构描述软件体系结构软件体系结构描述THU SAGroup10体系结构描述方式使用不同的策略和方法可对同一软件体系结构作不同的

3、理解和描述如:描述一块石头的重量比较轻比另一块重一些大约2公斤四斤六两2.32Kg5.114751207磅精确程度不同单位不同测量基准不同描述方式不同THU SAGroup11体系结构描述方式体系结构描述方式标准语义丰富性语义精确性形式化程度主要描述方式非标准的图形符号UML模块接口语言MILADLRichnessPrecisenessFormalizationOTHU SAGroup12非标准图形符号描述非标准图形符号描述用由矩形框和有向线段组合而成的图形表达工具。其中,矩形框代表抽象构件,有向线段代表辅助各构件进行通讯、控制或关联的连接件。 特点语义丰富语义极不精确没有形式化基础用途商业展

4、示设计草图THU SAGroup13非标准图形符号描述软件体系结构的非标准图形符号表示具有如下优点:直观形象简单易用THU SAGroup14非标准图形符号描述软件体系结构的非标准图形符号表示具有如下缺点:由于其术语和表达语义上存在着一些不规范和不精确,从而使得以矩形为基础的传统图形表达方法在不同系统和不同文档之间存在着许多不一致甚至矛盾。THU SAGroup15THU SAGroup16UML基于UML技术的软件体系结构描述方法1996年,Rational、Catapulse公司发起workshop,倡议用UML进行体系结构描述和建模、特定领域体系结构建模;对UML中的stereotype

5、s、profiles等进行扩充,支持体系结构的表示2004年,UML2.0发布,增强了通用软件体系结构的描述能力。本质上UML是侧重于面向对象(OO, Object Oriented)软件系统设计的语言THU SAGroup17UML特性特点语义极其丰富语义相对精确有少量的形式化基础用途需求分析OO类设计行为设计和分析代码自动生成THU SAGroup18UML图实例类图(Class Diagram)THU SAGroup19UML图实例用例图(Use Case Diagram)THU SAGroup20UML图实例序列图(Sequence Diagram)THU SAGroup21UML图实

6、例协作图(Collaboration Diagram)THU SAGroup22UML图实例构件图(Component Diagram)THU SAGroup23基于OO的软件体系结构描述方法OO描述方法的优点:采用面向对象方法,更能反映软件体系结构的本质特征。提供了多个视图直观形象地反映体系结构元素所具有的功能、特征。通过类图、包图等反映体系结构的静态特征,并通过协作图、序列图、部署图等反映体系结构的动态特征。THU SAGroup24基于OO的软件体系结构描述方法OO描述方法的缺点:缺少形式化的描述方法,造成设计人员由于对软件认识的角度、方法不同,生成的体系结构描述不尽相同,理解上存在的二

7、义性。THU SAGroup25模块接口语言MILMIL (Module & Interface Language) 是将一种或多种传统程序设计语言模块连接起来描述软件的体系结构的方法。特点语义比较丰富,但局限在实现级别,层次较低语义精确,有编译器作保证没有或极少有形式化基础实例Microsoft COM IDLOMG CORBA IDL例如,Ada语言采用use实现包的重用,Pascal语言采用过程(函数)模块的交互等。Procedurea;forward;Procedureb; begin .end;Procedurea;THU SAGroup26THU SAGroup27模块接口语言MI

8、LMIL的优点:具有严格的语义基础,能够支持对较大的软件单元进行诸如:定义/使用(Definition/Use)、接口定义(Interface Definition)和导入/导出(Import/Export)等操作。一般来讲,MIL与实际的实现语言无关,只关注构件的对外表现协议以及构件之间的通讯关系THU SAGroup28模块接口语言MILMIL的缺点这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,限制了它们处理和描述比程序设计语言元素更为抽象的高层次软件构架元素的能力。 THU SAGroup29内容概要形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWR

9、IGHT应用范例THU SAGroup30我们在哪里THU SAGroup31软件体系结构的形式化描述为什么需要形式化描述需要严格、精确无歧异的描述,以便在系统众多的涉众中进行交流需要演算的能力,使得在判断系统质量的时候可以由计算得出,而不是仅仅凭借经验推测需要进行体系结构分析自动化THU SAGroup32软件体系结构的形式化描述软件体系机构形式化描述风格风格的多样性问题风格的通用性问题风格的专用性问题THU SAGroup33何谓形式化方法形式化方法:借助抽象的方法将软件系统转化为数学模型如何抽象取决于关注点THU SAGroup34形式化方法过程软件系统关注结构和约束体系结构形式化模型1

10、集合论、谓词逻辑关注行为体系结构形式化模型2进程代数THU SAGroup35软件体系结构形式化基础一阶谓词逻辑(First Order Predicate Logic)集合论属性文法(Attribute Grammar)进程代数 (Process Algebra)通讯顺序进程(CSP,Communicating Sequential Processes)-演算(-Calculus)Petri网状态机(State Machine)THU SAGroup36形式化方法的进化ADL纯形式化方法的不足形式化方法不能直接支持软件的各种概念,因此难以在实践中应用体系结构描述语言ADL (Architec

11、ture Description Language)应用通用的形式化方法对体系结构和风格进行建模和分析,在体系结构的抽象级上提供一个精确的语义。 提供了强有力的分析能力、抽象和与实现的细节无关性。 为体系结构元素定义了一系列符号,可以应用于实际的复杂系统的描述。 THU SAGroup37ADL应当有什么功能定义和描述结构概念(Capture)描述一个系统是如何被构件建立起来的(Construction)描述如何通过现有的构件生成新的系统(Composition)指导从多个不同的设计和实现中挑选最优方案(Selection)检验一个设计是否能够满足需求(Verification)检测一个需求对

12、系统的隐含影响(Analysis)根据需求自动化构建系统(Automation)THU SAGroup38ADL分类根据结构分类隐式配置语言(Implicit Configuration Languages) 嵌入式配置语言(Inline Configuration Languages)显式配置语言(Explicit Configuration Languages)前两者不能被认为是真正意义上的ADLTHU SAGroup39ADL分类(续)根据研究范围分类研究体系结构配置结构的描述语言如Darwin、CHAM(Chemical Abstract Machine)研究体系结构实例的描述语言如R

13、apide、UniCon研究体系结构风格的描述语言如WRIGHT、Aesop根据与实现细节的关系的描述语言实现无关语言(Implementation Independent Languages)实现相关语言(Implementation Constraining Languages)THU SAGroup40几种ADL简介THU SAGroup41几种ADL简介(续)Darwin采用演算来分析、描述带有演化通信结构的并发系统。在演算中,一个系统被表述成一组具有独立功能的进程集,集合中的每个进程可以与其它进程建立连接,每个连接都有一个连接名。Darwin采用演算对系统行为进行建模,利用其强类型系

14、统进行静态检查。THU SAGroup42几种ADL简介(续)XYZ/ADL针对国内唐稚松院士提出基于时序逻辑的XYZ语言进行扩充,用来描述验证具有实时性、可靠性要求的软件体系结构。 THU SAGroup43几种ADL简介(续)DSADL采用属性文法(AG)来形式化描述软件体系结构。传统的属性文法是在一上下文无关文法(Context Free Grammar,CFG)-G=(VN,VT,P,Z)上附加上下文有关的属性和规则。其中, VN是非终结符号集;VT是终结符号集;P是产生式集;Z是开始符号。假设G是规范CFG。P中的产生式为 p: Xp,0Xp,1Xp,np,np1,表示的右部所含符号

15、的长度;Xp,0VN,Xp,iV;V= VNVT; 1inp。 DSADL针对分布式软件的特征引入了并行描述机制 、特殊的终结符号、条件产生式 。 THU SAGroup44几种ADL简介(续)OOADL采用Z语言形式化描述软件体系结构。其中Z语言是基于一阶逻辑(, )和集合论(,等)的一种数学语言。OOADL 以OO范例作为核心,增加了a_kind_of” , “a_part_of”和“an_instance_of”等关键字来表示OO范例中的概括、聚集和实例化关系。THU SAGroup45几种ADL简介(续)WRIGHT采用CSP做为形式化描述语言。CSP是基于字母表、迹和拒绝集的概念。从

16、形式上,CSP进程可以用一个3元组(A,F,D)表示,A表示字母表(Alphabet),F表示失效(Failures),D表示偏差(Divergences)。进程的字母表是进程所参与的事件的集合。进程的迹是进程所允许的事件序列。 THU SAGroup46通过ADL看软件不同的ADL对软件的理解不同WRIGHT将软件理解为构件、连接器、端口、角色,以及这些元素之间的联系和约束。CSP的描述使其有利分析复杂行为。C2将软件理解为构件、端口和连接器。不过构件有且只有Top和Bottom两个端口。同时构件和构件之间仅通过Request和Notification两种信息进行通讯。适合描述交互式系统。A

17、CME将软件理解为具有属性的构件和连接器。具有大多数ADL的共性元素。善于在不同ADL之间进行转换。THU SAGroup47通过ADL看软件(续)任何人都可以利用自己的关注点来看待并描述体系结构,即可以定义自己的ADL回忆:用自己习惯的方式来描述一块石头的重量比较轻比另一块重一些大约2公斤四斤六两2.32Kg5.114751207磅你心目中的软件体系结构是什么样子?你是如何抽象软件,从而解决在设计和管理中的问题的?THU SAGroup48内容概要形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例THU SAGroup49WRIGHTWRIGHT起源

18、A Formal Approach to Software Architecture, Robert J. Allen, Ph.D. Thesis, Carnegie Mellon University, Technical Report Number: CMU-CS-97-144, May, 1997. 发展Dynamic WRIGHTTHU SAGroup50WRIGHT应用实例应用:将一个字符串读入,修改字符串使其呈现大小写交替出现,然后输出如:I love this game I LoVe ThIs GaMe假设系统设计管道过滤器系统,它分解输入流(使用过滤器Split),分别处理各子

19、流(使用过滤器Upper和Lower),然后合并子流(使用过滤器Merge)。SplitLowerUpperMergeConfigI/O LibraryMain本系统的模块分解图,侧重于实现THU SAGroup51WRIGHT应用实例WRIGHT眼中的系统SplitUpperLowerMerge构件连接器图例:角色端口THU SAGroup52WRIGHT应用实例WRIGHT语言描述System Capitalize 定义一个系统CapitalizeComponent Splitport In 输入协议port Left,Right 输出协议comp spec Split构件规格说明Comp

20、onent Upperport In 输入协议port Left,Right 输出协议comp spec Upper构件规格说明Connector PipePipe连接器规格说明Instancessplit:Split; upper:Upper; lower: Lower; merge:MergeEnd Capitalize定义构件及其端口定义连接器及其角色系统配置描述 中内容为注释蓝色字为关键字THU SAGroup53WRIGHT设计目标支持体系结构配置的描述 体系结构描述的最终目的是在高层抽象级上捕捉和利用一个系统的结构。它必须可以定义一个系统中的构件和构件之间的交互行为。支持体系结构风

21、格的描述 除了描述单一系统的体系结构,开发人员必须能描述一系列类似系统。这些体系结构风格提供了使用系统之间共性的方法。除此之外,在给定配置的情况下,两种描述必须可以结合在一起,这样我们就可以确定这两种描述是否符合同一种给定的风格。 THU SAGroup54WRIGHT设计目标(续)支持属性分析 描述行为的一个重要的目标是使用这种描述理解系统的属性。开发人员可以使用描述去分析系统或者风格,以确定系统是否满足他们的要求。 支持在实际问题中的应用 如果描述的符号仅仅能应用于有很大限制的环境中或者小系统中,那么这种描述将是不实用的。一种实用的符号表示可以扩展到描述复杂的实际问题。 THU SAGro

22、up55基于WRIGHT的形式化描述 作为一种体系结构描述语言,WRIGHT是根据构件、连接器和配置等基本体系结构的抽象而构造的,并为这些元素提供了清晰的记号,把构件形式化成计算,把连接器形式化成交互模式。下面分别介绍基于Wright的体系结构基本元素的形式化描述。 THU SAGroup56基于WRIGHT的描述框架构件接口(接口类型、接口类型的参数化、接口类型约束、实例);计算连接器配置附属层次风格扩展风格行为描述事件、进程、并行组合配置的拓扑结构定义了配置可以共享的属性集合定义新的风格Wright体系结构形式化描述框架THU SAGroup57基于WRIGHT的描述元素1:构件构件(Co

23、mponent)一个构件描述了一个本地化、独立的计算。例如,在“管道/过滤器”系统中,一个典型的构件可以读取系统的所有输入并且把每个字母转换成大写字母,或者把一个输入流分成两个,每隔一个字符送到不同的输出。在一个数据库系统中,构件可能包括一个访问库和一个用户所请求的报表客户端。在WRIGHT中,对构件的描述包括两个方面:接口(Interface)和计算(Computation)。一个接口有多个端口(Port)组成。每个端口表示构件参与的一种交互。在下例中,一个过滤器构件(分离过滤器)可能有三个端口,一个用于输入,另外两个用于输出。THU SAGroup58基于WRIGHT的描述元素1:构件接口

24、类型 (Interface Type)接口类型可以用于描述构件的端口,或者一个连接器的角色。在后者中,接口表示在角色中可能用到的端口接口的约束。 例如: Interface Type DataInput = 不断读取数据直到读到End-of-DataInterface Type DataOutput = 不断的写数据,当关闭时发出End-of-DataTHU SAGroup59基于WRIGHT的描述元素1:构件接口类型参数化WRIGHT允许把一个类型描述的任意部分变成预留空间,这些预留空间将在类型实例化是利用参数进行填充。因此,一个端口或者角色的类型、一种计算、一个接口的命名等等都可以参数化。

25、THU SAGroup60基于WRIGHT的描述元素1:构件接口类型参数化(续)除了在类型描述中预留空间之外,还有一种通过数字(Number)参数化类型描述。例如: Component SplitFilter(nout : 1.) Port Input = DataInput Port Output1.nout = DataOutput Computation = 反复从端口Input读入数据,并将数据依次写入 端口Output1,Output2,THU SAGroup61基于WRIGHT的描述元素1:构件接口类型约束在WRIGHT风格描述中可声明在这个风格中的配置都必须遵循的属性(即约束)。

26、 例如:实例名类型名取得类型的操作类型名意为:对于所有的连接器,它们的类型都必须是Pipe(Pipe是连接器的一个类型)分隔声明和约束THU SAGroup62基于WRIGHT的描述元素1:构件一个“管道/过滤”系统实例: 系统功能:读取一个字符流,并输出把每隔一个的字符转换成大写字母的字符流。 THU SAGroup63基于WRIGHT的描述元素1:构件Component SplitFilter Port Input 协议:读取数据,直到读取了End-of-Data符号 Port Left 协议:不断的输出数据 Port Right 协议:不断的输出数据 Computation 反复的从In

27、put读取数据,并交替输出到Left和Right 端口SplitFilter构件描述SplitFilterPort InputPort LeftPort RightTHU SAGroup64基于WRIGHT的描述元素2:连接器连接器一个连接器代表了构件集合内各种构件之间的交互。例如,一个管道代表了两个过滤器之间的一个序列流。一个过程的调用就是一种“调用-返回”模式控制的连接器。更复杂的连接还有数据库协议,例如,2-阶段提交和可靠安全网络消息的过滤。 WRIGHT对连接器进行描述时,可以分为一个角色(Role)的集合和粘合(Glue)。 THU SAGroup65基于WRIGHT的描述元素2:连

28、接器角色 (Role)每个角色指定了在交互中单个参与者的行为。例如,在一个管道中有两个角色:数据源和接收器(Sink),同时,角色指定了交互中构件的参与者的期望。每种角色代表了一种构件将要做什么,例如,接收器角色代表了那个参与者所期望的行为:任何作为接收器的构件允许读取数据并且负责关闭连接。 THU SAGroup66基于WRIGHT的描述元素2:连接器粘合(Glue)一个连接器的粘合描述了参与者如何工作在一起创建一种交互,即连接器的粘合代表了完整的行为说明。实际上,我们把一个连接器解释成:如果真正的构件符合角色所指定的行为,那么构件的不同计算(Computation)将通过粘合而结合起来。

29、如下例所示的一个管道例子,粘合描述了来自数据源的数据如何被传送到接收器。一个过程调用将表示调用者初始化一个调用,紧接着从过程定义器返回。连接器的粘合说明了构件的计算是如何组成一个更大的计算。 THU SAGroup67基于WRIGHT的描述元素2:连接器Connector Pipe Role Source 不断接受传送数据,直到外界发出关闭指令后终止 Role Sink 不断读取数据,直到没有数据可以发送 Glue 从Source得到的数据不加修改的发送到Sink一个连接器描述实例管道连接器PipeSourceSinkGlueTHU SAGroup68基于WRIGHT的描述元素3:配置配置(C

30、onfiguration)为了描述一个完整的系统体系结构,WRIGHT把对构件和连接器的描述结合在一起,形成配置。一个配置就是通过连接器把构件实例结合起来的一个集合。 配置包括构件和连接器的生成,以及附属(Attachment)即将构件的端口和连接器的角色连接起来THU SAGroup69基于WRIGHT的描述元素3:配置实例因为在一个系统中可能多次使用给定的构件或者连接器,所以我们把先前的描述作为构件和连接器的类型。为了在一个配置中区分每种构件和连接器类型的不同实例,WRIGHT描述语言要求每个实例必须清晰并且具有唯一性。下例描述了一个具有实例声明的配置。 Configuration Cap

31、italize Component UpperCase Connector Pipe Instances Split : SplitFilter Upper : UpperCase Merge : MergeFilter P1, P2, P3 : Pipe Attachments Split.Left as P1.Source Upper.Input as P1.Sink Split.Right as P2.Source Merge.Right as P2.Sink Upper.Output as P3.SourceEnd Capitalize.定义构件连接器类型定义构件连接器实例连接端口和角

32、色THU SAGroup70基于WRIGHT的描述元素4:附属附属(Attachment)在实例声明之后,就可以描述附属(Attachment)了,这样配置才算是完整的。附属说明了哪些构件参与哪些交互,从而定义了配置的拓扑结构。附属的声明把体系结构描述的每个元素结合在一起。例如,构件执行一种计算(Computation),这种计算的一部分是由端口(Port)指定的交互行为。这个端口与角色(Role)联系在一起,这说明了端口为了合法地参与连接器所指定的交互所必须遵从的规则。如果每个由各自的端口表示的构件遵从角色所规定的规则,那么连接器的粘合(Glue)则定义了机算是如何结合在一起形成更大的计算。

33、 实例见上例THU SAGroup71基于WRIGHT的描述元素5:层次层次WRIGHT支持层次描述,如下层次结构(服务器有内部结构):客户服务器协调器安全管理器数据库THU SAGroup72基于WRIGHT的描述元素5:层次Configuration HierServer Connector CSConn Component ClientType Component ServerType Port Service Computation Configuration SecureData Component Coordinator Instances c : Coordinator与上图对应

34、的层次描述,缩进可以帮助看清层次结构:定义顶层构件和连接器类型定义构件类型ServerType的端口和内部结构,包括次级构件类型Coordinator、SecurityManager(未列出)和Database(未列出)接下页THU SAGroup73基于WRIGHT的描述元素5:层次 Security : SecurityManager Attachments c.Secure as S1.Client Security.Service as S1.Service End SecureData Bindings C.Combined = Service End Bindings Instan

35、ces Attachments End HierServer定义次级构件实例Coordinator类型的c和SecurityManager类型的Security将次级结构的构件和连接器连接起来定义SecurityType的端口应该指向其内部结构的哪个端口(如图)SecurityTypeCoordinatorServiceCombinedTHU SAGroup74基于WRIGHT的描述元素6:风格风格WRIGHT可以用于定义体系结构的风格。一种风格定义了配置可以共享的属性集合。这些属性可以包括一个公共的词汇集和约束集。在WRIGHT中,通过声明一系列构件和连接器的类型引入公共的词汇集,并且使用声

36、明的类型进行实例化说明。例如,“管道/过滤器”风格将包括连接器类型“Pipe”的声明,然后,如果在“管道/过滤器”风格中声明一个配置,那么该配置就可以自动使用“Pipe”类型了。 THU SAGroup75基于WRIGHT的描述元素7:扩展风格扩展风格定义一种新风格的重要方法是把新风格描述成另外一种风格的子风格。如果新风格具有另外一种风格的所有约束条件,就可以新风格描述成该风格的子风格。例如,我们可以把管道风格定义成通过管道交互的线性序列的组合。这种风格具有“管道/过滤器”风格的所有限制。在定义子风格时,把父风格的名字放在子风格名字的后面。这样就可以包含父风格所定义的所有词汇和约束了。 THU

37、 SAGroup76基于WRIGHT的描述元素8:行为体系结构行为描述WRIGHT采用基于CSP(通信顺序进程,Communicating Sequential Processes)的记号描述构件的行为和构件之间的协调关系。 THU SAGroup77我们在哪里THU SAGroup78行为描述法的要求必须可以反映体系结构最常见的交互模式如过程调用,管道,事件,共享变量等等必须可以描述复杂的交互行为如哪一方先发起什么需求,然后另一方如何响应要求必须可以区分相似行为的细微不同例如同样是使用共享变量,具体是否需要初始化,如果需要,由谁来初始化等THU SAGroup79CSP简介CSP起源Hoar

38、e,1978解决序列化的进程描述以及这些进程并行执行时的交互问题理论成形Hoare,Brookes,Roscoe,1984以事件为基础的理论模型,构建动态的描述结构,并提出了进程间通讯的一些范式和准则C.A.R Hoare, 1980年图灵奖获得者THU SAGroup80CSP在哪里 Computation = 用CSP精确描述反复从端口Input读入数据,并将数据依次写入端口Output1,Output2,source?xoutput1!xoutput2!xComputationTHU SAGroup81CSP基本概念事件(Event)引发其它事件或者被其它事件引发的情况,CSP中最基本的

39、单位。事件集(Alphabet)对某一系统进行某种描述时所有相关的事件名称组成的集合。如果系统名为S,则事件集表示为S进程(Process)连续交互发生的一组事件的整体。有一个特殊的进程叫STOP,表示系统停机。前束(Prefixing)由指定事件触发某一进程的关系,表示为eP选择行为(Alternative)在某种情况下,可以有多种进程发生。具体哪一种发生由环境决定不确定行为(Nondeterminism)在某种情况下,可以有多种进程发生。具体哪一种发生有进程自身决定THU SAGroup82CSP实例行为能被描述么?描述自动售货机的行为定义系统名称SVM(简单自动售货机)定义事件coin:

40、投一枚硬币choc:得到一块巧克力定义本系统的事件集SVM = coin, choc系统简化本描述只和顾客投币并获取巧克力相关,因此其它的事件在此描述中均被忽略事件发生的精确时间被忽略无须区分一个对象本身触发和外界触发的事件THU SAGroup83CSP表现SVM行为当顾客投一个硬币,自动售货机就停止工作SVM = (coin STOP )当两个顾客分别投一个硬币后,均得到一块巧克力,之后再投币,自动售货机停止工作SVM = (coin (choc (coin (choc STOP )当第一个和第二个硬币投下后,巧克力出来之前,不可以再投入新的硬币;巧克力出来之后,不投入新硬币,不会再有巧克

41、力出来:即不可能有多于一个的硬币被连续投入,也不可能有多于一块的巧克力连续出来CSP前束操作符有右结合性,所以上式等价于SVM =coin choc coin choc STOP事件前缀进程THU SAGroup84CSP的递归定义现实当中有些对象在正常情况下的行为是永不停机的,用递归定义来描述这种情况对于系统SVM进程描述:SVM = coin choc SVMTHU SAGroup85CSP描述体系结构行为引入成功完成的概念CSP中的STOP仅仅意味着系统停机,没有成功或者失败的意味。在体系结构描述中引入事件“成功完成” 的概念,用表示。WRIGHT定义= STOP事件可以伴随数据。通常e

42、?x表示输入一个参数;e!x表示输出一个参数引入作用域(Scope)的概念存在于某一作用域中的进程仅在这个作用域中有效,效果等同于多元递归表示引入标签(Lable)的概念标签可以限定事件或者进程的归属者。其中对于某一单个事件的标签使用“.”,例如l.e;对于某一进程中的所有事件使用“:”,例如l:P通常使用来表示所有通用的事件,如l:表示所有通用的事件加上l这个标签THU SAGroup86CSP的优势和劣势其他的可选方案Petri网、SDL、I/O自动机、状态图等在CSP中可以区分Alternatives和Nondeterminisms即由内部进行的决策和外部进行的决策是分开的CSP中有并行

43、进程组合机制,可以表达一个符合多个进程描述的进程CSP拥有成熟的工具支持缺点CSP中,时间是不被考虑的CSP中,进程之间只存在触发的关系THU SAGroup87CSP应用实例 我们用WRIGHT定义一个连接器Connector CSConnector = Role client = request!x result?y client Role server = invoke?x return!y server Glue = client.request!x server.invoke?x server.return?y client.result!y Glue client、server、G

44、lue均为进程,request、result、invoke、return为事件。X为参数client从使用者的角度来描述其行为,request和result均为client的事件。client是反复执行还是成功终止是由用户自己决定的,环境无法干涉server从服务提供者的角度描述其行为,invoke和return为server的事件。server是反复执行还是成功终止是由环境(这里特指用户)决定的glue从连接器的角度将两个角色的行为联系起来Nondeterminism,表示由自身进行选择Alternative,表示由环境进行选择THU SAGroup88CSP连接端口和角色端口行为也使用CS

45、P表示例如Component DataUser = port DataRead = readDataRead definition of other ports端口定义了系统的实际行为。将一个构件的某个端口和一个连接器的某个角色连接起来,实际上端口将取代角色的位置。即角色只有占位符的意义。THU SAGroup89CSP深入CSP具有复杂的演算和证明体系CSP模型:事件集、迹、拒绝集 CSP是基于字母表、迹和拒绝集的概念。从形式上,CSP进程可以用一个3元组(A,F,D)表示,A表示事件集Alphabet),F表示失效(Failures),D表示偏差(Divergences)。进程的事件集是进

46、程所参与的事件的集合。进程P的字母表通常写成P。进程的失效是迹与拒绝集组成的对。每个迹表示事件的有限序列,每个拒绝集是一个事件集。进程的迹是进程所允许的事件序列。例如, 进程 P, 可以产生的迹是(),(a),(b),(aa),(ab),(ba),等等,迹的全集用Traces(P) 表示。事件的拒绝集可以用进程的失效对表示。失效对的第一个元素是进程的一个迹,第二个元素是进程在该迹上的一个拒绝集。 CSP深入(续)一个失效是一个迹和一个事件集。对于一个给定的迹,可能存在多个拒绝集。因为拒绝集是子集闭合的,也就是说,如果一个构件拒绝了一个事件集,它就可以拒绝该事件集的任何子集。另外,一个进程可能可

47、以分别拒绝事件的组合,但是并不是所有的组合。例如,进程 可以拒绝事件a或者事件b,但是不能同时拒绝二者。于是,进程就有失效(),),(),a)和(),b),但是没有(),a,b)。然而,进程 就有失效(),a,b),因为STOP选择意味着不发生任何事件。THU SAGroup90THU SAGroup91CSP深入(续)并发交织(interleaving)隐藏接口并行条件超时(time out)和中断(interrupt)死锁检测THU SAGroup92WRIGHT基于CSP语义进行的形式化校验构件一致问题连接器一致问题风格约束实例声明一致问题激发器一致问题定义1、测试2 、测试3 定义2、

48、测试5 、测试6 、测试7测试4测试8 、测试9 测试1 一致问题测试THU SAGroup93内容概要形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例THU SAGroup94WRIGHT应用实例实例内容概要AEGIS系统说明基于Wright的AEGIS体系结构描述THU SAGroup95AEGIS系统说明 AEGIS武器系统是一个大型复杂的软件系统,它可以控制美国海军舰艇的许多防御功能. AEGIS系统的结构如下图所示,原始的体系结构描述由七个构件组成其中,实验控制模块提供了来自传感器和操作者的仿真输入,“心跳”信号表示了仿真时间。跟踪数据被送往跟踪服务器,该服务器记录了当前在监视区域内所监

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论