编辑推荐: |
本文介绍了uml中的类图、对象图以及类和类图的一些总结分类等相关内容,希望对大家能有所帮助。
本文来自于csdn,由火龙果软件琪琪编辑、推荐。 |
|
前言
进行UML视频学习已经有了一段时间了,又有了一定的了解了,将自己最近的收获记录一下和大家分享!
思路呈现
什么是类图?
描述类、接口、协作及他们之间的关系的图。显示系统中类的静态结构。
有什么作用?
描述软件系统的静态结构
①对系统的词汇建模
②对简单协作建模
③对逻辑数据库模式建模
什么是对象图?
是类图变化而来,与类图相似,显示一组对象和他们之间的关系(是类的多个对象实例而不是实际的类)
对象图 |
在类中包含三部分,分别是类名、类的属性和类的操作 |
对象包含两个部分:对象的名称和对象的属性 |
类的名称栏只包含类名 |
对象的名称栏包含“对象名:类名” |
类的属性栏定义了所有属性的特征 |
对象的属性栏定义了属性的当前值 |
类中列出了操作 |
对象图中不包含操作内容,因为对属于同一个类的对象,其操作是相同的 |
类中使用了关联连接,关联中使用名称、角色以及约束等特征定义 |
对象使用链进行连接,链中包含名称、角色
|
类代表的是对对象的分类所以必须说明可以参与关联的对象的数目 |
对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。 |
类图(对系统的静态描述):
对象图:对系统在某一时刻的展现
类的表示:
关于类和类图的一些总结分类:(个人感觉一幅图胜过千言万语,所以我很少用文字描述,基本上都整理成了思维导图的形式呈现出来,供大家参考!)
类在很多方面和组件相同:
(1)两者都有名称
(2)都可以实现一组接口
(3)都可以参与依赖关系
(4)都可以被嵌套
(5)都可以有实例
(6)都可以参与交互
但是也会有一些区别:
(1)类描述软件设计的逻辑组织和意图,组件描述软件设计的物理实现,每个组件体现了系统设计中特定类的实现
下面进行一些简单的说明:
①类图描述所有可能情况
②聚合:限制性没有组合强,聚合类似于书架与书的关系,不是有了书架才有的书,书的产生与书架没有关系
③组合:限制性强于聚合,类似于身体与肢体的关系,有了身体才会有肢体,没有身体,肢体是不会产生的(节点不能脱离列表的存在)
④能用关联不用依赖,能用组合、聚合不用普通关联,组合、依赖比普通关联描述的信息更加的严格,关联比依赖更加严格(严谨性、严格性:组合、聚合>关联>依赖)
⑤自身关联:一个对象可以与另一个同类的对象有链接,即类可以与自身有链接
⑥关联类:两个对象之间的链接本身可以拥有自己的属性和行为,如果把连接看做是一个类的实例,则该类称为关联类。(如图:L是A
B的关联类)
单重继承:有且只有一个父类
多重继承:一个类有两个或两个以上的父类
实现关系:类元之间的语义关系,该关系中一个类元描述了另一个类元保证实施的契约
6种应用于关联的修饰 |
名称 |
描述关系性质(方向指示符用实心三角形箭头表示) |
角色 |
类处于关联某一端时,该类在关系中扮演特定角色(一个类对另一个类的职责) |
多重性 |
约束是UML三大扩展机制之一,多重性是一种约束(最广泛),用..表示 |
聚合 |
特殊型关联,表示整体与部分关系的关联(has
a) |
组合 |
被称为“强聚合”,生命周期取决于聚合的生命周期 |
导航性 |
一个对象通过链(关联的实例)进行导航访问另一个对象(降低类间耦合度) |
多重性的语法 |
0 |
恰好为“0” |
0..1 |
0或1 |
0..n |
0或更多 |
1 |
恰好为1 |
1..n |
1或更多 |
n |
n或更多 |
抽象类:(不能被实例化)
包图(将图形(系统)模块化):
①将一个复杂的图模块化
②组织源代码
③两个包中任意两个类之间有依赖关系,则两个包之间有依赖关系
包的注意事项 |
避免循环依赖 |
以包为测试单位 |
将概念和语义相近的元素包含在一个包中 |
将包中的元素分为私有、公有(可以在包外访问)和受保护的 |
应用于包的标准造型 |
构造型 |
用途 |
虚包(facade) |
描述一个只引用其他包内元素的包 |
框架(framework) |
描述一个主要由模式组成的包 |
桩(stub) |
描述一个座位另一个包的公共内容代理的包 |
子系统(subsystem) |
描述正在建模中的整个系统的独立部分的包 |
系统(system) |
描述正在建模中的整个系统的包 |
类与包的区别:
类:对问题领域或解决方案的事物的抽象,他必须有标识,有实例,类的实例(对象)是运行系统的组成元素。
包:把事物组织成一种模型的机制,他可以没有标识,因为在运行系统中不可见。
类图示例图:
对象图(一般用户)示例图:
对象图(操作员)示例图:
对象图(管理员)示例图:
看见这满满的一篇总结,真的是心理很充实,感觉自己这么多天的学习没有白学,收获了这么多,这几天的学习也一直在进行总结,一边学一边总结,画导图,感觉比单纯的文字记录真的是有效果,继续加油吧!!!
|