PowerDesigner 面向对象模型(OOM)说明

一.OOM 简介

Object-OrientedModel(OOM) 面向对象模型,一个OOM包含一系列包,类,接口 , 和他们的关系。 这些对象一起形成所有的 ( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个静态的概念模型。

(1)利用UML描述系统结构

(2)利用类图生成不同语言的源文件(如Java、C#、PowerBuilder等),或利用逆向工程将不同类型的源文件转换成相应的类图。

1.1 创建OOM

(1)选择File→New Model菜单项

(2)在左侧Model type中选择“Object-Oriented Model”(面向对象模型)

(3)在右侧输入模型名称,选择语言

(4)选择类型

1.2 设计用例图

(1)定义用例

(2)定义角色

(3)定义关联

1.3 设计序列图

(1)定义角色

(2)定义对象

(3)定义消息

(4)定义激活期

1.4 设计类图

(1)定义类

(2)定义属性

(3)定义标识符

(4)定义操作

(5)定义接口

(6)创建联系

1)关联

2)依赖

3)泛化

4)实现

1.5 生成代码

(1)选择Language→Generate Java Code

(2)选择类

(3)设置生成选项

(4)生成代码

(5)查看生成的代码

二.示例

2.1 创建OOM

File--> new model

这里选择我们的OOM 类型使用默认的Class Diagram, 语言选择Java。

2.2 OOM 生成Java 代码

通过工具面板创建一个类,如下图:

双击类,就可以编辑相关的属性。

给类添加变量:

如果我们想给类添加方法:

先写上方法名称,以及方法的返回类型,然后点击上图的第二步,修改该方法的对应属性:

修改方法的内容:


这里的方法名称不能修改,在这一步我们只能修改方法对应的代码。

如果要给方法添加参数:

完成配置之后:

现在导出将我们创建的类导成Java代码:

Language--> Generate Java Code. 生成Java 代码。

生成的代码如下:

