UML图来实现模型

一个系统架构设计最终要以某种形式展现出来,作为架构师、开发者以及参与者用户之间的一种达成共识的模型。前期设计的思想遵循现代面向对象的设计思想,三大原则也要结合实际情况设计出良好的架构。松散耦合、面向接口以及里氏替换原则。使用PowerDesigner设计的对象图,也就是OOM图,UML2.0包括13中不同的图形,分为两组:行为和结构。

      行为图显示系统中对象的协作关系。

      结构图定义类,属性,操作和关系。

1.0用例图Use Case

  用例图提供了一个图形化的用例描述。一个用例图代表一个或者多个参与者和系统之间的相互作用。用例图显示了参与者要做的事情。一个参与者可以是一个人,也可以是和系统进行交互的任何外部系统。参与者不受系统控制,参与者是在系统之外定义的。

  用例图主要包括:系统,参与者,用例,关系。

2.0类图

  类图在UML使用较为广泛。类图代表系统的静态结构。系统的静态结构由类和他们之间的关系组成。

  类图包括属性,操作,和关系。关系则包括我们常说的1:1,1:n,0:1,0:n,n:n等

类与类之间的关系一般有 继承(Generalization)、实现(Realization)、依赖(Dependetion)、关联(Association)、聚合(Aggregation)、组合(Composation)。

    1。Generalization继承的实现。实现抽象类中方法或者是扩展父类的方法,是继承的概念。通常有类继承和接口继承。用空三角号加实线来表示,箭头只向是父类。如图:

 

2.Realization实现 专门针对于接口实现的表达。使用空三角号+虚线。在UML里面继承和实现会自动判断也就是即使你使用继承来连接两个接口也会自动转换为实现,相反的你不可以使用实现来连接两个类,那样会没有反应。从这个意义上说,在PD中使用Generalization能连接类和接口的两种关系,而具体是哪种关系会由父类来判断。

 

 

3。Dependency依赖关系。使用箭头+虚线来表示你中有我,我中有你这种强关系。可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;参数级别的引用:

 

4。Association关联关系。他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性 的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联 类A引用了一个类型为被关联类B的全局变量;

 

这种线来标识两者的数量关系是靠近箭头的是引用的类,这头放的0...*之类的数量关系表示从Class_A角度看关系。

 

5.Aggregation聚合 是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期, 部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来 区分;

6.Composition组合组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此 时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区 分;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值