布衣王子

Email:roose2008@gmail.com QQ:79212131

UML类图标准总结__大家相互学习

以前在做一个项目之前总是在UML的一些概念上花费极大的功夫,得出的图形反而让自己都含糊不清。这两天一口气在网上查了很多相关文章,
在图书管也翻了几本书,给自己定义了一个UML严格的标准。现在拿到网上来,兄弟们帮我看看有那些地方又不妥当的地方。相互学习....

首先弄清楚类图是个什么东西:
    类图(class diagram)描述了模型的静态结构,包括模型中的类的类的内部结构以及于其他类的关系,在结构化设计一个系统的时候类图可以让我们的思路更加清晰。
    类的内部结构就不用说了,没什么好说的。
    一个类与其他的类常见的关系(我所接触到的关系)有:
    1.一般化关系
    2.关联关系
    3.聚合关系
    4.组合关系(合成关系)
    5.依赖关系
    其中,聚合关系合成关系又属于关联关系。
一般化关系表现是与类之间是(is a)的关系。也就是类与类之间的继承,接口于接口之间的继承或者是对一个接口的实现。表示方法是用一个空心箭头+实线,箭头指向父类。或用空心肩头加虚线(如果富父类是接口的话)

如图1,User定义了系统中一个用户的原型,客户Customer继承了User类并且有自己特有的方法。管理员Manager类也继承了User类,并且又自己特有的方法,而且Manager为了能够管理客户还实现了Cmanage这个接口,也就具备了Cmanage的所有功能,可以对客户的余额进行操作,而且还可以删除一个客户。


关联关系表现为类与类之间的(has a)关系。它使一个类知道另一个类的属性和方法。关联关系表示的是类与类之间的持久关系,这种关系一般是表示一种业务逻辑上的关系,需要保存到数据库中的。
如图2.学生Student中存在一个班级Class的引用。在student中可以直接根据引用访问到Class.同时在数据库中存在两张表tb_student,tb_class,在表tb_student中有一个字段存储了所关联的class记录的id。用箭头+实指向被关联的类



聚合关系是关联的一种,是一种强关联关系。聚合关系还体现了一种整体与个体的关系。如图3:
商品ShangPin是独立的,一张进货单JinHuoDan内可以又很多个商品。可以说进货单JinHuoDan是整体,商品ShangPin是个体。可以由进货单JinHuoDan导航到每个进货单包含的商品。空心菱形+实线+箭头指向部分。

依赖关系是表现为类与类之间的一种(use a)的关系。一个类用到了另一个类,为了完成一特定的操作。但是类与类之间不存在业务逻辑上的关系。依赖关系是针对于程序来说的。依赖关系体现在程序中主要是些局部变量、方法参数、或对一个类方法的调用。如图四:
商品管理类ShangPinManager主要对上提供查询商品,删除商品的功能,而这些功能的实现必须调用Dao类的某些方法来实现(一种调用关系)但是他和我们数据库持久类Dao没有业务上的关系,更不可能把这两个类存到数据库中去。虚线+箭头指向被调用的类。

另外我个人觉得利用聚合足以体现合成,没必要分的那么详细。UML本身是一种工具,没必要把太多时间花费在工具的一些概念上面。
小弟愚见,请多多指教!。。。。

posted on 2009-09-21 18:17 草包书生 阅读(3289) 评论(8)  编辑  收藏

评论

# re: UML类图标准总结__大家相互学习 2009-09-22 10:22 草包书生

你们这群人一点也不厚道!回个帖都老火!  回复  更多评论   

# re: UML类图标准总结__大家相互学习 2009-09-22 10:55 于翔

dia画的吧  回复  更多评论   

# re: UML类图标准总结__大家相互学习 2009-09-22 17:57 草包书生

是阿  回复  更多评论   

# re: UML类图标准总结__大家相互学习 2009-09-23 22:54 wangchangbing

最近也是在整理UML的相关资料 为面试准备
但是发现公司原来利用VISIO画的流程图状态图 到了ROSE里面都不成立了

其实公司画的大部分只是一个示意图 用来和客户沟通
有个图客户看了明白 至于里面的流程状态在UML里面是不是规范的客户不关心

类图我确实没有画过 可能是还没有遇到特别复杂的类吧  回复  更多评论   

# re: UML类图标准总结__大家相互学习 2009-09-24 12:01 草包书生

@wangchangbing
强烈建议你在项目之前用UML为你的project做一个总体的规划  回复  更多评论   

# re: UML类图标准总结__大家相互学习 2009-10-29 20:27 等牛奶的咖啡

@草包书生
Uml最大的作用不是用来文档,也不是用来规划什么,而是为了沟通和理解需求。
在项目开始之前是不需要花很长的时间来进行Uml的详细建模,因为项目在进行的过程中需求可能会经常的变动,另一方面,在进行反复的迭代式开发过程中才应当使用Uml画图同客户交流进行需求的分析  回复  更多评论   

# re: UML类图标准总结__大家相互学习 2009-10-29 20:29 等牛奶的咖啡

不过完整的UML类图的标准学习了下,还缺少组合和抛出异常这些  回复  更多评论   

# re: UML类图标准总结__大家相互学习 2009-11-07 12:53 草包书生

@等牛奶的咖啡
个人认为如果在每张一个独立的uml图中如果只有一条执行路径的话,思维反而更清晰。如果把异常一融合到uml图中,试想一下异常在到处乱抛,杂乱无章的,乱七八糟。况且uml这个东西本来也只是一个指导性的东西。所以啦 uml图中加入异常的描述是完全没有必要的。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

导航

常用链接

相册

java的相关连接

最新评论