/*********************************************************************** *Module: Student.java *Author: Administrator *Purpose: Defines the Class Student ***********************************************************************/ import java.util.*; /** @pdOid4a8af797-2729-419d-9751-2c15a1baef8e */ public class Student { /** @pdOid 52d32718-cd89-4b1c-8c46-0f4fa83b0dac */ private int id; /** @pdOid 5a14a55f-4d17-41ea-ad64-05a0c4f5c523 */ private String name; /** @pdOid 46fb39fd-e50e-4166-9cdb-b7ae3bfdd229 */ private int sex; /** @pdOid 5e139923-641e-45f0-ba19-773495078f63 */ private Number phone; /** @pdOid 540722b0-789c-491a-a145-a92226843e0a */ private String address; /**@param type *@pdOid e610d773-1a41-4f42-b5b7-f932b24fa6ec */ public String helloWorld(int type) { // TODO: implement String str='Hello World!'; return str; } /** @pdOid 9108fb19-6b33-4cfa-b629-bd6dc474abd0 */ public void helloWorld2() { System.out.println("Hello World!"); } }

2.3 从Java 类生成OOM


这个是我要导入的Java 代码:

package cn.jsprun.service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import org.apache.struts.util.MessageResources; import cn.jsprun.dao.DataBaseDao; import cn.jsprun.dao.OnLineListDao; import cn.jsprun.domain.Onlinelist; import cn.jsprun.domain.OnlinelistId; import cn.jsprun.utils.BeanFactory; import cn.jsprun.utils.Common; import cn.jsprun.vo.otherset.OnlinelistVO; public class OnLineSetService { privatefinal String tablePrefix = "jrun_"; publicList<OnlinelistVO> queryAllSystemUserGroup(MessageResources mr,Localelocale){ List<Map<String,String>>usergroupMapList = ((DataBaseDao)BeanFactory.getBean("dataBaseDao")).executeQuery("SELECTu.groupid,u.grouptitle FROM "+tablePrefix+"usergroups AS u WHEREu.type<>'member'"); List<Onlinelist>onlinelist_list =((OnLineListDao)BeanFactory.getBean("onLineListDao")).queryAllOnlineList(); Map<String,Onlinelist>onlinelistMap = new HashMap<String, Onlinelist>(); for(Onlinelistonlinelist : onlinelist_list){ onlinelistMap.put(onlinelist.getId().getGroupid().toString(),onlinelist); } List<OnlinelistVO>onlinelistVO_list = new ArrayList<OnlinelistVO>(); Onlinelistonlinelist = null; OnlinelistIdonlinelistId = null; OnlinelistVOonlinelistVO = null; Stringgroupid = null; StringquondamTitle = null; Stringdisplayorder = null; Stringtitle = null; Stringurl = null; onlinelist= onlinelistMap.get("0"); StringnormalUser = mr.getMessage(locale, "usergroups_system_0"); if(onlinelist!=null){ onlinelistId= onlinelist.getId(); onlinelistVO= new OnlinelistVO(); onlinelistVO.setDisplayorder(onlinelistId.getDisplayorder().toString()); onlinelistVO.setGroupid("0"); onlinelistVO.setQuondamTitle(normalUser); onlinelistVO.setTitle(onlinelistId.getTitle()); onlinelistVO.setUrl(onlinelistId.getUrl()); onlinelistVO_list.add(onlinelistVO); }else{ onlinelistVO= new OnlinelistVO(); onlinelistVO.setDisplayorder(""); onlinelistVO.setGroupid("0"); onlinelistVO.setQuondamTitle(normalUser); onlinelistVO.setTitle(normalUser); onlinelistVO.setUrl(""); onlinelistVO_list.add(onlinelistVO); } for(Map<String,String>usergroupMap : usergroupMapList){ onlinelistVO= new OnlinelistVO(); groupid= usergroupMap.get("groupid"); Stringgrouptitle = usergroupMap.get("grouptitle"); switch(Short.parseShort(groupid)) { case1: quondamTitle= mr.getMessage(locale, "usergroups_system_1"); break; case2: quondamTitle= mr.getMessage(locale, "usergroups_system_2"); break; case3: quondamTitle= mr.getMessage(locale, "usergroups_system_3"); break; case4: quondamTitle= mr.getMessage(locale, "usergroups_system_4"); break; case5: quondamTitle= mr.getMessage(locale, "usergroups_system_5"); break; case6: quondamTitle= mr.getMessage(locale, "usergroups_system_6"); break; case7: quondamTitle= mr.getMessage(locale, "guest"); break; case8: quondamTitle= mr.getMessage(locale, "usergroups_system_8"); break; default: quondamTitle= grouptitle; } onlinelist= onlinelistMap.get(groupid); if(onlinelist==null){ displayorder=""; title= grouptitle; url= ""; }else{ onlinelistId= onlinelist.getId(); displayorder= onlinelistId.getDisplayorder().toString(); title= onlinelistId.getTitle(); url= onlinelistId.getUrl(); } onlinelistVO.setDisplayorder(displayorder); onlinelistVO.setGroupid(groupid); onlinelistVO.setQuondamTitle(quondamTitle!=null?quondamTitle.replace("&","&").replace("<","<").replace(">",">").replace("\"","""):null); onlinelistVO.setTitle(title!=null?title.replace("\"","""):null); onlinelistVO.setUrl(url!=null?url.replace("\"","""):null); onlinelistVO_list.add(onlinelistVO); } returnonlinelistVO_list; } publicvoid updateOnLineList(String delGroupids , List<Onlinelist> updateList,List<Onlinelist> addList) { DataBaseDaodataBaseDao = (DataBaseDao)BeanFactory.getBean("dataBaseDao"); if(delGroupids!=null){ dataBaseDao.executeDelete("DELETEFROM "+tablePrefix+"onlinelist WHERE groupidIN("+delGroupids+")"); } OnlinelistIdonlinelistId = null; for(Onlinelistonlinelist : updateList){ onlinelistId= onlinelist.getId(); dataBaseDao.execute("UPDATE"+tablePrefix+"onlinelist SETtitle='"+Common.addslashes(onlinelistId.getTitle())+"',url='"+Common.addslashes(onlinelistId.getUrl())+"',displayorder="+onlinelistId.getDisplayorder()+" WHEREgroupid="+onlinelistId.getGroupid()); } if(addList.size()>0){ ((OnLineListDao)BeanFactory.getBean("onLineListDao")).addOnlinelist(addList); } } }

选择Language –>Reverse Engineer Java, 将我们要导入的java 代码添加进来,确定:


这里把包的结构也生成了,我们看这个类具体的一些属性,双击类:

有一个变量:

两个方法:


2.4 OOM 生成Java 代码格式说明

从2.2 节导出的代码来看,默认的生成代码模板也不十分清晰。 如果我们要修改这个默认的模板,可以按照一下方法来操作:

Language--> Edit Current Object Language

然后:

profile>class>templates>definition


修改这里面的样式就ok了。 我现在也不折腾Java 代码,具体样式这块就各位同学自己折腾了。



-------------------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email: tianlesoftware@gmail.com

DBA1 群:62697716(满); DBA2 群:62697977(满)DBA3 群:62697850(满)

DBA 超级群:63306533(满); DBA4 群:83829929(满) DBA5群: 142216823(满)

DBA6 群:158654907(满) DBA7 群:69087192(满)DBA8 群:172855474

DBA 超级群2:151508914 DBA9群:102954821 聊天 群:40132017(满)

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值