基于MDA的软件设计和实现研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由PIM映射成PSM时产生了三个平台相关模 型:展示(WEB)模型,业务逻辑(EIB)模型和数据库 (DBMS)模型。
Web模型展示了在最终生成的Web页面中将 要实现的各功能模块及其相互关系。镜像模式自动 映射域模型的元素到WEB模型的元素。WEB模型 的主要元素有:web组件的包容器、web数据大纲 (包括关联和数据类)、web组件(定义了指定数据 类集合的用户接口)、web验证组件(为应用系统定 义验证方法)。为了保证系统安全以及管理系统不 同角色对组件的操作权限,我们定义了web验证组
逻辑、技术进展相分离的软件开发思维模式。这种 开发方式实现了模型在不同平台中的复用,开发人 员只需考虑和业务逻辑相关的模型设计,而模型到 应用的实现是和业务无关的、可重复的、低层次的 工作交由机器来实现。
具体而言,IVlDA是建立在UML之上:支持应 用开发的完整生命周期,即支持应用软件从分析、 设计、实现、部署、维护、演进以及与遗留应用的 集成的全过程。基于MDA的思想,可以集成不同 的程序设计语言、操作系统、网络协议和构件技术 开发的应用。其核心技术包括: 1.1统一的元数据管理框架
模型在MDA中是可执行的,是能够产生产出 的。在传统软件开发中,模型被看作是设计工件, 主要用来作为交流工具,把3GL代码程序看作开发 工件。但这样的模型所传达的信息是不够完整的, 非正式的和不够精确的,甚至有些时候自相矛盾。 但当模型被用作自动生成工具的输入时,就要求模 型具有足够的精度,包含系统实现的全部细节。然 而,单纯的图形表示是无法做到这一点的,它需要
WEB模型、EJB模型和DBMS模型的代码可 以分别生成或一次全部产生。OptmlaU用它的动态 同步工具,确保模型和代码一直保持同步。由工具 产生的全部代码放置在保护块里,所有开发人员不 能修改。同时Optm:1alJ还提供了自由块,使开发人 员能够增加对生成代码的扩展内容。
3经验总结
MDA的开发过程最大的变化就是将传统的以 “代码”为中心的开发工作改变为以“模型”为中 心的开发工作,所以MDA开发平台所要实现的就 是代替原来的代码开发中的IDE等开发工具,创建 一个“模型转换器”,将管理软件的研发生命周期 中的各种模型(需求、分析、设计、实现、测试) 按统一的过程进行自动的翻译和转换,直接编译为 可以部署的应用系统。
MDA根据多种模型共存的需要,在不同的建 模结构集上又增加了一个抽象层次,统一描述各种 建模结构,提供了管理不同元数据的统一框架。这 样在元数据管理中就获得了相当程度的共性,而不 损及使用彼此迥异的建模语言能力或者引入新型 建模语言的能力。元数据的管理和集成可以使用 OMG的一系列标准来完成:元对象设施MOF、公 共仓库元模型CWM、统一建模语言UML和Ⅺ咀。 元数据交换XMI。其中最重要的是MOF,它是MDA 的核心部分。 1.2精确建模
信息系统协会中国分会第一届学术年会
基于MDA的软件设计与实现研究木
郭宁 (首都经济贸易大学信息学院,北京100026)
文摘t模型驱动架构技术(MDA)使得应用程序和开发工具能够跨越中间件的边界,从而更容易地实现软件系统 的集成与开发。该技术将业务逻辑功能和行为定义为一个代表分析结果的平台无关模型(PⅡ垤),然后生成代表设计
域服务模型以平台无关的方式定义了应用程 序的事务、信息的动作类型。服务模型的关键优势 是它能自动生成会话组件,会话组件的典型特征是 定义应用系统的行为。域服务模型最主要的元素包 含属性、操作和域视图。为了实现用户登录,我们 定义验证密码域服务loginCheckService,它包括 public boolean equalpassword0域操作,用于判断用 户名和密码的正确性。 2.3建立P跚模型
此种建模语言应该能够提供各层次模型之闻 的映射。
目前一般采用UlVIL对系统建模。通过将基于 标准化的、平台独立的UlVIL建模标准作为杠杆,
姗A使得开发人员可以创建能被方便地访问、具
有良好的互操作性的应用程序。对象约束语言oCL 是统一建模语言UML标准的~部分,它是一种施 加于模型元素的约束语言。OCL的表达式以条件和 限制的形式,附加在模型上,为实现可执行的模型 提供了可靠的途径。OCL的基本元素包括不变量声 明、前置条件、后置条件、操作内容表达式等。大 量的不同的图形和OCL表达式可以被结合起来表 示模型。UML和OCL相结合实现了MDA模型的 可执行性,保证UbR./OCL模型与生成的软件产品 之间的一致性,使软件开发过程的成熟度级别得到 了一个整体的提升。 1.3模型转换技术
’作者简介t郭宁(1958),女(汉.北京.副教授.
疆佰联系人:郭宁.E-nmih秘∞@伽西.劬1.∞
l弘
更为精确的、可以被机器理解的语言来补充说明。 适合MDA的建模语言需要提供:足够的表现力, 可以完整地说明系统,这既包括系统的静态信息也 包含系统的动态信息;一种通用的、不是特定于某 种应用的语言;适合于多层应用程序开发和分布式 应用程序开发。
下:
2.1 建立需求用例模型 首先建立该系统的用例模型,明确描述系统的
功能与范围,描述系统外部的执行者与系统提供的 各类用例之间的关系等。 2.2建立域模型(PI瓤)
在这里以创建选课管理的域类模型为例,说明 域类模型和域类服务的建立过程。域类模型侧重于 描述系统的静态结构,域服务模型则侧重于业务规 则的实现,描述系统的动态特征。通过分析我们识 别出与选课管理相关的类包括:课程类、用户类(包 括学生类、教师类、管理员类)、选课表类、课程 类、教室类和校区类等。在识别了问题域中各个类 之后,通过采用职责驱动的方法为类分配相应的操 作。
1 MDA的基本思想
IVIDA认为系统开发的最好方法是提高系统的 抽象层次,隔离系统设计和系统实现,独立建模业 务行为,从而克服软件复杂性所带来的困难。它将 软件系统的模型分离为与具体实现技术相分离的 平台无关模型PIlVl(Platform-lndependent Model, 代表分析模型)、加入实现平台技术的平台相关模 型PsM(Platform-Specific Model,代表设计模型) 和代码模型(即实现模型),同时又能通过转换规 则将它们统一起来,从而实现由模型直接转换为可 执行代码的过程。它是一种旨在使业务逻辑和应用
l晒
信息系统协会中国分会第一届学术年会
件来实现系统登录。WebAuthenticateComponent有 两种登录方式,一种是服务器验证登录;一种是用 户自己来定义Java类及验证方法的实现。如果定义 了WebAuthenticateComponent,在生成代码时,就 会自动生成登录时所对应的授权组件的应用程序 WEBAuthenticationComponent.jsp。
DBMS模型。当域模型完成之后,可以从它生 成DBMS模型。数据持久性是J2EE开发的一个重 要部分,通用的方法是使用关系数据库。DBMS包 括应用程序需要的关系数据库定义集,可以看成是 各个物理表的逻辑关系图。optimaU会根据开发人 员指定的具体数据库自动生成用于创建、删除数据 库表的SQL脚本,并提供一个SQL工作台来执行 SQL脚本,它通过JDBC访问数据库。DBMS模型 中的各组件代表了物理存储的每一个表,其中包含 字段和关键字以及外键。 2.4代码生成
在op缸au中,基于UML的域模型(包括域类模
型和域服务模型)是以业务逻辑为中心的模型,跟 具体实现技术无关,与MDA的PIM模型相对应;
应用模型(包括WEB模型、聃模型和DBMS模
型)与MDA的PSM模型相对应。一旦从域模型产 生了应用模型后,OptimaU就自动产生实际的代码 完成各自模型的组件。开发教学管理系统过程如
结果的平台相关模型(PsM)和多种平台的实现。本文分析了各类模型(PIM、PSM、代码模型等)在软件系统开发
中的作用,阐述了MDA在实现教学管理系统中的实际应用,并针对MDA的局限性提出了实施MDA的改进建议。
关键词l软件工程;模型驱动架构(№~);UML;OpmnaU
随着计算机应用的深入,软件生产面临着增强 软件的柔性、灵活的应用模式、复杂的分布环境、 各种应用集成和快速实施功能等多方面挑战。传统 的软件设计方法已不能适应发展的需要。在这一背 景下,模型驱动架构(MDA)技术应运而生。MDA 是通过分离软件在特定平台上的功能实现与功能 描述,来实现业务与技术的互相分离,又通过统一 的基础应用平台使两者保持了统一。MDA是一个 开放的,中立于软件供应商的架构,它广阔地支持 不同的应用领域和技术平台,能够成为应用领域和 具体技术平台之间的杠杆。基于MDA平台独立的 思想,各类构件技术将重新融合在一起;同时,由 于业务构件的抽象性,使得企业业务模型可以独立 于构件技术而存在,大大丰富了构件的层次性,从 而为企业信息资产的积累提供了巨大的机会。此 外,按照MDA全面关注应用开发的完整生命周期 的理念,基于构件的应用开发平台和运行平台将完 美地结合在一起,为提高软件质量和软件生产效率 找到一条新的途径。
3.1 摆脱了平台技术带来的困扰 使用MDA工具进行软件开发屏蔽了具体平台
的实现细节,使我们在整个开发过程中只对模型元 素进行了创建、修改和完善,即使是代码的补充, 也可以直接从模型中找到相应方法对应的代码块 直接添加。而不用详细了解各组件之间的调用关系 以及软件架构的技术实现细节,从而降低了对开发 人员的技术要求。 3.2更好地应对需求变化
EJB模型是处理事务、安全、持久性、可测量 性的中间层模型,它是在代码模型之上的抽象层 次。在使用optimaU中,EJB组件模型是系统自动 生成的。开发人员可以通过增加一些组件来优化 EJB模型,这些组件可以是finder方法、业务方法、 Home接口和Select方法等。例如:我们可以在EJB 模型中加入学生姓名查询,按课程名称查询等操 作。我们在域服务模型中定义的Logincheckservice 被映射为Session Bean。另外,通过定义业务规则 及业务规则库中存放的业务表达式,实现对部分业 务逻辑的定义和约束。例如,为了保证学习质量, 要对学生最高选课学分进行限制。而最高限制学分 数,对不同系别、专业、学期有不同的规定。把这 种限制定义成业务表达式,有利于对动态信息的维 护和更改,而不会影响到内部代码的改变。
模型转换是指按照变换定义从源模型到目标 模型的自动生成。模型转换规则是对源模型中一个 或一些模型元素如何变换为目标模型中一个或一 些模型元素的描述。模型转换定义是一组转换规则 的集合,这些规则共同描述了源模型如何转换为目 标模型,无论源模型和目标模型是否属于同一个层 次,也不管是否使用同种描述语言。人们就是通过 定义模型转换语言来实现模型转换的。常用的模型 转换技术包括:元模型转换和标记转换。元模型转 换是建立两个元模型的模型元素之间的映射,当进 行模型转换时,根据元模型元素之间的映射来转换 模型元素,从而生成目标模型。通过定义元模型之 间的变换规则来实现PlM到PSM的转换。标记转 换是在映射规则中包含一系列预定义的标记,这些 标记用于给模型中的元素增加标注,用于指导模型 转换的过程。UML profile就是利用UML的构造型 和标记值来进行扩展的机制。为了更好的定义专用 领域模型,人们通过定义UML profile来创建专用 建模语言。例如:UML profile for CORBA,UML
模语言,更为快捷的实现了基于眦的PIM到 profile for EJB等。这些UlVIL profile作为PSM的建
PSM的映射。
2基于MDA开发实现教学管理系统
为了适应当前教学管理模式的变化需要,基于
]vIDA技术,我们开发了一个集成化的教务管理系 统。该系统包括培养计划管理、学籍管理、课程管 理、选课管理、成绩管理、教师管理、教材管理、 系统管理等子系统。在开发时我们选用了 Compuwam公司的Ol疵maU。01诵malJ是利用MDA 技术,基于J2EE平台,采用Struts模式的开发环境。
相关文档
最新文档