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

下载本文档

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

文档简介

1、THU SAGroup 课程编号:课程编号:74100152 1 软件体系结构软件体系结构(4(4) 软件体系结构形式化描述软件体系结构形式化描述 覃征覃征 教授教授 2 内容概要内容概要 v形式化描述简介形式化描述简介 v软件体系结构的描述软件体系结构的描述 v软件体系结构形式化描述软件体系结构形式化描述 v实例:实例:WRIGHTWRIGHT vWRIGHTWRIGHT应用范例应用范例 3 抽象抽象认识事物本质的惯用法认识事物本质的惯用法 v抽象是人类对实际事物在针对某一特定关点下抽象是人类对实际事物在针对某一特定关点下 的简化的简化 突出我们希望认识的各个元素突出我们希望认识的各个元素

2、允许我们对关注的结构和行为进行辨识和分析允许我们对关注的结构和行为进行辨识和分析 在构建新的实例时可以作为蓝图在构建新的实例时可以作为蓝图 4 抽象实例:运动系统抽象实例:运动系统 5 抽象实例:动力系统抽象实例:动力系统 2/ 2 0 attvs dt dmv F m F a v 忽略了施力者和受力者的实体忽略了施力者和受力者的实体 v 忽略了次要的环境作用,如地面、空气忽略了次要的环境作用,如地面、空气 v 忽略了传力媒介忽略了传力媒介 v 突出了力和运动状态之间的关系突出了力和运动状态之间的关系 6 形式化的抽象形式化的抽象 实际事物实际事物 形式化方法形式化方法形式化描述形式化描述 精

3、确描述 精确描述 分析与评估 分析与评估 计算和预测 计算和预测 7 内容概要内容概要 v形式化描述简介形式化描述简介 v软件体系结构的描述软件体系结构的描述 v软件体系结构形式化描述软件体系结构形式化描述 v实例:实例:WRIGHTWRIGHT vWRIGHTWRIGHT应用范例应用范例 8 软件体系结构的描述软件体系结构的描述 v软件体系结构和软件体系结构描述不同的两个软件体系结构和软件体系结构描述不同的两个 概念概念 软件体系结构是附属于系统之中。只要存在系统,体软件体系结构是附属于系统之中。只要存在系统,体 系结构就存在系结构就存在 如:每个石头都会有重量 软件体系结构描述是将体系结构

4、可视化的手段和产物软件体系结构描述是将体系结构可视化的手段和产物 如:表示一个石头的重量 9 如何理解体系结构描述如何理解体系结构描述 软件体系结构 软件体系结构描述 10 体系结构描述方式体系结构描述方式 v使用不同的策略和方法可对同一软件体系结构使用不同的策略和方法可对同一软件体系结构 作不同的理解和描述作不同的理解和描述 如:描述一块石头的重量如:描述一块石头的重量 比较轻 比另一块重一些 大约2公斤 四斤六两 2.32Kg 5.114751207磅 精确程度不同精确程度不同 单位不同单位不同 测量基准不同测量基准不同 11 体系结构描述方式体系结构描述方式 v 体系结构描述方式标准体系

5、结构描述方式标准 语义丰富性语义丰富性 语义精确性语义精确性 形式化程度形式化程度 v 主要描述方式主要描述方式 非标准的图形符号非标准的图形符号 UML 模块接口语言模块接口语言MIL ADL Richness Preciseness Formalization O 12 非标准图形符号描述非标准图形符号描述 v 非标准图形符号描述非标准图形符号描述 用由矩形框和有向线段组合而成的图形表达工具。其用由矩形框和有向线段组合而成的图形表达工具。其 中,矩形框代表抽象构件,有向线段代表辅助各构件中,矩形框代表抽象构件,有向线段代表辅助各构件 进行通讯、控制或关联的连接件。进行通讯、控制或关联的连接

6、件。 v 特点特点 语义丰富语义丰富 语义极不精确语义极不精确 没有形式化基础没有形式化基础 v 用途用途 商业展示商业展示 设计草图设计草图 13 非标准图形符号描述非标准图形符号描述 v软件体系结构的非标准图形符号表示具有如下软件体系结构的非标准图形符号表示具有如下 优点优点: n直观形象直观形象 n简单易用简单易用 14 非标准图形符号描述非标准图形符号描述 v软件体系结构的非标准图形符号表示具有如下软件体系结构的非标准图形符号表示具有如下 缺点缺点: 由于其术语和表达语义上存在着一些不规范和不精确,由于其术语和表达语义上存在着一些不规范和不精确, 从而使得以矩形为基础的传统图形表达方法

7、在不同系从而使得以矩形为基础的传统图形表达方法在不同系 统和不同文档之间存在着许多不一致甚至矛盾。统和不同文档之间存在着许多不一致甚至矛盾。 15 实例实例 Enterprise Java Beans Architecture 16 实例实例 Microsoft .Net Framework Architecture 17 实例实例 DC-LMP Link Management Protocol Software 用于光纤网物理介质连接器的软件用于光纤网物理介质连接器的软件 18 UMLUML v基于基于UMLUML技术的软件体系结构描述方法技术的软件体系结构描述方法 1996年,年,Rati

8、onal、Catapulse公司发起公司发起workshop, 倡议用倡议用UML进行体系结构描述和建模、特定领域体进行体系结构描述和建模、特定领域体 系结构建模;对系结构建模;对UML中的中的stereotypes、profiles等等 进行扩充,支持体系结构的表示进行扩充,支持体系结构的表示 2004年,年,UML2.0发布,增强了通用软件体系结构的发布,增强了通用软件体系结构的 描述能力。描述能力。 本质上本质上UML是侧重于面向对象(是侧重于面向对象(OO, Object Oriented)软件系统设计的语言软件系统设计的语言 19 UMLUML特性特性 v特点特点 语义极其丰富语义极

9、其丰富 语义相对精确语义相对精确 有少量的形式化基础有少量的形式化基础 v用途用途 需求分析需求分析 OO类设计类设计 行为设计和分析行为设计和分析 代码自动生成代码自动生成 20 UMLUML与与RUPRUP vUMLUML本身只是一门语言,并不限定使用它的开发本身只是一门语言,并不限定使用它的开发 过程。但过程。但UMLUML特别适合使用在特别适合使用在RUP(RUP(统一开发工程)统一开发工程) 上。上。 RUP定义了如何看待软件系统(视图:定义了如何看待软件系统(视图:View) UML定义了如何从某个角度描绘软件(图:定义了如何从某个角度描绘软件(图: Diagram) 21 RUP

10、 4+1RUP 4+1视图视图 设计视图设计视图 实现视图实现视图 用例视图用例视图 进程视图进程视图部署视图部署视图 系统综合者系统综合者 - 性能性能 - 可扩展性可扩展性 - 吞吐量吞吐量 系统工程系统工程 - 系统拓扑结构系统拓扑结构 - 发布和安装发布和安装 - 通讯通讯 最终用户最终用户 - 功能性功能性 - 词汇量词汇量 程序员程序员 - 软件管理软件管理 RUP Views 分析员分析员/测试员测试员 - 动作动作 22 RUP 4+1RUP 4+1视图视图 v用例图(用例图(Use Case ViewUse Case View) 由专门描述可被最终用户、分析人员和测试人员看到

11、由专门描述可被最终用户、分析人员和测试人员看到 的系统行为的用况组成。用例视图实际上没有描述软的系统行为的用况组成。用例视图实际上没有描述软 件系统的组织,而是描述了形成系统体系结构的动力件系统的组织,而是描述了形成系统体系结构的动力 23 RUP 4+1RUP 4+1视图视图 v设计视图(设计视图(Design ViewDesign View) 又称逻辑视图(又称逻辑视图(Logic ViewLogic View),包含了类、接口和协),包含了类、接口和协 作,它们形成了问题及对问题解决方案的术语词汇。作,它们形成了问题及对问题解决方案的术语词汇。 这种视图主要支持系统的功能需求,即系统提供

12、给最这种视图主要支持系统的功能需求,即系统提供给最 终用户的服务。终用户的服务。 24 RUP 4+1RUP 4+1视图视图 v实现视图(实现视图(Implementation ViewImplementation View) 包含了用于装配与发布物理系统的构件和文件。这种包含了用于装配与发布物理系统的构件和文件。这种 视图主要对系统发布的配置管理,它由一些独立的构视图主要对系统发布的配置管理,它由一些独立的构 件和文件组成;这些构件和文件可以用各种方法装配,件和文件组成;这些构件和文件可以用各种方法装配, 以产生运行系统。以产生运行系统。 25 RUP 4+1 RUP 4+1 视图视图 v部

13、署视图(部署视图(Deployment ViewDeployment View) 包含了形成系统硬件拓扑结构的节点(系统在器上运包含了形成系统硬件拓扑结构的节点(系统在器上运 行)。这种视图主要描述对组成物理系统部件分布、行)。这种视图主要描述对组成物理系统部件分布、 交付和安装。交付和安装。 26 RUP 4+1 RUP 4+1 视图视图 v进程视图(进程视图(Process ViewProcess View) 包含了形成系统并发与同步机制的线程和进程,该图包含了形成系统并发与同步机制的线程和进程,该图 主要针对性能、可伸缩性和系统的吞吐量。主要针对性能、可伸缩性和系统的吞吐量。 27 RU

14、PRUP视图的实现方式视图的实现方式 Deployment Process Design Use Case Implementation RUP Views Use Case Diagram Sequence DiagramClass Diagram Composite Structure Diagram Deployment Diagram Sequence Diagram Activity Diagram Class Diagram Object Diagram Sequence Diagram Activity Diagram State Diagram Artifact Diagram

15、 UML Diagrams 28 UMLUML图实例图实例 v类图(类图(Class DiagramClass Diagram) 29 UMLUML图实例图实例 v用例图(用例图(Use Case DiagramUse Case Diagram) 30 UMLUML图实例图实例 v序列图(序列图(Sequence DiagramSequence Diagram) 31 UMLUML图实例图实例 v协作图(协作图(Collaboration DiagramCollaboration Diagram) 32 UMLUML图实例图实例 v构件图(构件图(Component DiagramCompon

16、ent Diagram) 33 基于基于OOOO的软件体系结构描述方法的软件体系结构描述方法 OOOO描述方法的描述方法的优点:优点: v采用面向对象方法,更能反映软件体系结构的本质特采用面向对象方法,更能反映软件体系结构的本质特 征。征。 v提供了提供了多个视图直观形象地反映体系结构元素所具有多个视图直观形象地反映体系结构元素所具有 的功能、特征。的功能、特征。 v通过类图、包图等反映体系结构的静态特征,并通过通过类图、包图等反映体系结构的静态特征,并通过 协作图、序列图、部署图等反映体系结构的动态特征。协作图、序列图、部署图等反映体系结构的动态特征。 34 基于基于OOOO的软件体系结构描

17、述方法的软件体系结构描述方法 OOOO描述方法的描述方法的缺点:缺点: v缺少形式化的描述方法,造成设计人员由于对软件认缺少形式化的描述方法,造成设计人员由于对软件认 识的角度、方法不同,生成的体系结构描述不尽相同,识的角度、方法不同,生成的体系结构描述不尽相同, 理解上存在的二义性。理解上存在的二义性。 35 模块接口语言模块接口语言MILMIL v MIL MIL (Module V= VNVT; 1inp。 DSADL针对分布式软件的特征引入了并行描述机制针对分布式软件的特征引入了并行描述机制 、 特殊的终结符号、条件产生式特殊的终结符号、条件产生式 。 53 几种几种ADLADL简介(

18、续)简介(续) vOOADLOOADL 采用采用Z语言形式化描述软件体系结构。其中语言形式化描述软件体系结构。其中Z语言是语言是 基于一阶逻辑(基于一阶逻辑(, )和集合论)和集合论(, 等)的一种数学语言。等)的一种数学语言。OOADL 以以OO范例作为核心,范例作为核心, 增加了增加了a_kind_of” , “a_part_of”和和 “an_instance_of”等关键字来表示等关键字来表示OO范例中的概范例中的概 括、聚集和实例化关系。括、聚集和实例化关系。 54 几种几种ADLADL简介(续)简介(续) vWRIGHTWRIGHT 采用采用CSP做为形式化描述语言。做为形式化描述

19、语言。CSP是基于字母表、是基于字母表、 迹和拒绝集的概念。从形式上,迹和拒绝集的概念。从形式上,CSP进程可以用一个进程可以用一个 3元组元组(A,F,D)表示,表示,A表示字母表表示字母表(Alphabet),F表示表示 失效(失效(Failures),),D表示偏差(表示偏差(Divergences)。)。 进程的字母表是进程所参与的事件的集合。进程的迹进程的字母表是进程所参与的事件的集合。进程的迹 是进程所允许的事件序列。是进程所允许的事件序列。 55 通过通过ADLADL看软件看软件 v 不同的不同的ADLADL对软件的理解不同对软件的理解不同 WRIGHT将软件理解为构件、连接器、

20、端口、角色,将软件理解为构件、连接器、端口、角色, 以及这些元素之间的联系和约束。以及这些元素之间的联系和约束。CSP的描述使其有的描述使其有 利分析复杂行为。利分析复杂行为。 C2将软件理解为构件、端口和连接器。不过构件有将软件理解为构件、端口和连接器。不过构件有 且只有且只有Top和和Bottom两个端口。同时构件和构件之两个端口。同时构件和构件之 间仅通过间仅通过Request和和Notification两种信息进行通讯。两种信息进行通讯。 适合描述交互式系统。适合描述交互式系统。 ACME将软件理解为具有属性的构件和连接器。具有将软件理解为具有属性的构件和连接器。具有 大多数大多数AD

21、L的共性元素。善于在不同的共性元素。善于在不同ADL之间进行转之间进行转 换。换。 56 通过通过ADLADL看软件(续)看软件(续) v 任何人都可以利用自己的关注点来看待并描述体系结构,任何人都可以利用自己的关注点来看待并描述体系结构, 即可以定义自己的即可以定义自己的ADLADL 回忆:用自己习惯的方式来描述一块石头的重量回忆:用自己习惯的方式来描述一块石头的重量 比较轻 比另一块重一些 大约2公斤 四斤六两 2.32Kg 5.114751207磅 你心目中的软件体系结构是什么样子?你心目中的软件体系结构是什么样子? 你是如何抽象软件,从而解决在设计和管理中的问题的?你是如何抽象软件,从

22、而解决在设计和管理中的问题的? 57 内容概要内容概要 v形式化描述简介形式化描述简介 v软件体系结构的描述软件体系结构的描述 v软件体系结构形式化描述软件体系结构形式化描述 v实例:实例:WRIGHTWRIGHT vWRIGHTWRIGHT应用范例应用范例 58 WRIGHTWRIGHT vWRIGHTWRIGHT起源起源 A Formal Approach to Software Architecture, Robert J. Allen, Ph.D. Thesis, Carnegie Mellon University, Technical Report Number: CMU-CS-

23、97-144, May, 1997. v发展发展 Dynamic WRIGHT 59 WRIGHTWRIGHT应用实例应用实例 v 应用:将一个字符串读入,修改字符串使其呈现大小写交替出现,应用:将一个字符串读入,修改字符串使其呈现大小写交替出现, 然后输出然后输出 如:如:I love this game I LoVe ThIs GaMe 假设系统设计管道过滤器系统,它分解输入流(使用过滤器假设系统设计管道过滤器系统,它分解输入流(使用过滤器 Split),分别处理各子流(使用过滤器分别处理各子流(使用过滤器Upper和和Lower),然后合然后合 并子流(使用过滤器并子流(使用过滤器Mer

24、ge)。)。 SplitLowerUpperMerge ConfigI/O Library Main 本系统的模块分解图,侧重于实现本系统的模块分解图,侧重于实现 60 WRIGHTWRIGHT应用实例应用实例 vWRIGHTWRIGHT眼中的系统眼中的系统 Split Upper Lower Merge 构件 连接器 图例:图例: 角色角色 端口端口 61 WRIGHTWRIGHT应用实例应用实例 v WRIGHTWRIGHT语语 言描述言描述 System Capitalize 定义一个系统Capitalize Component Split port In 输入协议 port Left,

25、Right 输出协议 comp spec Split构件规格说明 Component Upper port In 输入协议 port Left,Right 输出协议 comp spec Upper构件规格说明 Connector Pipe Pipe连接器规格说明 Instances split:Split; upper:Upper; lower: Lower; merge:Merge End Capitalize 定义构件定义构件 及其端口及其端口 定义连接器定义连接器 及其角色及其角色 系统配置系统配置 描述描述 中内容为注释中内容为注释 蓝色字为关键字蓝色字为关键字 62 WRIGHTWR

26、IGHT设计目标设计目标 v支持体系结构配置的描述支持体系结构配置的描述 体系结构描述的最终目的是在高层抽象级上捕捉和利体系结构描述的最终目的是在高层抽象级上捕捉和利 用一个系统的结构。它必须可以定义一个系统中的构用一个系统的结构。它必须可以定义一个系统中的构 件和构件之间的交互行为。件和构件之间的交互行为。 v支持体系结构风格的描述支持体系结构风格的描述 除了描述单一系统的体系结构,开发人员必须能描述除了描述单一系统的体系结构,开发人员必须能描述 一系列类似系统。这些体系结构风格提供了使用系统一系列类似系统。这些体系结构风格提供了使用系统 之间共性的方法。除此之外,在给定配置的情况下,之间共

27、性的方法。除此之外,在给定配置的情况下, 两种描述必须可以结合在一起,这样我们就可以确定两种描述必须可以结合在一起,这样我们就可以确定 这两种描述是否符合同一种给定的风格这两种描述是否符合同一种给定的风格。 63 WRIGHTWRIGHT设计目标(续)设计目标(续) v支持属性分析支持属性分析 描述行为的一个重要的目标是使用这种描述理解系统描述行为的一个重要的目标是使用这种描述理解系统 的属性。开发人员可以使用描述去分析系统或者风格,的属性。开发人员可以使用描述去分析系统或者风格, 以确定系统是否满足他们的要求。以确定系统是否满足他们的要求。 v支持在实际问题中的应用支持在实际问题中的应用 如

28、果描述的符号仅仅能应用于有很大限制的环境中或如果描述的符号仅仅能应用于有很大限制的环境中或 者小系统中,那么这种描述将是不实用的。一种实用者小系统中,那么这种描述将是不实用的。一种实用 的符号表示可以扩展到描述复杂的实际问题。的符号表示可以扩展到描述复杂的实际问题。 64 基于基于WRIGHTWRIGHT的形式化描述的形式化描述 作为一种体系结构描述语言,作为一种体系结构描述语言,WRIGHTWRIGHT是根据构是根据构 件、连接器和配置等基本体系结构的抽象而构造件、连接器和配置等基本体系结构的抽象而构造 的,并为这些元素提供了清晰的记号,把构件形的,并为这些元素提供了清晰的记号,把构件形 式

29、化成计算,把连接器形式化成交互模式。下面式化成计算,把连接器形式化成交互模式。下面 分别介绍基于分别介绍基于WrightWright的体系结构基本元素的形式的体系结构基本元素的形式 化描述。化描述。 65 基于基于WRIGHTWRIGHT的描述框架的描述框架 构件 接口(接口类型、接口类型的参数化、接口类型约束、实例);计算 连接器 配置 附属 层次 风格 扩展风格 行为描述事件、进程、并行组合 配置的拓扑结构 定义了配置可以共享的属性集合 定义新的风格 Wright 体系体系 结构结构 形式形式 化描化描 述框述框 架架 66 基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件

30、:构件 v 构件(构件(ComponentComponent) 一个构件描述了一个本地化、独立的计算。例如,在一个构件描述了一个本地化、独立的计算。例如,在 “管道管道/过滤器过滤器”系统中,一个典型的构件可以读取系统中,一个典型的构件可以读取 系统的所有输入并且把每个字母转换成大写字母,或系统的所有输入并且把每个字母转换成大写字母,或 者把一个输入流分成两个,每隔一个字符送到不同的者把一个输入流分成两个,每隔一个字符送到不同的 输出。在一个数据库系统中,构件可能包括一个访问输出。在一个数据库系统中,构件可能包括一个访问 库和一个用户所请求的报表客户端。库和一个用户所请求的报表客户端。 在在W

31、RIGHT中,对构件的描述包括两个方面:中,对构件的描述包括两个方面:接口接口 (Interface)和)和计算计算(Computation)。一个接口有多。一个接口有多 个个端口端口(Port)组成。每个端口表示构件参与的一种)组成。每个端口表示构件参与的一种 交互。在下例中,一个过滤器构件(分离过滤器)可交互。在下例中,一个过滤器构件(分离过滤器)可 能有三个端口,一个用于输入,另外两个用于输出。能有三个端口,一个用于输入,另外两个用于输出。 67 基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件 v接口类型接口类型 (Interface TypeInterface

32、Type) 接口类型可以用于描述构件的端口,或者一个连接器接口类型可以用于描述构件的端口,或者一个连接器 的角色。在后者中,接口表示在角色中可能用到的端的角色。在后者中,接口表示在角色中可能用到的端 口接口的约束。口接口的约束。 例如:例如: Interface Type DataInput = DataInput = 不断读取数据直到读到不断读取数据直到读到End-of-DataEnd-of-Data Interface Type DataOutput = DataOutput = 不断的写数据,当关闭时发出不断的写数据,当关闭时发出End-of-DataEnd-of-Data 68 基于基

33、于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件 v接口类型参数化接口类型参数化 WRIGHT允许把一个类型描述的任意部分变成预留空允许把一个类型描述的任意部分变成预留空 间,这些预留空间将在类型实例化是利用参数进行填间,这些预留空间将在类型实例化是利用参数进行填 充。因此,一个端口或者角色的类型、一种计算、一充。因此,一个端口或者角色的类型、一种计算、一 个接口的命名等等都可以参数化。个接口的命名等等都可以参数化。 69 基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件 v接口类型参数化(续)接口类型参数化(续) 除了在类型描述中预留空间之外,还有一种通

34、过数字除了在类型描述中预留空间之外,还有一种通过数字 (Number)参数化类型描述。例如:)参数化类型描述。例如: ComponentComponent SplitFilter( SplitFilter(nout nout : 1.): 1.) Port Port Input = DataInput Input = DataInput Port Port Output1.nout = DataOutput Output1.nout = DataOutput Computation Computation = = 反复从端口反复从端口InputInput读入数据,并将数据依次写入读入数据,并将

35、数据依次写入 端口端口Output1Output1,Output2Output2, 70 基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件 v接口类型约束接口类型约束 在在WRIGHT风格描述中可声明在这个风格中的配置都风格描述中可声明在这个风格中的配置都 必须遵循的属性(即约束)。必须遵循的属性(即约束)。 例如:例如: Pipe )(:cTypeConnectorsc 实例名实例名 类型名类型名 取得类型取得类型 的操作的操作 类型名类型名 意为:对于所有的连接器,它们的类型都必须是意为:对于所有的连接器,它们的类型都必须是PipePipe(PipePipe是连接器的

36、一个类型)是连接器的一个类型) 分隔声明分隔声明 和约束和约束 71 基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件 一个一个“管道管道/ /过滤过滤”系统实例:系统实例: 大写转换器 (UpperCase) 分离过滤器 (SplitFilter) 字符合并器 (Merge) 系统功能:读取一个字符流,并输出把每隔一个的字符转换系统功能:读取一个字符流,并输出把每隔一个的字符转换 成大写字母的字符流。成大写字母的字符流。 72 基于基于WRIGHTWRIGHT的描述元素的描述元素1 1:构件:构件 ComponentComponent SplitFilter Split

37、Filter PortPort Input Input 协议:读取数据,直到读取了协议:读取数据,直到读取了End-of-DataEnd-of-Data符号符号 PortPort Left Left 协议:不断的输出数据协议:不断的输出数据 PortPort Right Right 协议:不断的输出数据协议:不断的输出数据 ComputationComputation 反复的从反复的从InputInput读取数据,并交替输出到读取数据,并交替输出到LeftLeft和和Right Right 端口端口 SplitFilter构件描述 Port Input Port Left Port Right

38、 73 基于基于WRIGHTWRIGHT的描述元素的描述元素2 2:连接器:连接器 v连接器连接器 一个连接器代表了构件集合内各种构件之间的交互。一个连接器代表了构件集合内各种构件之间的交互。 例如,一个管道代表了两个过滤器之间的一个序列流。例如,一个管道代表了两个过滤器之间的一个序列流。 一个过程的调用就是一种一个过程的调用就是一种“调用调用-返回返回”模式控制的模式控制的 连接器。更复杂的连接还有数据库协议,例如,连接器。更复杂的连接还有数据库协议,例如,2-阶阶 段提交和可靠安全网络消息的过滤。段提交和可靠安全网络消息的过滤。 WRIGHT对连接器进行描述时,可以分为一个对连接器进行描述

39、时,可以分为一个角色角色 (Role)的集合和)的集合和粘合粘合(Glue)。)。 74 基于基于WRIGHTWRIGHT的描述元素的描述元素2 2:连接器:连接器 v角色角色 (RoleRole) 每个角色指定了在交互中单个参与者的行为。例如,每个角色指定了在交互中单个参与者的行为。例如, 在一个管道中有两个角色:数据源和接收器(在一个管道中有两个角色:数据源和接收器(Sink),), 同时,角色指定了交互中构件的参与者的期望。每种同时,角色指定了交互中构件的参与者的期望。每种 角色代表了一种构件将要做什么,例如,接收器角色角色代表了一种构件将要做什么,例如,接收器角色 代表了那个参与者所期

40、望的行为:任何作为接收器的代表了那个参与者所期望的行为:任何作为接收器的 构件允许读取数据并且负责关闭连接。构件允许读取数据并且负责关闭连接。 75 基于基于WRIGHTWRIGHT的描述元素的描述元素2 2:连接器:连接器 v 粘合(粘合(GlueGlue) 一个连接器的粘合描述了参与者如何工作在一起创建一个连接器的粘合描述了参与者如何工作在一起创建 一种交互,即连接器的粘合代表了完整的行为说明。一种交互,即连接器的粘合代表了完整的行为说明。 实际上,我们把一个连接器解释成:如果真正的构件实际上,我们把一个连接器解释成:如果真正的构件 符合角色所指定的行为,那么构件的不同计算符合角色所指定的

41、行为,那么构件的不同计算 (Computation)将通过粘合而结合起来。将通过粘合而结合起来。 如下例所示的一个管道例子,粘合描述了来自数据源如下例所示的一个管道例子,粘合描述了来自数据源 的数据如何被传送到接收器。一个过程调用将表示调的数据如何被传送到接收器。一个过程调用将表示调 用者初始化一个调用,紧接着从过程定义器返回。连用者初始化一个调用,紧接着从过程定义器返回。连 接器的粘合说明了构件的计算是如何组成一个更大的接器的粘合说明了构件的计算是如何组成一个更大的 计算。计算。 76 基于基于WRIGHTWRIGHT的描述元素的描述元素2 2:连接器:连接器 Connector PipeP

42、ipe Role Source Source 不断接受传送数据,直到外界发出关闭不断接受传送数据,直到外界发出关闭 指令后终止指令后终止 Role Sink Sink 不断读取数据,直到没有数据可以发送不断读取数据,直到没有数据可以发送 Glue 从从SourceSource得到的数据不加修改的发送到得到的数据不加修改的发送到SinkSink 一个连接器描述实例一个连接器描述实例管道连接器管道连接器 Pipe SourceSink Glue 77 基于基于WRIGHTWRIGHT的描述元素的描述元素3 3:配置:配置 v配置(配置(Configuration) 为了描述一个完整的系统体系结构,

43、为了描述一个完整的系统体系结构,WRIGHT把对构把对构 件和连接器的描述结合在一起,形成配置。一个配置件和连接器的描述结合在一起,形成配置。一个配置 就是通过连接器把构件就是通过连接器把构件实例实例结合起来的一个集合。结合起来的一个集合。 配置包括构件和连接器的生成,以及附属配置包括构件和连接器的生成,以及附属 (Attachment)即将构件的端口和连接器的角色连)即将构件的端口和连接器的角色连 接起来接起来 78 基于基于WRIGHTWRIGHT的描述元素的描述元素3 3:配置:配置 v 实例实例 因为在一个系统中可能多因为在一个系统中可能多 次使用给定的构件或者连次使用给定的构件或者连

44、 接器,所以我们把先前的接器,所以我们把先前的 描述作为构件和连接器的描述作为构件和连接器的 类型。类型。 为了在一个配置中区分每为了在一个配置中区分每 种构件和连接器类型的不种构件和连接器类型的不 同实例,同实例,WRIGHT描述语描述语 言要求每个实例必须清晰言要求每个实例必须清晰 并且具有唯一性。下例描并且具有唯一性。下例描 述了一个具有实例声明的述了一个具有实例声明的 配置。配置。 Configuration CapitalizeCapitalize Component UpperCaseUpperCase Connector PipePipe Instances Split : Sp

45、litFilter Split : SplitFilter Upper : UpperCase Upper : UpperCase Merge : 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 Me

46、rge.Right as P2.SinkP2.Sink Upper.Output Upper.Output as P3.SourceP3.Source End Capitalize.Capitalize. 定义构定义构 件连接件连接 器类型器类型 定义构定义构 件连接件连接 器实例器实例 连接端口连接端口 和角色和角色 79 基于基于WRIGHTWRIGHT的描述元素的描述元素4 4:附属:附属 v 附属(附属(AttachmentAttachment) 在实例声明之后,就可以描述附属在实例声明之后,就可以描述附属(Attachment)了,了, 这样配置才算是完整的。附属说明了哪些构件参与哪

47、这样配置才算是完整的。附属说明了哪些构件参与哪 些交互,从而定义了配置的拓扑结构。些交互,从而定义了配置的拓扑结构。 附属的声明把体系结构描述的每个元素结合在一起。附属的声明把体系结构描述的每个元素结合在一起。 例如,构件执行一种计算例如,构件执行一种计算(Computation),这种计算,这种计算 的一部分是由端口的一部分是由端口(Port)指定的交互行为。这个端口指定的交互行为。这个端口 与角色与角色(Role)联系在一起,这说明了端口为了合法地联系在一起,这说明了端口为了合法地 参与连接器所指定的交互所必须遵从的规则。如果每参与连接器所指定的交互所必须遵从的规则。如果每 个由各自的端口

48、表示的构件遵从角色所规定的规则,个由各自的端口表示的构件遵从角色所规定的规则, 那么连接器的粘合那么连接器的粘合(Glue)则定义了机算是如何结合在则定义了机算是如何结合在 一起形成更大的计算。一起形成更大的计算。 实例见上例实例见上例 80 基于基于WRIGHTWRIGHT的描述元素的描述元素5 5:层次:层次 v层次 WRIGHT支持层次描述,如下层次结构(服务器有内支持层次描述,如下层次结构(服务器有内 部结构):部结构): 客户服务器 协调器 安全管理器 数据库 81 基于基于WRIGHTWRIGHT的描述元素的描述元素5 5:层次:层次 Configuration HierServe

49、r Connector CSConn Component ClientType Component ServerType Port Service Computation Configuration SecureData Component Coordinator Instances c : Coordinator c : Coordinator 与上图对应的层次描述,缩进可以帮助看清层次结构与上图对应的层次描述,缩进可以帮助看清层次结构: 定义顶层构件定义顶层构件 和连接器类型和连接器类型 定义构件类型定义构件类型 ServerType的端的端 口和内部结构,口和内部结构, 包括次级构件类包

50、括次级构件类 型型Coordinator、 SecurityManage r(未列出)和(未列出)和 Database(未列(未列 出)出) 接下页接下页 82 基于基于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

51、End End SecureData SecureData Bindings Bindings C.Combined = Service C.Combined = Service End Bindings End Bindings Instances Instances Attachments Attachments EndEnd HierServer HierServer 定义次级构件实例定义次级构件实例 Coordinator类型的类型的c 和和SecurityManager类类 型的型的Security 将次级结构的构件和连将次级结构的构件和连 接器连接起来接器连接起来 定义定义Secu

52、rityType的端的端 口应该指向其内部结构口应该指向其内部结构 的哪个端口(如图)的哪个端口(如图) SecurityType Service Combined 83 基于基于WRIGHTWRIGHT的描述元素的描述元素6 6:风格:风格 v风格风格 WRIGHT可以用于定义体系结构的风格。一种风格定可以用于定义体系结构的风格。一种风格定 义了配置可以共享的属性集合。这些属性可以包括一义了配置可以共享的属性集合。这些属性可以包括一 个公共的词汇集和约束集。在个公共的词汇集和约束集。在WRIGHT中,通过声明中,通过声明 一系列构件和连接器的类型引入公共的词汇集,并且一系列构件和连接器的类型

53、引入公共的词汇集,并且 使用声明的类型进行实例化说明。例如,使用声明的类型进行实例化说明。例如,“管道管道/过过 滤器滤器”风格将包括连接器类型风格将包括连接器类型“Pipe”的声明,然后,的声明,然后, 如果在如果在“管道管道/过滤器过滤器”风格中声明一个配置,那么风格中声明一个配置,那么 该配置就可以自动使用该配置就可以自动使用“Pipe”类型了。类型了。 84 基于基于WRIGHTWRIGHT的描述元素的描述元素7 7:扩展风格:扩展风格 v扩展风格扩展风格 定义一种新风格的重要方法是把新风格描述成另外一定义一种新风格的重要方法是把新风格描述成另外一 种风格的子风格。如果新风格具有另外一

54、种风格的所种风格的子风格。如果新风格具有另外一种风格的所 有约束条件,就可以新风格描述成该风格的子风格。有约束条件,就可以新风格描述成该风格的子风格。 例如,我们可以把管道风格定义成通过管道交互的线例如,我们可以把管道风格定义成通过管道交互的线 性序列的组合。这种风格具有性序列的组合。这种风格具有“管道管道/过滤器过滤器”风格风格 的所有限制。在定义子风格时,把父风格的名字放在的所有限制。在定义子风格时,把父风格的名字放在 子风格名字的后面。这样就可以包含父风格所定义的子风格名字的后面。这样就可以包含父风格所定义的 所有词汇和约束了。所有词汇和约束了。 85 基于基于WRIGHTWRIGHT的

55、描述元素的描述元素8 8:行为:行为 v体系结构行为描述体系结构行为描述 WRIGHT采用基于采用基于CSP(通信顺序进程,(通信顺序进程, Communicating Sequential Processes)的记号描)的记号描 述构件的行为和构件之间的协调关系。述构件的行为和构件之间的协调关系。 86 我们在哪里我们在哪里 抽象描述抽象描述 体系结构描述体系结构描述 非形式化描述非形式化描述 非标准图形符号描述:非标准图形符号描述: 用于粗略描述和展示用于粗略描述和展示 UML: 用于系统设计和理解用于系统设计和理解 MIL: 实现体系结构的设计实现体系结构的设计 形式化描述形式化描述 基

56、于形式化的基于形式化的ADL WRIGHT WRIGHT 基本描述元素基本描述元素 WRIGHT描述行为:描述行为: CSP 87 行为描述法的要求行为描述法的要求 v必须可以反映体系结构最常见的交互模式必须可以反映体系结构最常见的交互模式 如过程调用,管道,事件,共享变量等等如过程调用,管道,事件,共享变量等等 v必须可以描述复杂的交互行为必须可以描述复杂的交互行为 如哪一方先发起什么需求,然后另一方如何响应要求如哪一方先发起什么需求,然后另一方如何响应要求 v必须可以区分相似行为的细微不同必须可以区分相似行为的细微不同 例如同样是使用共享变量,具体是否需要初始化,如例如同样是使用共享变量,

57、具体是否需要初始化,如 果需要,由谁来初始化等果需要,由谁来初始化等 88 CSPCSP简介简介 v CSPCSP起源起源 Hoare,1978 解决序列化的进程描述以及这些解决序列化的进程描述以及这些 进程并行执行时的交互问题进程并行执行时的交互问题 v 理论成形理论成形 Hoare,Brookes,Roscoe, 1984 以事件为基础的理论模型,构建以事件为基础的理论模型,构建 动态的描述结构,并提出了进程动态的描述结构,并提出了进程 间通讯的一些范式和准则间通讯的一些范式和准则 C.A.R Hoare, 1980C.A.R Hoare, 1980年图灵奖获得者年图灵奖获得者 89 CS

58、PCSP在哪里在哪里 Computation = 用用CSP精确描述精确描述 反复从端口反复从端口Input读入数据,并将数据依次读入数据,并将数据依次 写入端口写入端口Output1,Output2, source?xoutput1!xoutput2!x Computation 90 CSPCSP基本概念基本概念 v 事件(事件(EventEvent) 引发其它事件或者被其它事件引发的情况,引发其它事件或者被其它事件引发的情况,CSP中最基本的单中最基本的单 位。位。 v 事件集(事件集(AlphabetAlphabet) 对某一系统进行某种描述时所有相关的事件名称组成的集合。对某一系统进行

59、某种描述时所有相关的事件名称组成的集合。 如果系统名为如果系统名为S,则事件集表示为,则事件集表示为S S v 进程(进程(ProcessProcess) 连续交互发生的一组事件的整体。有一个特殊的进程叫连续交互发生的一组事件的整体。有一个特殊的进程叫STOP, 表示系统停机。表示系统停机。 v 前束(前束(PrefixingPrefixing) 由指定事件触发某一进程的关系,表示为由指定事件触发某一进程的关系,表示为eP v 选择行为(选择行为(AlternativeAlternative) 在某种情况下,可以有多种进程发生。具体哪一种发生由环境在某种情况下,可以有多种进程发生。具体哪一种发

60、生由环境 决定决定 v 不确定行为(不确定行为(NondeterminismNondeterminism) 在某种情况下,可以有多种进程发生。具体哪一种发生有进程在某种情况下,可以有多种进程发生。具体哪一种发生有进程 自身决定自身决定 91 CSPCSP实例实例行为能被描述么?行为能被描述么? v 描述自动售货机的行为描述自动售货机的行为 定义系统名称定义系统名称 SVM(简单自动售货机) 定义事件定义事件 coin:投一枚硬币 choc:得到一块巧克力 定义本系统的事件集定义本系统的事件集 SVM = coin, choc 系统简化系统简化 本描述只和顾客投币并获取巧克 力相关,因此其它的事

温馨提示

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

最新文档

评论

0/150

提交评论