软件体系结构形式化描述.ppt
《软件体系结构形式化描述.ppt》由会员分享,可在线阅读,更多相关《软件体系结构形式化描述.ppt(115页珍藏版)》请在三一办公上搜索。
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,实例,Enterprise Java Beans Architecture,THU SAGroup,16,实例,Microsoft.Net Framework Archit
5、ecture,THU SAGroup,17,实例,DC-LMP Link Management Protocol Software用于光纤网物理介质连接器的软件,THU SAGroup,18,UML,基于UML技术的软件体系结构描述方法1996年,Rational、Catapulse公司发起workshop,倡议用UML进行体系结构描述和建模、特定领域体系结构建模;对UML中的stereotypes、profiles等进行扩充,支持体系结构的表示2004年,UML2.0发布,增强了通用软件体系结构的描述能力。本质上UML是侧重于面向对象(OO,Object Oriented)软件系统设计的语言
6、,THU SAGroup,19,UML特性,特点语义极其丰富语义相对精确有少量的形式化基础用途需求分析OO类设计行为设计和分析代码自动生成,THU SAGroup,20,UML与RUP,UML本身只是一门语言,并不限定使用它的开发过程。但UML特别适合使用在RUP(统一开发工程)上。RUP定义了如何看待软件系统(视图:View)UML定义了如何从某个角度描绘软件(图:Diagram),THU SAGroup,21,RUP 4+1视图,设计视图,实现视图,用例视图,进程视图,部署视图,系统综合者-性能-可扩展性-吞吐量,系统工程-系统拓扑结构-发布和安装-通讯,最终用户-功能性-词汇量,程序员-
7、软件管理,RUP Views,分析员/测试员-动作,THU SAGroup,22,RUP 4+1视图,用例图(Use Case View)由专门描述可被最终用户、分析人员和测试人员看到的系统行为的用况组成。用例视图实际上没有描述软件系统的组织,而是描述了形成系统体系结构的动力,THU SAGroup,23,RUP 4+1视图,设计视图(Design View)又称逻辑视图(Logic View),包含了类、接口和协作,它们形成了问题及对问题解决方案的术语词汇。这种视图主要支持系统的功能需求,即系统提供给最终用户的服务。,THU SAGroup,24,RUP 4+1视图,实现视图(Impleme
8、ntation View)包含了用于装配与发布物理系统的构件和文件。这种视图主要对系统发布的配置管理,它由一些独立的构件和文件组成;这些构件和文件可以用各种方法装配,以产生运行系统。,THU SAGroup,25,RUP 4+1 视图,部署视图(Deployment View)包含了形成系统硬件拓扑结构的节点(系统在器上运行)。这种视图主要描述对组成物理系统部件分布、交付和安装。,THU SAGroup,26,RUP 4+1 视图,进程视图(Process View)包含了形成系统并发与同步机制的线程和进程,该图主要针对性能、可伸缩性和系统的吞吐量。,THU SAGroup,27,RUP视图的
9、实现方式,Deployment,Process,Design,Use Case,Implementation,RUP Views,Use Case DiagramSequence Diagram,Class DiagramComposite Structure Diagram,Deployment Diagram,Sequence DiagramActivity Diagram,Class DiagramObject DiagramSequence DiagramActivity DiagramState DiagramArtifact Diagram,UML Diagrams,THU SAG
10、roup,28,UML图实例,类图(Class Diagram),THU SAGroup,29,UML图实例,用例图(Use Case Diagram),THU SAGroup,30,UML图实例,序列图(Sequence Diagram),THU SAGroup,31,UML图实例,协作图(Collaboration Diagram),THU SAGroup,32,UML图实例,构件图(Component Diagram),THU SAGroup,33,基于OO的软件体系结构描述方法,OO描述方法的优点:采用面向对象方法,更能反映软件体系结构的本质特征。提供了多个视图直观形象地反映体系结构元
11、素所具有的功能、特征。通过类图、包图等反映体系结构的静态特征,并通过协作图、序列图、部署图等反映体系结构的动态特征。,THU SAGroup,34,基于OO的软件体系结构描述方法,OO描述方法的缺点:缺少形式化的描述方法,造成设计人员由于对软件认识的角度、方法不同,生成的体系结构描述不尽相同,理解上存在的二义性。,THU SAGroup,35,模块接口语言MIL,MIL(Module&Interface Language)是将一种或多种传统程序设计语言模块连接起来描述软件的体系结构的方法。特点语义比较丰富,但局限在实现级别,层次较低语义精确,有编译器作保证没有或极少有形式化基础实例Micros
12、oft COM IDLOMG CORBA IDL,THU SAGroup,36,模块接口语言MIL,MIL的优点:具有严格的语义基础,能够支持对较大的软件单元进行诸如:定义/使用(Definition/Use)、接口定义(Interface Definition)和导入/导出(Import/Export)等操作。一般来讲,MIL与实际的实现语言无关,只关注构件的对外表现协议以及构件之间的通讯关系,THU SAGroup,37,模块接口语言MIL,MIL的缺点这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,限制了它们处理和描述比程序设计语言元素更为抽象的高层次软件构架元素的能力。,TH
13、U SAGroup,38,内容概要,形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例,THU SAGroup,39,我们在哪里,THU SAGroup,40,软件体系结构的形式化描述,为什么需要形式化描述需要严格、精确无歧异的描述,以便在系统众多的涉众中进行交流需要演算的能力,使得在判断系统质量的时候可以由计算得出,而不是仅仅凭借经验推测需要进行体系结构分析自动化,THU SAGroup,41,软件体系结构的形式化描述,软件体系机构形式化描述风格风格的多样性问题风格的通用性问题风格的专用性问题,THU SAGroup,42,何谓形式化方法,形式化方法
14、:借助抽象的方法将软件系统转化为数学模型如何抽象取决于关注点,THU SAGroup,43,形式化方法过程,软件系统,体系结构形式化模型1,体系结构形式化模型2,THU SAGroup,44,软件体系结构形式化基础,一阶谓词逻辑(First Order Predicate Logic)集合论属性文法(Attribute Grammar)进程代数(Process Algebra)通讯顺序进程(CSP,Communicating Sequential Processes)-演算(-Calculus)Petri网状态机(State Machine),THU SAGroup,45,形式化方法的进化AD
15、L,纯形式化方法的不足形式化方法不能直接支持软件的各种概念,因此难以在实践中应用体系结构描述语言ADL(Architecture Description Language)应用通用的形式化方法对体系结构和风格进行建模和分析,在体系结构的抽象级上提供一个精确的语义。提供了强有力的分析能力、抽象和与实现的细节无关性。为体系结构元素定义了一系列符号,可以应用于实际的复杂系统的描述。,THU SAGroup,46,ADL应当有什么功能,定义和描述结构概念(Capture)描述一个系统是如何被构件建立起来的(Construction)描述如何通过现有的构件生成新的系统(Composition)指导从多个
16、不同的设计和实现中挑选最优方案(Selection)检验一个设计是否能够满足需求(Verification)检测一个需求对系统的隐含影响(Analysis)根据需求自动化构建系统(Automation),THU SAGroup,47,ADL分类,根据结构分类隐式配置语言(Implicit Configuration Languages)嵌入式配置语言(Inline Configuration Languages)显式配置语言(Explicit Configuration Languages),前两者不能被认为是真正意义上的ADL,THU SAGroup,48,ADL分类(续),根据研究范围分类
17、研究体系结构配置结构的描述语言如Darwin、CHAM(Chemical Abstract Machine)研究体系结构实例的描述语言如Rapide、UniCon研究体系结构风格的描述语言如WRIGHT、Aesop根据与实现细节的关系的描述语言实现无关语言(Implementation Independent Languages)实现相关语言(Implementation Constraining Languages),THU SAGroup,49,几种ADL简介,THU SAGroup,50,几种ADL简介(续),Darwin采用演算来分析、描述带有演化通信结构的并发系统。在演算中,一个系统
18、被表述成一组具有独立功能的进程集,集合中的每个进程可以与其它进程建立连接,每个连接都有一个连接名。Darwin采用演算对系统行为进行建模,利用其强类型系统进行静态检查。,THU SAGroup,51,几种ADL简介(续),XYZ/ADL针对国内唐稚松院士提出基于时序逻辑的XYZ语言进行扩充,用来描述验证具有实时性、可靠性要求的软件体系结构。,THU SAGroup,52,几种ADL简介(续),DSADL采用属性文法(AG)来形式化描述软件体系结构。传统的属性文法是在一上下文无关文法(Context Free Grammar,CFG)-G=(VN,VT,P,Z)上附加上下文有关的属性和规则。其中
19、,VN是非终结符号集;VT是终结符号集;P是产生式集;Z是开始符号。假设G是规范CFG。P中的产生式为 p:Xp,0Xp,1Xp,np,np1,表示的右部所含符号的长度;Xp,0VN,Xp,iV;V=VNVT;1inp。DSADL针对分布式软件的特征引入了并行描述机制、特殊的终结符号、条件产生式。,THU SAGroup,53,几种ADL简介(续),OOADL采用Z语言形式化描述软件体系结构。其中Z语言是基于一阶逻辑(,)和集合论(,等)的一种数学语言。OOADL 以OO范例作为核心,增加了a_kind_of”,“a_part_of”和“an_instance_of”等关键字来表示OO范例中的
20、概括、聚集和实例化关系。,THU SAGroup,54,几种ADL简介(续),WRIGHT采用CSP做为形式化描述语言。CSP是基于字母表、迹和拒绝集的概念。从形式上,CSP进程可以用一个3元组(A,F,D)表示,A表示字母表(Alphabet),F表示失效(Failures),D表示偏差(Divergences)。进程的字母表是进程所参与的事件的集合。进程的迹是进程所允许的事件序列。,THU SAGroup,55,通过ADL看软件,不同的ADL对软件的理解不同WRIGHT将软件理解为构件、连接器、端口、角色,以及这些元素之间的联系和约束。CSP的描述使其有利分析复杂行为。C2将软件理解为构件
21、、端口和连接器。不过构件有且只有Top和Bottom两个端口。同时构件和构件之间仅通过Request和Notification两种信息进行通讯。适合描述交互式系统。ACME将软件理解为具有属性的构件和连接器。具有大多数ADL的共性元素。善于在不同ADL之间进行转换。,THU SAGroup,56,通过ADL看软件(续),任何人都可以利用自己的关注点来看待并描述体系结构,即可以定义自己的ADL回忆:用自己习惯的方式来描述一块石头的重量比较轻比另一块重一些大约2公斤四斤六两2.32Kg5.114751207磅,你心目中的软件体系结构是什么样子?,你是如何抽象软件,从而解决在设计和管理中的问题的?,
22、THU SAGroup,57,内容概要,形式化描述简介软件体系结构的描述软件体系结构形式化描述实例:WRIGHTWRIGHT应用范例,THU SAGroup,58,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 WRIGHT,THU SAGroup,59,WRIGHT应用实例,应用:将一个字符串读入,修改字符
23、串使其呈现大小写交替出现,然后输出如:I love this game I LoVe ThIs GaMe假设系统设计管道过滤器系统,它分解输入流(使用过滤器Split),分别处理各子流(使用过滤器Upper和Lower),然后合并子流(使用过滤器Merge)。,本系统的模块分解图,侧重于实现,THU SAGroup,60,WRIGHT应用实例,WRIGHT眼中的系统,构件,连接器,图例:,角色,端口,THU SAGroup,61,WRIGHT应用实例,WRIGHT语言描述,System Capitalize 定义一个系统CapitalizeComponent Splitport In 输入协议
24、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,62,WRIGHT设计目标,支持体系结构配置的描述 体系结构描述的最终目的是在高层抽象级上捕捉和利用一个系统的结构。它必须可以定义一个系统
25、中的构件和构件之间的交互行为。支持体系结构风格的描述 除了描述单一系统的体系结构,开发人员必须能描述一系列类似系统。这些体系结构风格提供了使用系统之间共性的方法。除此之外,在给定配置的情况下,两种描述必须可以结合在一起,这样我们就可以确定这两种描述是否符合同一种给定的风格。,THU SAGroup,63,WRIGHT设计目标(续),支持属性分析 描述行为的一个重要的目标是使用这种描述理解系统的属性。开发人员可以使用描述去分析系统或者风格,以确定系统是否满足他们的要求。支持在实际问题中的应用 如果描述的符号仅仅能应用于有很大限制的环境中或者小系统中,那么这种描述将是不实用的。一种实用的符号表示可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构 形式化 描述
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5319373.html