(计算机应用技术专业论文)软件体系结构描述语言xyzadl与uml的转换机制研究.pdf_第1页
(计算机应用技术专业论文)软件体系结构描述语言xyzadl与uml的转换机制研究.pdf_第2页
(计算机应用技术专业论文)软件体系结构描述语言xyzadl与uml的转换机制研究.pdf_第3页
(计算机应用技术专业论文)软件体系结构描述语言xyzadl与uml的转换机制研究.pdf_第4页
(计算机应用技术专业论文)软件体系结构描述语言xyzadl与uml的转换机制研究.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

(计算机应用技术专业论文)软件体系结构描述语言xyzadl与uml的转换机制研究.pdf.pdf 免费下载

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

文档简介

体系结构描述语言x y z a d l 与u m l 的转换机制研究 中文摘要 中文摘要 一软件体系结构作为2 0 世纪9 0 年代国际软件工程领域出现的一个新兴的重要研究 方向,已经成为软件工程界的一个研究热点,同时也已发展成为软件工程的一个独立 研究分支。软件体系结构描述是软件体系结构中一个非常重要的研究内容。如何用适 当的方法把软件体系结构详细精确地描述出来,这不仅影响着开发人员之间对软件体 系结构的理解和交流,更影响到后续分析、求精、验证等工作。 目前主流的软件体系结构描述方法有两类,分别是形式化描述和可视化描述。形 式化描述严格精确,以软件体系结构描述语言a d l 为代表;可视化描述清楚直观, 以u i v l l 为代表,两者在描述软件体系结构方面具有很强的互补性,于是对a d l 和 u i v i l 结合问题的研究成为目前软件体系结构描述领域的热点。 基于此,本文开展了对基于时序逻辑的软件体系结构描述语言x y z a d l 和u i v l l 之间的双向转换问题的研究,通过研究二者之间的转换,实现将基于时序逻辑的形式 化方法与面向对象的可视化建模语言相结合描述软件体系结构,来探讨如何将形式化 方法应用于实际的软件开发过程中,这样不但能促进对当前软件主流技术的研究,而 且能促进对形式化开发方法的研究。 本文具体工作如下:从x y z a d l 到u i v l l 的转换,首先定义了x y z a d l 的语 义基础_ x y z ,e 的基本结构到u b l l 的转换规则,接着通过分析x y z a d l 的设计 元素和u m l 建模元素之间的语义相似,定义t - - 者之间的转换规则,并用u i v l l 的 扩展机制和对象约束语言o c l 描述进一步的约束来完善相应的转换过程;另外对于 从u b l l 到x y z a d l 的转换,本文着重对u i v l l 类图进行研究,定义了从u i v l l 类图 到x y z a d l 的转换机制,也对u b i l 2 0 新增加的组成结构图到x y z a d l 的转换进 行了定义,同时亦对国内已经开展的u m l 状态图、活动图、顺序图到x y z e 的转换 机制研究作了简要介绍。相应的,本文分别以蒸汽锅炉系统和运输业务管理系统为例 来说明了本文定义的转换规则的可行性和实用性。 关键字:软件体系结构描述:x y z a d l ;眦: 转换机制 作者:陈琳琳 指导老师:张广泉 a b s t r a c t s o f t w a r ea r c h i t e c t u r e a sa ni m p o r t a n ta s p e c to f s o f t w a r ee n g i n e e r i n gr i s i n gi nt h e9 0 s o f2 0 t hc e n t u r y ,h a sb e e nah o t s p o ta n da ni n d e p e n d e n tr e s e a r c hb r a n c h , i nw h i c hs o f t w a r e a r c h i t e c t o r ed e s c r i p t i o ni sm o s tc o n c e r n f u l h o wt od e s c r i b et h ea r c h i t e c t u r ea c c u r a t e l yi n d e t a i lw i l lh a v ei n f l u e n c en o to n l yi nt h eu n d e r s t a n d i n ga n dc o m m u n i c a t i o ni nd e v e l o p e r s , b u ta l s oi nt h ea n a l y s i s ,r e f i n e m e n ta n dv e r i f i c a t i o nn e x t n o wt h em a i n m e t h o d so fs o f t w a r ea r c h i t e c t u r ed e s c r i p t i o na r ef o r m a ld e s c r i p t i o na n d v i s u a ld e s c 却t i o n a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g ea d li st y p i c a li nf o r m a ld e s c r i p t i o n w h i l ei nv i s u a ld e s c r i p t i o nu m li st y p i c a l t h e i ra d v a n t a g e sa r et h a ta d lc a nd e s c r i b e a c c u r a t e l ya n du m l c a nd e s c r i b ei n t u i t i o n i s t i c ,w h i c ha r ec o m p l e m e n tt oe a c ho t h e r s oa h o t s p o ti ns o r w a r ea r j 垃捷宅嘁d e s c r i p t i o ni st oc o m b i n i n g t h et w ot o g e t h e r s o i nt h i sp a p e r , i td o e st h er e s e a r c ho ft h eb i d i r e c t i o n a lc o n v e r s i o nb e t w e e nu m l a n dx y z a d l i nt h i sw a yi tc o m b i n e st h eo ov i s u a lm o d e l i n gl a n g u a g ea n df o r m a l m e t h o db a s e do nt e m p o r a ll o g i ct o g e t h e rt od e s c r i b es o f t w a r ea r c h i t e c t u r e ,a n ds ot of i n d h o wt oa p p l yt h ef o r m a lm e t h o dt or e a ls o f t w a r ed e v e l o p m e n tt op r o m o t et h er e s e a r c hn o t o n l yo nm a i nt e c h n o l o g i e si ns o f t w a r eb u ta l s oo nf o r m a lm e t h o d i nt h i sp a p e r , i tf i r s td e f i n e st h er u l eo fb a s i cs t r u c t u r e si nx y t _ e ,a n a l y z e st h e a n a l o g i e sb e t w e e nx y z a d ld e s i g ne l e m e n t sa n du m lm o d e l i n ge l e m e n t sa n dd e f i n e s t h ec o n v e r s i o nr u l e a n du s e su m le x t e n s i o nm e c h a n i s ma n do b j e c tc o n s t r a i n tl a n g u a g et o p e r f e c tt h ec o n v e r s i o n a n dt h e ni ts e l e c t sc l a s sd i a g r a ma n dc o m p o s i t es t r u c t u r en e w i n u n 几2 0f o rr e s e a r c h d e f i n e sh o wt oc o n v e r tt h e mt ox y z a d l t h e r eh a sb e a ns o m e r e s e a r c hf o rt h ec o n v e r s i o nf r o mu m ls t a t em a c h i n ed i a g r a m , a c t i v i t yd i a g r a ma n d s e q u e n c ed i a g r a mt ox y z e i nt h i sp a p e ri t w i l lm a k eab r i e fi n t r o d u c t i o na b o u ti t a c c o m p a n yw i t ht h er u l e s ,t h ep a p e rw i l lt a k ee x a m p l e sf o ras t e a m - b o i l e rs y s t e ma n da t r a n s p o r ts e r v i c em a n a g e m e n ts y s t e m t os h o wt h e i rf e a s i b i l i t ya n dp r a c t i c a b i l i t y k e y w o r d s :s o f t w a r ea r c h i t e c t u r ed e s c r p i t i o n ;x y z a d l ; c o n v e r s i o nm e c h a n i a m i i w r i t t e nb yc h e nl i n - l i n s u p e r v i s e db yz h a n gg u a n g - q u a r t 图表索弓体系结构描述语言x y z a d l 与u m l 的转换机制研究 图表索引 图卜1软件体系结构核心模型。2 图2 - 1b o x - l i n e 示意图。6 图2 - 2“4 + 1 ”视图模型7 图2 3x y z a d l 中的体系结构概念之间的关系。1 4 图3 1三种互相补充的图集1 8 图3 - 2一个例子2 2 图4 1一般蒸汽锅炉系统的结构3 5 图4 2本文采用的蒸汽锅炉系统组成3 6 图4 3蒸汽锅炉系统的类图描述4 6 图4 - 4蒸汽锅炉系统的组成结构图描述4 7 图4 - 5蒸汽锅炉系统的行为4 7 图4 - 6控制系统的类图描述4 8 图4 7控制系统的结构4 8 图4 - 8控制系统的行为4 9 图4 9 i n p u t 端口的行为“4 9 图4 - 1 0o u t p u t 端口的行为4 9 图4 - 1 1控制中心的行为5 0 图4 1 2消息中心的行为s 1 图4 1 3控制中心和物理单元的连接件的行为5 2 图5 1运输业务关系系统部分类图6 6 表2 - 1a d l 的分类比较框架9 表2 - 2 ) ( 删e 连接词l l 表2 - 3x y z e 将来时序算子l l 表2 4x y z e 的输入输出命令1 2 表2 - 5x y z s e 语句形式1 3 表3 一lu m l 的四层体系结构1 7 表3 - 2 视图、图表元素及其主要概念j 8 表3 3关系的种类j 9 表4 1x y z e 基本语句结构的转换2 5 表4 一l x y z e 基本语句结构的转换( 续) 2 6 表4 2x y z a d l 到u m l 的转换关系3 4 表4 3蒸汽锅炉系统各部分的成分分析3 6 表5 - 1u m l 组成结构图的组成。6 3 表5 - 2u m l 组成结构图相关元素到x y z a d l 的转换。“ 表5 3u m l 活动图节点对应的x y z e 条件元6 5 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学 或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律 责任。 研究生签名:期:妒5 ,多, 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文 合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本 人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分 , 内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名: 导师签名: 期: 护2 j - ) v 期:k :! ! 软件体系结构描述语亩x y z a d l 与u m l 的转换机制研究 第一章绪论 第一章绪论 1 1 工作背景 软件体系结构( s o f t w a r e a r c h i t e c t u r e ) 是2 0 世纪9 0 年代国际软件工程领域出现 的一个新兴的重要研究方向,已发展成为软件工程领域的一个独立的研究分支,软件 体系结构超越了“算法+ 数据结构= 程序”的传统软件设计方法,它是一种关注和描 述软件系统整体组织结构和性能的抽象软件技术机制。 i i i 软件体系结构定义 到目前为止,对于什么是软件体系结构这个问题,研究者们尚未达成一致。随着 对软件体系结构研究的不断深入,软件体系结构的定义也在不断地更改和完善。在文 献 1 3 】中列出了一些有代表性的软件体系结构定义,包括: ( 1 ) i e e e 6 1 0 1 2 t 9 9 0 软件工程标准词汇中的定义:软件体系结构是以组件、组 件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构以及指导上 述内容设计与演化的原理。 ( 2 ) 1 9 9 2 年d e w a y n e p e r r y 和a l e x w o l f 在他们早期关于软件体系结构的论文中 指出:软件体系结构是一组具有一定形式的结构化元素,分为三类,分别是处理元素、 数据元素和连接元素。 ( 3 ) 1 9 9 3 年m a r y s h a w 和d a v i d g a r l a n 在他们的论文中指出:软件体系结构是 软件设计过程中的一个层次,它超越了计算过程中的算法和数据结构设计。他们认为 软件体系结构是由元素、连接以及它们的约束组成。软件体系结构的问题包括总体组 织、全局控制、通信协议、同步、数据存取、设计组件功能定义、设计方案选择、评 估、实现等【4 】。这篇论文被誉为软件体系结构研究的里程碑,而由二人所著之文献【5 】 亦是系统性地阐述软件体系结构最早最经典的著作。 ( 4 ) 1 9 9 4 年三位西门子公司的员工s o n i 、n o r d 和h o f m e i s t e r 通过对工业界普 遍使用的开发设计环境进行研究后指出,至少可以从4 个不同的角度对软件体系结构 进行研究,分别是概念上的软件体系结构、模块体系结构、代码体系结构和运行体系 结构【6 j ok r u c h t e n 在此基础上将其发展演变为“4 + 1 ”模型。 ( 5 ) 1 9 9 8 年,l e nb a s s 、p a u lc l e m e n t s 和鼬c kk a z m a u 在( s o f t w a r ea r c h i t e c t u r e 第一章绪论 软件体系结构描述语言x y z a d l 与u m l 的转换机制研究 i np r a c t i e e 一书中给出如下定义:一个程序或计算系统的软件体系结构包括一个或 一组软件组件、软件组件的外部可见属性及其相互关系【7 1 。而在2 0 0 3 年的s o t t w a r e a r c h i t e c t u r ei n p r a c t i c e ( 第二版) 一书中,他们将这个定义修改为:一个程序或计算 系统的软件体系结构是该系统的一个或多个结构,它们由软件元素、元素的外部可见 属性以及这些元素之间的关系组成【8 】。 综合对软件体系结构的各种定义并加上对软件体系结构风格的分析,文献【9 提 出了一个软件体系结构的核心模型,将组件、连接件、配置、端口和角色作为该核心 模型的元素,其中,组件、连接件、配置是最基本的元素。该软件体系结构核心模型 如图1 1 所示: 1 1 2 软件体系结构的意义 图i - 1 软件体系结构核心模型 软件体系结构以类似建筑学的观点来构造软件,并以更精确的方式刻画软件结 构,对系统进行高层抽象的描述,它对提高软件生产率和软件质量、解决软件维护问 题具有重要的理论和实际意义。 ( 1 ) 软件体系结构是各风险承担者的交流手段。不同的风险承担者关注应用系 统体系结构的不同特征。软件体系结构提供了这样一种共同语言,于是各风险承担者 可以借助它来表述自己的需求,协商找寻一个合理的开发方案。如果没有这样一种语 言,要想充分理解大型系统并理智地做出对系统的质量和易用性都具有重要影响的早 2 软件体系结构描述语言x y z a d l 与u m l 的转换机制研究 第一章绪论 期决策将是十分困难的。 ( 2 ) 软件体系结构是开发系统最早设计决策的体现。这些早期决策对系统的后 续开发、部署和维护都有着重要的影响,也是能够对系统进行分析的最早时间点。 ( 3 ) 软件体系结构是可传递、可重用的模型。在整个软件生命周期中,重用越 早,收益就越大。代码级的重用能带来极大的便利,而软件体系结构层次上的重用则 为具有类似需求的软件系统开发提供了非常有利的手段,因为它不仅可以实现代码级 的重用,还可以实现决定软件体系结构选用的系统需求及构建体系结构经验的重用。 1 2 软件体系结构研究内容 国内外对于软件体系结构的研究都有很高的热情,目前软件体系结构的研究内容 主要集中在如下几个方面【1 0 1 : ( 1 ) 软件体系结构描述语言a d l 。国内外的学者分别提出了若干种不同的a d l , 适合于对不同领域的系统进行体系结构的描述。较为典型的有c 2 1 1 1 、w r i g h t t l 2 l 、 d a r w i n 1 3 1 、a c m e ,其它比较有影响的a d l 有a e s o p ”1 、u n i c o n 【1 6 1 、r a p i d e t l 、 s a d l ”】、m e t a h 1 9 1 、w e a v e s 等。国内的学者也相应地提出了一些有特色的体系结构 描述语言,如基于框架和角色模型的软件体系结构规约f r a d l 2 叭,多智能体系统体 系结构描述语言a a d l 刚,基于时序逻辑的体系结构描述语言x y z a d l 2 2 1 ,基于 主动连接件的体系结构描述语言t r a c e r 【矧,基于x m l 的软件体系结构描述语言 a b c a d l 2 4 1 ,功耗体系结构描述语言x p a d l p s l 等。 ( 2 ) 体系结构描述构造和表示。按照一定的描述方法,用体系结构描述语言对体 系结构进行描述的结果称为体系结构表示,而将描述体系结构的过程称为体系结构构 造。在体系结构描述表示方面,k r u c h t e n 提出的4 + 1 模型是当前的一个经典范例。 ( 3 ) 软件体系结构分析、设计和测试。在体系结构分析领域,k a z m a n 等人提出 了体系结构分析方法s a a m 2 6 】和基于场景的体系结构分析方澍2 7 l ,b a r b a c c i 等人则 提出了多质量属性情况下的体系结构权衡分析方法a t a m 2 引。体系结构风格是体系 结构设计的重点研究内容,它在本质上反映了为解决特定问题而由一些特定元素组成 的一个特定的结构。体系结构测试着重于仿真系统模型,解决体系结构层的主要问题。 ( 4 ) 软件体系结构发现、演化与复用。文献 2 9 】提出了一种类似于“盲人摸象”的 迭代式体系结构发现过程。软件体系结构的变动称为软件体系结构演化,运行时刻的 体系结构变化称为体系结构的动态性,有结构动态性和语义动态性。d a r w i n 和c 2 直 第一章绪论 软件体系结构描述语言x y z , a d l 与u m l 的转换机制研究 接支持结构动态性,c h a m 、w r i g h t 、r a p i d e 支持语义动态性。体系结构复用属于设 计复用,比代码复用更抽象,体系结构模式就是体系结构复用的一个研究成果。 ( 5 ) 基于体系结构的软件开发方法研究。b a s s 等人提出了一种基于体系结构的 软件开发过程【3 0 】,文献 3 l 】提出了基于体系结构开发的软件体系结构生命周期模型, 文献 3 2 】则讨论了一种以6 个体系结构视图为中心的软件开发方式。 ( 6 ) 特定领域的体系结构d s s a 。砒c kh a y e s r o t h 和w i l lt r a c z 分别对特定域 的体系结构给出了不同的定义。常见的d s s a 有:电信软件的体系结构研究【3 3 1 、c a s e 体系结构、c a d 软件的参考模型、测试环境的体系结构、信息系统的参考体系结构、 网络体系结构d s s a 、机场信息系统的体系结构、信号处理d s s a 等。 ( 7 ) 软件体系结构支持工具。基本上每种软件体系结构都有相应的原型支持工 具,如u n i c o n 、a e s o p 的体系结构支持环境,c 2 的支持环境a r c h s t u d i o ,支持主动 连接件的t r a c e r 工具。另外还有支持静态分析的工具、支持类型检查的工具、支持 体系结构层依赖分析的工具、支持体系结构动态特性仿真的工具等。但与其它成熟的 软件工程环境相比,软件体系结构设计的支持工具还很不成熟,难以实用化。 1 3 本文的研究内容及组织安排 研究软件体系结构一个首要和重要的内容是如何描述软件系统的体系结构,这也 是进行软件体系结构演化、分析、求精、验证、维护和基于软件体系结构软件开发的 前提和基础。关于软件体系结构的描述,目前最主要的有两类【3 4 】:一是以体系结构 描述语言a d l ( a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ) 为代表的形式化描述,一是以统 一建模语言u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 为代表的可视化描述。a d l 通常以 某种形式化理论( c s p 、z 、时序逻辑等) 为基础,具有严格的语法和语义,能有效 支持所描述系统的分析、求精和验证,其主要不足在于不够直观,较难被开发人员理 解,所以目前在工业界还没有得到广泛应用。而u m l 是一种语义丰富、通用的可视 化建模语言,也是事实上的国际工业标准。它提供了丰富的视图和图表,可以从多个 视角来描述系统的不同侧面,可以有效运用于软件系统的建模、分析与设计,易于开 发人员之间的理解和交流。但是作为一种通用的建模语言,u m l 对软件体系结构某 些元素的建模能力较弱,缺少分析软件体系结构所需的形式化语义,对体系结构的描 述只能达到非形式化或者半形式化的层次。 由上述分析可以看出,a d l 和u m l 在描述软件体系结构方面各有特色,而且 软件体系结构描述语言x y z a d l 与u m l 的转换机制研究第一章绪论 a d l 形式化语义的精确性可以弥补u m l 语义精确性的不足,u m l 直观易懂的特点 也正好可以弥补a d l 这方面的缺陷,两者在描述体系结构方面具有很强的互补性。 因此目前软件体系结构描述领域的热点,即是研究如何将a d l 和u m l 这两种方法 进行有机地结合。 基于此,本文研究了基于时序逻辑的体系结构描述语言x y z a d l 和u m l 之间 的双向转换。通过分析x y z a d l 的设计元素与u m l 的建模元素之间的语义相似性, 实现从x y t j a d l 到u m l 的转换,并用u m l 扩展机制和对象约束语言o c l 来完善 相应的转换过程;同时,本文还进行了从u m l 到x y z a d l 的转换机制研究,并完 成了从l n 沮,类图到x y 拗l 的转换。 本文具体内容组织如下: 第一章是本文的研究背景、软件体系结构研究内容、本文研究内容及相关组织。 第二章首先对软件体系结构描述进行概述,接着详细介绍了基于时序逻辑的体系 结构描述语言x y z a d l 。时序逻辑描述语言x y z e 是x y z a d l 的基础,它的特点、 基本概念以及本文中要用到知识,在这一章有具体的阐述。 第三章主要分析了u m l 的建模元素和其扩展机制。在对u m l 进行简介后,本 章对l i m l 的静态和动态建模元素都作了较为详细的分析。1 5 m l 扩展机制和对象描 述语言o c l 是本文要用到的两种重要手段,在这一章亦对它们进行了必要的阐述。 第四章和第五章是本文的主要研究工作。 第四章首先定义了x y z e 的基本结构到u m l 的转换规则,接着,通过分析 x y z a d l 的设计元素和u m l 建模元素之间的语义相似,定义了二者之间的转换规 则,并用u m l 扩展机制和0 c l 进行进一步的约束描述,最后以蒸汽锅炉控制系统 为例,将该系统的x 啦w 国l 描述转换成u m l 的相关视图。 第五章的内容是从切沮,到x y z a d l 的转换机制研究。本文选择了静态视图中 的核心类图进行研究,定义了从u m l 类图到x y z a d l 的转换机制,同时也对 u l 儿2 0 新增加的一种与类图有紧密联系的组成结构图到x y 刀a d l 的转换进行了定 义。u m l 动态建模机制使用的状态图、活动图、顺序图等到x y z e 的转换已经有人 进行了相关工作,对此本文也将作简要介绍。最后以运输业务管理系统为例,将其类 图转换成x y z a d l 描述。 第六章将对比国内外目前在软件体系结构描述领域已经展开的相关研究工作。 最后总结全文,并展望下一步的研究工作。 第二章软件体系结构描述 软件体系结构描述语言x y z , a d l 与u m l 的转换机制研究 第二章软件体系结构描述 软件体系结构描述是软件体系结构一个非常重要的研究内容。如何用适当的方法 把体系结构详细精确地描述出来,这不仅影响着开发人员之间对体系结构的理解和交 流,更影响到后续分析、求精、验证等工作,因而软件体系结构描述也就成了体系结 构研究领域的热点和核心问题。 2 1 软件体系结构描述现状 到目前为止,软件体系结构的描述方法主要有两类:可视化描述和形式化描述。 下面就这两类描述分别展开讨论。 2 1 1 可视化描述 2 1 1 1b o x 1 i n e 图 b o x - l i n e 图是一种简洁易懂且使用广泛的图形表达工具,它使用矩形框和有向线 段来描述软件体系结构,矩形框表示抽象组件,框内标注的文字为抽象组件的名称, 有向线段表示辅助组件进行通讯、控制和关联的连接件。其简单的示意如图2 1 。 臣丑咂 图2 - 1b o x - l i n e 示意图 这种方法以其简洁易用的特点在实际设计开发中占主导地位,在开发人员间传递 了大量的体系结构思想。但是它表达的语义不精确,不利于开发人员之间的理解交流, 易导致系统文档之间的不一致:而且它没有分析工具,无法对系统进行各种特性分析。 2 1 1 2 k r u c h t e n 的“4 + 1 ”模型 针对b o x - l i n e 图中的表意不清, r a t i o n a l 公司的p h i l i p p ek r u c h t e n 在s o n i 等人 的研究基础上,于1 9 9 5 年提出了“4 + 1 ”模型【3 5 】,采用多视图的方法描述软件体系 结构,如图2 2 所示。 逻辑视图面向最终用户,描述系统的功能需求:过程视图面向系统集成员,侧重 于描述系统的运行特性,主要考虑系统的并发和同步方面的设计;物理视图面向系统 6 软件体系结构描述语言x y z ,a d l 与u m l 的转换机制研究 第二章软件体系结构描述 图2 2 “4 + 1 ”视图模型 工程师,描述软件到硬件之间的转换关系,反映系统在分布方面的设计:开发视图面 向编程人员,描述软件在开发环境下的静态组织;场景视图是以上4 种视图的汇总, 是最重要的需求的抽象。 每一种视图都采用特定的符号,避免了符号用法和意义的混乱,因此它是一个十 分通用的模型,不同的人员能够获得对于软件体系结构不同方面的了解。 2 1 1 3 统一建模语言u m l 统一建模语言u m l 以b o o c h 方法、o m t 方法和o o s e 方法为基础,于1 9 9 6 年 发布至今,经过多次修改和扩充,推出了若干版本。虽然按照m a r ys h a w 和d 州d g a r l 趾对体系结构描述语言的定义,u m l 并不能算是一种体系结构描述语言,但的h 确可以通过对软件系统建模的手段达到描述软件体系结构的目的【3 司。u m l 提供了静 态视图、用例视图、实现视图、部署视图、状态机视图、交互视图、活动视图、模型 管理视图等多种视图对系统进行建模。每一种视图包含一种或多种相关的图,丰富多 样的视图将不同人员关注的系统的不同方面清晰地展现出来。 每一种视图都是对系统组织和结构一个特定方面的投影,u m l 允许视图的混合 使用,也支持单独使用。 。 目前u m l 已经成为软件体系结构可视化描述方法的典型代表,是事实上的工业 标准,在工业界得到了非常广泛的应用。 不可否认u m l 也存在着一些不足,例如它的视图之间存在部分冗余:对于软件 体系结构风格、连接件、局部和全局体系结构约束的建模和利用还缺乏直接的支持。 可视化方法不能描述系统所期望的组件接口,不适于对系统进行形式化的分析和 模拟,还缺乏相应工具来分析系统一致性和完整性等。尽管如此,我们仍认为在描述 软件体系结构这条路上,必须经历可视化描述这一过程。在它的发展过程中逐步提取 一些形式化的标准和符号,然后将其标准化,从而才能最终完成形式化描述的目标。 7 第= 章软件体系结构描述软件体系结构描述语言x y z a d l 与u m l 的转换机制研究 2 1 2 形式化描述 软件体系结构的形式化描述,可分为形式规范语言和体系结构描述语言a d l 两 类,目前主流的是a d l ,它不但是体系结构形式化描述的基本工具,也是对体系结 构进行求精、验证、演化和分析的前提和基础。 2 1 2 1 形式规范语言 典型的形式规范语言有z 、c s p 等。 z 是上世纪7 0 年代末、8 0 年代初由牛津大学p r g 小组开发的一种基于模型的, 以一阶逻辑和集合论为形式语义基础的规格说明语言”1 ,它运用模式及其演算来抽 象描述目标系统的结构和行为,提供丰富的操作运算,采用非形式化的英语解释,容 易阅读和理解,但是z 对大型系统进行规范说明时层次不够清晰、模块化能力不强。 通信顺序进程c s p ( c o m m u n i c a t i o ns e q u e n c ep r o c e s s ) 是由英国学者h o a r e 于1 9 7 8 年提出的一种并发、分布式程序设计语言模型【3 8 】。它基于进程代数,能严格地表述 一个系统或进程执行事件的时续性以及系统之间相互通信的特性,能用严密的代数演 算方法验证协议性质,因此在协议工程中得到很好的应用。 除此以外还有以z 为基础扩充的z * 语言和o b j e c t - z 语言、代数规范语言o b j 、 基于一阶谓词逻辑的l a t c h 语言、基于属性语法和代数的l o t o s 、基于形式谓词逻 辑和集合理论的m 等,在此不一一叙述。 2 1 2 2 体系结构描述语言a d l 体系结构描述语言a d l 在传统程序设计语言设计开发的经验基础之上重新设计 开发,专门用于描述软件体系结构。它吸收了传统程序设计语言语义严格精确的特点, 能针对软件体系结构的整体性和抽象性,定义适合软件体系结构描述的有关抽象元 素。 目前开发出来的a d l ,其研究范围可分为三类】: ( 1 ) 主要针对软件体系结构的静态和动态配置,对软件体系结构配置演化具有 的性质进行研究,典型的如d a r w i n 。 ( 2 ) 研究软件体系结构实例,典型的如r a p i d e 。 ( 3 ) 研究软件体系结构风格,通过描述体系结构模式或范型,来描述具有相同 风格的系统族体系结构。典型的有w r i e s t 。 软件体系结构描述语言x y z a d l 与u m l 的转换机制研究 第二章软件体系结构描述 南加州大学的n e n a dm e d v i d o v i c 于1 9 9 6 年提出了一种a d l 分类比较框架【3 9 】, 它建立于m a r ys h a w 和d a v i dg a r l a n 的软件体系结构定义之上,就a d l 该对体系结 构的哪些方面建模提出了自己的观点,如表2 1 所示,其中粗斜体部分表示a d l 必 须建模的要素: 表2 - 1a d l 的分类比较框架 体系结构建模要素工具支持 绍斧连接件体系结构配置主动的规格说明 接口 接口 可理解性 多视图 类型类型复合性 分析 语义语义异质性改进 约束 约束约束代码生成 演化演化可改进和可跟踪性 动态性 非功能属性非功能属性可测量性 演化 动态性 非功能属性 m e d v i d o v i c 根据这个框架比较当时提出的多种a d l 得到如下结果: ( 1 ) 各类a d l 对组件建模都提供了广泛支持,把组件作为第一类实体,并区分 组件类型和组件实例。但u n i c o n 不支持组件演化,a e s o p 对非功能属性支持不足。 ( 2 ) a d l 对连接件建模的支持不是很广泛。d a r w i n 和r a p i d e 不将连接件作为 第一类实体来建模,而w r i g h t 和c 2 是两种对连接件建模的a d l 。w r i g h t 是由卡耐 基梅隆大学的r o b e r ta l l e n 和d a v i dg a r l a n 提出的一种基于c s p 的a d l ,它为体系 结构连接提供了形式化基础。w r i g h t 和c 2 都将连接件看作和组件一样的第一类实体, 对其进行显式建模,使得连接件成为具有明确语义的实体,这样一方面扩展了系统分 析的适用性,另一方面也增加了组件的独立性。 ( 3 ) 对于配置的建模,大多数a d l 明确支持可理解性、复合性和异质性,但对 于可改进和可跟踪性、演化、动态性和非功能属性的支持不够。 ( 4 ) 现有的a d l 对工具的支持程度相差较大,r a p i d e 和u n i c o n 对体系结构建 模环境提供了强有力的支持,而c 2 和d a r w i n 则提供了工具方面所有的支持。 针对备类a d l 的不足,人们试图开发一种语言来交换不同的体系结构描述。由 q 第二章软件体系结构描述 软件体系结构描述语言x y z a d l 与u m l 的转换机制研究 d a v i dg a r l a n d 等负责研发了软件体系结构交换语言a c m e ,它支持不同的a d l 描述 之间的转换。a c m e 的核心概念以7 种类型实体为基础:组件、连接件、系统、端 口、角色、表达和表达连接图,还有灵活的注释机制及模板机制。目前,a c m e 及 其工具开发库为软件体系结构的描述、表示、生成和分析提供了通用的、可扩展的基 础设施。a c m e 包括了a d l 的大部分特点,实用性较高,描述的模型精确完整,接 近于底层实现,易于实现组件复用和扩展。缺点在于,使用a c m e 的同时增加了设 计的复杂度,而且目前a c m e 的语义还不够完善。 软件体系结构的设计现已成为软件生命周期中关键的一步,其中对于软件体系结 构的描述又成了软件体系结构设计中重要的环节。怎样将软件体系结构描述得更加精 确和易于理解,是所有体系结构描述方法追求的目标。以上各种体系结构描述方法具 备各自的优势,也不可避免有这样那样的缺陷,没有一种是相对完美的,这也就成了 软件体系结构描述领域的研究动力,它将促使软件体系结构的描述方法逐渐趋于完 善。目前软件体系结构描述领域的发展趋势是结合合适的软件体系结构描述方法以形 成新的描述体系结构的方式。现在已经提出将可视化描述方法与形式化描述方法结合 来描述体系结构的想法,希望能兼顾直观和精确。 2 2 基于时序逻辑的体系结构描述语言n y z a d l 2 2 1 时序逻辑描述语言x y z e x y z 系统是一种以时序逻辑语言x y z e 为基础的软件工程工具系统,其中时序 逻辑语言x y z e 4 0 1 是x y z 系统的核心,它基于m a n n a - p n u c l i 命题线性时序逻辑系统, 将时序逻辑算子溶入程序设计语言中,使其既可作为一个逻辑系统又可作为一种程序 设计语言。x y z e 表达方式与普通高级语言相似,易于为工程师和程序员所接受。 同时,作为一种形式化语言,它既可表达以前后断言及递归函数为特征的静态语义, 又可表达以状态转换为特征的动态语义,所以其中的变量类型也分为两个层次j 上层 为逻辑型,用于表示逻辑公式,下层为非逻辑型,用于表示常见高级语言中所有在表 达式中出现的各种类型。非逻辑型中的基本类型包括整型、字符串型、文件型、布尔 型,还扩充了浮点型、集合、枚举集、列表等,还有一种特殊的名字型变量。以名字 为值的变量类型是控制类型,在x y z e 中有个非常重要的控制变量l b ,其值为一个 标号,在本文的第四章会展现l b 的应用。 软件体系结构描述语言x y z a d l 与u m l 的转换机制研究第二章软件体系结构描述 下面将分别介绍x y z e 的连接词、时序算子、基本命令格式、控制结构。限于 篇幅,本文只简单介绍其符号表示,它们的具体含义可参阅文献【4 0 】。 2 2 1 1x y z e 连接词 x y t _ j e 作为一个逻辑系统,其常用的连接词如表2 2 所示 表2 - 2x y z e 连接词 连接词含义符号表示 否定词 非( 1 ) 合取词 与 析取词 或$ v 不可兼析取词异或 $ v 蕴涵词 蕴涵 等值词等值 全称量词所有 $ a ( v ) 存在量词存在$ e ( 了) 2 2 1 2x y 7 _ _ e 时序算子 、衙 x y z e 是基于线性时序逻辑的形式化语言,它包含有将来时序算子和过去时序算 子,但x y z e 语言一般只用到将来时序算子。过去时序算子的实现效率很低,本文 亦用不到,故不作介绍。其将来时序算子如表2 3 所示: 表2 - 3x y z e 将来时序算子 将来时序算子 符号表示 下一时刻算子 $ o 必然算子 】( 口) 终于算子o ( ) 直到算子 $ u 除非算子 $ w 2 2 1 _ 3x 啪基本命令格式 ) “舵最基本的特征是在能统一的时序逻辑框架下既能表示适应冯诺曼体系状 态转换机制的命令式语言( 如( 1

温馨提示

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

评论

0/150

提交评论