用starUML画出自己项目的类图
2015-12-02 20:22
204 查看
一只菜鸟的简陋UML类图(class diagram)
由于我们这个学期要完成自己的一个小项目,所以就开始了我的UML学习旅程,其实主要就是在网上查看一些画图所要注意的规范,也就是你需要大致合理且准确地用上starUML左边工具栏那些箭头和框框。比如,我们班的同学在类图的时候,我发现他们对于聚合,组合,依赖,泛化等的定义并不是很明确。其实我觉得这些倒是很重要的,我们老师反复强调,我们设计与开发一个项目不能只是给我们开发者自己来看,夸张来说,我们需要用户一眼就明白我们这个项目是干嘛的。所以当我们比较规范画出UML图时,向老师或者客户讲解我们的设计也会给他们带来一个清晰的思维框架。先讲一下类图常见的几种关系:
1.泛化(generalization)
一般来说,我们可以把泛化关系简单理解为继承,相信大家学过C++或者JAVA吧,书里面就有讲继承的概念,在某种程度上继承实现了可重用性,它指定了一个新类(子类)从已有的类(父类)里获得其已有的特性。
2.组合(composition)
很多人容易把组合和聚合混淆,其实它们很好区分。组合表示两个对象之间是整体与部分的强关系,例如A和B,B会随着A的创建而被创建,B也会随着A的消亡而消亡,这就是组合的关系。
3.聚合(aggregation)
聚合表示两个对象之间是整体与部分的弱关系,也就是随着A的创建,B不一定被创建;随着A的消亡,B也不一定消亡。
4.关联(association)
关联表现的则是两个对象之间一种很弱的联系。关联分为两种:带有方向的单向关联;不带方向的双向关联。
例如,一个学生可以有一个到多个老师,一个老师也可以有一个到多个学生。
或者,一名淘宝用户可以下零个或多个订单,而一个订单只能被一位用户拥有。
总结来说,聚合是一种特殊的关联,而组合又是一种特殊的聚合。
最后展示下作为一名菜鸟所画的类图吧,其实越想这个类图的一些逻辑关系,就越觉得自己画错了,唉,欢迎大家多多指正吧。
下面顺便给大家看下我画的用例图吧
相关文章推荐
- void 指针类型例子
- 模拟项目概要
- 开启蓝牙之旅(督促自己)
- 编译器的工作过程
- MATLAB GUI 程序设计中将axes保存为高质量矢量图的方法
- 1048. Find Coins (25)
- 第6周项目3——括号的匹配
- 【openjudge】宠物小精灵之收服
- TI 蓝牙4.0芯片 cc2540 引脚图 最小系统 下载接口等 小白看过来
- c++ try catch 问题 http://blog.csdn.net/windhaunting/article/details/4735338
- Snapdragon Profiler性能监测和分析工具
- 整数中X出现的次数(C++)
- caffe数据格式(Google Protocol Buffers)
- 开发ArcEngine时的一个提示,无效位图,无法在类“***”中找到资源“***.bmp”
- LAMP 1.6 Discuz打开错误
- java常用的几种线程池比较
- hdu 2057
- openjudge 精灵小宠物之收服
- 100个数里面缺2个数怎么能快速找到
- UI基础整理-6