




已阅读5页,还剩60页未读, 继续免费阅读
(计算机软件与理论专业论文)支持qos的模型驱动开发的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士学位论文摘要 支持q o s 的模型驱动开发的研究 专业:计算机软件与理论 姓名:潘子圆 指导教师:周晓聪副教授 摘要 q o s 作为系统的非功能性需求,对于任何一个应用系统而言,都是其取得成 功的一个关键方面:不管它们基于何种技术,只有那些能够增加其用户满意度的 系统才能得到用户接受。 目前关于q o s a w a r e 系统开发面临着几个重要的问题:如何有效地描述q o s 特征和在整个软件开发过程保持这些q o s 约束的一致性;q o s 机制和管理结构的 设计往往同功能性的设计紧密耦合在一起;相同的q o s 需求在不同的技术平台下 可能使用不同的技术和方式来实现带来的移植性问题。 为了解决这些问题,本文将q o s 建模与模型驱动架构( m d a ) 技术结合起来, 提出一个q o s 关注的模型驱动框架( q 肋a ) 。在这个方法中,表达业务功能需求 和非功能性需求分别建模,功能性需求的平台无关模型( p i m ) 使用u m l 建模, 而平台相关模型( p s m ) 和平台无关相关q o s 模型( p i q o s m p s q o s m ) 均使用u m l p r o f i l e 建模,本文还设计一个q o s 建模的u m lp r o f i l e ,将q o s 特征类型和具 体的q o s 特征分离开,为众多q o s 特征类型进行建模。通过映射,可以将平台无 关模型映射到平台相关模型,最后合并基础设置中的q o s 相关机制模块,形成平 台相关的q o s a w a r e 模型( q p s m ) ,由代码生成工具生成平台代码。 本文最后使用这个框架指导方法开发了一个无线传感器网络上的应用系统, 从而验证框架的有效性。 关键字:q o s 建模,模型驱动架构,软件开发,无线传感器网络 硕士学位论文 a b s t ra c t r e s e a r c ho nq o s s u p p o r t e dm o d e l d r i v e n d e v e l o p m e n t m 勾o r :c o m p u t e rs o f h v a r ea i l dt h e o r y n 锄e :z i ”i a l l p a i l s u p e n ,i s o r :x i a o c o n gz h o u a bs t r a c t a sn o n - f u n c t i o n a lr e q u i r e m e n t so fas y s t e m ,t 1 1 eq u a j i t ) ro fs e r v i c e ( q o s ) i so n e o ft h ek e ya l s p e c t sf o rd e v e l o p i n gas u c c e s ss y s t e m n om a _ t t e rw h a tt e c h n o l o g yt h e y a r eb a s e do 玛0 1 1 l y 廿1 0 s es y s t e m sm a tm c r e 2 l s et h e1 e v e lo fs a t i s f a c t i o no ft 1 1 e i ru s e r s w i l lg a i na c c e p 协c e t h e r ea r es e v e r a lp r o b l e m sm a to o s 刖忸r es y s t e md e v e l o p m e mh a st of 犯e : h o wt oe f i e c t i v es p e c i 匆q o sc h a r a c t e r i s t i c sa n dk e e p 也e mc o i l s i s t e n ta l lt 1 1 r o u 2 1 1t h e p r o c e s so fs o f 呐a r ed e v e l o p m e n t t h es t r u c t u r eo fo o sm e c h 碰s ma 1 1 do o s m a n a g e m e n ti st i g h t l yc o u p l i n g 丽t 1 1m ef h n c t i o n a ls t n l c t u r e s 锄eq o sr e q u i r e m e n t s m a yb ei i i l p l e m e n t e di i ld i 丘- e r e n t 、v a y so nd i 毹r e n tt e c l l i l o l o 霉yp l a t f 0 n n s ,o u l db 血g p o r t a b i l i 哆p r o b l e m s 7 r 0a d d r e s st 1 1 e s ei s s u e s ,ao o s a 、v a r em o d e l d r i mf r 锄e 、v o r k ( o m d a ) i s p r o p o s e di 1 1t h j sp a p e rb yc o m b i n i l l gt l l eq o sm o d e l i n ga 1 1 dm d a i nt h j s 印p r o a c k 向n c t i o n a jr e q u i r e m e n t sa i l dn o n 如n c t i o i l a l r e q u i r e m e n t sa r em o d e l i i l gs e p 删t e l v f u n c t i o r 谢p l a t f o mi 1 1 d e p e n d e mm o d e l ( p i m ) i sm o d e l i n g 晰mu m lw m l e f i u n c t i o n a l p 1 2 r c f o n nd e p e n d e n tm o d e l( p s m ) a n dn o n 劬c t i o n a lp l a d o n n i 1 1 d e p e n d e n t d e p e n d e n tm o d e l ( p i q o s m 卯s q o s m ) a r em o d e l i n g 谢t 1 1u m lp r o f i l e 1 1 1 1 i s p 印打a l s od e f i n e sau m lp r o f i l ef o rq o sm o d e l 血g i ts e p 删t e sq o s c h a r a c t e r i s t i ct y p e sf i o ms p e c i f i cq o sc h 粼t e r i s t i cm s t a n c e sf 0 rv 撕o u so o s c h a r a c t e r i s t i cm o d e l 血g 1 h r o u g l lt 1 1 em a p p i n g1 1 l l e st 1 1 ep i mi s 勺阻n s f o 珊e dt op s m a 1 1 do o s a w a r ep s m ( o p s m ) i sc r e a t e db vt 1 1 ep s mc o m b i n e d 丽t l li i 出a s 仇l c t u r e a t l a s tt l l ec o d eg e n e r a t i o nt o o lg e n e r a t e ss p e c i f i cp l a t f o mc o d e 谢t 1 1t h eq p s ma si n p u t i i lm el a s to f 吐l ep 印e lac a s es t u d y 印p l y i n gt h j s 印p r o a c ht ot 1 1 ed e v e l o p m e n t o faw i r e l e s ss e n s o rn e “v o r ka p p l i c a t i o ni sp r e s e n t e dt ov a l i d a t et 1 1 i s 丘狮e w o r k k e y w o r d s :q o sm o d e l i l l g , m o d e ld r i v e nf r 锄e w o 氐 s o f h a r ed e v e l o p m e n t , 、v i r e l e s ss e n s o rn e 咖r l ( i 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 历孑刭 日期:2 矿稗芗月z 罗日 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即:学 校有权保留学位论文并向国家主管部门或其指定机构送交论文的电 子版和纸质版,有权将学位论文用于非赢利目的的少量复制并允许论 文进入学校图书馆、院系资料室被查阅,有权将学位论文的内容编入 有关数据库进行检索,可以采用复印、缩印或其他方法保存学位论文。 学位论文作者签名: 貉圈 导师签名: 日期:加侣年多月z 夕日日期:以年 同卟 m 1 日 硕上学位论文第1 章前言 1 1 论文的背景 第1 章前言 q o s 的英文全称为”q u a l i t yo fs e r v i c e ”,中文名为”服务质量”。自从计算 机系统诞生开始,就一直存在提高系统的服务性能和服务质量的问题,早在2 0 世纪8 0 年代初期,s e i t z 和w o a e n d y k e 等人在研究a p p a n e t 中的x 2 5 通信时己提出 基于用户的性能评价问题,这也许是关于计算机网络q o s 研究的最早文献【。 q o s 这个术语最早出现在网络的通信领域中,最初的q o s 作为网络的一种安全 机制,是用来解决网络延迟和阻塞等问题的一种技术,随着对q o s 研究的进一步 深入,q o s 已开始被越来越多地用在软件开发中表示非功能性需求。 对于任何一个应用系统而言,q o s 都是其取得成功的一个关键方面:不管它 们基于何种技术,只有那些能够增加其用户满意度的系统才能得到用户接受。 随着技术不断发展,新业务层出不穷,用户不再仅仅满足于系统资源的可达 性,而对等待时间,响应速度等非功能性需求提出更高的要求,所以系统需要最 大化地使用这些有限系统资源,确保向用户提供满意的服务,使用各种有效机制 来尽力满足其用户的需求。但由于系统结构形形色色,实现技术和基于平台各不 相同,同样的非功能性需求在不同的平台上可能需要不用的技术或机制来实现, 无法使用一种机制满足所有平台下同一个非功能性需求,这些都增加了系统开发 的复杂性。 这些问题归根结底是缺乏有效的q o s a w a r e 软件开发方法和工具。而传统的 软件开发方式不能够有效地进行q o s a w a r e 软件开发,国外研究也有提出一些 q o s a w a r e 软件开发方法,但这些方法设计出的系统往往需要同特定平台绑定在 一起,对于q o s 相关的设计无法在不同平台和技术之间进行移植。 1 2 论文的研究思路 本文目标是要有效地进行q o s a w a r e 设计和提高相应的软件的可移植性。对 硕士学位论文 支持q o s 的模型驱动开发的研究 象管理组织o m g 所倡导的模型驱动体系结构m d a 正好满足了提高软件移植性的需 求。然而单纯的m d a 实现存在不足:虽然m d a 能够在模型层分离业务模型与具体 平台细节,将系统功能性描述与其具体实现平台分离开,但并没有对q o s a w a r e 的设计和开发进行规范,使得在单纯的m d a 中无法有效地进行q o s a w a r e 软件开 发。 q o s 建模技术有助于帮助q o s a w a r e 软件开发,更为直观地帮助软件设计人 员设计和交流软件的q o s 需求,使得对q o s 需求的设计更加具体、可视化,具有 更好的可重用性。 因此,将q o s 建模同模型驱动架构m d a 相结合,q o s 建模能够帮助显示的q o s 设计,m d a 能够通过区分平台无关模型( p i m ) 和平台相关模型( p s m ) 的方式将 业务逻辑同具体技术平台分离开,两者相辅相成,有效地解决q o s a w a r e 软件开 发所面临的困境。 1 3 论文的主要创新点 本文提出一个q o s 建模与模型驱动开发相结合的框架结构,并开发了一个简 单的原型系统,实现从模型到相关代码的自动映射。利用该框架,开发人员能够 使应用系统的开发从模型到代码都保持q o s 关注和一致的q o s 约束。 将平台无关q o s 描述和具体平台下的q o s 实现与管理的细节分离开,通过制 定相应映射规则实现前者到后者的转换,克服人工参与容易产生错误的缺点。 1 4 论文的结构 论文结构安排如下: 第一章简要的介绍了论文的研究背景、设计思路、主要创新点。 第二章对论文涉及到的m d a 、q o s 概念进行综述。 第三章将对论文所采用的技术进行详细讨论。 第四章详细描述q o s 关注模型驱动框架的设计和支持工具的实现。 第五章给出了一个框架的应用实例。 第六章对论文工作进行总结,并提出进一步研究的方向。 2 硕士学位论文第2 章论文技术的基本概念和标准 第2 章论文技术的基本概念和标准 2 1 模型驱动架构 2 1 1 如a 的概念 国际对象管理组织( o b j e c tm a n a g e m e n tg r o u p ,o m g ) 于2 0 0 1 年7 月提出m d a 【2 】 软件开发方法。肋a 是模型驱动架构( m o d e 卜d r i v e na r c h i t e c t u r e ) 的简称,是 一种应用系统设计和实现方法,它定义基于模型的软件开发方法,利用自动化工 具,定义、组织和管理各种模型,并推动不同模型之间的转换,指导系统理解、 设计、构造、开发、操作、维护和修改【3 】【4 】1 5 】。 2 1 2 如a 的主要思想 如a 主要思想是将模型作为软件开发过程的核心产品,在软件系统概念和应 用的实施细节中提出一个明确划分,最大程度地屏蔽将技术平台变化对软件系统 的影响,极大地加强了模型在整个软件生命周期中的复用,提高系统软件在不同 平台之间的可移植性。 m d a 按照模型的抽象层次,将模型分为两大类: 1 平台独立模型( p 1 a t f o 珈i n d e p e n d e n tm o d e l ,p i m ) :完整描述系统业务功 能和逻辑的模型,忽略具体实现平台和技术的细节。 2 平台相关模型( p l a t f o r md e p e n d e n tm o d e l ,p s m ) :在特定技术平台上描述 系统的模型,依赖于该平台所提供的功能和服务,涉及系统在该平台的实现 细节。 佃a 将p i m 抽象出来,可以针对不同实现技术平台制订不同映射规则,通过这 些映射规则及辅助工具将p i m 转换成p s m ,通过代码生成技术和工具将p s m 转换成 特定运行平台上的代码。 硕士学位论文支持q o s 的模型驱动开发的研究 2 1 3 肋a 的体系结构 m d a 体系结构可以分为三个层次,分别为核心技术层,中间件技术层, 公共服务层【6 】,如图2 1 所示。 f i 瀚n c e l n “l a 礤u n 1 9 e - c o m f n e , i ! :0 :眨) r :d :0 一 图2 一l 蠢 一e 童:。0 三| : 带 ,4 0 e o m g 模型驱动架构 核心技术层中包括统一建模语言u m l 、元对象设施m o f 、公共仓库元模型c w m 、 x m l 元数据交换x m i 等,它们都是m d a 体系结构中的核心标准,小节2 1 4 中将 对这些标准进行详细的介绍。 中间件技术层表示各类计算平台,包括c o r b a ,w e bs e r v i c e s ,j a v a ,n e t , x m l m x i 等。根据一定的转换规则和生成技术,可以把用m d a 核心技术表示的系 统体系结构模型映射成与各个中间件技术相关的代码,这些代码是由辅助工具帮 助自动生成的,大大提高了软件开发的效率。 公共服务层包括安全服务,目录服务,事务服务等,这些是0 m g 从众多业务 系统中提取出来的公共服务。利用这些服务可以方便地将中间层的代码集成到最 终的应用系统中,包括电信系统、空间信息服务,电子商务,制造系统等。 2 1 4 泗a 的相关标准 1统一建模语言( l m l ) 7 1 是一个通用可视化建模语言,用于对软件进行描述、可 硕士学位论文第2 章论文技术的基本概念和标准 视化处理,从不同角度为系统创建模型。虽然m d a 的模型不局限于使用u m l , 但和其它建模语言相比,u m l 作为实际上的工业标准显得更加成熟和完善。 2公共仓库元模型( c o 姗o nw a r e h o u s em e t a m o d e l ,c 1 j l m ) 【8 】是o m g 提出的通 用数据仓库标准。它的目标是使异构坏境下的各种数据仓库工具、数据仓库 平台以及数据仓库元数据存储库能方便的交换数据仓库和商务智能元数据。 3 元对象设施( m e t e 一0 b j e c tf a c i l i t y ,m o f ) 一种面向对象的元一元模型【9 1 , 为规约面向对象元模型定义了一种公共的抽象语言。以m o f 定义的面向对象 元模型,可以通过交换元数据来实现互操作【lo 】。 4) ( m l 元数据交换( x m lm e t a d a t ai n t e r c h a n g e ,) ( m i ) 【1 1 】是由o m g 提出的用 l 来描述面向对象信息的标准,用于定义、交换、操作和集成) ( m l 数据和 对象的x m l 集成框架,为程序员和其它用户提供元数据信息交换的标准方法。 5 对象约束语言( o b j e c tc o n s t r a i n tl a n g u a g e ,o c l ) 【1 2 】从2 0 标准开始横切 u m l 和m o f ,作为提供约束的声明性语言,能够提高模型的精确性,也能够 作为一种对象查询语言发挥作用。 6 “查询、视图、转换 ( q u e r y ,v i e w s ,t r a n s f o r a t i o n s ,q v t ) 【1 3 】贝u 定义 了m d a 的重要方面模型转换的标准。主要包括对模型的查询,基于元 模型的视图和模型之间的转换。 2 1 5 肋a 的意义及其不足 理想的如a 开发方法能有效解决传统软件开发过程中的生产效率问题、系统 移植问题、软件质量问题、互操作问题以及文档和系统后期维护的问题。 洒a 会带来如下的一些的好处: 1 提高生产率。m d a 的开发人员只用专注于开发平台技术无关的p 工m 的设计, 所需的p m s 是通过变换工具自动从p i m 生成,并最终从模型中自动生产高质量的、 完全的实现代码。 2 提高可移植性。佃a 利用u i l ,c w m ,m o f 等建模标准,提供一种与平台无 关的领域模型,天生具有可移植的特点。 3 增加互操作性。m a d 把形式化的模型作为互操作问题的核心,系统的定义 与任何实现模型无关,但是能够形式化映射到具体的平台基础设施( j a v a ,) ( m l , 硕士学位论文支持q o s 的模型驱动开发的研究 s o a p 等) 【1 4 1 。 4 维护与文档。在佃a 中,模型是对代码的最佳描述,p 工m 完全可当作设计 文档对待。完成p i m 的创建之后,p i m 不会像传统的文档那样被“抛弃”,对于 日后的维护工作提供有力支持。 5 保证软件质量。通过m d a 开发应用程序,由模型自动化生成和转换代码技 术,精确的p 工m 定义,减少低端的代码编写,由于模型和模式框定了应用程序框 架和实现,可以确保产品的各个模块都是同等质量的代码。 6 延长系统生命周期。使用m d a ,功能和架构被单独定义,当新的热门技术 出现时,开发人员可以使用现有的设计来产生新的实现,这在很大程度上延长了 系统的生命周期。 佃a 方法对于软件开发具有革命性的意义,但目前还仍处于发展初期阶段, 基于m d a 的软件开发技术还未能真正实用化,仍然存在着这样那样的问题,主要 表现在以下几个方面: 1 m d a 基础设施尚不成熟。u m l 和m o f 两姐妹标准存在一些不一致,这给试 图基于这些标准建立m d a 工具的厂商带来了许多问题,而且会把用户面对的问题 复杂化。 2 没有统一的成熟的模型变换的标准。尽管o m g 一直在致力于制定模型的转 换标准q v t ( q u e r y v i e w t r a n s f o r m ) ,但由于涉及的规范庞大以及需求的模糊等 原因未能最终完成。厂商也因q v t 的不成熟完善或其它商业原因而很少采用。目 前佃a 厂商通常使用模板的方法和自定义变换规则来实现模型和代码的转换。 3 对模型的建模能力不足。第一,m d a 中使用较多的仍然是静态模型,对动 态模型的支持不足,不能够对业务需求进行精确的建模。第二,在佃a 中,缺少 q o s a w a r e 建模方法,涉及q o s 的业务逻辑不能被很好的描述,不能有效的支持 非功能性需求的设计,影响软件设计质量。 6 硕士学位论文第2 章论文技术的基本概念和标准 2 2q o s 基本概念和框架 2 2 1q o s 的概念 随着对q o s 研究的进一步深入,q o s 己开始被越来越多的用在软件开发中,用 来表示非功能性需求,这使q o s 这个术语被更为广泛使用。技术领域和使用者的 不同,q o s 可能有不一样的解释,例如从用户的角度来看,它是用户对网络提供 服务的满意程度;而从服务的角度来看,它是网络向用户所提供业务的参数指标。 这两种q o s 视图可以通过图2 2 中的简单模型表示,这个模型中,应用程序或用户 并不关心网络是如何管理其资源来提供q o s 支持的,它们所关心的仅仅是网络提 供服务的质量及如何使用这些服务为其客户提供服务。从网络角度来看,网络的 目标是在提供q o s 服务时最大化的使用网络资源,为达到此目标,网络需要分析 应用程序的需求并部署各种q o s 机制。 r f c 2 3 8 6 【1 5 】中指出:q o s 是网络将用户数据从源端传到目的端的过程中必须 满足的一系列的服务需求。在这种场合下,q o s 被认为是i n t e r n e t 提供给向端到 端用户或应用程序的一组可度量的服务属性的保证,包括延迟、抖动、可用带宽、 以及丢包率。 为统一对q o s 的理解和支持,i s 0 和i t u t 联合制定建议i t u tx 6 4 1 ( i s o i e c i s1 3 2 3 6 ) 【1 6 1 ,这是目前一个比较重要、全面的q o s 框架,提供能用于各种与q o s 相关研究所需的q o s 基本原理,概念,术语的框架,其中沿用了i t u tr e c x 9 0 2 ( i s 0 i e c1 0 7 4 6 2 ) 中对q o s 的定义:关于一个或多个对象的集体行为的一 组质量( as e to fq u a l i t i e sr e l a t e dt ot h ec o l l e c t i v eb e h a v i o u ro fo n eo r m o r eo b j e c t s ) 。 图2 - 2 简单q o s 模型 硕士学位论文 支持o o s 的模型驱动开发的研究 2 2 2i s 0 i t u tq o s 框架 目前一个比较重要且全面的q o s 框架是由i s 0 和i t u t 联合制定的i t u t x 6 4 l 。i t u tx 6 4 1 ( i s o i e c 工s1 3 2 3 6 ) 【1 钾提供了一个能用于各种不同与q o s 相关研究所需的q o s 基本原理,概念,术语的框架,目标是提供一个能适用到 i t 各个基础方面的q o s 框架。 i t u tx 6 4 1 定义了基本的q o s 术语及概念,确定了大部分重要的q o s 管理 功能。其中定义的主要概念是q o s 特征( q o sc h a r a c t e r i s t i c ) ,其定义为“q o s 可计量的方面 ,其它的概念还包括: q o s 种类( q o sc a t e g o r y ) :一组导致一组q o s 需求被选择的用户需求。 q o s 信息( q o si n f o m a t i o n ) :关于q o s 的信息。又被分成q o s 上下文( 当 留在一个实体内时) 和q o s 参数( 当在实体间传输的时候) ;也可以分为 q o s 请求( 如果表示q o s 需求的时候) 和q o s 数据( 如果不是表示q o s 需求的时候) 。 q o s 参数( q o sp a r 锄e t e r ) : 作为q o s 机制的一部分在不同的实体间传 输的q o s 信息。 q o s 上下文( q o sc o n t e x t ) :内部设定或被一个或多个外部输入的q o s 信息,保存于实体内用于q o s 管理的q o s 信息。 q o s 能力( q o sc a p a b i l i t y ) :一个对象的一组q o s 特征集合。 q o s 提供( q o so f f e r ) :q o s 提供者声明所提供的q o s 。 q o s 需求( q o sr e q u i r e m e n t ) :表达部分或全部管理一个或多个q o s 特 征的需求的q o s 信息,例如一个最大值,个目标,或一个阈值;当在 不同实体间传输时,一个q o s 需求被表达作为q o s 参数表达。 q o s 数据( q o sd a t a ) :除了q o s 需求外的q o s 信息。 q o s 管理( q o s 髓n a g 锄e n t ) :任何一组由一个系统或者通信服务执行的 支持q o s 监视,控制和管理的行为。 q o s 机制( q o sm e c h a n i s m ) :一组可能使用协议元素,q o s 参数或者q o s 上下文,可能联合其它的q o s 机制来支持建立监视,维护,控制或查询 硕士学位论文第2 章论文技术的基本概念和标准 q o s 策略( q o sp 0 1 i c y ) :一组决定那些q o s 特征和q o s 管理功能被使用 的规则。 这些概念之间的关系如图2 3 所示。 2 2 3 国内外相关研究 图2 3q o s 概念之间的关系 论文 1 7 提出c o m l ( c o m p o n e n tq u a l i t ym o d e l i n gl a n g u a g e ) ,是一种为组 件的q o s 建模的语言。这种语言可以描述组件的q o s 特征并建立与功能元素的关 系。但c o m l 提供的是一种粗粒度的q o s 描述,它仅描述组件q o s 而不支持方法,参 数或属性的q o s 约束描述。 1 8 定义了u m l q ,是一种通用的q o s 建模语言,可以描述从组件至方法的q o s 约束,但缺少m d a 建模框架中模型转换所需要的形式化。 f r d l u n d ,k o i s t i n e n 等人提出了一种在分布式对象系统中处理q o s 的方法 q m l ( q o sm o d e l i n gl a n g u a g e ) 【1 9 1 。q m l 主要通过一种文本语言来描述这些q o s 需 求,可以通过扩展u m l 支持q o s 建模,但在扩展后u m l 中的q o s 描述仍然以文本描述 为主,不能直观描述q o s 约束和q o s 约束之间的各种关系。 其它相关工作还有a n d r e a su l b r ic h 等人在论文 2 0 中提出的q o s 模型,该模 型用于设计和运行时q o s 机制( q o sm e c h a n i s m ) 的组合。论文 2 1 2 2 中设计了一 个模型驱动( m o d e ld r i v e n ) 框架,并为它们的模型驱动框架提供了相应的q o s 元 9 硕士学位论文支持q o s 的模型驱动开发的研究 模型。k e n n e t hc h a n 等人在 2 1 提出了一个通过u m l 和c i m 实现的模型驱动 ( m o d e ld r i v e n ) 框架,用于生成q o s a w a r e 的应用程序的实现,并将其与q o s 监测 和管理的工具整合在一起,但没有定义q o s 元模型的各种关系,不能很好的描述 各q o s 之间的关系,这些关系在模型转换过程中为保持q o s 约束提供重要信息。t o m r i t t e r 等人在 2 2 提出了一种通用的模型驱动( m o d e ld r i v e n ) 方法,使得服务质 量( q u a l i t yo fs e r v i c e ) 建模和实现基于组件的中间件平台成为可能。s f r o u n d 等人在 2 3 提出了一种可用于通用目的的q o s 建模语言,同时还提供了从模型转 换到运行时q o s 数据的机制,该建模语言虽然也扩展了u m l ,但是仍然以文本性语 言描述为主。m i g u e l 在 2 4 为在u m l 中描述q o s 提供了一个通用的框架。f r a n k e l i a s s e n 等人在 2 5 介绍了一个开源的组件中间件平台,这个平台是s i m u l a 研 究实验室的q u a 项目组为支持q o s 敏感的应用程序而开发的原型。 1 0 硕士学位论文第3 章论文的支持技术 第3 章论文的支持技术 3 1u m l 建模和扩展方式 3 1 1m i l 概述 统一建模语言( u n i f i e dm o d e l i n gl a n g u a g e ,u m l ) 【7 j 是一种面向对象的建模 语言,它由曾经是面向对象软件建模三种主流语言b o o t h 、o m t 和0 0 s e 共同发展 而得,后o m g 于1 9 9 7 年1 1 月正式采纳u m l1 1 作为建模语言规范,u m l 从此发 展成为一个通用的、可视化建模语言标准,同时o m g 还成立任务组进行不断地修 订,并产生了u m l1 1 、1 3 、1 4 、1 4 2 ( i s 0 标准) 、1 5 ( 增加了动作语义) 、 2 0 【2 6 】【2 7 】几个版本。 在m d a 的体系结构中,u m l 是位于m 2 层的标准建模语言。虽然在肋a 中并没有 强行规定必须使用u m l 来建模,但作为事实上的工业标准,u m l 与其它建模语言相 比更加成熟和完善,因而如a 最为重要的p i m 和p s m 这两层模型一般都是通过u m l 来定义,可以说u m l 就是m d a 的基础。在本文中,u m l 就是用来描述p i m 和p s m 的建 模语言。 u m l 一个优点是抽象语法与具体语法是分离的,u m l 具体语法是u m l 的表示 法,定义了u m l 的各种表示符号,为建模者和建模工具开发者提供标准的图形化 符号和语法。u m l 抽象语法则是u m l 的语义,通过元模型来定义。这表示u m l 既可 以用图形语法的方式来表示模型,也可以用文本语法如用x m l 格式( ) ( m i ) 或者j a v a 接口等方式来描述模型。图形化的表达能力有利于帮助人们直观的理解,文本方 式的表达有利于辅助工具的自动处理,u m l 在这两方面都有优势,并且图形和文 本方式之间的相互转换也不会再来语义损失。这就意味着用u m l 模型不用绑定在 某具体语法上,不同建模工具之间就可以方便地实现信息交换与共享。 硕士学位论文支持q o s 的模型驱动开发的研究 3 1 2u m l 的扩展机制 u m l 作为通用的建模语言,并不是针对某个特定的平台制定的,而是独立于 所有平台之上的建模语言,所以标准的u m l 建模语言难于准确描述具体平台的建 模元素。而在当今,软件新技术和新平台层出不穷,虽然u m l 已经提供了足够多 的建模元素给用户来为他们的系统建模,不过用户总会在某些特殊的场合需要一 些标准u m l 以外的特性,为了支持这种需求,u m l 内置了扩展机制以描述这些新平 台新技术上的建模元素。如为支持特定平台的建模,u m l2 0 提供了两种扩展机 制【2 8 1 :一种是重型扩展,即通过m o f 扩展u m l ;另一种是轻型扩展,即通过p r o f i l e 来扩展u m l 。 3 1 2 1 使用m o f 进行扩展 元对象设施( m e t e 一0 b j e c tf a c i l i t y ,m o f ) 【1 0 】为元模型规范定义了一种通 用、抽象的语言,能够以统一的方式描述各种建模结构,它定义了元模型的基本 元素、语法和结构,也是c w m 和u m l 元模型的公共模型。 在m o f 的架构中,把建模分为4 个层次,如图3 1 所示,分别是元一元模型( m 3 ) 、 元模型( m 2 ) 、模型( m 1 ) 和信息( m o ) ,如图所示。m o f 认为模型抽象只需要四层就 可以完全表示但实际上如果需要,模型层次可以任意多。上一层都是下一层 的抽象,下一层都是上一层的实例。m 3 层是m o f 的最顶层,层次截止于此,因为 m 3 层m o f 元素是m 3 层m o f 元素的实例,即m o f 是自描述的。 图3 1 模型的四个层次 1 2 硕士学位论文第3 章论文的支持技术 u m l 元模型位于m 2 层,是通过m o f 来定义的,因此可以通过m o f 来扩展它。 m o f 拥有丰富的建模机制,用户可以任意修改、增加、删除元类( m e t a c l a s s ) , 从而可以建立特定领域的扩展元模型,并建立这些扩展元模型与u m l 元模型之间 的关系,如关联、泛化等。通过m o f 扩展u m l 相当于定义了一个新的元模型而不 是复用u m l 元模型了。所以说,m o f 扩展是一种重型的扩展方式。 3 1 2 2 使用p r o f i l e 进行扩展 p r o f i l e 是轻型扩展机制,它借助通用u m l 工具来定义和使用新的建模结构, 是一种特化机制。p r o f i l e 不能修改、增加或删除元模型的元素,只允许在原有 元模型的基础上增加新的建模结构来对原有的元模型进行补充和调整,赋予原有 元模型新的语义,以方便在特定领域或平台进行建模。在m d a 过程中,用p r o f i l e 表述的模型一般用于描述p s m 。比如i b mr a t i o n a l 公司专门定义了一套p r o f i l e , 即u m lp r o f i l ef o re j b ,来定义e j b 的p s m 建模结构【2 9 】。 一个p r o f il e 由一组构造型( s t e r e o t y p e ) 、相关约束( c o n s t r a i n ) 以及标记 值( t a g g e dv a l u e ) 构成,它定义了基于u m l 元模型的一个扩展包,提供了在特定 条件使用u m l 描述系统模型的方式。u m l2 0 中规定一个构造型必须( 直接或间 接地) 扩展元模型中的某个元类,一个构造型可以包含若干以o c l 描述的约束, 以及若干标记值。 3 1 2 3 扩展方式的选择 使用p r o f i l e 方式的优点在于工具的广泛支持性。建模者使用通用的建模工 具就可以扩展u m l ,并应用p r o f i l e 扩展包进行业务建模。而m o f 方式就没有这 么通用,它必须依赖工具商更新工具以支持新的元模型,这通常会花费很大的代 价。 虽然在工具支持上m o f 方式不如p r o f i l e 方式,但它在语义表达能力上却大 大超过了后者。由于p r o f i l e 扩展u m l 元模型,其语义必然会受到u m l 元模型的 限制,建模者也容易混淆原有元素的语义与扩展元素的语义。而m o f 方式则可不 受到元模型的限制,因为它可以定义新的元模型来表示新的语义,从而具备更强 硕士学位论文支持q o s 的模型驱动开发的研究 的表达能力。 使用m o f 和使用p r o f i l e 来对u m l 进行扩展是两种不同的选择,两种方式各 有优缺点,我们需要综合平衡应用的需要以及代价来选择合适的扩展方式f 3 0 】。 3 2 模型转换的定义 模型转换是按照模型转换定义根据模型转换规则完成从源模型到目标模型 的自动生成的过程。 模型转换定义是一组转换规则的集合,这些规则共同描述了源模型如何转换 为目标模型,无论源模型和目标模型是否属于同一个层次,也不管是否使用同种 模型描述语言。 模型转换规则就是对源模型中一个或一些模型元素如何转换为目标模型中 一个或一些模型元素的描述【2 】o 简单说,模型转换就是通过读取源模型,利用转换规则库中的转换故则,将 源模型转换为相应的目标模型,最后把这个目标模型输出的过程,。图3 2 描述 了模型的转换过程。 图3 2 模型转换过程 如图3 2 所示,模型转换过程包括四个部分,分别为源模型、目标模型、转 换规则库和转换工具。其中源模型是将被转换的模型,作为模型转换过程的输入; 目标模型是转换生成的模型,是模型转换过程的输出;转换规则库则是一组转换 规则的集合,是转换过程的依据;转换工具用来控制整个转换过程的自动化或半 自动化运行,它根据源模型当前状态,从规则库中选择一组可用规则,按这组规 则顺序执行规则,得到并输出目标模型。 1 4 硕士学位论文第3 章论文的支持技术 3 3 主要的模型转换方法 模型转换方法标准q v t 经历了较长的制订过程,仍没有得到最终完成。由于 很长时期没有统一的规范,开发者所采用的模型转换和代码生成途径不尽相同, 主要有以下几种方法。 ( 1 ) 手动转换方法 手动转换方法即程序员使用可以访问和操作模型的a i p 直接对源模型进行 转换,从而得到目标模型的方法。j m i 就是一组专门用来对模型进行访问和操作 的j a v aa p i 。它是一个平台无关的标准,可以使用u m l 、) ( m l 和j a v a 来对元数 据进行建模、创建、存储、访问、查询和交换。利用j m i 可以通过编程来实现用 户自定义的模型转换。 ( 2 ) 基于模板的转换方法 这里模板相当于转换规则。当执行规则时会首先匹配对应的源模型元素,然 后用目标模型元素替代相应的源模型元素,最终生成目标模型。在转换之前,需 要对每个特定平台制定一套模板库和转换规则。源模型中的元素分别对应模板库 中的一个或几个模板,其对应规则由转换规则指出。这种转换方法并不显式地产 生目标模型( p s m ) ,而是直接生成目标平台上的代码,p s m 隐式地包含在模板之 中。 ( 3 ) 基于元模型间映射的模型转换 这种方法的思想是:建立两个m 2 层元模型的模型元素之间的映射,当需要进 行m l 层模型转换时,以m 2 层的模型元素的映射作为转换规则来执行,从而完成m l 层模型元素的转换,最后得到目标模型。例如从u m l 到s q l 之间的映射,首先定制 从u m l 元模型到s q l 元模型之间的映射,当得到一个具体的u m l 模型时,利用此映 射规则可以得到一个s q l 模型。参考文献 3 1 中给出了利用元模型之间的映射进 行模型转换的方法。 ( 4 ) 利用x l s t 进行模型转换 x s l t ( e x t e n s i b l es t y l e s h e e tl a n g u a g et r a n s f o r m a t i o n s ) 是扩展样式表语 言转换的缩写,其中x m l 和) ( m i 是利用x s l t 进行模型转换的基础。它是w 3 c 制 定的标准,定义了基于) ( m l 文档的转换语言。而) ( m 工通常作为模型的存储形式, 因此x s l t 成为了一种很实用的模型转换语言。转换的过程是一个遍历代表源模 硕士学位论文 支持q o s 的模型驱动开发的研究 型的抽象语法树的节点并进行匹配的过程。每次对源模型节点的匹配都会产生目 标模型上的一个片段。但这种方法样式表与生成的代码相差较远,难于看懂和维 护。 3 4 模型到代码的生成途径 高层次的模型通常还不能够直接执行,需要通过模型变换和代码生成阶段才 把把模型转换为可在目标平台上执行的程序。 代码生成技术,在文献 3 2 中给出的定义是:一项利用计算机程序来产生程 序代码的技术。通过这类技术,可以在构建应用的过程中帮助生成代码框架,使 得开发者只需要在生成的代码框架基础上增加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 可爱的青猎马说课稿-2025-2026学年小学音乐人音版五线谱北京三年级下册-人音版(五线谱)(北京)
- 2024八年级英语下册 Unit 1 Spring Is Coming(Review)说课稿(新版)冀教版
- 2.5有理数的减法说课稿2023-2024学年 北师大版七年级数学上册
- 慢性支气管炎和慢性组赛性肺疾病病人的护理说课稿-2025-2026学年中职专业课-内科护理-医学类-医药卫生大类
- 4.2 基因表达与性状的关系教学设计-2023-2024学年高一下学期生物人教版必修2
- 2025玛纳斯县司法局招聘编制外专职人民调解员人笔试备考题库及答案解析
- 高端酒店集团管理职位劳动合同汇编
- 啤酒广场与体育赛事合作租赁及赞助合同
- 地下室租赁合同范本(含提前终止条款)
- 金融机构与个人间的医疗费用贷款合同
- HY/T 080-2005滨海湿地生态监测技术规程
- GB/T 27689-2011无动力类游乐设施儿童滑梯
- GB/T 20969.1-2021特殊环境条件高原机械第1部分:高原对内燃动力机械的要求
- GB/T 10125-2021人造气氛腐蚀试验盐雾试验
- GB 7231-2003工业管道的基本识别色、识别符号和安全标识
- 医疗机构财政电子票据管理平台建设方案
- 吸附及吸附过程课件
- 食品安全主题班会课件
- 二年级奥数《走迷宫》
- 管道施工安全检查表
- 云南省雨露计划改革试点资金补助申请表
评论
0/150
提交评论