CSDN博客

img earnestliu

模型驱动开发

发表于2004/3/1 10:01:00  1384人阅读

OptimalJ:模型驱动开发如何提高生产力

介绍:

OptimalJ是一个高级的企业级应用开发环境,它使用成熟的模式(Pattern) 直接从可视化模型生成全面的、可运行的J2EE应用系统,实现了最好的实践经验并基于J2EE规则编写代码。使用OMG的模型驱动架构标准,OptimalJ帮助简化开发,使架构师、设计人员和开发人员快速开发可靠的应用系统。

OptimalJ以五个关键基础概念为特性,将在一系列的技术白皮书进行讨论它们。

1、模型驱动开发 如何提高生产力

2、商业规则 如何适应商业的快速变化。

3、模式 如何转换UML模型为高质量的J2EE应用系统。

4、动态同步 如何确保模型和代码的一致性。

5、集成部署 如何简化测试。

在阅读技术白皮书系列之前,我们强烈建议您访问如下网址-http://www.compuware.com/products/optimalj/detail.htm,以便对OJ有一个的整体概念和理解MDAOptimalJ中的作用。

模型驱动架构(MDA)的重要性

在领导优良应用系统的部署中,建模是核心过程之一。建模是为了传达系统应包含的结构和行为;建模为了可视化系统架构并能掌控它;建模为了更好地理解我们正在建立的系统;建模经常揭示简化和重用的机会;建模为了管理风险。

 

然而,当今建模面临的问题是模型在许多组织中是基于书面的一项活动。这便产生了模型间的同步问题,即应用系统蓝图和应用系统本身。因为应用系统被更新而模型没有变化,模型仅仅作为文档 (perspective)是没有用的。

 

关键是在建模和开发间的鸿沟间搭建桥梁,使建模构成整体所需要的一部分。OMG的模型驱动架构是志在解决此问题的框架,在此框架中模型驱动开发进程。MDA远景定义了一个详细说明和构建系统的新方法,用UML作为基础建模。MDA扩展了UML以前仅仅是漂亮图片的作用。

 

统一建模语言(UML)

UML是用于MDA的关键技术标准之一。MDA是以OMG为主导的,康博公司(Compuware)是该组织的成员之一。UML是一个标准化的图形语言,可以可视化浏览、详细说明、搭建和文档化一个软件系统的模型。UML给出了一个描绘系统蓝图的标准方法,涵盖了概念性和具体事物,概念如商业流程和系统功能,具体如用特定程序语言熟悉的类,数据基础大纲和可重用的软件组件。UML是一个被广泛采用的标准,它代表了从十多年软件系统建模的经验总结的最好的实践和经验。建模有如下几个主要优点:

l         提供了应用系统架构和行为的概要视图。

l         便利对象和规则的重用。

l         确保了开发过程的一致性。

l         运行独立实现,这样当变化(如基础技术架构)发生时,模型保持有效。

模型驱动开发实践

OptimalJ是一个以MDA为基础的模型驱动开发环境,它结合企业标准建模技术和在UML中使用的符号,用来设计和开发企业J2EE应用系统。

OptimalJ允许设计和开发人员在更高的抽象层次上进行开发,从一开始就减少J2EE平台和复杂性。从建模到部署,在OptimalJ中的应用开发都是模型驱动。OptimalJ通过可视化模型确保定义和重用。模型驱动开发范例允许设计和开发人员集中在做什么,而不是如何做。

OptimalJ域模型的定义

OptimalJ高级模型驱动开发环境的核心是以UML为基础的域模型(Domain Model)。域模型是一个高层次的对象模型,包含应用系统的信息结构和行为以及不同数据结构间的关系。域模型是一个商业为中心的模型并调整商业信息的集成,它不关注技术细节并和OMGMDA中的平台无关模型(PIM)对应。换言之,域模型不包含实现和代码细节,例如不包含实现应用系统所必须的技术类。开发和完善域模型时,OptimalJ允许设计人员以声明方式定义商业规则,例如初始值的设置和级联删除约束。域模型的所有定义在低层的应用模型和实际的代码中被重用和继承。设计人员在域模型定义的内容越多,从域模型自动生产的内容越多。1

域模型层将设计人员和底层的实现细节隔离,让他们将工作重心集中在应用系统的功能而不是J2EE平台的具体实现细节。而且,设计人员能够在模型层快速修改。

       OptimalJ在域模型标识两种模型:域类模型(Domain Class Model)和域服务模型(Domain Services Model)

       域类模型定义应用系统运行依赖的信息结构,例如客户、订单、产品和它们的属性、关系、集成、商业方法( 操作)和商业规则。

       域服务模型以独立实现的方法定义应用系统的交易,例如订单登录、根据订单开发票、订单发货和其他典型的商业任务。服务模型的关键优势是它能生成自动生成会话组件(Beans),会话组件的典型特征是定义应用系统的行为。

域模型的可视化

编辑域模型可以在图形化的域模型编辑器或模型资源导航器中的中进行。

