




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1软件体系结构软件体系结构(4(4)软件体系结构形式化描述软件体系结构形式化描述THU SAGroup2内容概要内容概要v形式化描述简介形式化描述简介v软件体系结构的描述软件体系结构的描述v软件体系结构形式化描述软件体系结构形式化描述v实例:实例:WRIGHTWRIGHTvWRIGHTWRIGHT应用范例应用范例THU SAGroup3抽象抽象认识事物本质的惯用法认识事物本质的惯用法v抽象是人类对实际事物在针对某一特定关点下抽象是人类对实际事物在针对某一特定关点下的简化的简化 突出我们希望认识的各个元素突出我们希望认识的各个元素 允许我们对关注的结构和行为进行辨识和分析允许我们对关注的结构和行
2、为进行辨识和分析 在构建新的实例时可以作为蓝图在构建新的实例时可以作为蓝图THU SAGroup4抽象实例:运动系统抽象实例:运动系统THU SAGroup5抽象实例:动力系统抽象实例:动力系统2/20attvsdtdmvFmFav 忽略了施力者和受力者的实体忽略了施力者和受力者的实体v 忽略了次要的环境作用,如地面、空气忽略了次要的环境作用,如地面、空气v 忽略了传力媒介忽略了传力媒介v 突出了力和运动状态之间的关系突出了力和运动状态之间的关系THU SAGroup6形式化的抽象形式化的抽象实际事物实际事物形式化方法形式化方法形式化描述形式化描述精确描述精确描述分析与评估分析与评估计算和预测
3、计算和预测THU SAGroup7内容概要内容概要v形式化描述简介形式化描述简介v软件体系结构的描述软件体系结构的描述v软件体系结构形式化描述软件体系结构形式化描述v实例:实例:WRIGHTWRIGHTvWRIGHTWRIGHT应用范例应用范例THU SAGroup8软件体系结构的描述软件体系结构的描述v软件体系结构和软件体系结构描述不同的两个软件体系结构和软件体系结构描述不同的两个概念概念 软件体系结构是附属于系统之中。只要存在系统,体软件体系结构是附属于系统之中。只要存在系统,体系结构就存在系结构就存在 如:每个石头都会有重量 软件体系结构描述是将体系结构可视化的手段和产物软件体系结构描述
4、是将体系结构可视化的手段和产物 如:表示一个石头的重量THU SAGroup9如何理解体系结构描述如何理解体系结构描述软件体系结构软件体系结构描述THU SAGroup10体系结构描述方式体系结构描述方式v使用不同的策略和方法可对同一软件体系结构使用不同的策略和方法可对同一软件体系结构作不同的理解和描述作不同的理解和描述 如:描述一块石头的重量如:描述一块石头的重量 比较轻 比另一块重一些 大约2公斤 四斤六两 2.32Kg 5.114751207磅 精确程度不同精确程度不同单位不同单位不同测量基准不同测量基准不同THU SAGroup11体系结构描述方式体系结构描述方式v 体系结构描述方式标
5、准体系结构描述方式标准 语义丰富性语义丰富性 语义精确性语义精确性 形式化程度形式化程度v 主要描述方式主要描述方式 非标准的图形符号非标准的图形符号 UML 模块接口语言模块接口语言MIL ADLRichnessPrecisenessFormalizationOTHU SAGroup12非标准图形符号描述非标准图形符号描述v 非标准图形符号描述非标准图形符号描述 用由矩形框和有向线段组合而成的图形表达工具。其用由矩形框和有向线段组合而成的图形表达工具。其中,矩形框代表抽象构件,有向线段代表辅助各构件中,矩形框代表抽象构件,有向线段代表辅助各构件进行通讯、控制或关联的连接件。进行通讯、控制或关
6、联的连接件。 v 特点特点 语义丰富语义丰富 语义极不精确语义极不精确 没有形式化基础没有形式化基础v 用途用途 商业展示商业展示 设计草图设计草图THU SAGroup13非标准图形符号描述非标准图形符号描述v软件体系结构的非标准图形符号表示具有如下软件体系结构的非标准图形符号表示具有如下优点优点:n直观形象直观形象n简单易用简单易用THU SAGroup14非标准图形符号描述非标准图形符号描述v软件体系结构的非标准图形符号表示具有如下软件体系结构的非标准图形符号表示具有如下缺点缺点: 由于其术语和表达语义上存在着一些不规范和不精确,由于其术语和表达语义上存在着一些不规范和不精确,从而使得以
7、矩形为基础的传统图形表达方法在不同系从而使得以矩形为基础的传统图形表达方法在不同系统和不同文档之间存在着许多不一致甚至矛盾。统和不同文档之间存在着许多不一致甚至矛盾。THU SAGroup15项目管理测试结果打印程序复杂度函数调用关系图带时间特性的流程图复杂度计算布图算法最优/最劣时间计算缓冲测试结果库测试配置时间分析器静态分析器THU SAGroup16UMLUMLv基于基于UMLUML技术的软件体系结构描述方法技术的软件体系结构描述方法 1996年,年,Rational、Catapulse公司发起公司发起workshop,倡议用倡议用UML进行体系结构描述和建模、特定领域体进行体系结构描述
8、和建模、特定领域体系结构建模;对系结构建模;对UML中的中的stereotypes、profiles等等进行扩充,支持体系结构的表示进行扩充,支持体系结构的表示 2004年,年,UML2.0发布,增强了通用软件体系结构的发布,增强了通用软件体系结构的描述能力。描述能力。 本质上本质上UML是侧重于面向对象(是侧重于面向对象(OO, Object Oriented)软件系统设计的语言软件系统设计的语言THU SAGroup17UMLUML特性特性v特点特点 语义极其丰富语义极其丰富 语义相对精确语义相对精确 有少量的形式化基础有少量的形式化基础v用途用途 需求分析需求分析 OO类设计类设计 行为
9、设计和分析行为设计和分析 代码自动生成代码自动生成THU SAGroup18UMLUML图实例图实例v类图(类图(Class DiagramClass Diagram)THU SAGroup19UMLUML图实例图实例v用例图(用例图(Use Case DiagramUse Case Diagram)THU SAGroup20UMLUML图实例图实例v序列图(序列图(Sequence DiagramSequence Diagram)THU SAGroup21UMLUML图实例图实例v协作图(协作图(Collaboration DiagramCollaboration Diagram)THU S
10、AGroup22UMLUML图实例图实例v构件图(构件图(Component DiagramComponent Diagram)THU SAGroup23基于基于OOOO的软件体系结构描述方法的软件体系结构描述方法OOOO描述方法的描述方法的优点:优点:v采用面向对象方法,更能反映软件体系结构的采用面向对象方法,更能反映软件体系结构的本质特本质特征征。v提供了提供了多个视图直观形象地反映体系结构元素所具有多个视图直观形象地反映体系结构元素所具有的功能、特征。的功能、特征。v通过类图、包图等反映体系结构的静态特征,并通过通过类图、包图等反映体系结构的静态特征,并通过协作图、序列图、部署图等反映体
11、系结构的动态特征。协作图、序列图、部署图等反映体系结构的动态特征。THU SAGroup24基于基于OOOO的软件体系结构描述方法的软件体系结构描述方法OOOO描述方法的描述方法的缺点:缺点:v缺少形式化的描述方法,造成设计人员由于对软件认缺少形式化的描述方法,造成设计人员由于对软件认识的角度、方法不同,生成的体系结构描述不尽相同,识的角度、方法不同,生成的体系结构描述不尽相同,理解上存在的二义性。理解上存在的二义性。THU SAGroup25模块接口语言模块接口语言MILMILv MIL MIL (Module & Interface Language) (Module & Interfac
12、e Language) 是将一种或多种传统程序设计语言模块连接起来描述是将一种或多种传统程序设计语言模块连接起来描述软件的体系结构的方法。软件的体系结构的方法。v 特点特点 语义比较丰富,但局限在实现级别,层次较低语义比较丰富,但局限在实现级别,层次较低 语义精确,有编译器作保证语义精确,有编译器作保证 没有或极少有形式化基础没有或极少有形式化基础v 实例实例 Microsoft COM IDL OMG CORBA IDLl 例如,Ada语言采用use实现包的重用,Pascal语言采用过程(函数)模块的交互等。 brProcedure/Procedure a;forward;bra;forwa
13、rd;/vbrProcedure/Procedure b; brb; /vbrbegin begin /v . .vbrend;end;/ brProcedure/Procedure a;bra;/THU SAGroup26THU SAGroup27模块接口语言模块接口语言MILMILvMILMIL的的优点优点: 具有严格的语义基础具有严格的语义基础,能够支持对较大的软件单元进,能够支持对较大的软件单元进行诸如:定义行诸如:定义/使用(使用(Definition/Use)、接口定义)、接口定义(Interface Definition)和导入)和导入/导出导出(Import/Export)等操
14、作。)等操作。 一般来讲,一般来讲,MIL与实际的实现语言无关,只关注构件与实际的实现语言无关,只关注构件的对外表现协议以及构件之间的通讯关系的对外表现协议以及构件之间的通讯关系THU SAGroup28模块接口语言模块接口语言MILMILvMILMIL的的缺点缺点 这些语言处理和描述的软件设计开发层次过于依赖程这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,序设计语言,限制了它们处理和描述比程序设计语言限制了它们处理和描述比程序设计语言元素更为抽象的高层次软件构架元素的能力元素更为抽象的高层次软件构架元素的能力。 THU SAGroup29内容概要内容概要v形式化描述简介形式化描述
15、简介v软件体系结构的描述软件体系结构的描述v软件体系结构形式化描述软件体系结构形式化描述v实例:实例:WRIGHTWRIGHTvWRIGHTWRIGHT应用范例应用范例THU SAGroup30我们在哪里我们在哪里抽象描述抽象描述体系结构描述体系结构描述非形式化描述非形式化描述非标准图形符号描述:非标准图形符号描述:用于粗略描述和展示用于粗略描述和展示UML:用于系统设计和理解用于系统设计和理解MIL:用于实现体系结构的设计用于实现体系结构的设计形式化描述形式化描述THU SAGroup31软件体系结构的形式化描述软件体系结构的形式化描述v为什么需要形式化描述为什么需要形式化描述 需要严格、精
16、确无歧异的描述,以便在系统众多的涉需要严格、精确无歧异的描述,以便在系统众多的涉众中进行交流众中进行交流 需要演算的能力,使得在判断系统质量的时候可以由需要演算的能力,使得在判断系统质量的时候可以由计算得出,而不是仅仅凭借经验推测计算得出,而不是仅仅凭借经验推测 需要进行体系结构分析自动化需要进行体系结构分析自动化THU SAGroup32软件体系结构的形式化描述软件体系结构的形式化描述v软件体系机构形式化描述风格软件体系机构形式化描述风格风格的多样性问题风格的多样性问题风格的通用性问题风格的通用性问题风格的专用性问题风格的专用性问题THU SAGroup33何谓形式化方法何谓形式化方法v形式
17、化方法:形式化方法: 借助抽象的方法将软件系统转化为数学模型借助抽象的方法将软件系统转化为数学模型 如何抽象取决于如何抽象取决于关注点关注点THU SAGroup34形式化方法过程形式化方法过程软件系统软件系统关注结构和约束关注结构和约束体系结构体系结构形式化模型形式化模型1集合论、谓词逻辑集合论、谓词逻辑关注行为关注行为体系结构体系结构形式化模型形式化模型2进程代数进程代数THU SAGroup35软件体系结构形式化基础软件体系结构形式化基础v 一阶谓词逻辑(一阶谓词逻辑(First Order Predicate LogicFirst Order Predicate Logic)v 集合论
18、集合论v 属性文法(属性文法(Attribute GrammarAttribute Grammar)v 进程代数进程代数 (Process AlgebraProcess Algebra) 通讯顺序进程(通讯顺序进程(CSP,Communicating Sequential Processes) -演算(演算(-Calculus)v PetriPetri网网v 状态机(状态机(State MachineState Machine)v THU SAGroup36形式化方法的进化形式化方法的进化ADLADLv 纯形式化方法的纯形式化方法的不足不足 形式化方法不能直接支持软件的各种概念,因此难以形式化
19、方法不能直接支持软件的各种概念,因此难以在实践中应用在实践中应用v 体系结构描述语言体系结构描述语言ADL (Architecture Description ADL (Architecture Description Language)Language) 应用通用的形式化方法对体系结构和风格进行建模和应用通用的形式化方法对体系结构和风格进行建模和分析,在体系结构的抽象级上提供一个精确的语义。分析,在体系结构的抽象级上提供一个精确的语义。 提供了强有力的分析能力、抽象和与实现的细节无关提供了强有力的分析能力、抽象和与实现的细节无关性。性。 为体系结构元素定义了一系列符号,可以应用于实际为体系结
20、构元素定义了一系列符号,可以应用于实际的复杂系统的描述。的复杂系统的描述。 THU SAGroup37ADLADL应当有什么功能应当有什么功能v 定义和描述结构概念(定义和描述结构概念(CaptureCapture)v 描述一个系统是如何被构件建立起来的(描述一个系统是如何被构件建立起来的(ConstructionConstruction)v 描述如何通过现有的构件生成新的系统(描述如何通过现有的构件生成新的系统(CompositionComposition)v 指导从多个不同的设计和实现中挑选最优方案(指导从多个不同的设计和实现中挑选最优方案(SelectionSelection)v 检验一
21、个设计是否能够满足需求(检验一个设计是否能够满足需求(VerificationVerification)v 检测一个需求对系统的隐含影响(检测一个需求对系统的隐含影响(AnalysisAnalysis)v 根据需求自动化构建系统(根据需求自动化构建系统(AutomationAutomation)THU SAGroup38ADLADL分类分类v根据结构分类根据结构分类 隐式配置语言隐式配置语言(Implicit Configuration Languages) 嵌入式配置语言嵌入式配置语言(Inline Configuration Languages) 显式配置语言显式配置语言(Explicit
22、 Configuration Languages)前两者不能被认为是真正意义上的前两者不能被认为是真正意义上的ADLTHU SAGroup39ADLADL分类(续)分类(续)v 根据研究范围分类根据研究范围分类 研究体系结构配置结构的描述语言研究体系结构配置结构的描述语言 如Darwin、CHAM(Chemical Abstract Machine) 研究体系结构实例的描述语言研究体系结构实例的描述语言 如Rapide、UniCon 研究体系结构风格的描述语言研究体系结构风格的描述语言 如WRIGHT、Aesopv 根据与实现细节的关系的描述语言根据与实现细节的关系的描述语言 实现无关语言(实
23、现无关语言(Implementation Independent Languages) 实现相关语言(实现相关语言(Implementation Constraining Languages)THU SAGroup40几种几种ADLADL简介简介OOADLOOADLDSADL DSADL XYZ/ADLXYZ/ADLrightright系统系统DarwinDarwin系统系统形式化形式化ADLADLTHU SAGroup41几种几种ADLADL简介(续)简介(续)vDarwinDarwin 采用采用演算来分析、描述带有演化通信结构的并发系演算来分析、描述带有演化通信结构的并发系统。在统。在演算
24、中,一个系统被表述成一组具有独立功演算中,一个系统被表述成一组具有独立功能的进程集,集合中的每个进程可以与其它进程建立能的进程集,集合中的每个进程可以与其它进程建立连接,每个连接都有一个连接名。连接,每个连接都有一个连接名。Darwin采用采用演算演算对系统行为进行建模,利用其强类型系统进行静态检对系统行为进行建模,利用其强类型系统进行静态检查。查。THU SAGroup42几种几种ADLADL简介(续)简介(续)vXYZ/ADLXYZ/ADL 针对国内唐稚松院士提出基于时序逻辑的针对国内唐稚松院士提出基于时序逻辑的XYZ语言进语言进行扩充,用来描述验证具有实时性、可靠性要求的软行扩充,用来描
25、述验证具有实时性、可靠性要求的软件体系结构。件体系结构。 THU SAGroup43几种几种ADLADL简介(续)简介(续)v DSADLDSADL 采用属性文法采用属性文法(AG)来形式化描述软件体系结构。传来形式化描述软件体系结构。传统的属性文法是在一上下文无关文法统的属性文法是在一上下文无关文法(Context Free Grammar,CFG)-G=(VN,VT,P,Z)上附加上下文有关上附加上下文有关的属性和规则。其中,的属性和规则。其中, VN是非终结符号集;是非终结符号集;VT是是终结符号集;终结符号集;P是产生式集;是产生式集;Z是开始符号。假设是开始符号。假设G是是规范规范C
26、FG。P中的产生式为中的产生式为 p: Xp,0Xp,1Xp,np,np1,表示的右部所含符号,表示的右部所含符号的长度;的长度;Xp,0VN,Xp,iV;V= VNVT; 1inp。 DSADL针对分布式软件的特征引入了并行描述机制针对分布式软件的特征引入了并行描述机制 、特殊的终结符号、条件产生式特殊的终结符号、条件产生式 。 THU SAGroup44几种几种ADLADL简介(续)简介(续)vOOADLOOADL 采用采用Z语言形式化描述软件体系结构。其中语言形式化描述软件体系结构。其中Z语言是语言是基于一阶逻辑(基于一阶逻辑(, )和集合论)和集合论(,等)的一种数学语言。等)的一种数
27、学语言。OOADL 以以OO范例作为核心,范例作为核心,增加了增加了a_kind_of” , “a_part_of”和和“an_instance_of”等关键字来表示等关键字来表示OO范例中的概范例中的概括、聚集和实例化关系。括、聚集和实例化关系。THU SAGroup45几种几种ADLADL简介(续)简介(续)vWRIGHTWRIGHT 采用采用CSP做为形式化描述语言。做为形式化描述语言。CSP是基于字母表、是基于字母表、迹和拒绝集的概念。从形式上,迹和拒绝集的概念。从形式上,CSP进程可以用一个进程可以用一个3元组元组(A,F,D)表示,表示,A表示字母表表示字母表(Alphabet),
28、F表示表示失效(失效(Failures),),D表示偏差(表示偏差(Divergences)。)。进程的字母表是进程所参与的事件的集合。进程的迹进程的字母表是进程所参与的事件的集合。进程的迹是进程所允许的事件序列。是进程所允许的事件序列。 THU SAGroup46通过通过ADLADL看软件看软件v 不同的不同的ADLADL对软件的理解不同对软件的理解不同 WRIGHT将软件理解为构件、连接器、端口、角色,将软件理解为构件、连接器、端口、角色,以及这些元素之间的联系和约束。以及这些元素之间的联系和约束。CSP的描述使其有的描述使其有利分析复杂行为。利分析复杂行为。 C2将软件理解为构件、端口和
29、连接器。不过构件有将软件理解为构件、端口和连接器。不过构件有且只有且只有Top和和Bottom两个端口。同时构件和构件之两个端口。同时构件和构件之间仅通过间仅通过Request和和Notification两种信息进行通讯。两种信息进行通讯。适合描述交互式系统。适合描述交互式系统。 ACME将软件理解为具有属性的构件和连接器。具有将软件理解为具有属性的构件和连接器。具有大多数大多数ADL的共性元素。善于在不同的共性元素。善于在不同ADL之间进行转之间进行转换。换。THU SAGroup47通过通过ADLADL看软件(续)看软件(续)v 任何人都可以利用自己的关注点来看待并描述体系结构,任何人都可
30、以利用自己的关注点来看待并描述体系结构,即可以定义自己的即可以定义自己的ADLADL 回忆:用自己习惯的方式来描述一块石头的重量回忆:用自己习惯的方式来描述一块石头的重量 比较轻 比另一块重一些 大约2公斤 四斤六两 2.32Kg 5.114751207磅 你心目中的软件体系结构是什么样子?你心目中的软件体系结构是什么样子?你是如何抽象软件,从而解决在设计和管理中的问题的?你是如何抽象软件,从而解决在设计和管理中的问题的?THU SAGroup48内容概要内容概要v形式化描述简介形式化描述简介v软件体系结构的描述软件体系结构的描述v软件体系结构形式化描述软件体系结构形式化描述v实例:实例:WR
31、IGHTWRIGHTvWRIGHTWRIGHT应用范例应用范例THU SAGroup49WRIGHTWRIGHTvWRIGHTWRIGHT起源起源 A Formal Approach to Software Architecture, Robert J. Allen, Ph.D. Thesis, Carnegie Mellon University, Technical Report Number: CMU-CS-97-144, May, 1997. v发展发展 Dynamic WRIGHTTHU SAGroup50WRIGHTWRIGHT应用实例应用实例v 应用:将一个字符串读入,修改字符串
32、使其呈现大小写交替出现,应用:将一个字符串读入,修改字符串使其呈现大小写交替出现,然后输出然后输出 如:如:I love this game I LoVe ThIs GaMe 假设系统设计管道过滤器系统,它分解输入流(使用过滤器假设系统设计管道过滤器系统,它分解输入流(使用过滤器Split),分别处理各子流(使用过滤器分别处理各子流(使用过滤器Upper和和Lower),然后合然后合并子流(使用过滤器并子流(使用过滤器Merge)。)。SplitLowerUpperMergeConfigI/O LibraryMain本系统的模块分解图,侧重于实现本系统的模块分解图,侧重于实现THU SAGro
33、up51WRIGHTWRIGHT应用实例应用实例vWRIGHTWRIGHT眼中的系统眼中的系统SplitUpperLowerMerge构件连接器图例:图例:角色角色端口端口THU SAGroup52WRIGHTWRIGHT应用实例应用实例v WRIGHTWRIGHT语语言描述言描述System Capitalize 定义一个系统CapitalizeComponent Splitport In 输入协议port Left,Right 输出协议comp spec Split构件规格说明Component Upperport In 输入协议port Left,Right 输出协议comp spec
34、Upper构件规格说明Connector PipePipe连接器规格说明Instancessplit:Split; upper:Upper; lower: Lower; merge:MergeEnd Capitalize定义构件定义构件及其端口及其端口定义连接器定义连接器及其角色及其角色系统配置系统配置描述描述 中内容为注释中内容为注释蓝色字为关键字蓝色字为关键字THU SAGroup53WRIGHTWRIGHT设计目标设计目标v支持体系结构配置的描述支持体系结构配置的描述 体系结构描述的最终目的是在高层抽象级上捕捉和利体系结构描述的最终目的是在高层抽象级上捕捉和利用一个系统的结构。它必须可以
35、定义一个系统中的构用一个系统的结构。它必须可以定义一个系统中的构件和构件之间的交互行为。件和构件之间的交互行为。v支持体系结构风格的描述支持体系结构风格的描述 除了描述单一系统的体系结构,开发人员必须能描述除了描述单一系统的体系结构,开发人员必须能描述一系列类似系统。这些体系结构风格提供了使用系统一系列类似系统。这些体系结构风格提供了使用系统之间共性的方法。除此之外,在给定配置的情况下,之间共性的方法。除此之外,在给定配置的情况下,两种描述必须可以结合在一起,这样我们就可以确定两种描述必须可以结合在一起,这样我们就可以确定这两种描述是否符合同一种给定的风格这两种描述是否符合同一种给定的风格。
36、THU SAGroup54WRIGHTWRIGHT设计目标(续)设计目标(续)v支持属性分析支持属性分析 描述行为的一个重要的目标是使用这种描述理解系统描述行为的一个重要的目标是使用这种描述理解系统的属性。开发人员可以使用描述去分析系统或者风格,的属性。开发人员可以使用描述去分析系统或者风格,以确定系统是否满足他们的要求。以确定系统是否满足他们的要求。 v支持在实际问题中的应用支持在实际问题中的应用 如果描述的符号仅仅能应用于有很大限制的环境中或如果描述的符号仅仅能应用于有很大限制的环境中或者小系统中,那么这种描述将是不实用的。一种实用者小系统中,那么这种描述将是不实用的。一种实用的符号表示可
37、以扩展到描述复杂的实际问题。的符号表示可以扩展到描述复杂的实际问题。 THU SAGroup55基于基于WRIGHTWRIGHT的形式化描述的形式化描述 作为一种体系结构描述语言,作为一种体系结构描述语言,WRIGHTWRIGHT是根据构是根据构件、连接器和配置等基本体系结构的抽象而构造件、连接器和配置等基本体系结构的抽象而构造的,并为这些元素提供了清晰的记号,把构件形的,并为这些元素提供了清晰的记号,把构件形式化成计算,把连接器形式化成交互模式。下面式化成计算,把连接器形式化成交互模式。下面分别介绍基于分别介绍基于WrightWright的体系结构基本元素的形式的体系结构基本元素的形式化描述
38、。化描述。 THU SAGroup56基于基于WRIGHTWRIGHT的描述框架的描述框架构件接口(接口类型、接口类型的参数化、接口类型约束、实例);计算连接器配置附属层次风格扩展风格行为描述事件、进程、并行组合配置的拓扑结构定义了配置可以共享的属性集合定义新的风格Wright体系体系结构结构形式形式化描化描述框述框架架THU SAGroup57基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件v 构件(构件(ComponentComponent) 一个构件描述了一个本地化、独立的计算。例如,在一个构件描述了一个本地化、独立的计算。例如,在“管道管道/过滤器过滤器”系统中,
39、一个典型的构件可以读取系统中,一个典型的构件可以读取系统的所有输入并且把每个字母转换成大写字母,或系统的所有输入并且把每个字母转换成大写字母,或者把一个输入流分成两个,每隔一个字符送到不同的者把一个输入流分成两个,每隔一个字符送到不同的输出。在一个数据库系统中,构件可能包括一个访问输出。在一个数据库系统中,构件可能包括一个访问库和一个用户所请求的报表客户端。库和一个用户所请求的报表客户端。 在在WRIGHT中,对构件的描述包括两个方面:中,对构件的描述包括两个方面:接口接口(Interface)和)和计算计算(Computation)。一个接口有多。一个接口有多个个端口端口(Port)组成。每
40、个端口表示构件参与的一种)组成。每个端口表示构件参与的一种交互。在下例中,一个过滤器构件(分离过滤器)可交互。在下例中,一个过滤器构件(分离过滤器)可能有三个端口,一个用于输入,另外两个用于输出。能有三个端口,一个用于输入,另外两个用于输出。THU SAGroup58基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件v接口类型接口类型 (Interface TypeInterface Type) 接口类型可以用于描述构件的端口,或者一个连接器接口类型可以用于描述构件的端口,或者一个连接器的角色。在后者中,接口表示在角色中可能用到的端的角色。在后者中,接口表示在角色中可能用到
41、的端口接口的约束。口接口的约束。 例如:例如: Interface Type DataInput = DataInput = 不断读取数据直到读到不断读取数据直到读到End-of-DataEnd-of-DataInterface Type DataOutput = DataOutput = 不断的写数据,当关闭时发出不断的写数据,当关闭时发出End-of-DataEnd-of-DataTHU SAGroup59基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件v接口类型参数化接口类型参数化 WRIGHT允许把一个类型描述的任意部分变成预留空允许把一个类型描述的任意部分变成预
42、留空间,这些预留空间将在类型实例化是利用参数进行填间,这些预留空间将在类型实例化是利用参数进行填充。因此,一个端口或者角色的类型、一种计算、一充。因此,一个端口或者角色的类型、一种计算、一个接口的命名等等都可以参数化。个接口的命名等等都可以参数化。THU SAGroup60基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件v接口类型参数化(续)接口类型参数化(续) 除了在类型描述中预留空间之外,还有一种通过数字除了在类型描述中预留空间之外,还有一种通过数字(Number)参数化类型描述。例如:)参数化类型描述。例如: ComponentComponent SplitFilt
43、er( SplitFilter(nout nout : 1.): 1.) Port Port Input = DataInput Input = DataInput Port Port Output1.nout = DataOutput Output1.nout = DataOutput Computation Computation = = 反复从端口反复从端口InputInput读入数据,并将数据依次写入读入数据,并将数据依次写入 端口端口Output1Output1,Output2Output2,THU SAGroup61基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:
44、构件v接口类型约束接口类型约束 在在WRIGHT风格描述中可声明在这个风格中的配置都风格描述中可声明在这个风格中的配置都必须遵循的属性(即约束)。必须遵循的属性(即约束)。 例如:例如:Pipe )(:cTypeConnectorsc实例名实例名类型名类型名取得类型取得类型的操作的操作类型名类型名意为:对于所有的连接器,它们的类型都必须是意为:对于所有的连接器,它们的类型都必须是PipePipe(PipePipe是连接器的一个类型)是连接器的一个类型)分隔声明分隔声明和约束和约束THU SAGroup62基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件一个一个“管道管道/
45、 /过滤过滤”系统实例:系统实例:大写转换器(UpperCase)分离过滤器(SplitFilter)字符合并器(Merge) 系统功能:读取一个字符流,并输出把每隔一个的字符转换系统功能:读取一个字符流,并输出把每隔一个的字符转换成大写字母的字符流。成大写字母的字符流。 THU SAGroup63基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件ComponentComponent SplitFilter SplitFilter PortPort Input Input 协议:读取数据,直到读取了协议:读取数据,直到读取了End-of-DataEnd-of-Data符号符
46、号 PortPort Left Left 协议:不断的输出数据协议:不断的输出数据 PortPort Right Right 协议:不断的输出数据协议:不断的输出数据 ComputationComputation 反复的从反复的从InputInput读取数据,并交替输出到读取数据,并交替输出到LeftLeft和和Right Right 端口端口 SplitFilter构件描述Port InputPort LeftPort RightTHU SAGroup64基于基于WRIGHTWRIGHT的描述元素的描述元素2 2:连接器:连接器v连接器连接器 一个连接器代表了构件集合内各种构件之间的交互。一
47、个连接器代表了构件集合内各种构件之间的交互。例如,一个管道代表了两个过滤器之间的一个序列流。例如,一个管道代表了两个过滤器之间的一个序列流。一个过程的调用就是一种一个过程的调用就是一种“调用调用-返回返回”模式控制的模式控制的连接器。更复杂的连接还有数据库协议,例如,连接器。更复杂的连接还有数据库协议,例如,2-阶阶段提交和可靠安全网络消息的过滤。段提交和可靠安全网络消息的过滤。 WRIGHT对连接器进行描述时,可以分为一个对连接器进行描述时,可以分为一个角色角色(Role)的集合和)的集合和粘合粘合(Glue)。)。 THU SAGroup65基于基于WRIGHTWRIGHT的描述元素的描述
48、元素2 2:连接器:连接器v角色角色 (RoleRole) 每个角色指定了在交互中单个参与者的行为。例如,每个角色指定了在交互中单个参与者的行为。例如,在一个管道中有两个角色:数据源和接收器(在一个管道中有两个角色:数据源和接收器(Sink),),同时,角色指定了交互中构件的参与者的期望。每种同时,角色指定了交互中构件的参与者的期望。每种角色代表了一种构件将要做什么,例如,接收器角色角色代表了一种构件将要做什么,例如,接收器角色代表了那个参与者所期望的行为:任何作为接收器的代表了那个参与者所期望的行为:任何作为接收器的构件允许读取数据并且负责关闭连接。构件允许读取数据并且负责关闭连接。 THU
49、 SAGroup66基于基于WRIGHTWRIGHT的描述元素的描述元素2 2:连接器:连接器v 粘合(粘合(GlueGlue) 一个连接器的粘合描述了参与者如何工作在一起创建一个连接器的粘合描述了参与者如何工作在一起创建一种交互,即连接器的粘合代表了完整的行为说明。一种交互,即连接器的粘合代表了完整的行为说明。实际上,我们把一个连接器解释成:如果真正的构件实际上,我们把一个连接器解释成:如果真正的构件符合角色所指定的行为,那么构件的不同计算符合角色所指定的行为,那么构件的不同计算(Computation)将通过粘合而结合起来。将通过粘合而结合起来。 如下例所示的一个管道例子,粘合描述了来自数
50、据源如下例所示的一个管道例子,粘合描述了来自数据源的数据如何被传送到接收器。一个过程调用将表示调的数据如何被传送到接收器。一个过程调用将表示调用者初始化一个调用,紧接着从过程定义器返回。连用者初始化一个调用,紧接着从过程定义器返回。连接器的粘合说明了构件的计算是如何组成一个更大的接器的粘合说明了构件的计算是如何组成一个更大的计算。计算。 THU SAGroup67基于基于WRIGHTWRIGHT的描述元素的描述元素2 2:连接器:连接器Connector PipePipe Role Source Source 不断接受传送数据,直到外界发出关闭不断接受传送数据,直到外界发出关闭指令后终止指令后
51、终止 Role Sink Sink 不断读取数据,直到没有数据可以发送不断读取数据,直到没有数据可以发送 Glue 从从SourceSource得到的数据不加修改的发送到得到的数据不加修改的发送到SinkSink一个连接器描述实例一个连接器描述实例管道连接器管道连接器PipeSourceSinkGlueTHU SAGroup68基于基于WRIGHTWRIGHT的描述元素的描述元素3 3:配置:配置v配置(配置(Configuration) 为了描述一个完整的系统体系结构,为了描述一个完整的系统体系结构,WRIGHT把对构把对构件和连接器的描述结合在一起,形成配置。一个配置件和连接器的描述结合在
52、一起,形成配置。一个配置就是通过连接器把构件就是通过连接器把构件实例实例结合起来的一个集合。结合起来的一个集合。 配置包括构件和连接器的生成,以及附属配置包括构件和连接器的生成,以及附属(Attachment)即将构件的端口和连接器的角色连)即将构件的端口和连接器的角色连接起来接起来THU SAGroup69基于基于WRIGHTWRIGHT的描述元素的描述元素3 3:配置:配置v 实例实例 因为在一个系统中可能多因为在一个系统中可能多次使用给定的构件或者连次使用给定的构件或者连接器,所以我们把先前的接器,所以我们把先前的描述作为构件和连接器的描述作为构件和连接器的类型。类型。 为了在一个配置中
53、区分每为了在一个配置中区分每种构件和连接器类型的不种构件和连接器类型的不同实例,同实例,WRIGHT描述语描述语言要求每个实例必须清晰言要求每个实例必须清晰并且具有唯一性。下例描并且具有唯一性。下例描述了一个具有实例声明的述了一个具有实例声明的配置。配置。 Configuration CapitalizeCapitalize Component UpperCaseUpperCase Connector PipePipe Instances Split : SplitFilter Split : SplitFilter Upper : UpperCase Upper : UpperCase Me
54、rge : MergeFilter Merge : MergeFilter P1, P2, P3 : Pipe P1, P2, P3 : Pipe Attachments Split.Left Split.Left as P1.SourceP1.Source Upper.Input Upper.Input as P1.SinkP1.Sink Split.Right Split.Right as P2.SourceP2.Source Merge.Right Merge.Right as P2.SinkP2.Sink Upper.Output Upper.Output as P3.SourceP3
55、.SourceEnd Capitalize.Capitalize.定义构定义构件连接件连接器类型器类型定义构定义构件连接件连接器实例器实例连接端口连接端口和角色和角色THU SAGroup70基于基于WRIGHTWRIGHT的描述元素的描述元素4 4:附属:附属v 附属(附属(AttachmentAttachment) 在实例声明之后,就可以描述附属在实例声明之后,就可以描述附属(Attachment)了,了,这样配置才算是完整的。附属说明了哪些构件参与哪这样配置才算是完整的。附属说明了哪些构件参与哪些交互,从而定义了配置的拓扑结构。些交互,从而定义了配置的拓扑结构。 附属的声明把体系结构描述
56、的每个元素结合在一起。附属的声明把体系结构描述的每个元素结合在一起。例如,构件执行一种计算例如,构件执行一种计算(Computation),这种计算,这种计算的一部分是由端口的一部分是由端口(Port)指定的交互行为。这个端口指定的交互行为。这个端口与角色与角色(Role)联系在一起,这说明了端口为了合法地联系在一起,这说明了端口为了合法地参与连接器所指定的交互所必须遵从的规则。如果每参与连接器所指定的交互所必须遵从的规则。如果每个由各自的端口表示的构件遵从角色所规定的规则,个由各自的端口表示的构件遵从角色所规定的规则,那么连接器的粘合那么连接器的粘合(Glue)则定义了机算是如何结合在则定义
57、了机算是如何结合在一起形成更大的计算。一起形成更大的计算。 实例见上例实例见上例THU SAGroup71基于基于WRIGHTWRIGHT的描述元素的描述元素5 5:层次:层次v层次 WRIGHT支持层次描述,如下层次结构(服务器有内支持层次描述,如下层次结构(服务器有内部结构):部结构):客户服务器协调器安全管理器数据库THU SAGroup72基于基于WRIGHTWRIGHT的描述元素的描述元素5 5:层次:层次Configuration HierServer Connector CSConn Component ClientType Component ServerType Port S
58、ervice Computation Configuration SecureData Component Coordinator Instances c : Coordinator c : Coordinator与上图对应的层次描述,缩进可以帮助看清层次结构与上图对应的层次描述,缩进可以帮助看清层次结构:定义顶层构件定义顶层构件和连接器类型和连接器类型定义构件类型定义构件类型ServerType的端的端口和内部结构,口和内部结构,包括次级构件类包括次级构件类型型Coordinator、SecurityManager(未列出)和(未列出)和Database(未列(未列出)出)接下页接下页THU
59、 SAGroup73基于基于WRIGHTWRIGHT的描述元素的描述元素5 5:层次:层次 Security : SecurityManagerSecurity : SecurityManager Attachments Attachments c.Secure as S1.Client c.Secure as S1.Client Security.Service as S1.Service Security.Service as S1.Service End End SecureData SecureData Bindings Bindings C.Combined = Service C.
60、Combined = Service End Bindings End Bindings Instances Instances Attachments Attachments EndEnd HierServer HierServer定义次级构件实例定义次级构件实例Coordinator类型的类型的c和和SecurityManager类类型的型的Security将次级结构的构件和连将次级结构的构件和连接器连接起来接器连接起来定义定义SecurityType的端的端口应该指向其内部结构口应该指向其内部结构的哪个端口(如图)的哪个端口(如图)SecurityTypeServiceCombinedT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《国防建设》国防建设与外交成就课件-1
- 大学生创新创业基础项目教程 课件全套 崔海波 项目1-9 认识创新创业-模拟开办企业
- DB11 T 398-2006 绒山羊生产技术规范
- 2025年湛江b2货运上岗证模拟考试
- 玉米课程故事:探索与成长
- 2025快递公司协议存款合同
- 基于增益率和基尼指数的决策树分类模型
- 二零二五版酒店会务服务合同
- 基于动力学模型的mpc控制算法
- 吊车出租合同包月二零二五年
- 管理学基础-形考任务三-国开-参考资料
- 2.2城镇化课件高中地理人教版(2019)必修二
- 2024-2025学年北师大版七年级数学上册期末复习压轴题12个(84题)含答案
- 2023年北京市大兴区小升初数学模拟试卷(含答案)
- 2025年3月版安全环境职业健康法律法规标准文件清单
- 2024-2025学年历史统编版七年级下册期末评估测试卷 (含答案)
- 2025年河南工业和信息化职业学院单招职业技能测试题库参考答案
- 政府审计 课件汇 蒋秋菊 第5-12章 金融审计- 政府审计报告
- 第二十一章传导热疗法讲解
- 2025年河南职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年福建福州港务集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论