您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
业务架构设计
4月18-19日 在线直播
基于UML和EA进行系统分析设计
4月25-26日 北京+在线
AI 智能化软件测试方法与实践
5月23-24日 上海+在线
     
   
 
 订阅
《扩展UML用以在类图中显示设计模式》读书笔记
 
作者:wxb_nudt
 
 
   次浏览      
2010-06-11
 
编辑推荐:
本文主要介绍讨论了基于标准UML扩展机制的UML Profile的一些相关的方面,希望对您的学习有所帮助。
本文来自于wxb_nudt的blog,火龙果软件Alice编辑,推荐。

1 标题:

Extending UML To Visualize Design Patterns In Class Diagrams

2 时间:

2003以后

3 阅读时间:

2005.8.29

4 摘要:

一个设计模式描述了对于某个设计问题的一种通用解决方案,并可以在多个项目中重复使用。软件设计师会在具体的项目中采用这些设计模式。设计模式通常使用UML建模。但是,当某个设计模式被应用于或者结合了其他模式时,UML不能保存与设计模式相关的信息。因此,设计者很难从软件系统的设计图中识别出设计模式。设计模式的好处被削弱了,因为设计者不能以他们自己使用的设计模式、设计决断和设计折衷的方式来进行交流。本文中,我们提出了UML语言家族的一个新成员的一组本质特征,它支持在面向对象的设计模式上工作。这个UML扩展允许在软件设计中进行设计模式的直接表达。我们也讨论了基于标准UML扩展机制的UML Profile的一些相关的方面。文中的一个示例展示了它如何被用于辅助基于模式的软件开发。

5 大意:

除了摘要外,文章分为六个部分,分别是介绍(Introduce)、UML扩展机制(UML Extension Mechanisms)、被提出的扩展(The Proposed Extension)、示例学习(Case Study)、相关工作(Related Work)和结论(Conclusion)。

5.1  Introduction

Introduction部分介绍了为什么要对UML做基于设计模式的扩展。首先当然是论述了设计模式的重要性,然后指出了UML对于表达设计模式的不足之处,其中最重要的不足之处就是当有几种设计模式混杂在一起时会导致设计模式相关信息的丢失。这点很容易理解,当某一个类扮演了不同设计模式中的不同角色时,确实不能够只从类的名称上看出设计模式的相关信息。

5.2  UML扩展机制

UML扩展机制这一部分简要的介绍了UML的标准设计模式(UML2.0),包括Stereotype(构造型),Tagged Value(标签值)和Constraint(约束)。

5.3  The Proposed Extension

The Proposed Extension这一部分是本文的重点所在,提出了UML Profile for Design Pattern。这个Profile包括三个Stereotype和三个Tagged Value,以及一些约束,具体内容如下:

Stereotype表

Stereotype

Applies To

Definition

<<PatternClass>>

Class

Indicate that this class is a part of a design pattern

<<PatternAttribute>>

Attribute

Indicate that this attribute is a part of a design pattern

<<PatternOperation>>

Operation

Operation Indicate that this operation is a part of a design pattern

Tagged Values表

Tagged Value

Applies to

Name

Value

pattern

<name[instance],role>

<<PatternClass>>

Indicate that the attached class plays the role of role in the instance of a

design pattern named name

pattern

<name[instance],role>

<<PatternAttribute>>

Indicate that the attached attribute plays the role of role in the instance of a

design pattern named name

pattern

<name[instance],role>

<<PatternOperation>>

Indicate that the attached operation plays the role of role in the instance of a

design pattern named name

简单的说,这个Profile里面增加了三个Stereotype,分别是PatternClass、PatternAttribute和PatternOperation,它们分别扩展了UML中的元模型元素Class、Attribute和Operation,其含义分别代表了设计模式中的类、属性和操作等角色。另外对于每个Stereotype,还附加了一个标签值,标签值的形式是<name[instance],role>,其中name代表设计模式的名称、instance代表设计模式的实例标号(例如有两个Abstract Factory模式,则编号分别为1,2)、role代表设计模式中的角色名称。最后还有两个用OCL写成的约束。