域模型编辑器在网格上显示所有的类和它们的关系。类图以UML符号为基础并包含属性和操作。关联端用一个数字和象征性的符号显示多重性。一个小菱形标识聚合关系。你可以在类编辑器中将类图放大、缩小或移动,也可以通过小拇指视图以及布局管理方便地浏览类图。在许多种情况下,结构或模型已经存在,此存在的结构或模型可以作为域模型的开始点。例如,已经存在的某种UML模型工具定义的模型或客户已经使用的包含数据关系的数据库,可以在域模型中重用。OptimalJ提供了UML/XMI导入/导出工具,域模式和DBMS导入工具来处理这些情境。

 

 

UML/XMI 导入/导出工具

当设计人员用第三方UML建模工具,例如Rational Rose,他们尽可能从建模阶段重用以有效地利用以前的工作成果。在以UML为基础的建模有几个阶段,每个阶段有不同的模型活动。范围从在概念阶段的高层分析到最终的单个组件的细节模型。当模型完成时,最终产生可用的类模型。类模型可以导出为XML元数据接口(XMI)文件。用OptimalJUML/XMI导入/导出工具,XMI文件能够移植到OptimalJ的域模型。一旦导入完成,用OptimalJ的域模型编辑器可以查看、扩展和修改域模型。另外,如果创建或更新域模型时,在必要情况下可以通过导入/导出工具和其他建模工具交互。

域模式(Domain Patterns)

UML建模是一个费时和复杂的过程。OptimalJ通过域模式简化这个过程。域模式帮助设计人员创建可以重用的的模型,加速建模阶段并减少错误。因此,域模式加速新模型的创建。域模式可以将模型拷贝到空的目标域模型或同已经存在的域模型进行合并。在OptimalJ中,这个过程称为模式组合。在模式组合时,从源域模式可以继承和合并关联和属性。

域模式用新建域模型相似的方式创建,但与域模型不同的是,域模式在域模式库中创建。模式库保存、分组和组织域模式,用一个完全兼容的UML/XMI格式做为域模式模块。

域模式给设计人员带来了一些关键优点:

1.         设计人员能够在不同应用系统间重用域模型或域模型的子集,以此减少在建模阶段的错误。

2.         域模式强制设计人员基于标准和最好的实践用一致性的方法为应用系统建模。

3.         域模式增加了建模阶段的生产力。

DBMS导入工具

OptimalJ中客户可以重用已经存在的数据库。如果该数据库能通过JDBC驱动访问,分类文件能够导入到应用模型层的DBMS模型。OptimalJ通过“关系型到面向对象”的镜像模式,自动转换DBMS模型到域模型。在正常情况下,首先,定义域模型,然后从域模型产生DBMS模型,但在导入情况下,以重用已存在的数据库做为应用系统的基础。

 

OptimalJ应用模型的来源

一旦第一次域模型迭代完成,OptimalJ自动转换域模型到应用模型。OptimalJ的应用模型对应于OMGMDA的对象相关模型(PSM),应用模型目标集中在J2EE平台。从域模型到应用模型的镜像和转换由OptimalJ的技术模式2来处理。

产生的应用模型包含三种模型:

l         展示(WEB)模型

l         业务逻辑(EJB)模型

l         数据库(DBMS)模型

为了完成J2EE应用系统,应用模型定义了开发J2EE所需的内容。模型展示了由每一层构成所有J2EE组件的概要视图。用这种方法,当技术方面软件升级和变化时,而从商业方面的域模型却可以保持不变。

展示(WEB)模型

产生应用系统WEB前端需要的信息包含Web模型。通过编辑代码模型中模版、层叠样式表单(CSSs)JSP页面,你可以修改自动生成应用系统的外观(Look and feel)。镜像模式从域模型生成WEB模型,自动镜像域模型的元素到WEB模型的元素。在WEB模型的重要元素有:

l         web模块(modules)――web组件的包容器。

l         web数据大纲(Data Schema)――定义了一个数据类的集合

l         web组件――定义了指定数据类集合的用户接口

l         web验证组件――为应用系统定义验证方法

web展示类型――定义展示和校验

开发人员能根据向导(wizards),以声明的方式尽一步精制(refine)Web模型。精制的一个例子是用户接口的扩展。因为布局和格式化属性仅能在WEB模型层定义,OptimalJ确保这些属性在全部应用系统内保持一致。使用在不同展示组件如JSP页面的一个属性,继承在这个模型中定义的布局和格式化方式。因为以一种声明的方式进行许多精细,使展示组件开发更快速。定义在模型中格式化和布局属性,最终体现在生成的代码中。

因为有变更时仅需要在应用模型修改一次,系统的维护变的更为容易。当精细WEB模型元素的属性时,开发人员对他们的配置有更多的想法。这包括设置日期或数字格式、选择大小写的转换、对一个元素的HTML类型和设置某种HTML属性,包括层叠式表单。另外,开发人员可以在OptimalJ用正则表达式去建模数据校验(如特定格式的校验)。定义后的属性将传导到在展示层产生的源代码中。

商业逻辑模型

企业Java Bean模型是中间件层,处理如交易、安全性、持久性和可扩展性。它是代码模型之上的抽象层。

 

OptimalJ用包含在域模型的定义产生EJB模型,包括应用系统实体和会话组件的模型元素。EJB模型包括实体组件、数据大纲、主键类和其他EJB相关的组件。

 

虽然域模型驱动开发过程,开发人员能够扩展由域模型产生的EJB模型,可以定义附件组件如查找、商业、Home和选择方法等。

 

 

0 0

相关博文

我的热门文章

img
取 消
img