收 稿日期 : 2008-01-03; 修 回日期 : 2008-03-10 基 金项 目: 重 庆市 自然科 学基 金资助 项目( 2005BB2059)
作 者简介 : 葛君伟 ( 1961-) , 男, 教授 , 硕 导, 博士 , 主 要研究 方向 为软件 工程 ; 何 勇( 1980- ) , 男 , 硕 士研究 生, 主要 研究方 向为 面向方 面软 件开 发
( hugh612@ sina. com) .
基 于 UML 扩 展 的 面 向 方 面 建 模
*
葛君伟, 何 勇
( 重庆邮 电大 学 GIS 研究 所, 重 庆 400065)
摘 要: 面 向方 面编 程( AOP) 把 横切 关注点 从系 统中 分 离, 解 决 了 面向 对 象 编程 ( OOP) 中 代 码 纠 缠、散 射 的 问
题。 但在面 向方 面建 模中 , 横 切方 面没 有得 到很 好的 支 持。 首先 , 在 统一 建 模 语言 ( UML) 元模 型的 基 础 上 利 用
类图 建立了 整体 框架 模型 , 设 计了 核心 类、方面 、横切元素及 其之 间的 关系 ; 其 次, 利 用 UML 扩展机 制 为 切点 、通
知、方面等主 要元 素建 立了 新的 模型 , 设 计 了 它 们 与 方 面 之 间 新 的 关 联 关 系 并 为 其 定 义 了 语 义。 通 过 UML 扩
展, 使得 UML 能够直接 表达 面向 方面 概念 , 支 持面 向方 面建 模设 计, 实现 了面 向方 面模型 的 可 视化 和 可 辨别 性 ;
整体 框架 模型 使得面 向方 面整 体结 构清 晰, 各个 核心 元素 之 间 关系 明 确, 为面向 方 面 建 模 提 供 了一 个 整 体 设 计
平台 , 提 高了 面向 方面 软件 设计 的模块 化, 增 强了代 码的 重用 性和 系统 的可 维护 性。
关键 词: 面向方 面; 统 一建 模语 言; 元模型 ; 面向 方面 建模 ; Profile
中图 分类 号: TP311 文 献标 志码: A 文 章编 号: 1001-3695( 2008) 10-3012-03
Modeling of aspect-oriented based on extending UML
GE Jun-wei, HE Yong
( GIS Research Center, Chongqing University of Posts & Telecommunications, Chongqing 400065, China)
Abstract: The aspect-oriented programming( AOP) separated crosscutting fromsystem, solved tangling and scattering of code
in object-oriented programming( OOP) . But in aspect-oriented modeling, the crosscutting could not be supported. The paper
made use of class diagramto set up awhole backbone model based on the unified modeling language ( UML) mete-model, de-
signed the relationship of core class, aspectand other crosscutting elements; then made use of profile of UML to setup a new
model for pointcuts, advice, aspect, and designed the new relationships of them with aspect, and defined the new semantic.
Through the profile of UML, UML can expressthe concept and model of aspect-oriented, realize the model visibility and distin-
guishability; the whole backbone model makes the whole structure of aspect-oriented become legible, relationship of core ele-
ments become definite, and supplies a whole design platform of aspect-oriented, improves the modularization of software de-
sign, code reusable and maintainable.
Key words: aspect-oriented; UML; meta-model; aspect-oriented modeling; Profile
0 引言
面向方面软件开发( AOSD) 是在面 向对象 思想上 提出的,
它是一种基于关注点分离 的新技 术。根据系 统的需 要和关 注
点的不同特征分为两种: 第一种 是核心关 注点( core concern) ,
即软 件 所 要 实 现 的 主 要 功 能 和 目 标; 第 二 种 是 横 切 关 注 点
( crosscutting concern) , 即 交错 混 乱分 散在 系 统各 个模 块 中 的
与核心关注点有横切作用 的关注 点。而面向 方面的 核心思 想
就是将核心关注点与横切关注点有效结合, 实现最终系统。
AOSD 与其他程序设计思想一样, 也需要 对系统 进行建 模
设计。目前, 基于 UML扩展 机制的 面向方 面建模 已经 成为 研
究的热点, 许多新的观点和方法不断提出。有些是对切点或连
接点进行建模; 有些 是对 特定 语言 ( 如 AspectJ等) 进 行 建模;
有些是对面向方面的结构和行为进行建模; 有些是对织入机制
的研究等。本文在 文献 [ 1] 的 模型 的基 础上 作了 进一步 的 改
进, 设计了一种新的整体框架模型, 并利用 UML 的扩展机 制为
面向方面元素建立了新的模型和关联关系, 定义了新的语义。
1 面向方面简介
面向方面是为了解决在面向对象过程中, 由于代码混乱分
散在各个不同的模块中而导致 系统维 护和扩 展等方 面所带 来
的一系列问题。其核心思想是 将那些 每个模 块都要 用到的 关
注点作为横切关注点单独抽取出来, 然后再和实现系统功能的
核心关注点通过织 入( weaving) 机制, 将 它们 组合 在一 起来 共
同实现系统的总体功能。
在 AOSD 中, 主要有以下几个核心概念:
a) 连接点 ( join point) 。AOSD 中最基本的元素, 表示程序
控制流中的某些点, 如最常见的函数调用、异常处理等。
b) 切点 ( pointcut) 。连接点的集合, 通过切点 指示器明 确
定义需要收集的连接点和有关的参数值, 它是联系方面与核心
类的桥梁。
c) 通知 ( advice) 。类似函数的一种结构, 定义了被切点收
集的连接点处执行的代码, 即横切关注点的功能定义。
d) 方面 ( aspect) 。横切关注点的实现单元, 类似于面向对
象中的类, 是对以上几种元素的封装, 可用于重用和继承。
e) 引入( introduction) 。提供修改基类的特性, 可以插入 类
第 25 卷 第 10 期
2008 年 10 月
计 算 机 应 用 研 究
Application Research of Computers
Vol.25 No. 10
Oct. 2008