(系统分析与集成专业论文)基于mda的软件开发方法的研究与应用.pdf_第1页
(系统分析与集成专业论文)基于mda的软件开发方法的研究与应用.pdf_第2页
(系统分析与集成专业论文)基于mda的软件开发方法的研究与应用.pdf_第3页
(系统分析与集成专业论文)基于mda的软件开发方法的研究与应用.pdf_第4页
(系统分析与集成专业论文)基于mda的软件开发方法的研究与应用.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(系统分析与集成专业论文)基于mda的软件开发方法的研究与应用.pdf.pdf 免费下载

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

文档简介

摘要 m d a ( m o d e ld r i v e na r c h i t e c t u r e ) 是对象管理组织o m g 提出的软件开发架构。m d a 中引入了平台无关模型p i m 、平台相关模型p s m 以及两大类模型转换,即p i m 到p s m 的转 换和p s m 到代码的转换。m d a 通过这种方式提高了模型的抽象层次,第一次把开发过程中 的模型和系统的实现紧密地联系起来。它的“将模型进行到底”软件开发思想也为解决软 件开发中遇到的许多问题( 如生产效率低、需求变更频繁) 提供了新思路。 本文以基于m d a 的软件开发方法为主要研究内容,对m d a 的基本概念、基本原理、核 心标准、开发过程等技术进行了深入的研究和探索。在深入探究了模型转换的概念、特性、 模型转换规则和形式化表示的基础之上,给出了p i m 到d b m sp s m 、e j bp s m 、w e bp s m 的变 换规则的形式化表示。同时,给出了从d b m sp s m 、e j bp s m 、w e bp s m 到代码模型的变换规 则。最后,结合高校学生管理信息系统的项目背景,以其中的奖学金管理子系统为实例, 运用m d a 的软件开发方法,完成了领域模型的建立,以及p i m 模型到p s m 模型的转换过程, 并在一定程度上实现了应用模型到代码的转换。 m d a 技术在高校学生管理信息系统的应用说明,m i ) a 技术的推进将有利于提高软件开发 效率和开发质量,其模型自动转换过程大大缩短了软件的开发时间,能大幅度提高软件质 量和复用度。 关键词:m d ap i mp s m 模型转换 a b s t r a c t m d a ( m o d e ld r i v e na r c h i t e c t u r e ) i sp r o p o s e db yo b j e c tm a n a g e m e n tg r o u po m g s o f t w a r e d e v e l o p m e n tf r a m e w o r k m d a i n c l u d e p l a t f o r mi n d e p e n d e n tm o d e l ,p l a t f o r m d e p e n d e n tm o d e l ,t w om a j o rc a t e g o r i e so fm o d e lt r a n s f o r m a t i o nw h i c ha r et r a n s f o r m a t i o no fp i m t op s ma n dt r a n s f o r m a t i o no fp s mt oc o d e m d ai m p r o v e st h ea b s t r a c tm o d e ll e v e la n dc o n t a c t s t h em o d e la n ds y s t e mi m p l e m e n ti nt h ep r o c e s s i t st h i n k i n go fm o d e li se v e r y t h i n gp r o v i d e sa n e wi d e af o rs o l v i n gm a n yo ft h es o f t w a r ed e v e l o p m e n tp r o b l e m ss u c ha sl o wp r o d u c t i v i t ya n d t h ef r e q u e n tc h a n g e so fd e m a n d i nt h i sp a p e r ,s o f t w a r ed e v e l o p m e n tm e t h o d sb a s e do nm d aa r et h em a i n c o n t e n t ,t h e i n - d e p t hs t u d y i n ga n de x p l o r a t i o n i nt h eb a s i cc o n c e p t , t h eb a s i cp r i n c i p l e s ,c o r es t a n d a r d sa n d d e v e l o p m e n tp r o c e s so fm d aw i l lb ec a r r i e do u t b a s e do nt h ee x p l o r a t i o n i nt h ec o n c e p t , c h a r a c t e r , f o r m a lr u l e so ft h em o d e lt r a n s f o r m a t i o n ,t h ep i mt ot h ed b m sp s m ,e j bp s m , w e b p s mf o r m a lc h a n g eo fr u l e sa n dt h ed b m sp s m ,e j bp s m ,w e bp s mt oc o d et r a n s f o r m a t i o n r u l e sa r eg i v e no u t f i n a l l y ,t h i sp a p e rc o m p l e t e st h ef i e l do fm o d e l i n g ,a sw e l l 弱t h e t r a n s f o r m a t i o no fp i mt op s ma n dt h ec o n v e r s i o nc o d eb yu s i n gt h em d as o f t w a r ed e v e l o p m e n t a p p r o a c ha n dt h ee x a m p l eo fs c h o l a r s h i pm a n a g e m e n ts y s t e mw h i c hi sb a s e do nt h eu n i v e r s i t y s t u d e n tm a n a g e m e n ti n f o r m a t i o ns y s t e mb a c k g r o u n d t h ea p p l i c a t i o no fm d ai nt h eu n i v e r s i t ys t u d e n tm a n a g e m e n ti n f o r m a t i o ns y s t e mi s s m g g e s t s t h a tm d at e c h n o l o g yw i l li m p r o v es o f t w a r e d e v e l o p m e n te f f i c i e n c ya n dt h e d e v e l o p m e n to fq u a l i t y i t sm o d e lt r a n s f o r m a t i o na u t o m a t i c a l l yr e d u c e ss o f t w a r ed e v e l o p m e n t t i m ea n di m p r o v e ss o f t w a r eq u a l i t ya n dr e s t o r a t i o ne x p e n s es i g n i f i c a n t l y k e yw o r d s :m d a p i mp s mm o d e lt r a n s f o r m a t i o n i i 学位论文独创性声明 本人郑重声明: 1 、坚持以“求实、创新一的科学精神从事研究工作。 2 、本论文是我个人在导师指导下进行的研究工作和取得的研究成果。 3 、本论文中除引文外,所有试验、数据和有关材料均是真实的。 4 、本论文中除引文和致谢的内容外,不包含其他人或其它机构已经发 表或撰写过的研究成果。 5 、其他同志对本研究所做的贡献均已在论 学位论文使用授权声明 本人完全了解南京信息工程大学有关保留、使用学位论文的规定,学校 有权保留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸 质版;有权将学位论文用于非赢利目的的少量复制并允许论文进入学校图书 馆被查阅;有权将学位论文的内容编入有关数据库进行检索;有权将学位论 文的标题和摘要汇编出版。保密的学位论文在解密后适用本规定。 作者签名了孰请 未渊 日期:谨旦尘! ) 关于学位论文使用授权的说明 本人完全了解南京信息工程大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以 采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵循此规定) 导师签名: 日期: 盐挑一 碰蝉 名 讯 麟 期 南京信息工程火学硕士学位论文 第一章绪论 1 1 论文研究背景 软件的需求随着计算机的普及,呈现爆炸式的增长。软件系统越来越庞大,而系统内 部组成模块的规模越来越小;软件系统的功能日趋复杂,但是系统的开放性却越来越好, 软件系统正向着不依赖于特定的硬件和操作系统以及具有高度可重用性的方向发展。在这 种情况下,人们对这种大型复杂软件产品的质量和开发速度都提出更严格的要求,传统的 开发方法已经难以满足这种需求。人们迫切需要找到一种生产软件的机器以及和这种机器 相配套的生产模式以满足工业化的软件需求,计算机业界努力探索和研究解决软件危机的 途径,近年来软件工程的研究更加注重于新的程序开发模型和软件生产。 模型驱动架构m d a ( m o d e ld r i v e na r c h i t e c t u r e ) 的提出就是为了解决软件开发过程 中日益凸显出的种种问题。m d a 最权威的观点是由对象管理组织( o m g ) 提供的,o m g ( o h j e c t m a n a g e m e n tg r o u p ) 是独立于各厂商的非盈利性组织,其宗旨是要统一不同的商业产品和 标准之间的数据交换及互操作,从而改善各厂商的软件产品之间不兼容的情况。m d a 属于 o m g 支持的众多计算机标准,是一种开放的,中立于软件供应商的新型体系结构。 o m g 的构想是将目前的开发提升到更高的抽象层级一分析模型级,把针对特定计算平 台的编码工作交由机器自动完成,在这种情况下,业务逻辑与实现技术被成功地分离,二 者相对独立变化,因此模型的价值在包容已有技术的条件下被最大化。这样做的目的根源 于软件开发的现状:在传统的软件开发方法中,随着项目的进展,设计阶段产生的u m l 模 型和代码之间的同步变得越来越困难,代码为了应付新增加的需求和新产生的想法而不断 变化。模型却一直停留在原地不动,这使得模型在一段时间之后就失去了它的价值。o m g 提出了一个最根本的解决方案,在m d a 中,模型不再是一种辅助工具,而是开发过程中的 产品。 1 2 国内外m d a 技术研究现状 国外对于r d a 的关注比较早,采用模型驱动,通过模型构建系统框架,从整体上把握 系统架构,再分解求精,已经成为国内外的软件开发者的共识,m d a 理念无疑将是软件开 发史上的一次革命。基于m d a 理念,已经有一些比较成功的系统。如金蝶e a sb o s ,它自 称贯彻了模型驱动架构的宗旨,从应用需求、系统设计、系统构建以及程序的发布,都有 统一的过程管理、规范以及相关的服务,保证了不管是开发人员还是行业合作伙伴,大家 都是使用统一的模型在金蝶e a sb o s 中进行增值开发,在开发过程中体现出来的就是角色 的比例出现变化。设计人员多了,开发人员少了,而且由于系统支持自动化测试,测试人 员也减少了。 o m g 提出了m d a 思想的本意是实现将u m l 建模技术贯通软件开发的全过程。m d a 在系统 分析系统设计和实现上都采用u m l 图形表示,并希望在代码级别上有一层采用e x e c u t a b l e 南京信息工程大学硕士学位论文 u m l 的可执行的模型层,即最终是实现软件开发者不用编写代码,直接通过建模生成应用 程序。因此实际上建模语言在m d a 中已经成为了一种编程语言而不仅仅是设计语言,模型 所发挥的作用更大了,不但能够从模型中生成代码,而且模型本身就是可执行的。因此, 理论上软件开发者只要掌握了u m l 的图形表示方法和业务流程的处理过程就可以对系统进 行建模了,同时软件的维护工作也只需要局限于模型的维护,对于异构系统的集成和遗产 系统修整,也可以通过逆向建模形成对应的平台独立模型,然后对该模型进行不断完善, 最后再映射成平台相关模型或代码,直至辅助完成软件的打包,部署等工作。 m d a 的目标是从模型到实现的全部自动化,包括从p i m 到p s m 的自动转换,从p s m 到 代码( 包括结构代码和行为代码) 的自动生成,以及约束的实现和模型级别的调试功能。 单就目前国内外的最新技术的实现情况而言,还不能将p i m 到p s m 自动转换过程和业务逻 辑代码自动生成过程全部实现,还没有完成最初的m d a 设想。但我们有理由相信,随着软 件开发理论和开发技术的不断发展完善,阻碍m d a 最终目标的所有问题都会逐步得到解决 的。 1 3 本文的研究目标和内容 本论文的工作分为两个部分,第一部分是介绍有关m d a 的基础知识,阐明m d a 软件开 发过程及相关技术、m d a 软件开发思想的可行性和m d a 软件开发过程的对软件业的巨大作 用。第二部分是以高校学生管理信息系统为背景,对m d a 的工作机制、开发过程以及各模 型层次间的映射技术进行较深入的研究,同时根据基于m d a 软件开发的特点,研究基于m d a 技术的软件开发过程。 本文主要研究以下几个方面的内容: 详细阐述m d a 的基本原理和核心技术。 详细介绍了m d a 的开发过程,并与传统的软件开发方法相比较,总结出m d a 开发方法 的优点,最后对在系统开发中使用的建模工具软件r a t i o n a lr o s e 的主要功能和开发 过程进行介绍。 详细讨论基于m d a 技术的软件开发过程中业务层建模、j 2 e e 平台层建模,并深入研究 各模型层次之间的映射和变换技术。 以高校学生管理信息系统为背景,依照m d a 思想,完成对原型系统的需求分析,以该 系统为具体实例详细介绍了运用m i ) a 方法开发系统的整个过程:从系统的需求分析, 到平台无关模型p i m 的设计,再到平台相关模型p s m 的形成,最后生成j 2 e e 应用程序, 重点揭示基于m d a 软件开发方法的工作过程和机理,展示了基于m d a 软件开发的巨大 优势和潜力,并结合实例总结了基于m d a 软件开发方法的优点,对传统开发方式的影 响以及实际应用价值。 2 南京信息工程大学硕士学位论文 第二章m d a 概述及其核心理论 2 1m d a 概述 m o d e ld r i v e na r c h i t e c t u r e ( m d a ) 是o m g 提出的新的方法学。它是一种基于u m l , m o f ,x m i 和c w m 以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。 和u m l 相比,m d a 能够创建出机器可读和高度抽象的模型,这些模型以独立于实现的技术 开发,以标准化的方式储存,并进行模型数据之间严格变换,最终生成可执行程序。 m d a 不同于o m a ( o b j e c tm a n a g e m e n ta r c h i t e c t u r e ,对象管理架构) 和c o r b a ( c o m m o n o b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象请求代理架构) ,它以一种全新的方式将 i t 技术的一系列新的趋势性技术整合到一起。这些技术包括基于组件的开发( c o m p o n e n t _ b a s e dd e v e l o p m e n t ) 、设计模式( d e s i g np a t t e r n s ) 、中间件( m i d d l e w a r e ) 、说明性规 约( d e c l a r a t i v es p e c i f i c a t i o n ) 、抽象( a b s t r a c t i o n ) 、多层系统( m u l t i - - t i e r e ds y s t e m s ) 企业应用整合( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ) 以及契约式设计( d e s i g nb y c o n t r a c t ) 。它是一种在软件开发中使用模型建立系统和解决互操作性等问题的途径,而不 是实现分布式系统的框架。这些模型可以被重复访问,并被自动转化为纲要( s c h e m a ) 、代 码框架( c o d es k e l e t o n ) 、测试工具( t e s th a r n e s s ) 、集成化代码以及各种平台的部署描 述。m d a 的基本思想就是:一切都是模型。在m d a 中,软件开发过程是由对软件系统的建 模行为驱动的。 2 2m d a 基本概念 m d a 中的基本概念有模型、计算无关、平台相关、平台无关、映射。 2 2 1 模型 模型是对系统的一部分结构、功能或行为的形式的规约,是用精确定义的语言对系统 ( 或系统的一部分) 做出的描述幢1 。首先,模型是一种系统规约,这种规约可以是对结构 的规约或者是对系统功能或系统行为的规约;其次,这种规约必须是形式的,即必须使用 一种严格定义没有歧义的语言。所以一个模型必须和一种严格定义了语法和语义的建模语 言绑定在一起。使用u m l 进行建模可以得到相当精确的模型,这些模型表达了系统各个层 面的特征,在类似的系统开发中可以得到重用。 2 2 2 计算无关模型 计算无关模型( c i m ,c o m p u t a t i o ni n d e p e n d e n tm o d e l ) 是从用户视角来描述特定领 域所面临的问题及系统需求的模型。c m i 包含了系统的数据信息等,它代表软件生命周期 中的需求模型。 2 2 3 平台无关模型和平台相关模型 在m d a 中平台指的是和系统或执行领域的基础功能无关的技术细节婚1 平台无关模型 3 南京信息工程大学硕士学位论文 ( p i m ,p l a t f o r mi n d e p e n d e n tm o d e l ) 用来描述系统,代表软件生命周期中的分析模型。 p i m 是对系统的功能和结构的形式化描述,是抽象的、与实现细节无关的模型,由业务需 要和业务模型驱动,关注需要实现的功能,不带有具体实现的技术细节,不涉及最终实现 平台的全部知识。开发人员从企业业务模式来对系统进行建模( 建立p i m 平台无关模型) , 并不断根据客户需求和其它因素对p i m 进行精化,以使得它能够更加精确地描述软件系统。 平台相关模型( p s m ,p l a t f o r md e p e n d e n tm o d e l ) 是针对用户选择的实现技术、平台 ( 可以是j 2 e e 或n e t ) ,对软件系统量身定做的模型,由系统的数据、处理进程等平台相 关的信息组成,包含最终实现平台的全部知识。p s m 代表软件生命周期中的设计模型。例 如针对j 2 e e 平台,e j bp s m 是对使用e j b 结构的系统建模,它包含一些与e j b 相关的名 称,例如“h o m ei n t e r f a c e ”,“e n t i t yb e a n ”,“s e s s i o nb e a n ”等。关系数据库p s m 包 含的名称如“t a b l e ”,“c o l u m n ”,“f o r e i g nk e y ”等。 2 2 4 映射 映射( m a p p i n g ) 是一种规约h 1 ,它包含规则以及其它一些信息,用于从p i m 中生成p s m , i d a 定义了一些映射: 模型类型映射( m o d e lt y p em a p p i n g ) :描述基于模型元素类型的映射。它描述如何将 p i m 中模型元素类型映射到p s m 中模型元素的类型。例如,一个p i m 模型元素的类型为 e n t i t y ,它将会被映射到j 2 e e 平台的实体b e a n 或者普通j a v a 平台的j a v a 类。 模型实例映射( m o d e li n s t a n c em a p p i n g ) :描述增加了标记( m a r k s ) 的模型元素实 例如何被转换。通过给p i m 模型元素增加标记以指导模型转换过程,一个模型元素可以根 据不同的映射增加多个标记,并根据不同的映射被转换多次。例如,一个增加了e n t i t y 标 记的模型元素,将会被映射到j 2 e e 平台的实体b e a n 或者关系数据库平台的某个表。 2 3m d a 的核心标准 建模和模型映射技术是m d a 的核心,m d a 的几个主要核心标准是元对象设施( m o f ,m e t a o b j e c tf a c i l i t y ) ,统一建模语言( u m l ,u n i f i e dm o d e l i n gl a n g u a g e ) ,x m i 元数据交换 ( x m i ,x m lm e t a d a t ai n t e r c h a n g e ) ,公共仓库元模型( c w m ,c o m m o nw a r e h o u s em e t a m o d e l ) 哺1 。m d a 的核心标准组成了创建模式驱动的一致性系统纲要的基础,这个系统纲要完成授权、 发布和管理模型的功能。除此之外m d a 还有一些其他的标准,如对象约束语言( o c l ,o b j e c t c o n s t r a i n tl a n g u a g e ) 和动作规约语言( a s l ,a c t i o ns p e c i f i c a t i o nl a n g u a g e ) 等。 2 3 1 元对象设施m o f m o f 是o m g 在1 9 9 7 年发布的一个标准,它为元模型定义了一种通用的、抽象的语言, 是定义元模型的标准1 。m o f 是定义建模语言的语言,即m d a 用m o f 作为定义建模语言的抽 象语法。如u m l 和c w m 是用m o f 定义的,也就是说,u m l 和c w m 的元模型是用m o f 描述的。 同时m o f 是用m o f 自己来描述的,所以m o f 是自描述。m o f 提供了一个存储模型的数据库, 同时,还提供了一个定义模型的基础结构集和一种查看模型的标准方法。m o f 规约作为一 种公共基础,提供了模型元数据互交换和互操作的基础,是模型在x m l 分析中的机制。另 外,m o f 还定义了独立的编程接口( 由c o r b a i d l 定义) 。但是理解m o f 的应用程序员不必 4 南京信息工程大学硕士学位论文 了解模型实例中特定领域接口的任何知识,就可以通过这些接口实现模型的操作,也能利 用反射接口( r e f l e c t i v ei n t e r f a c e ) 的一般操作来读取和更新模型。 m o f 是一个最纯粹的m d a 应用,同时也是一个表达元数据的概念体系结构或框架,一 个元数据的对象是一个对象被用于表示元数据,元数据的对象简称为元对象( m e t a o b j e c t ) 。m o f 的体系架构中包含4 个元层次,分别被命名为m 3 、m 2 、m l 、m 0 。如表2 1 所 示。 元层次描述元素 元一元模型层,即由m o f 定 m o f 类,m o f 属性,m o f 关联 m 3 义元模型的构造集合 等 元模型层( 元_ 元数据) ,m o f m 2 u m l 元模型,c w m 元模型等 定义元模型的构造的实例 模型层( 元数据层) ,兀数据 m 1 实际上描述了信息的模型实u m l 模型,c 1 j l m 元数据等 例 数据层,即m 1 模型构造的实 m o 数据,对象,实例 例 表2 1m o f 的体系架构 类和对象模型( m o 层) ,描述的是具体应用中的数据。在特定数据库中表示某个表的 实例。例如,职工信息表中某个职工基本信息,即职工信息表中的一条记录:在应用程序 中表示为类和对象,对象是类的运行时实例。 模型层( m 1 层) 是描述目标数据的元数据,规范和定义m 0 层。在特定数据库中表示 为特定的表、特定表的约束主键、外键等特定表的结构等。例如,学生表的结构,即学生 表中包含哪些列,以及各个列的数据类型等。 元模型( m 2 层) 即元一元数据层,包含了定义模型层的元数据,定义m 1 层中元数据 的抽象语言。在m o f 中一个模型由元一元数据构成时被称为元模型:在数据库系统中,表 示为特定数据库中表结构的定义、列的定义、主键的定义和外键的定义等,u m l 元模型定 义的u m l 建模时使用的元素,如:类,操作,属性,关联等等。 元一元模型即m o f 模型( m 3 层) 层,定义了表示元模型层的抽象语言。理论上,还可 以进一步抽象,但由于m o f 模型是自描述的,即m o f 可以描述m o f 本身,所以模型的定义 只到这个层次而无需更多层次,它可以将不同的u m l 元模型组合,也能用于链接不同数据 库系统中的数据库。 m o f 语义一般定义元数据仓库服务( m e t a d a t ar e p o s i t o r ys e r v i c e s ) ,这些服务支持 模型构造、发现、遍历和更新,而这些模型被理解为特定元模型的实例。特别的,m o f 对 于模型生命周期语义的支持意味着当与可视化建模支持结合时,一个m o f 将提供有效的元 5 南京信息工程大学硕士学位论文 数据授权和发布工具( m e t a d a t aa u t h o r i n ga n dp u b l i s h i n gt 0 0 1 ) 。例如,一个新开发的 元模型可以在m o f 仓库中维持并且与已有元模型通过m o f 生命周期和组合语义( 继承、闭 合、嵌套等) 来结合。这样,可以产生模型接口和默认实现并且对环境可见。默认实现可 以通过蕴含额外的编程逻辑来增强,这些编程逻辑是手工书写或者由工具产生( 例如o e l 约 束的实现) 。一个完整的遵从m o f 的仓库提供相当多的元数据服务。 m o f 从u m l “借”来了面向对象类建模结构,并将其作为描述建模结构的抽象语法,也 就是作为元模型的抽象语法。因此,m o f 元模型看上去就像u m l 类模型,你可以使用u m l 类建模工具创建它们。通过m o f ,建模结构被构建成类模型,结构的属性对应于类的属性。 构造间的关系对应于关联。 由于m o f 定义元模型的结构来自于u m l ,所以m o f 本质上是面向对象的。但是m o f 可 以用来定义非面向对象的元模型,如应用m o f 描述简单数据建模的简单元模型,它使用m o f 描述t a b l e ( 表) 和c o l u m n ( 列) 有一个公共的n s i n e ( 名字) 属性。 m o f 不仅用于定义建模语言,还可以让人们创建定义建模语言的工具。因此。m o f 提供 了一些额外功能。m o f 定义包含了一个m o f 仓库接口的规约,这一接口是用c o r b a i d l 定 义的,允许我们从基于m o f 的仓库获取m l 层模型。m o f 还被用于为m 1 层模型定义基于流 或基于文件的交换格式,该交换格式是基于x m l 的,简称为蕊i 。每当用m o f 描述的元模 型定义了一种建模语言,m o f 就定义了一种生成用该建模语言描述的标准模型交换格式。 为了保持和u m l 语言与体系结构的一致性,m o f 共享了u m l 的核心语义,并与u m l 一 起构成了m i ) a 建模体系结构。m o f 为了保持和u m l 的一致性,从m o f 中引入了包括c l a s s e s 、 a s s o c i a t i o n ,d a t at y p e ,p a c k a g e s ,c o n s t r a i n t sa n dc o n s i s t e n c y ,c o n s t a n t s , e x c e p t i o n s 、t a g s 在内的相关概念,它们和u m l 中对应术语具有相同语义,但u m l 中描述 的对象是模型中的元素,而m o f 的建模对象是m e t a d a t a 。 m o f 在定义三种基本映射( 抽象映射、i d l 映射、x m l 映射) 的同时,也定义了用于映 射其他非m o f 框架的基本结构,用于定义和处理元模型以及它们所对应的模型之间的互操 作。m o f 中具有互操作能力的元模型包括u m l 元模型、m o f 元元模型,同时也包括将来被 o m g 采纳的用元元模型规约的元模型。 2 3 2 统一建模语言u m l u m l 融合了b o o c h ,o m t 和d o s e 等方法中的基本概念,并明确定义了一套公共的内部 概念,建立了统一的关于建模语言的元模型,被o m g 接受成为的一个通用的、可视化建模 语言标准,可以用来描述、可视化、构造和记载软件密集型系统的各种工件。 在这里我们首先简单的介绍一下u m l 语言中基本的概念,和如何建模的。对于一个想 要描述的系统,其类模型和对象模型揭示了系统的结构。在u m l 中,类和对象模型分别由 类图和对象图表示。 ( 1 ) 类图:类图( c l a s sd i a g r a m ) 描述类和类之间的静态关系。与数据模型不同, 它不仅显示了信息的结构,同时还描述了系统的行为。类图是定义其它图的基础。在类图 的基础上,状态图、合作图等进一步描述了系统其他方面的特性。 6 南京信息工程大学硕士学位论文 ( 2 ) 类和对象:对象( o b j e c t ) 与我们对客观世界的理解相关。我们通常用对象描述 客观世界中某个具体的实体。所谓类( c l a s s ) 是对一类具有相同特征的对象的描述。而对 象是类的实例( i n s t a n c e ) 。建立类模型时,我们应尽量与应用领域的概念保持一致,以使 模型更符合客观事实,易修改、易理解和易交流。类描述一类对象的属性( a t t r i b u t e ) 和 行为( b e h a v i o r ) 。在u m l 中,类的可视化表示为一个划分成三个格子的长方形( 下面两个 格子可省略) 。u m l 规定类的属性的语法为:可见性属性名:类型= 缺省值 约束特性) 。 不同属性具有不同可见性。常用的可见性有p u b l i c 、p r i v a t e 和p r o t e c t e d 三种,在u m l 中分别表示为“+ ”、“一”和“# ”。 ( 3 ) 关联关系:关联( a s s o c i a t i o n ) 表示两个类之间存在某种语义上的联系。例如, 一个人为一家公司工作,一家公司有许多办公室。我们就认为人和公司、公司和办公室之 间存在某种语义上的联系。在分析设计的类图模型中,则在对应人类和公司类、公司类和 办公室类之间建立关联关系。 ( 4 ) 继承关系:人们将具有共同特性的元素抽象成类别,并通过增加其内涵而进一步 分类。 ( 5 ) 依赖关系:有两个元素x 、y ,如果修改元素x 的定义可能会引起对另一个元素y 的定义的修改,则称元素y 依赖( d e p e n d e n c y ) 于元素x 。在类中,依赖由各种原因引起, 如:一个类向另一个类发消息;一个类是另一个类的数据成员:一个类是另一个类的某个 操作参数。如果一个类的界面改变,它发出的任何消息可能不再合法。 ( 6 ) 约束:在u m l 中,可以用约束( c o n s t r a i n t ) 表示规则。约束是放在括号“ ) ” 中的一个表达式,表示一个永真的逻辑陈述。在程序设计语言中,约束可以由断言 ( a s s e r t i o n ) 来实现。 ( 7 ) 包:一个最古老的软件方法问题是怎样将大系统拆分成小系统。解决这个问题的 一个思路是将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。 这个思路被松散地应用到许多对象技术中。u m l 中这种分组机制叫包( p a c k a g e ) 。 u m l 融合了众多建模方法的长处,扩展了建模方法的应用范围。在软件开发过程中, 从分析、设计、实现到部署都可以u m l 来进行可视化建模。u m l 作为o m g 的可视化建模语 言,已经成为信息模型的标准。u m l 不仅有反映系统结构的静态模型,还有表现系统行为 的动态模型,语义表达能力十分突出。静态模型和动态模型可以相互验证,这就为模型的 正确性提供了保证。u m l 还内置了扩展机制,允许建立特定的、基于u m l 的语言h 1 。这种扩 展机制被称为u m lp r o f il e 。在u m l 中,构造型、标记就属于u m lp r o f il e 。这是适应对复 杂的客观世界建模的需要,也增加了u m l 建模的灵活性。定义上述模型和扩展机制的u m l 元模型则比较复杂,由近九十个元类( m e t ac l a s s ) 、一百多个元关联( m e t aa s s o c i a t i o n ) 和近五十个型板( s t e r e ot y p e ) 组成埔。元模型通过逻辑包将它们组织起来,并具有高聚 合低耦合的特点。u m l 元模型的项层由三个包组成:基础包、行为元素包和模型管理包。 其中基础包为描述软件系统提供最基本的支持,可分为核心包、辅助元素包,扩展机制包 和数据类型包。行为元素包定义u m l 行为建模的超结构,可分为通用行为包、合作包、用 例包和状态机包。模型管理包定义模型元素如何组织成模型、包和子系统。 7 南京信息工程大学硕士学位论文 在m d a 的体系结构中,u m l 是一种十分重要的元模型。使用m i ) a 技术创建的所有应用 程序都基于标准化的、平台独立的u m l 模型。通过将这一通用的、被普遍接受的建模标准 作为杠杆,m d a 使得开发人员可以创建能被轻便地访问、天生具有良好地互操作性地应用 程序。其优点有: ( 1 ) 将抽象语法和具体语法分离,可以用图形或者文本方式表达模型而且在图形和文 本之间地转化不会带来语义损失。图形化的表达能力有利于人的理解,文本方式的表达则 有利于自动处理,i i m l 在这两方面都有优势。 ( 2 ) u m l 的另一优点是具有内置的扩展机制,该机制允许建立特定的基于u 札的语言, 这种机制能够反映系统动、静态结构与功能。这种强有力的语义表达能力可以有效地减少 建模过程中的信息失真。 ( 3 ) u m l 对p i m 和p s m 都有良好的建模能力。u m l 的特点决定了它对p i m 的良好支持; 而对于p s m ,u m l 可以通过内建的扩展工具来表述平台特有的语义。较强的可视化能力也是 建立p s m 的保证。 u m l 独立于任何一种开发过程,但支持过程。u m l 的重点是标准建模语言,不是标准过 程。虽然u m l 的应用必须与过程相关,而不同的组织和问题域要求不同的过程。u m l 的开 发者提出的开发过程是以用例驱动、以体系结构为中心、迭代递增的过程,这可以说是一 个元过程引。 2 3 3 公共仓库元模型c w m c w m 是建立在u m l ,m o f ,x m i 工这三种规范基础之上的。u m l 提供了一个表示模型和元 模型的语法和语义。m o f 标准定义了为元数据定义模型的一个可扩展结构,并且提供工具 为存取存储元数据的程序接口。煳i 标准使得可以以流或x m l 文件的形式交换元数据。 c w m 是用来对数据仓库( 包括关系型、非关系型、多层系统等) 中的元数据进行建模 的规范,它为数据仓库、数据挖掘领域内的元数据定义了对应的元模型,为在分布式异构 环境下为数据仓库工具、数据仓库平台和数据仓库存储建立一个商务智能元数据的交换机 制。c w m 规范是由一系列表达数据来源、数据分析和数据仓库管理等元模型组成n 驯。 每种产品表示元数据的方式不尽相同,他们都有自己的内部格式,因此它们之间元数 据的共享就必然存在障碍。c w m 代表了基于模型的在软件系统间交换元数据的一种新途径。 在多种产品间共享的元数据将会使用数据模型来表示,而这些数据模型则使用c w m 元模型 来精确描述。某种产品将自己的元数据( 使用内部格式表示) 导出为使用c w m 描述的元数 据,另一种产品将其导入,构造出c w m 兼容的模型并映射到自己的内部格式,这样就达到 了元数据共享的目的。 2 3 4x m l 元数据交换x m i x m i 的主要目标是使在分布式异构环境下的建模工具和基于m o f 元数据储存之间更加 容易地交换数据1 。x m i 定义了x m l 标一记如何表示序列化的兼容m o f 的模型。基于m o f 的元模型被转换为di d 或者x m ls c h e m a ,模型根据其对应的d t d 或者x m ls c h e m a 被转换 为瑚l 文档。 8 南京信息工程大学硕士学位论文 应用x m i 规范,可以更加容易的完成以下的任务: ( 1 ) 组合异构环境中的工具。能够有效地实现一个企业地系统解决方案需要使用不同 来源地工具,这些工具往往基于不同的技术和软件平台,完成不同的功能,不仅仅是建模。 如果各种工具能够对x m l 格式兼容,就可以有效地组合这些工具,由于x m i 本身不但包含 了信息本身,而且包含了信息的结构和部分语义,这样工具就可以更好地解释信息的内容。 ( 2 ) 用共同的元模型互操作。两个工具之间能够交换的信息范围有赖于它们对信息的 共同理解,如果它们基于同一个元模型,例如u m l 元模型,那么所有的信息都应当可以被 相互理解和交换。事实上,即使在同一个公司的产品中要做到这一点都是很困难的,因为 工具往往只共享了元模型的一个子集,同时各自有一些扩展。x m i 建立在定义元模型的标 准的m o f 的基础上,使用x m i ,可以对一个元模型的m o f 定义应用x m i 生成规则得到的元 模型的x m ld t d ,这样可以保证同一个元模型对应到同一个x m ld t d 上。 x m i 的自描述和天生的同步特性使得基于x m i 交换在分布式的、异构的环境中很重要。 2 3 5 其他相关标准 2 3 5 1 对象约束语言0 c l o c l u 2 1 是由i 既公司提出的u m l 规范的一个子规范,该规范同u m l 标准一样是由o m g 组织负责制定的。它是一种指定约束和查询的语境相关语言。它不是用于编写动作或可执 行代码的,而是用于编写导航表达式、布尔表达式和其他查询语句。o c l 通过在模型中构 建约束表达式、监护条件、动作、前置条件和后置条件和其他u m l 表达式等使模型更精确 和完整,从而生成更加完整的目标模型。用o c l 写的表达式依赖于u m l 图中定义的类型( 如 类、接口等) ,并在面向对象模型和其他对象模型中增加了至关重要的信息,这些信息通常 不能在图中表达。定义查询、参考值或规定条件和业务规则都是通过写表达式来完成的。 2 3 5 2 动作规约语言a s l a s l 是一个平台无关的行为语言,通过它可以建立可执行模型。这个语言已经由 k e n n e c l vc a r t e r 公司发布,开发人员可以随意使用。a s l 是满足“p r e c i s ea c t i o n s e m a n t i c s ”u 钉的,它是u m l 标准的一个扩展。 a s l 提出的目的是利用面向对象的建模技术建立无二义的、精确的和适合阅读的可执 行过程。a s l 主要支持以下行为语义: 各种程序结构逻辑,如:顺序结构,条件结构语句,循环结构语句等。 基于u m l 类图描述的对象的数据的操作。 基于对象之间信号的数据的操作。 支持信号生成、发送的语义。 对于时间的操作。 支持类和对象之间的同步操作。 支持域之间的操作调用。 支持模型的测试和转化。 a s l 也被用作详述模型执行的初试条件以及外部测试激励,另外,还提供了允许模型 9 南京信息工程大学硕士学位论文 访问已有的代码和其它平台相关的模型的功能。 2 4m d a 的开发过程 m d a 的软件开发思想不是突然出现的,它是在对已往的软件开发方法不断总结基础上, 进步的创新。它吸收了快速原型法的原型的思想、极限编程的快速的思想,继承了流行 的r u p 开发过程的分析、设计思想,在此基础上,继续提升模型的抽象层次,使得模型与 系统的最终实现紧密地结合在一起。基于m d a 的开发过程的最大优点就是创建一个p i m , 但可以生成多个平台相关的模型。m d a 的主要开发过程,与传统的软件开发模式有很大的 区别。传统的软件大都是以代码为中心的,而m d a 开发模式是以模型为中心的。在m d a 软 件开发开发过程中,最重要的是建立可执行的模型。每个模型都由开发过程中特定的人员 来完成。需求分析员为业务组件和应用程序创建c i m ,他们具有某领域技术背景。应用工 程师开发业务组件和应用程序,他们

温馨提示

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

评论

0/150

提交评论