Object-OrientedModel(OOM) 面向对象模型,一个OOM包含一系列包,类,接口 , 和他们的关系。 这些对象一起形成所有的 ( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个静态的概念模型。
(1)利用UML描述系统结构
(2)利用类图生成不同语言的源文件(如Java、C#、PowerBuilder等),或利用逆向工程将不同类型的源文件转换成相应的类图。
(1)选择File→New Model菜单项
(2)在左侧Model type中选择“Object-Oriented Model”(面向对象模型)
(3)在右侧输入模型名称,选择语言
(4)选择类型
(1)定义用例
(2)定义角色
(3)定义关联
(1)定义角色
(2)定义对象
(3)定义消息
(4)定义激活期
(1)定义类
(2)定义属性
(3)定义标识符
(4)定义操作
(5)定义接口
(6)创建联系
1) 关联
2) 依赖
3) 泛化
4) 实现
(1)选择Language→Generate Java Code
(2)选择类
(3)设置生成选项
(4)生成代码
(5)查看生成的代码
File--> new model
这里选择我们的OOM 类型使用默认的Class Diagram, 语言选择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!"); } }
这个是我要导入的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.2 节导出的代码来看,默认的生成代码模板也不十分清晰。 如果我们要修改这个默认的模板,可以按照一下方法来操作:
Language--> Edit Current Object Language
然后:
profile>class>templates>definition
修改这里面的样式就ok了。 我现在也不折腾Java 代码,具体样式这块就各位同学自己折腾了。
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Email: [email protected]
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表空间和数据文件的关系,否则拒绝申请