软件体系结构 软件体系结构形式化描述分解ppt课件.ppt
《软件体系结构 软件体系结构形式化描述分解ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件体系结构 软件体系结构形式化描述分解ppt课件.ppt(106页珍藏版)》请在三一办公上搜索。
1、1,软件体系结构(4)软件体系结构形式化描述,Software Architecture,THU SAGroup,2,内容概要,形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例,THU SAGroup,3,抽象认识事物本质的惯用法,抽象是人类对实际事物在针对某一特定关点下的简化突出我们希望认识的各个元素允许我们对关注的结构和行为进行辨识和分析在构建新的实例时可以作为蓝图,THU SAGroup,4,抽象实例:运动系统,THU SAGroup,5,抽象实例:动力系统,忽略了施力者和受力者的实体忽略了次要的环境作用,如地面、空气忽略了传力媒介突出了力和运
2、动状态之间的关系,THU SAGroup,6,形式化的抽象,实际事物,形式化方法,THU SAGroup,7,内容概要,形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例,THU SAGroup,8,软件体系结构的描述,软件体系结构和软件体系结构描述不同的两个概念软件体系结构是附属于系统之中。只要存在系统,体系结构就存在如:每个石头都会有重量软件体系结构描述是将体系结构可视化的手段和产物如:表示一个石头的重量,THU SAGroup,9,如何理解体系结构描述,THU SAGroup,10,体系结构描述方式,使用不同的策略和方法可对同一软件体系结构作不同
3、的理解和描述如:描述一块石头的重量比较轻比另一块重一些大约2公斤四斤六两2.32Kg5.114751207磅,精确程度不同单位不同测量基准不同,描述方式不同,THU SAGroup,11,体系结构描述方式,体系结构描述方式标准语义丰富性语义精确性形式化程度主要描述方式非标准的图形符号UML模块接口语言MILADL,Richness,Preciseness,Formalization,O,THU SAGroup,12,非标准图形符号描述,非标准图形符号描述用由矩形框和有向线段组合而成的图形表达工具。其中,矩形框代表抽象构件,有向线段代表辅助各构件进行通讯、控制或关联的连接件。 特点语义丰富语义极
4、不精确没有形式化基础用途商业展示设计草图,THU SAGroup,13,非标准图形符号描述,软件体系结构的非标准图形符号表示具有如下优点:直观形象简单易用,THU SAGroup,14,非标准图形符号描述,软件体系结构的非标准图形符号表示具有如下缺点:由于其术语和表达语义上存在着一些不规范和不精确,从而使得以矩形为基础的传统图形表达方法在不同系统和不同文档之间存在着许多不一致甚至矛盾。,THU SAGroup,15,THU SAGroup,16,UML,基于UML技术的软件体系结构描述方法1996年,Rational、Catapulse公司发起workshop,倡议用UML进行体系结构描述和建
5、模、特定领域体系结构建模;对UML中的stereotypes、profiles等进行扩充,支持体系结构的表示2004年,UML2.0发布,增强了通用软件体系结构的描述能力。本质上UML是侧重于面向对象(OO, Object Oriented)软件系统设计的语言,THU SAGroup,17,UML特性,特点语义极其丰富语义相对精确有少量的形式化基础用途需求分析OO类设计行为设计和分析代码自动生成,THU SAGroup,18,UML图实例,类图(Class Diagram),THU SAGroup,19,UML图实例,用例图(Use Case Diagram),THU SAGroup,20,U
6、ML图实例,序列图(Sequence Diagram),THU SAGroup,21,UML图实例,协作图(Collaboration Diagram),THU SAGroup,22,UML图实例,构件图(Component Diagram),THU SAGroup,23,基于OO的软件体系结构描述方法,OO描述方法的优点:采用面向对象方法,更能反映软件体系结构的本质特征。提供了多个视图直观形象地反映体系结构元素所具有的功能、特征。通过类图、包图等反映体系结构的静态特征,并通过协作图、序列图、部署图等反映体系结构的动态特征。,THU SAGroup,24,基于OO的软件体系结构描述方法,OO描
7、述方法的缺点:缺少形式化的描述方法,造成设计人员由于对软件认识的角度、方法不同,生成的体系结构描述不尽相同,理解上存在的二义性。,THU SAGroup,25,模块接口语言MIL,MIL (Module & Interface Language) 是将一种或多种传统程序设计语言模块连接起来描述软件的体系结构的方法。特点语义比较丰富,但局限在实现级别,层次较低语义精确,有编译器作保证没有或极少有形式化基础实例Microsoft COM IDLOMG CORBA IDL,例如,Ada语言采用use实现包的重用,Pascal语言采用过程(函数)模块的交互等。Procedurea;forward;Pr
8、ocedureb; begin .end;Procedurea;,THU SAGroup,26,THU SAGroup,27,模块接口语言MIL,MIL的优点:具有严格的语义基础,能够支持对较大的软件单元进行诸如:定义/使用(Definition/Use)、接口定义(Interface Definition)和导入/导出(Import/Export)等操作。一般来讲,MIL与实际的实现语言无关,只关注构件的对外表现协议以及构件之间的通讯关系,THU SAGroup,28,模块接口语言MIL,MIL的缺点这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,限制了它们处理和描述比程序设计语言
9、元素更为抽象的高层次软件构架元素的能力。,THU SAGroup,29,内容概要,形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例,THU SAGroup,30,我们在哪里,THU SAGroup,31,软件体系结构的形式化描述,为什么需要形式化描述需要严格、精确无歧异的描述,以便在系统众多的涉众中进行交流需要演算的能力,使得在判断系统质量的时候可以由计算得出,而不是仅仅凭借经验推测需要进行体系结构分析自动化,THU SAGroup,32,软件体系结构的形式化描述,软件体系机构形式化描述风格风格的多样性问题风格的通用性问题风格的专用性问题,THU S
10、AGroup,33,何谓形式化方法,形式化方法:借助抽象的方法将软件系统转化为数学模型如何抽象取决于关注点,THU SAGroup,34,形式化方法过程,软件系统,体系结构形式化模型1,体系结构形式化模型2,THU SAGroup,35,软件体系结构形式化基础,一阶谓词逻辑(First Order Predicate Logic)集合论属性文法(Attribute Grammar)进程代数 (Process Algebra)通讯顺序进程(CSP,Communicating Sequential Processes)-演算(-Calculus)Petri网状态机(State Machine),T
11、HU SAGroup,36,形式化方法的进化ADL,纯形式化方法的不足形式化方法不能直接支持软件的各种概念,因此难以在实践中应用体系结构描述语言ADL (Architecture Description Language)应用通用的形式化方法对体系结构和风格进行建模和分析,在体系结构的抽象级上提供一个精确的语义。 提供了强有力的分析能力、抽象和与实现的细节无关性。 为体系结构元素定义了一系列符号,可以应用于实际的复杂系统的描述。,THU SAGroup,37,ADL应当有什么功能,定义和描述结构概念(Capture)描述一个系统是如何被构件建立起来的(Construction)描述如何通过现有
12、的构件生成新的系统(Composition)指导从多个不同的设计和实现中挑选最优方案(Selection)检验一个设计是否能够满足需求(Verification)检测一个需求对系统的隐含影响(Analysis)根据需求自动化构建系统(Automation),THU SAGroup,38,ADL分类,根据结构分类隐式配置语言(Implicit Configuration Languages) 嵌入式配置语言(Inline Configuration Languages)显式配置语言(Explicit Configuration Languages),前两者不能被认为是真正意义上的ADL,THU
13、SAGroup,39,ADL分类(续),根据研究范围分类研究体系结构配置结构的描述语言如Darwin、CHAM(Chemical Abstract Machine)研究体系结构实例的描述语言如Rapide、UniCon研究体系结构风格的描述语言如WRIGHT、Aesop根据与实现细节的关系的描述语言实现无关语言(Implementation Independent Languages)实现相关语言(Implementation Constraining Languages),THU SAGroup,40,几种ADL简介,THU SAGroup,41,几种ADL简介(续),Darwin采用演算来
14、分析、描述带有演化通信结构的并发系统。在演算中,一个系统被表述成一组具有独立功能的进程集,集合中的每个进程可以与其它进程建立连接,每个连接都有一个连接名。Darwin采用演算对系统行为进行建模,利用其强类型系统进行静态检查。,THU SAGroup,42,几种ADL简介(续),XYZ/ADL针对国内唐稚松院士提出基于时序逻辑的XYZ语言进行扩充,用来描述验证具有实时性、可靠性要求的软件体系结构。,THU SAGroup,43,几种ADL简介(续),DSADL采用属性文法(AG)来形式化描述软件体系结构。传统的属性文法是在一上下文无关文法(Context Free Grammar,CFG)-G=
15、(VN,VT,P,Z)上附加上下文有关的属性和规则。其中, VN是非终结符号集;VT是终结符号集;P是产生式集;Z是开始符号。假设G是规范CFG。P中的产生式为 p: Xp,0Xp,1Xp,np,np1,表示的右部所含符号的长度;Xp,0VN,Xp,iV;V= VNVT; 1inp。 DSADL针对分布式软件的特征引入了并行描述机制 、特殊的终结符号、条件产生式 。,THU SAGroup,44,几种ADL简介(续),OOADL采用Z语言形式化描述软件体系结构。其中Z语言是基于一阶逻辑(, )和集合论(,等)的一种数学语言。OOADL 以OO范例作为核心,增加了a_kind_of” , “a_
16、part_of”和“an_instance_of”等关键字来表示OO范例中的概括、聚集和实例化关系。,THU SAGroup,45,几种ADL简介(续),WRIGHT采用CSP做为形式化描述语言。CSP是基于字母表、迹和拒绝集的概念。从形式上,CSP进程可以用一个3元组(A,F,D)表示,A表示字母表(Alphabet),F表示失效(Failures),D表示偏差(Divergences)。进程的字母表是进程所参与的事件的集合。进程的迹是进程所允许的事件序列。,THU SAGroup,46,通过ADL看软件,不同的ADL对软件的理解不同WRIGHT将软件理解为构件、连接器、端口、角色,以及这些
17、元素之间的联系和约束。CSP的描述使其有利分析复杂行为。C2将软件理解为构件、端口和连接器。不过构件有且只有Top和Bottom两个端口。同时构件和构件之间仅通过Request和Notification两种信息进行通讯。适合描述交互式系统。ACME将软件理解为具有属性的构件和连接器。具有大多数ADL的共性元素。善于在不同ADL之间进行转换。,THU SAGroup,47,通过ADL看软件(续),任何人都可以利用自己的关注点来看待并描述体系结构,即可以定义自己的ADL回忆:用自己习惯的方式来描述一块石头的重量比较轻比另一块重一些大约2公斤四斤六两2.32Kg5.114751207磅,你心目中的软
18、件体系结构是什么样子?,你是如何抽象软件,从而解决在设计和管理中的问题的?,THU SAGroup,48,内容概要,形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例,THU SAGroup,49,WRIGHT,WRIGHT起源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 W
19、RIGHT,THU SAGroup,50,WRIGHT应用实例,应用:将一个字符串读入,修改字符串使其呈现大小写交替出现,然后输出如:I love this game I LoVe ThIs GaMe假设系统设计管道过滤器系统,它分解输入流(使用过滤器Split),分别处理各子流(使用过滤器Upper和Lower),然后合并子流(使用过滤器Merge)。,本系统的模块分解图,侧重于实现,THU SAGroup,51,WRIGHT应用实例,WRIGHT眼中的系统,构件,连接器,图例:,角色,端口,THU SAGroup,52,WRIGHT应用实例,WRIGHT语言描述,System Capita
20、lize 定义一个系统CapitalizeComponent Splitport In 输入协议port Left,Right 输出协议comp spec Split构件规格说明Component Upperport In 输入协议port Left,Right 输出协议comp spec Upper构件规格说明Connector PipePipe连接器规格说明Instancessplit:Split; upper:Upper; lower: Lower; merge:MergeEnd Capitalize, 中内容为注释蓝色字为关键字,THU SAGroup,53,WRIGHT设计目标,支持
21、体系结构配置的描述 体系结构描述的最终目的是在高层抽象级上捕捉和利用一个系统的结构。它必须可以定义一个系统中的构件和构件之间的交互行为。支持体系结构风格的描述 除了描述单一系统的体系结构,开发人员必须能描述一系列类似系统。这些体系结构风格提供了使用系统之间共性的方法。除此之外,在给定配置的情况下,两种描述必须可以结合在一起,这样我们就可以确定这两种描述是否符合同一种给定的风格。,THU SAGroup,54,WRIGHT设计目标(续),支持属性分析 描述行为的一个重要的目标是使用这种描述理解系统的属性。开发人员可以使用描述去分析系统或者风格,以确定系统是否满足他们的要求。 支持在实际问题中的应
22、用 如果描述的符号仅仅能应用于有很大限制的环境中或者小系统中,那么这种描述将是不实用的。一种实用的符号表示可以扩展到描述复杂的实际问题。,THU SAGroup,55,基于WRIGHT的形式化描述,作为一种体系结构描述语言,WRIGHT是根据构件、连接器和配置等基本体系结构的抽象而构造的,并为这些元素提供了清晰的记号,把构件形式化成计算,把连接器形式化成交互模式。下面分别介绍基于Wright的体系结构基本元素的形式化描述。,THU SAGroup,56,基于WRIGHT的描述框架,构件,接口(接口类型、接口类型的参数化、接口类型约束、实例);计算,连接器,配置,附属,层次,风格,扩展风格,行为
23、描述,事件、进程、并行组合,配置的拓扑结构,定义了配置可以共享的属性集合,定义新的风格,Wright体系结构形式化描述框架,THU SAGroup,57,基于WRIGHT的描述元素1:构件,构件(Component)一个构件描述了一个本地化、独立的计算。例如,在“管道/过滤器”系统中,一个典型的构件可以读取系统的所有输入并且把每个字母转换成大写字母,或者把一个输入流分成两个,每隔一个字符送到不同的输出。在一个数据库系统中,构件可能包括一个访问库和一个用户所请求的报表客户端。在WRIGHT中,对构件的描述包括两个方面:接口(Interface)和计算(Computation)。一个接口有多个端口
24、(Port)组成。每个端口表示构件参与的一种交互。在下例中,一个过滤器构件(分离过滤器)可能有三个端口,一个用于输入,另外两个用于输出。,THU SAGroup,58,基于WRIGHT的描述元素1:构件,接口类型 (Interface Type)接口类型可以用于描述构件的端口,或者一个连接器的角色。在后者中,接口表示在角色中可能用到的端口接口的约束。 例如:,THU SAGroup,59,基于WRIGHT的描述元素1:构件,接口类型参数化WRIGHT允许把一个类型描述的任意部分变成预留空间,这些预留空间将在类型实例化是利用参数进行填充。因此,一个端口或者角色的类型、一种计算、一个接口的命名等等
25、都可以参数化。,THU SAGroup,60,基于WRIGHT的描述元素1:构件,接口类型参数化(续)除了在类型描述中预留空间之外,还有一种通过数字(Number)参数化类型描述。例如:,Component SplitFilter(nout : 1.) Port Input = DataInput Port Output1.nout = DataOutput Computation = 反复从端口Input读入数据,并将数据依次写入 端口Output1,Output2,,THU SAGroup,61,基于WRIGHT的描述元素1:构件,接口类型约束在WRIGHT风格描述中可声明在这个风格中的配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件体系结构 软件体系结构形式化描述分解ppt课件 软件 体系结构 形式化 描述 分解 ppt 课件
链接地址:https://www.31ppt.com/p-1444568.html