📄 uml.txt
字号:
一、uml中的九大图形及作用特点?
类图:贯穿整个软件开发的所有过程,在ooa阶段找业务实体,在ood阶段
将业务实体与技术框架结合在一起进行设计,是uml最重要一个模型。
元素:
类
接口
关系:
操作类:
实现接口:用虚线+三角 HibernateUserDaoImpl实现UserDao接口
继承:实线+三角 InsertAction继承于BaseAction
依赖:虚线+箭头,一方调用另一方,action调用facade接口
实体类:
关联:实线+箭头,通过一方可以找到另一方
聚集:主体消失,从体有价值,用实线+空心菱形表示
组成:主体消失,从体无价值,用实线+实心菱形表示
use-case图:主要做业务需求,是系统分析人员与客户沟通的桥梁。
元素:
用例
角色
系统边界:整个系统的功能。
关系:
角色与角色:泛化
用例与用例:
扩展:可用可不用.---extend-->
包含:必须调用。 ---include-->
角色与用例:调用
用例与角色:通知
时序:用在整体设计及详细设计阶段,主要是找类、找方法、验证系统的正确性。
说明在时间的范围内类与类之间的交互。
元素:
横轴:对象及对象与对象之间的交互
纵轴:时间
活动:在需求分析阶段,说明具体用例的业务流程。
元素:
开始
结束
状态
处理
判断
汇集
分支
泳道:确定某一角色做什么工作。
协作:类与类之间的交互,与时序图功能类似,但没有时间的概念,
通过序号说明交互的先后顺序。
构件:说明组件与组件或层与层之间的交互。
部署:主要用在分布式系统中,说明各主机之间的关系,
找出系统运行的瓶颈。一个主机就是一个节点。
四、use-case图的作用
是与客房沟通的桥梁,主要是做需求
五、use-case图的元素
用例
角色
六、use-case图的关系
角色与角色:继承(实线+三角)
角色与用例:调用(实线+箭头)
用例与角色:通知(实线+箭头)
用例与用例:
包括:必须调用(虚线+箭头 -----include----->)
扩展:可用可不用(虚线+箭头 ------extend----->)
二、类的分类
pojo:pure old java object 只继承于Object
poji:pure old java interface 没有任何父接口
操作类
Facade
HibernateUserDaoImpl
实体类
po:persistent Object hibernate中处于持久状态的对象
vo:
value Object:值对象,hibernate中处于自由或游离状态的对象
view object:视图对象,ActionForm
dto:data translate object 数据传输对象
用例图:
作用:是客户与系统分析人员之间沟通的桥梁,主要是做需要求。
元素:
用例:系统的一个功能
角色:系统的参与者,参与者可以是一个人,也可以是一个物。
系统边界:当用例与角色和在一起时就时系统的所有功能。即系统边界
关系:
用例与用例:
1、包含:必须调用,用虚线+箭头表示(---include--->)
2、扩展:可用可不用,用虚线箭头表示(---extend--->)
角色与用例:
1、调用:用实线+箭头表示
用例与角色:
2、通知:用实线+箭头表示
角色与角色:
泛化(继承):父角具有功能子角色也具体,用实线+三角表示
七、类图中元素及关系,关系的图形符号?
元素:
类
接口
关系:
继承:子类继承于父类,具有父类的所有属性及方法,子类可以覆盖父类的方法。
用(实线+三角)表示
实现接口:实现类必须实现接口的所有方法。
用(虚线+三角)表示
依赖:调用关系,action依赖于facade(老板与员工)
虚线+箭头表示
关联:一方可以找到另一方,通过箭头表示,如果没箭头
代表双向。要想找到另一方,必须将另一方作为当
前对象的属性。(邻居)
聚集:意义上比关联更强,代码与关联类似,主体消失从体有价值。
用(实线+空心菱形)表示(一家人、电脑)
组成:意义上比聚集更强,代码与关联类似,主体消失从体没有价值。
用(实线+实心菱形)表示(一家人中一个个体)
关联、聚集、组成主要用于业务实体类,一般也就是一个表。
实现接口、依赖主要用于框架结构
通过上面可知一个架构师需要两方面的能力
1、业务建模:根据业务需求找业务实体
2、技术框架:确定所用技术框架及模式
类图中的元素:
接口
类
类图中的关系:
实现接口(虚线+三角)表示
public interface IFacade
{
public void insertUsers(Connection con,Users user) throws Exception;
}
public class Facade implements IFacade
{
public void insertUsers(Connection con,Users user) throws Exception
{
}
}
继承(实现+三角)
public abstract class BaseServlet extends HttpServlet
{
private IFacade facade=null;
public void doGet(HttpServletRequest request,HttpServletResponse response) throws Exception
{
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws Exception
{
this.facade=FacadeFactory.getFacade();
String resultPage=this.process(con,request,response);
request.getRequestDispatch(resultPage).forward(request,response);
}
public abstract String process(Connection con,HttpServletRequest request,HttpServletResponse response) throws Exception;
}
public class InsertServlet extends BaseServlet
{
public String process(Connection con,HttpServletRequest request,HttpServletResponse response) throws Exception
{
this.getFacade.insert(users);
return "success.jsp";
}
}
依赖(虚线+箭头)
InsertServlet------->IFacade
关联:一方可以找到另一方,必须将另一方作当为当前方的属性(实线+箭头)相当表邻居
public class Customer
{
private String customerName;
private String sex;
private Set<Buy> buies;
public Set getBuies()
{
return this.buies;
}
public void setBuies(Set buies)
{
this.buies=buies;
}
}
public class Buy
{
private int buyID;
private Customer customer;
public Customer getCustomer()
{
return this.customer;
}
public void setCustomer(Customer customer)
{
this.customer=customer;
}
}
聚集:代码的实现与关联一样,但主与从的关系更紧密,相当电脑(主机、主版、cpu、键盘)或一家人
主体消失,从体有创值,用实现+空心菱形表式
public class Customer
{
private String customerName;
private String sex;
private Set<Buy> buies;
public Set getBuies()
{
return this.buies;
}
public void setBuies(Set buies)
{
this.buies=buies;
}
}
public class Buy
{
private int buyID;
private Customer customer;
public Customer getCustomer()
{
return this.customer;
}
public void setCustomer(Customer customer)
{
this.customer=customer;
}
}
组成:代码的实现与关联、聚集一样,但主与从的关系比聚集更紧密,相当于一个人
主体消失,从体无创值,用实现+实心菱形表式
public class Customer
{
private String customerName;
private String sex;
private Set<Buy> buies;
public Set getBuies()
{
return this.buies;
}
public void setBuies(Set buies)
{
this.buies=buies;
}
}
public class Buy
{
private int buyID;
private Customer customer;
public Customer getCustomer()
{
return this.customer;
}
public void setCustomer(Customer customer)
{
this.customer=customer;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -