使用方面建模使用方面建模:使用方面进行建模介绍使用方面进行建模介绍
介绍
模型驱动开发
面向方面的技术
面向方面技术和模型驱动开发
哪些已经被完成
面向方面建模用模型驱动开发(MDD)的方法来简化面向方面的开发。这种面向方面建模的方法包括在设计时使用面向方面的
关键字注释UML面向方面模型单元以用于访问横切关系。特殊目标环境的面向方面代码在从UML到目标转换(target
transformation)时生成。文章的以下部分将引入用于MDD架构的面向对象设计,它为使用IBM? Rational? Software
Architect(以后简称,Software Architect)的AspectJ 和Java开发团队提供了一种新的软件开发方式。此构架可以让使用者
很方便地为应用程序里的多种横切关系封装他们自己的基于AspectJ的机制,这些横切关系可以在设计建模期间引入到一个应
用程序中。
介绍介绍
面向方面技术是对用于访问横切关系却不破坏对象的面向对象编程的一个重要补充,现在,支持应用面向方面的工具越来越
多,最有代表性的例子是AspectJ Development Tools (AJDT) Eclipse 项目,它提供了支持AspectJ的工具,因此面向方面所
带来的好处也被更深入地了解。但是,为了能够利用此项技术,开发者仍然需要学习一种新的编程语法和方式。
面向方面建模使用模型驱动开发(MDD)的方法用来解决这个问题。建模者/开发者可以将面向方面技术应用于UML模型(典
型的是类图)并且在UML 到 Java?转换的同时生成 相应的 AspectJ。建模者/开发者不需要了解任何有关面向方面技术的的知
识,而仅仅需要制定将哪个方面应用到这个模型中去。
模型驱动开发模型驱动开发
UML为设计师和开发者提供一个为面向对象系统和它们内部之间交互过程实现可视化的方法。如IBM? Rational Rose? 和
Software Architect这样的建模工具了提供丰富的建模环境。
简单的说,模型驱动开发就是通过使用抽象的模型进行软件开发。应用软件和系统的模型在不同的抽象级别中创建,并且通
过自动或人工的方式驱动低抽象级别的模型进化(图1)。这种软件开发方式的模型被认为是开发流程的一流工件。他们就好
像软件开发活动中的源代码一样以位为单位。
图图1. 应用软件开发项目中的典型模型应用软件开发项目中的典型模型
这个模型提供了一种关注应用软件中特定部分的关系而不依赖于其它关系的机制。比如,数据模型总是和持久数据(对象状
态)以及它的结构有关。它与用户界面的动态行为无关,甚至和事务逻辑行为也无关。选择开发进程的不同模型种类来匹配
特定的任务和行为,因此所有工作通常只关注分派任务的领域。这不仅让开发团队成员成为专家并且定义了一个分离工件和
过程开发的方法。
例如,一个保留的用于事务应用程序的用例可以提供一个关于此用例的文本描述(易读的)。这个描述可以让团队中不是此
技术领域专家的成员看懂。分析师可以使用呈现出应用程序行为的对象来对系统进行描述。在模型中使用包含保留实体的详
尽规格和控制器类(用于实体管理)的程序表和类表把它们纪录成文档。这个被分析模型驱动的设计模型可以使用 EJB的多
种接口实体,实现类,部署描述符以及对实现设计所必需的具体工件来实现实体。
设计模型抽象级别中,源代码的差别是很小的,以至于现成的代码生成器(转换)可以把模型转为源代码和配置文件,如图2
所示。甚至在某些场合可以生成(当特定设计模式已被应用)行为(方法实体)。
图图2. 将模型转换为代码将模型转换为代码