2019/10/24wangzhiming@tsinghua.org.cn1第四章软件体系结构描述4.1软件体系结构描述方法4.2软件体系结构描述框架标准4.3体系结构描述语言4.4典型体系结构描述语言4.5统一建模语言(UML)4.6可扩展标记语言XML4.7基于XML的软件体系结构描述2019/10/24wangzhiming@tsinghua.org.cn2§4.4典型ADL~acme/adltk/adls.html§4.4.1UniConTheUnifiedExtendedDialectofIcon(一种编程语言);特点:提供对大量构件和连接件的统一访问;区分不同类型的构件和接连件以便对体系结构配置进行检查;支持不同的表示方式和不同开发人员的分析工具;支持对现有构件的使用。2019/10/24wangzhiming@tsinghua.org.cn3§4.4.1UniCon(续)通过定义类型、特性列表、交互点来描述构件和连接件;系统组合构造通过定义构件的端口和连接件的角色之间的连接来完成。最新资料参见:()@tsinghua.org.cn4§4.4.1UniCon(续)提供一组预先定义的构件和连接件类型,体系结构开发者可从中选择;区分不同类型构件和连接件的交互点,并对组合方式进行限制;进而进行局部组合匹配检查;特性列表的方法已被ACME和USC开发的ArchitectureCaptureTool所采纳;对于已有构件,通过利用UniCon的术语对其接口重新定义的方式,使其可被UniCon使用。2019/10/24wangzhiming@tsinghua.org.cn5§4.4.1UniCon(续)UniCon描述连接约束:ROLEoutputISSourceMAXCONNS(1)ACCEPT(Filter.StreamIn)ENDoutputUniCon描述管道:USESp1PROTOCOLUnix-pipeUSESsorterINTERFACESort-filterCONNECTsorter.outputTOp1.sourceUSESp2PROTOCOLUnix-pipeUSESprinterINTERFACEPrint-filterCONNECTsorter.inputTOp2.sink2019/10/24wangzhiming@tsinghua.org.cn6§4.4.2WrightCMU:RobertAllen&DavidGarlan~able/wright/支持对构件之间交互的形式化分析;将连接件定义为明确的语义实体;构件通过其端口和行为来定义,表明了端口之间是如何通过构件的行为而具有相关性的;连接件通过协议来定义,协议刻画了与连接件相连的构件的行为,对构件的“期望”及实际交互过程;构件和连接件的实例被声明后,系统组合可以通过构件的端口和连接件的角色之间的连接来完成。2019/10/24wangzhiming@tsinghua.org.cn7§4.4.2Wright(续)提供对体系结构和抽象行为的精确描述,具有定义体系结构风格和对体系结构描述进行一致性、完整性检查的能力;体系结构通过构件、连接件以及它们之间的组合来描述;Wright提供一致性和完整性检查有:端口-行为一致性、连接件死锁、角色死锁、端口-角色相容性、风格约束满足以及胶水完整性等。2019/10/24wangzhiming@tsinghua.org.cn8Wright的符号:进程与事件(ProcessesandEvents):STOP表示终止,“√”表示成功事件;前缀(Prefixing):一个进程参与到事件e中,成为进程P,以eP表示;选择(Alternative):外部选择,由环境作出,以P□Q表示;决策(Decision):内部选择,由进程自己作出,以PΠQ表示;并行组合(ParallelComposition):把两个进程组合起来,以P||Q表示;§表示一个成功终止的进程,即:§=√STOP。§4.4.2Wright(续)2019/10/24wangzhiming@tsinghua.org.cn9Wright对管道连接的描述:ConnectorPipe=roleWriter=writeWriterΠclose§roleReader=letExitOnly=close§inletDoRead=(readReader□read-eofExitOnly)inDoReadΠExitOnlyglue=letReadOnly=Reader.readReadOnly□Reader.read-eofReader.close§□Reader.close§inletWriterOnly=Writer.writeWriteOnly□Writer.close§inWriter.writeglue□Reader.readglue□Writer.closeReadOnly□Reader.closeWriteOnly§4.4.2Wright(续)2019/10/24wangzhiming@tsinghua.org.cn10§4.4.3C2与C2风格相对应,适用于用户界面密集的系统;C2和其提供的设计环境(Argo)支持采用基于时间的风格来描述用户界面系统,并支持使用可替换、可重用的构件开发GUI;连接件负责构件之间的消息传递,构件维持状态、执行操作,并通过名字分别为top和bottom的端口和其他的构件交换信息。2019/10/24wangzhiming@tsinghua.org.cn11§4.4.3C2(续)每个接口包含一组可发送和可接收的消息;构件间的消息是请求服务或通知;请求消息只能向上,通知消息只能向下;构件间不能直接交互消息,只能通过连接件完成;连接件可与任意数目的构件或连接件相连;对构件和连接件的实现语言、实现构件的线程控制、构件的部署以及连接件使用的通信协议不加限制。2019/10/24wangzhiming@tsinghua.org.cn12C2对构件的描述:component::=componentcomponent_nameisinterfacecomponent_message_interfaceparameterscomponent_parametersmethodscomponent_methods[behaviorcomponent_behavior][contextcomponent_context]endcomponent_name;§4.4.3C2(续)2019/10/24wangzhiming@tsinghua.org.cn13C2对连接件接口的描述:Component_message_interface::=top_domain_interfacebottom_domain_interfacetop_domain_interface::=top_domainisoutinterface_requestsininterface_notificationsbottom_domain_interface::=bottom_domainisoutinterface_notificationsininterface_requestsinterface_requests::={request;}|null;interface_notifications::={notification;}|null;request::=message_name(request_parameters)request_parameters::=[tocomponent_name][parameter_list]……2019/10/24wangzhiming@tsinghua.org.cn14一种可执行的ADL,目的是通过定义并模拟基于事件的行为对分布式并发系统建模;通过事件的偏序集合来描述系统的行为;构件计算由构件接收到的事件触发,并进一步产生事件传送到其他构件,触发计算;Rapide模型的执行结果为一个事件的集合,事件满足一定因果或时序关系。§4.4.4Rapide2019/10/24wangzhiming@tsinghua.org.cn15Rapide由五种子语言构成:类型语言:定义接口类型和函数类型,支持通过继承已有的接口来构造新的接口类型;模式语言:定义具有因果、独立、时序等关系的事件所构成的事件模式;可执行语言:包含描述构件行为的控制结构;体系结构语言:通过定义同步和通信连接来描述构件之间的事件流;约束语言:定义构件行为和体系结构所满足的形式化约束,约束为需要或禁止的偏序集合模式。§4.4.4Rapide(续)2019/10/24wangzhiming@tsinghua.org.cn16Rapide对构件的描述:typeApplicationisinterfaceinactionRequest(p:params)outactionRequest(p:params)behavior(?MinString)Receive(?M)=Results(?M);endApplication;(?表示参数)§4.4.4Rapide(续)2019/10/24wangzhiming@tsinghua.org.cn17Rapide的优点:基于检测在某个模拟过程中的事件是否违反了某种关系,能够提供多种分析;允许仅基于接口定义体系结构,开发者可在结构中使用尚不存在的构件。§4.4.4Rapide(续)2019/10/24wangzhiming@tsinghua.org.cn18提供对软件体系结构的精确的文本表示,保留直观的框线图模型;假设:大型系统通过一组相关的具有层次化的体系结构来描述,高层是低层的抽象;因而提供对软件体系结构层次体系的表示和推理。§4.4.5SADL2019/10/24wangzhiming@tsinghua.org.cn19可描述垂直层次体系和水平层次体系,还可用于通过映射联系不同层次的表示;SADL提出保证正确性和具有可组合性的体系结构求精模式的概念,使用求精模式的实例能够保证每一步求精过程的正确性;能有效减少体系结构设计错误,并能广泛地、系统地实现对设计领域的知识和正确性证明的重用。§4.4.5SADL(续)2019/10/24wangzhiming@tsinghua.org.cn20SADL体系结构元素:一般体系结构和特定体系结构:特定为一般的实例;映射:为证明求精的正确性,需建立两个体系结构的解释映射;体系结构风格:一个对象类型词汇表和约束;体系结构改进模式:把一个体系结构系统转化为另一个包含不同体系结构概念的体系结构。§4.4.5SADL(续)2019/10/24wangzhiming@tsinghua.org.cn21CMU的Garlan等人创建,软件体系结构设计环境生成器;