




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件体系结构第52 软件体系结构已经成为国内外软件研究的热点,人们已经把解决复杂软件设计的难题,以及提高软件设计效率和质量寄托在软件体系结构研究的突破上。然而,软件体系结构的技术研究从理论到实践还处在发展时期。主要研究包括:1)软件体系结构形式化2)软件体系结构的描述语言、工具和环境3)软件体系结构经典风格、应用框架和设计模式的总结31)软件体系结构形式化用形式化体系解释体系结构抽象定义体系结构的精确语义,证明某种体系结构运用的必然性和充分性,进而扩展证明它的使用性,并且,作为验证结构合理性的基础,用于系统设计中的结构选取。 主要软件体系结构的形式化体系:形式化对象关系表达:类属理论(Cate
2、gory Theory)形式化描述语言:Z标记语言(Z Notation)抽象代数理论:抽象模型等等形式化方法的两方面研究:4体系结构描述语言ADL(Architecture Description Language)用形式化的符号表示体系,进行建模和结构分析。抽象描述结构的形式,便于掌握系统全局和特征,便于分析系统的构成角色和特性,便于复用和继承已有结构,目标是体系结构自动化。研究进展:ACME: 描述系统结构交互机制Aesop: 对体系结构特定风格的规范性描述C2: 描述分布式可延展动态系统的结构MetaH: 用于描述导航和控制体系结构Rapide:对体系结构描述中的动态行为建模并模拟运行
3、SADL: 用形式化对体系结构不同层次的细节描述Unicom:用公共接口协议连结构件,粘合生成系统Wright:用于并发系统建模,可对死锁等动态行为分析52)软件体系结构的工具和环境描述语言和工具环境的关系:描述语言-研究语言的成分和表示能力工具环境-研究工程平台和系统建设能力描述语言的可用性,直接反映在工具所提供的环境中软件体系结构工具环境应该具备的基本功能:提供设计规范提供多视角表达提供分层细化,以及性能分析可生成运行代码提供动态行为描述,可进行运行配置6ADL研究现状: 认识不统一,ADL商业产品大都来自企业和学术团体,它们的手段和目标不尽相同。 ADL研究虽然在界有影响,但并没有达到一
4、般性的实际应用。ADL具备的共同点:提供图形句法表示手段,给了形式化的句法和语义提供分布式系统建模描述除支持数据流和控制流连接,很少支持其他类型的连接支持详细结构层次的表示,并支持子结构的模板实例化除了一般的注释说明,不支持设计的依据和历史跟踪5.25.2 软件体系结构语言软件体系结构语言ADLADL7各种ADL目前存在的问题: 描述结构的实际处理角度不同。有从硬件结构的角度,也有从软件优先级角度的。 描述结构的范围不同。大部分都包含管道过滤器体系结构形式,有的包含了层次式部件结构,有的包含了对象式结构,还有的包含了动态体系以及类继承体系。 描述结构支持一致性的完整程度不同。大部分支持内部一致
5、性,有的支持部件间的一致性。 描述结构在分析能力的支持方面存在明显不足。 描述结构在处理相同体系结构的不同实例能力上,或者说可变性方面,存在明显不足。8IEEE P1471规定了应用体系结构的描述标准:(2000.9)体系结构的存档要求能区别个体及其关系体系结构视点体系结构视点的选择体系结构视点之间的一致性体系结构原理ADL应该具备的基本特点:能使用较小的独立体系结构元素来建造软件系统;关注的是构件和连接件描述,而无需关注实现;构件和连接件以及体系结构都是开发设计的重用部件;描述的每个元素都有自己局部的结构,支持动态变化组合;可描述不同体系结构的关联;可对描述的体系结构进行性能及功能的分析。9
6、所有ADL都围绕着被称为“软件体系结构核心模型”而设计的。软件体系结构核心模型由五个基本元素:构件、连接件、配置、端口和角色。5.2.1 ADL5.2.1 ADL核心模型核心模型 软件体系结构 配置 构件 连接件 端口 角色1:N1:N1:N10构件构件:是软件结构的构造块,是计算与状态存在的场所构件的大小构件的大小:可小到只有一个过程或大到整个应用系统构件的存储构件的存储:有自己的或与其它成分共享的存储和执行空间构件的属性构件的属性:如类型、语义、状态,等1)构件的概念5.2.2 ADL5.2.2 ADL的构成要素的构成要素构件构件接口(端口)构件类型构件演变11构件接口(端口)构件接口(端
7、口):构件与外部交互的端口点。构件接口可以有多个,不同的接口对应不同的操作。ADL中的构件接口说明,提供构件消息和操作变量的描述手段,能定义构件提供的计算及约束条件。构件类型:构件类型:构件是按照指定的类型实例化的,类型可参数化。ADL应具有构件类型保证机制。构件演化:构件演化:构件通过子类型形成特性细化的特殊构件。目前只有少数几种ADL部分地支持构件演化。12连接件连接件:软件结构的构造块。建立构件交互的规则。与构件的区别与构件的区别:不直接对应编译单元。连接件包括连接件包括:消息路由兼容设备、共享变量、是入口表、缓冲区、连接器指令、动态数据结构、内嵌在代码中的远程过程调用序列、初始化参数、
8、客户服务协议、管道、数据库、应用程序之间的查询语言,等。2)连接件的概念连接件连接件接口(角色)连接件协议13连接件接口(角色):连接件接口(角色):由一组角色组成,参与者对应交互的角色。例如:二元消息传递连接件有两个角色,发送者和接收者。而广播连接件有多个角色,一个发送者角色,多个接收者角色。连接件协议连接件协议:提供规定类型的通信交互的规范。协议可以是独立的或是内嵌在交互机制中实现的。ADL应提供协议的交换语法,能够规划交互协议,建立内部连接件的依赖关系以及用途边界。通过强制风格和角色限制来保证连接约束。14体系结构配置体系结构配置-是用来描述体系结构的构件与连接件的连接图。配置信息可以用
9、来确定构件的连接、接口的匹配,通信的正确性以及实现的组合行为语义。文本和图形说明文本和图形说明-ADL应该以简单的、可理解的语法来配置结构化信息。除了文本形式外,还提供图形说明形式,并且它们之间可以互换。多视图、多场景的体系结构方法成为研究方向。复合及合成复合及合成-复合是包括将一个整体作为另一个的部分构成更大的配置。这样可以适应异构和不断变化的结构3)体系结构配置的概念结构配置文本和图形说明复合及合成155.2.3 5.2.3 几种几种ADLADL介绍介绍目前在软件体系结构研究领域出现多种体系结构描述语言,既有针对特定领域的ADL,也有以通用性为目标的ADL。不同的ADL描述体系结构的侧重点
10、不尽相同。 侧重UniCon用公共接口协议连结构件,粘合生成系统C2描述分布式可扩延动态体系结构Wright用于并发系统建模,可对死锁等动态行为分析.例如:161)UniCon(Universal Cennection)语言UniCon是 Caregie Mellon 大学的 Mary Shaw 等人研究的成果。它主要的目标是支持对体系结构的描述,针对构件连接器模型,区分不同需要的构件,支持构件打包、定位、交互模式描述和编码。UniCom语言的形式 构件连接器1.表演者2.接口3.类型实现1.角色2.协议3.类型实现17构件规范 表演者:实体命名接口:调用形式(性能或交互性的功能)类型:可以是
11、过滤器、子程序、知识源,事件处理等连接器规范角色:实体命名协议:角色与表演者对应的规则、交互约束限定、性能类型:可以是管道、过程调用、事件驱动、等成分特性原始构件由体系结构之外的语言描述;合成构件用体系结构语言描述连接器角色若为多种角色,则多端情况可用多态方式构件和连接器是互补和对称的18UniCon语言构件描述示例 Component Real_Time_System interface is type General implementation is uses client interface RTclient PRIORITY(10) end client uses server in
12、terface RTserver PRIORITY(10) end server establish RTM-realtime-sched with clientapplicetion1 as load serverapplicetion2 as load serverservices as load ALGORITHM(rate_monotonic) end RTM-realtime-sched establish RTM-remote-proc-call with clienttimeget as caller servertimeget as definer IDLTYPE(Mach)
13、end RTM-remote-proc-call end implementationend Real_Time_System实时系统构件说明:1.实时系统接口是通用类型2.实时系统的实现, Client接口:优先级等 Server接口:优先级等 建立实时管理的实时调用程序 Client和Server加载应用load 和服务算法 建立实时管理的远程调用程序 Client和Server交互方式19Connector RTM-realtime-sched protocol is type RTscheduler role load is load end protocol implementati
14、on is built in end implementationend RTM-realtime-sched实时调度表连接件:1.协议 类型是实时调度表 角色是加载2. 实现是在执行中 UniCon语言连接件描述示例 202)C2 体系结构语言 C2支持事件风格的用户界面体系结构描述语言。配合有设计环境Argo系统。使用可替换、可重用的GUI构件开发体系结构。重点是构件的动态改变,以满足某些GUI特性。 C2的连接件负责构件之间的消息传递, C2的构件只能通过连接件完成消息传递。消息要么是请求其它构件执行某项操作,要么是通知其它构件改变状态,请求消息只能向上层传递,通知消息只能向下层在内部构
15、件间传递。 C2的构件维持状态、执行操作并通过top和bottom端口与其它构件交换信息。每个构件最多只能和一个连接件相连,而连接件可以和任意数目的构件相连。21Component_message_interface := top_domain_interface bottom_domain_interfacetop_domain_interface := top_domain is out interface_requests in interface_notificationsbottom_domain_interface := bottom_domain is out interface
16、_ notifications in interface_requestsinterface_requests := request; | nullinterface_ notifications := notification; | nullrequest := message_name(request_parameters)request_parameters := to component_nameparameter_listnotification := message_nameparameter_list C2体系结构形式化描述形式构件顶部接口底部接口提出请求接受通知接受请求发出通知
17、22C2体系结构形式化描述示例Attendee-1Attendee-mImportantAttendee-1ImportantAttendee-nMeetingInitiatorAttconnMainconnImportantAttconnC2会议安排系统,包括3个功能构件:发起人、多位出席者和重点出席者,3个连接件为主要连接件、出席连接件和重要出席连接件。某些消息由发起人同时发给出席者和重要出席者,但某些消息只能传送给重要出席者。因为一个C2构件在top和bottom端分别只有一个通信端口,并且所有消息路由功能都与连接件相关,所以主要连接件分别与出席连接件和重要出席连接件相连,为保证出席连接
18、件和重要出席连接件的top和bottom端能分别接收与它们相连的构件消息。233)Wright体系结构语言Wright是一种特定的形式化体系结构描述语言。它的连接器针对离散的、异步的行为关系模型构件,并可限定配置。Wright体系结构形式化描述示例Capitalize Split Upper Merge示例描述大写字母转换器,系统将读入的字符流分离成需要转换和不需要转换的两部分,经过转换后的部分再与不需要转换的部分合并成输出流。系统运用了经典的管道过滤器结构。p1p2p324Wright构件描述Component SplitFilter port Input read data until e
19、nd -of -data is reached port Left output data repeatly Port Right output data repeatly computation repeatly read from input,then output, alternating between Left and Righ Ports分离过滤器构件的描述分为两部分:构件端口:输入端口数据到达时读数据 左端口反复地输出数据 右端口反复地输出数据构件的计算: 在左右端口之间交替地,反复读输入,然后输出25Connector Pipe Role Source deliver data
20、 repeatly,signalling termination by close Role sink read data repeatly,closing at or before end data Glue sink receives data in same order delivered by source连接器管道描述:数据源角色(Source)反复地交付数据,直到关闭信号出现则终止数据池角色(sink)反复地读数据,在数据结束或结束之前关闭粘合(glue)按照数据源交付的同一次序接收数据Wright连接件描述在Wright中,用管道过滤器风格来描述由数据源到接收器的模式。这样在大写
21、字母转换系统中的管道,可以直接用该风格的连接器。指定连接到大写转换器的工作,由具体实际应用来完成描述。26Configuration Capitalize Component SplitFilter Component UpperCase Connector Pipe . Instances Split=SplitFilter; upper=UpperCase; Merge=MergrFilter; p1,p2,p3=Pipe Attachments Split.Left as p1.Source Upper.Input as p1.Sink; Split.Right as p2. Sourc
22、e; Merge.Left as p2. Sink; Upper.Output as p3. Source Merge.Right as p3. Sink;End CapitalizeWright配置描述示例配置中说明三部分内容:1.定义各构件和连接件;2.声明给定类型的不同实例;3.附件说明了连接件及构件的组合约束。27Wright的风格定义和接口类型 Wright提供设计人员,寻找一种特定的体系结构风格或模式来描述自己的设计。把设计限制在某种风格范围,可以共享合理的属性集合与词汇,便于关键部分的分析和验证。 可以声名一系列构件和连接件的类型,引入公共词汇集,并通过类型实例化说明来定义具体的
23、使用。(例如:管道过滤器风格)Interface type dataIntput =read data repeatedly, closing the port at or before end of dataInterface type dataOutput =write data repeatedly, closing the port to signal end of dataStyle pipe_Filter Connector Pipe Role Source deliver data repeatly,signalling termination by close Role sin
24、k read data repeatly,closing at or before end data Glue sink receives data in same order delivered by source还可以通过接口类型说明,使同类的端口说明简单一致。28Wright接口类型和参数化构件 通过接口类型,可以使同一种风格具有不同计算。例如:UNIX的stdin、stdout和stderr函数组,都属于管道过滤器风格构件,可以使用参数化构件,来定义一个通用的过滤器。然后用它对每个不同计算过程的过滤器分别说明。其中的端口说明使用了统一的接口类型来说明。Component UNIX_fi
25、lter(c:computation) port stdin = dataInput port stdout = dataOutput port stderr = dataOutput Computation = C29 Wright还提供风格的约束描述,采用一阶谓词逻辑表示。Wright的风格约束其中“”表示约束。C: Connectors Type(C)= PipeC: Components; P: Port | pPort(C) Type(P)=dataInputType(P)=dataOutput Wright还提供用数字来进行参数化描述,使参数的数目可根据特定种类设定。Wright的
26、数字参数化构件Component SplitFilter(nout:1_) port Input = dataInput port Output1.nout = dataOutputComputation = read from Input repeatedly , write to Output1, Output2,etc,in succession305.3 5.3 软件体系结构形式化描述软件体系结构形式化描述 从软件体系结构研究和应用的现状来看,当前对软件体系结构的描述,在很大程度上还停留在非形式化的基础上。软件体系结构设计依赖于设计人员的经验和技巧。人们对同一种结构的理解和表达差别很大
27、,所使用的符号体系也相差很大,并且,对约定、术语和概念是分散的、缺乏严格性、一致性和系统性,没有形成对软件体系结构设计的一般性指导。这些都表明建立软件形式化和规范化结构描述的必要性。31要点:形式地推论系统特征的方法遵循给出的数学系统得出结论数学系统的基础是公式逻辑,提供正确的思维规律,或推理规则,即结论和前提间的推断关系。目的:形式方法关注应用模型和计算机模型之间的逻辑关系。软件工程中的形式方法,即是依靠数学模型和计算,来描述和验证目标软件系统的行为和特性。严格的形式化描述和验证技术,可实现自然地软件自动生成和自动验证的目的。5.3.15.3.1形式化方法形式化方法32表明结论和前提间的推断
28、合理性有两种方法证明理论-推理(proof-theoretic reasoning)不考虑任何解释,只讨论对前提进行操作的推理规则,以及由推理规则所得出的结论。推理规则,即制订一个论断合法性的准则,假设前提为真,并使用公认的推理准则,得到其结论也为真。合法论断,任何论断只要结论是从前提中使用推理规则推导出来的,就称合法论断。合法性不等于正确性。结论与论断是否正确,要看它的解释是否符合实践的检验。模型-理论推理(model-theoretic reasoning)假定前提在一种解释下为真,要求任何满足这种解释所得到的结论也为真。其合法性不仅根据证明规则,更要依靠解释。形式逻辑使用的理论推理方法3
29、3逻辑基础数理逻辑组成集合论模型论递归论构造证明论逻辑是研究形式语言和形式系统的语法和语义基础。逻辑最终可导致机械地认识过程,可用数学完整地说明认识的过程。导致机械过程根本原理确定性原理有穷性原理新的、非经典逻辑方法直观逻辑时态逻辑程式逻辑非单调推理逻辑模糊逻辑345.3.25.3.2软件体系结构抽象模型软件体系结构抽象模型 使用抽象代数理论,定义构件、连接件和软件体系结构,并讨论它们的属性和动态行为,以建立软件体系结构的数学理论体系,证明不同类型软件系统结构的相互关系,给出软件体系结构范式和建立范式的方法。包括的内容构件构件的演化构件相等构件激发运算构件使用运算运算满足结合率连接件软件体系结
30、构的性质软件体系结构是代数系统的定理软件体系结构的映射关系软件体系结构的同态和同构关系软件体系结构的映射连接关系35ID是构件的标志;Publi是构件第i个接触点能提供给环境或其他构件的功能集合;Extni是构件第i个接触点运行所需环境或其他构件的功能集合;Privi是构件第i个接触点私有属性集合;Behai是构件第i个接触点行为语义描述;Msgsi是构件第i个接触点所产生消息的集合;Consi是对构件第i个接触点行为约束,包括构件运行的初始条件、前置条件和后置条件,分别记为Cons(init,pre-cond,post-cond);Non-Funci是构件第i个接触点非功能说明,包括构件的安
31、全性、可靠性说明等。定义1:构件是一个数据单元或一个计算单元,它由构件接口和构件实现模块组成。构件接口是构件与外部接触点的集合,即,而每个接触点Porti是一个八元组,其中:构件定义1给出了构件接口的形式化描述36定义2:设A和B是论域U中的两个构件,如果A和B满足下列条件:(1) Dom(A) = Dom(B)(2) Publ(B) Publ(A)(3) Extn(B) Extn(A)(4) Priv(B) Priv(A)(5) Beha(B) Beha(A)(6) Msgs(B) = Msgs(A)(7) (Cons(B)=Cons)A)or (Cons(B) Cons(A)(8) (No
32、n-Func(B)=Non-Func(A)or(Non-Func(B)Non-Func(A)则称B是A的一个演化,记为Evolve(B,A)构件的演化定义1和定义2反映了构件的可充用和可演化特性。除此之外,通过下面的定义讨论构件间的互操作性。37激发运算和激发运算相连构件的性质定义3:设A和B是论域U中的两个构件,若x Publ (A) y Extn(B)使得(xy)(pre-cons(B),这时构件A通过发送消息“激发”(invocation)构件B中的Publ(B)来实现功能需求,就称构件A、B进行了一次“激发”运算,记作Inv(A,B)或AB。AB仍然是一个构件,它满足下列性质:(1)D
33、om(AB) = Dom(A)Dom(B)(2)Publ(AB) = Publ(A)Publ(B)(3)Extn(AB) = Extn(A)Extn(B)(4)Priv(AB) = Priv(A)Priv(B)(5)Beha(AB) Beha(A)Beha(B)(6)Msgs(AB) = Msgs(A)Msgs(B)(7)Cons(AB) Cons(A)Cons(B)(8)Non-Func(AB) Non-Func(A)Non-Func(B)注:在“激发”模式下,A、B构件是相互独立的,例如对象之间的进程调用38定义4:设A和B是论域U中的两个构件,如果A和B满足下列条件:(1)Dom(A)=
34、 Dom(B)(2)Publ(A)= Publ(B)(3)Extn(A)= Extn(B)(4)Priv(A)= Priv(B)(5)Beha(A) Beha(B)(6)Msgs(A)= Msgs(B)(7)Cons(A) Cons(B)(8)Non-Func(A) Non-Func(B)则称A和B是相等的,记为A=B。构件相等39定理1:设A、B和C是论域U中的三个构件,它们对运算满足结合率,即(AB)C = A(BC)举例证明: 由定义3的性质(2)可知 Publ(XY)= Publ(X)Publ(Y) Publ(AB)C)= Publ(AB) Publ(C) = Publ(A)Publ(
35、B)Publ(C) = Publ(A)Publ(BC) = Publ(A(BC) 定义4的性质(2)成立。为证明构件满足结合率的性质,需要将定义4的所有8个性质逐一证明,才能证明定理1。根据定义证明激发运算满足结合率40推论1:设C1,C2,Cn是论域 U的 n个任意构件,则它们对运算满足结合率,即:(C1C2)C3)Cn-1)Cn = C1(C2 C3)Cn-1)Cn激发运算满足结合率的推论41定义5:AB仍然是一个构件,它满足下列性质:(1)Dom(AB)= Dom(A)Dom(B)(2)Publ(AB)= Publ(A) Publ(B)(3)Extn(AB)= Extn(A) Extn(
36、B)(4)Priv(AB)= Priv(A) Priv(B)(5)Beha(AB) Beha(A) Beha(B)(6)Msgs(AB)= Msgs(A) Msgs(B)(7)Cons(AB) Cons(A) Cons(B)(8)Non-Func(AB) Non-Func(A) Non-Func(B)使用运算和使用运算相连构件的性质设A和B是论域U中的两个构件,若xPubl(A) yExtn (B)使得(xy)(pre-cons(B),这时构件A通过“使用”构件B中的Publ(B)来实现功能需求,就称构件A、B进行了一次“使用”运算,记作 Use(A,B)或AB。注:“使用”指:复制B中的代码
37、到A,或者过程调用,动态连接库。A、B构件是非独立的。42定理2:设A、B和C是论域U中的三个构件,它们对运算满足结合率,即(AB)C=A(BC)与激发运算情形类似,使用运算也满足结合率推论2:设C1,C2,Cn是论域 U的 n个任意构件,则它们对运算满足结合率,即: (C1C2)C3)Cn-1)Cn=C1(C2 C3)Cn-1)Cn43连接件定义6:连接件是构件运算的实现,它是一个六元组 。其中: ID是连接件的标识 Role为连接件和构件之间的交互点集合, Beha是连接件的行为集合 Msgs是连接件中各Role中事件产生的消息的结合 Cons是连接件约束的集合,包括初始条件、前置条件和后
38、置条件,记为Cons(init,pre-cond,post-cond)。 Non-Func连接件非功能说明,包括连接件安全性、可靠性说明等。其中:Role=四元组 ID是Role的标识 Action是Role活动的集合(每个活动由事件的连接组成) Event是Role产生的事件集合。 LConstrains是Role的约束集合44软件体系结构和性质定义7:设论域为U, (1)构件是一个软件体系结构; (2)连接件是一个软件体系结构; (3)构件经有限次连接(运算)后是软件体系结构。 软件体系结构记为 A = ,其中: C表示组成体系结构的构件集合,O表示构件运算的集合。由定义7 得软件体系结构
39、的性质如下:封闭性:构件与构件、构件与体系结构、体系结构与体系结构 连接后仍是一个体系结构。层次性:体系结构可由构件连接而成,而体系结构又可以再经 连接,组成新的更大的体系结构。可扩充性:满足条件的新构件可以通过连接加入到体系结构中。45代数系统定义:一个非空集合A连同若干个定义在A上的运算f1,f2fn所组成的系统,称为代数系统,记为(A, f1,f2fn )。通常讨论的是带有二元运算的代数系统。引理1:设A=是一个软件体系结构,则A是一个代数系统。软件体系结构是代数系统46定理3:设A=是一个软件体系结构,则A对运算和分别构成半群。定理3证明:C1,C2,C3 C,由定义3和定义5得知C对
40、运算和是封闭的,即 C1C2 C, C1C2 C 又由定理1和定理2知,C对运算和满足结合率, 即(C1C2)C3 = C1(C2C3) (C1C2)C3 = C1(C2C3)成立 又由引理1知: A=是一个代数系统,则A=对运算和分别构成半群。证毕。半群定义:设S是一个非空集合,若S上存在一个二元运算O,适合结合率,即对于S中任意a,b,c,均有(aob)oc=ao(boc),则说S是一个半群。47软件体系结构的映射关系定义8:设A1=, A2=是两个不同的体系结构, 若对x C1,总有y C2,使得y与x对应,则称A1与A2之间存在着一个映射,记为f:A1A2 或 y=f(x)。若映射是满
41、射,则称体系结构间映射为满射;若映射是一对一的,则称体系结构间为一一映射。不同的体系结构,会存在着对应关系,这些关系,往往反映出结构之间的变化及更新。讨论结构之间的对应关系,可以提供对结构一致性和适应性验证的必要依据。48同态映射:设G,G是两个群, G到G的映射f是一个同态映射,如果对于任意a,b G,均有 f(a b)=f(a) f(b)。软件体系结构的同态和同构关系定义9:设A1=, A2=是两个体系结构, f是A1到A2的一个映射,若对x, yC1,有f(xy)=f(x)f(y),其中O1, O2,则称f为A1到A2的同态,也称A1与A2同态;若f是单射,则称f是从A1到A2的单一同态
42、;若f是一一映射,则称f是从A1到A2的同构,也称A1与A2同构。49定理4:设A1=, A2=, A3=是三个体系结构, f是A1到A2的一个映射, g是A2到A3的一个映射。则gf是从A1到A3的体系结构同态,其中“”是映射的连接。定理4证明: 对a,bC1, O1, O2, O3, 根据的定义有 gf(a b)=g(f(a b)=g(f(a) f(b)= g(f(a) g(f(b)=(gf)(a) (gf)(b) gf构成了从A1到A3的体系结构同态证毕。软件体系结构的映射连接关系50定理5:设A=,是一个体系结构,如果aC, bC,有b是a的一个演化,即Evolve(b,a)成立,则体
43、系结构A=和A= 同态,这里C=(C-a )b。定理5的证明显然,略。定义10: 设A=,是一个体系结构,如果aC, bC,有b是a的一个演化,即Evolve(b,a)成立,则体系结构A=和A= 演化,这里C=(C-a )b。软件体系结构的同态515.3.3 Z5.3.3 Z标记形式化描述语言标记形式化描述语言 Z标记语言是由英国牛津大学的Programming Research Group研究的。是一种以一阶谓词逻辑和集合论为基础的数学表示语言。它使用标准的逻辑操作符和集合操作符,以及标准的语义。由于描述的数学对象与程序对象有及其相似之处,可以直接对应软件工程问题,因此,Z语言被较广泛地运用
44、在软件程序规格说明和软件体系结构的形式化描述上。Z使用的数学基础逻辑与 逻辑或 否定 逻辑蕴含 全称量词 存在量词 集合构造说明构造说明返回基数说明#序列表示说明元素排列空集表示空序表示使用属于 包含 差 笛卡尔积 子集 P集合运算符号集合表示形式逻辑运算符号52Z的一些基本概念Z的规范由文字和数学描述两部分组成数学描述使用类型集合的方式,每个类型是谓词真值的集合Z提供了一些基本的类型,如自然数N、整数Z等等Z也可以自行定义类型,用引出,并用英文大写字母 例如:CLIENT,ROOM两个类型Z的图解架构(schema)是一种类型结构的抽象,采用盒式图解结构。架构形式化地描述过程或结构。盒中线以
45、上是状态描述变量,以下是变量关系式一组构造类型的运算符:包括PX、X Y、seq X、XY、X+Y、XY、XY、 X+Y、等等53 BLOCKS = (1,block1), (2,block2), (3,block3), , (n,blockn), Used, free : P BLOCKS BlockQueue : seq P BLOCKS used free = used free = BLOCKS i:dom BlockQueue BlockQueue i used BlockQueue i free i,j:dom BlockQueueij BlockQueue i BlockQueu
46、e j = BlockHandlerZ语言描述的示例(一) 用Z语言描述文件存储块结构以及处理文件存储块的行为特性。文件由固定长度的存储块BLOCKS构成,每个BLOCKS有起始地址、长度等信息,并由序号标识。系统的任务是根据需求,从BLOCKS序列中取出存储块并分配使用。54块BLOCKS的集合序列形式说明已用块Used和未用的块free是块类型集合的子集说明块序列BlockQueue是块类型集合的序列子集上部分状态变量说明下部分变量关系式说明已用块Used和未用的块free的交集为空,并且已用块Used和未用的块free的合集等于块BLOCKS,并且块序列BlockQueue域中的块序列i
47、包含在已用块或未用块集合中,并且块序列BlockQueue域中的任意块序列i,j不相同。也就是它们没有交集存储块处理器BlockHandler解释55 BlockHandlerRemoveBlock #BlockQueue 0 used = used head BlockQueue free = free + head BlockQueue BlockQueue = tail BlockQueue使用存储块处理器作为它的状态变量上部分状态变量说明下部分变量关系式说明返回块序列BlockQueue的基数大于0,新的已用块used等于已用块used与块序列第一元素的差,并且新的未用块free等于未
48、用块free与块序列第一元素的和集,并且新的块序列BlockQueue等于除第一元素之后的剩余元素序列移出块RemoveBlock解释56 BlockHandler Ablock ? : BlocksAddBlock Ablock ? used BlockQueue = BlockQueue + Ablock ? used = used free = free使用存储块处理器作为它的状态变量添加块Ablock?的类型是Blocks类型上部分状态变量说明下部分变量关系式说明添加的Ablock?包含在已用块used集合中新的块序列BlockQueue 等于块序列加上添加的块序列新的已用块used和未用块free都没有变化添加块AddBlock解释57Z语言描述的示例(二) 对隐式激发体系结构表示为独立的构件接口,它由构件的名称
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 礼仪教育与学历融合
- 环保生活未来可期
- 合伙出资股投资合同范本
- 厂房安全合同范本
- 入团申请书范文
- 倒闭店铺转让合同范本
- 管理会计复习试题附答案
- 借款质押车合同范例
- 单位用水合同范本
- 员工烤酒合同范本
- 男护士的职业生涯规划书
- 2025年黑龙江旅游职业技术学院单招职业技能测试题库含答案
- 工艺技术人员工作总结
- DB61T-农产品区域公用品牌管理规范
- 中央2025年中国民航大学劳动合同制人员招聘7人笔试历年参考题库附带答案详解
- 高一生活指南模板
- 广州电视塔钢结构施工方案
- 【9物一模】2024年安徽省合肥市庐阳中学九年级中考一模物理试卷
- 2024-2025学年部编版历史七年级下册第一单元综合评估卷(含答案)
- 《工程经济与项目管理》课程教学大纲
- 人教版四年级下册音乐第四单元《凯皮拉的小火车》优质教案
评论
0/150
提交评论