惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Y
Y Combinator Blog
I
InfoQ
美团技术团队
罗磊的独立博客
B
Blog RSS Feed
GbyAI
GbyAI
小众软件
小众软件
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
V
V2EX
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
MyScale Blog
MyScale Blog
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss

博客园 - 深圳杰瑞

Visual Studio 2010到底怎么样? 书评:我看《软件开发沉思录ThoughtWorks文集》 准备开始研究WF和WCF 2008第一帖:WSDL Binding风格 一个样式很特殊的网页 自己编写一个SQL Server中用的lastindexof函数 今天居然中了MSN病毒。 用Sandcastle生成CHM1.x中文文档(续) 理解SOAP的好文章 分布式计算技术 脚本语言和动态语言的讨论。 如何嵌入Live Messenger? 让IE中的IFrame透明 截获SQL Server客户端登录SQL Server服务器的密码 网站CSS设计站点链接 用Sandcastle生成CHM1.x中文文档 今天看到的几本好书 客户端脚本刷新UpdatePanel的链接 设计文章链接
Powerdesigner 扩展模型的机制分析
深圳杰瑞 · 2007-12-20 · via 博客园 - 深圳杰瑞

UML标准的扩展机制分为几个级别,在元模型级别可以用Profile来扩展,在类元级别可以用Stereotype、Constraint和Comment来扩展,在元素级别可以用tagged value或者叫属性来扩展。

Powerdesigner完全支持这些扩展机制,而且功能非常强大。

首先,在Powerdesigner的所有模型元素中都有内置的Comment属性,并且还可以挂接多个Notes元素,用来描述模型元素。Notes元素还可以是富文本(RTF)格式的。

其次,对于Constraint来说,Powerdesigner提供了Rules集合属性,也就是说一个模型对象可以挂接多个Business Rule对象,而这个Business Rule的类型不单单是Constraint,还包括其他类型,如Definition、Fact、Formula、OCL Constraint、Requirement、Validation。

第三,在元素级别,Powerdesigner提供了可以扩展的单一属性和集合属性,并且可以用Stereotype来给这些属性分类。

最后,在模型对象上,Powerdesigner还提供了File对象,来挂接外部文件,而且外部文件可以嵌入模型,或者是Web上的某个链接。

而PowerDesigner的强大之处还在于元模型级别Profile的扩展。

首先,PowerDesigner模型的元模型的扩展方式是基于Resource File(资源文件)的。Resource File是XML文件,Powerdesigner提供了Resource Editor编辑器可以让用户自定义这些资源文件。而创建模型的时候,是需要选择一个资源文件作为基础的。

资源文件有以下几种类型:

Process languages (.xpl)
Object languages (.xol)
DBMSs (.xdb)
XML languages (.xsl)

Report templates (.rtp)
Report language files (.xrl)
Conversion tables (.csv)

Extended model definitions (.xem)

最强大的就是最后这个扩展模型定义文件,这是因为一个模型可以挂接多个xem文件。

xem包括Generation和Profile,Generation用来定义生产代码时的命令、任务和选项。而Profile正是用来扩展模型元素的。

Powerdesigner用来组织Profile的手段也很强大,在Profile下面可以用以下的因素来扩展,并且这些因素都是可以按级别嵌套的。