对于某一个模型元素(例如类、属性和操作)扮演了多个设计模式中的不同角色的问题,可以将多个标签值按次序写在Stereotype的后面,来显示这个元素的多重身份。例如<<PatternClass{<DAO,DataAccessObject><Abstract Factory[1],AbstractFactory>}>>这是DAO这个类的构造型,它显示了DAO这个类属于两个设计模式,第一个是DAO这个设计模式,其中的角色是DataAccessObject(数据访问对象);第二个是抽象工厂设计模式,其角色是AbstractFactory。

5.4  示例学习

这一部分展示了一个使用了UML Profile for Design Pattern的小例子,这个例子是一个“学生信息管理系统”,其中使用了两个抽象工厂模式,两个单件(Singleton)模式,一个DAO(数据访问对象)模式。其设计图如下:

(算了,设计图太大,还是到原文中去看吧。原文是pdf,看得比较清楚!)

5.5  相关工作和结论

这两个部分当然是说本文的工作好,比起其他相关工作来有优点。

6 笔记:

感受最深的是,这篇文章提出了一个很正式的UML Profile for Design Pattern,而且这个Profile简单实用,比起其他连篇累牍的Profile来,本文提出的解决方案确实有可行之处。

第二点是这篇文章的作者考虑到了多个Pattern在一起容易混淆角色的问题,并做出了完整的解决方案,使用了多个标签值来避免了信息的混乱和遗漏,这一点也加深了我对于标签值功能的印象。

第三点是这篇文章中的示例非常优秀,是一个很常见的例子,其主要思想是在数据库变更的情况下,如何保持原有代码不变动。其中用到了抽象工厂和DAO这两个非常成熟而优秀的设计模式,加深了读者对文章的理解和印象。

总而言之,这是一篇非常值得借鉴的文章,它对于有以下读者都很有帮助:

1. 正在学习UML扩展机制的人;

2. 正在学习设计模式使用的人;

3. 正在研究MDA的人;

4. 正在研究模型转换、模型重构、模型进化这一类问题的人;

这篇文章我觉得非常优秀,并不是它的理论多么高深(事实上几乎没有什么理论),也并不是它的工作量多么大(可以看出工作量很少),也并不是它的作者多么有名(反正我第一次看见这两个作者),而是它确实对某个有意义的问题做出了接近与正确的解答。正是因为看到了这篇文章,让我对自己刚刚写好的一篇文章进行大刀阔斧的修改,在文中完全使用这篇文章所提出的UML Profile,如果有人看到了更好的UML Profile for Design Pattern,请通知我一声,谢谢!

原文链接如下:http://www.utdallas.edu/~jdong/papers/seke03.pdf

 

   
次浏览       
 
相关文章

用户手册:EA Helper
自然语言自动化生成图
使用iSpace进行多人协作建模
基于模型的软件复用(MBSR)
 
相关文档

AUTOSAR_TR_BSW UML模型建模指南
UML时间图建模(基于EA)
UML 模型框架(基于EA)
UML序列图编写规范
 
相关课程

UML+EA+面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于UML和EA进行系统分析设计

最新活动计划
DeepSeek软件测试应用实践 4-12[在线]
DeepSeek大模型开发实践 4-19[在线]
UAF架构体系与实践 4-11[北京]
AI智能化软件测试方法与实践 5-23[上海]
基于 UML 和EA进行分析设计 4-26[北京]
业务架构设计与建模 4-18[北京]
 
 
最新文章
在EA中内嵌文档- Artifact
EA中模型视图
EA中的实体关系图
使用EA进行风险建模
EA中的项目词汇表
EA的模型导出或导入csv文件
自定义表格(Custom Table)EA中使用
Gap Analysis Matrix(差距分析矩阵)
更多...   
MBSE工具
MBSE平台
建模工具 EA
模型库-Model Center
需求管理-ReqManager
自动建模-Modeler
多级仿真-Sys Simulator
代码工程-Code Engineer
文档生成器-DocGenerator
更多...   
成功案例
广汽研究院 SysML+EA+软件分析设计
高合汽车研发部门 建模工具EA、WebEA、
国汽智联 建模工具EA、模型库、WebEA
亿咖通 MBSE工程体系与工具链咨询
中航无人机 MBSE工具链
吉利汽车 购买EA工具
华科汽车零部件 购买EA工具
东风岚图汽车 购买EA工具 以及EA定制开发
更多...