UML part3 类图对象图
Posted 跟着金哥有肉吃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML part3 类图对象图相关的知识,希望对你有一定的参考价值。
UML part3 类图、对象图
四种关系
1. 依赖关系
①定义:依赖描述了两个模型元素之间的关系,如果被依赖的模型元素发生变化就会影响到另一个模型元素
②举例:动物有生命和水进行繁殖,动物和水,动物和氧气都是依赖关系;人需要用船过河,人和船就是依赖关系
...
中间省略了降低依赖的方法,依赖倒置,依赖注入和控制反转
详情可参考JavaEE
...
2. 关联关系
①定义:是一种结构关系,用于指明一个事物的对象和另一个事物的对象间的联系
②关联可以是单向的(带箭头),也可以是双向的(不带箭头)
③依赖与关联的区别
a. 依赖是一种弱关联
b. 依赖是一种偶然的关系,而不是必然的关系
c. 关联是类的对象之间的一种关系
d. 通俗的理解,就是一个是使用,一个是必须需要。依赖就是可以使用,例如人可以使用船过河,但人也可以用其他工具过河;关联就是必须需要,例如老师教学生,水壶装水
④特殊的关联:聚合和组合
a. 聚合关系
表示类之间整体与部分的关系,较大的事物由较小的事物组成
例如:教室和课桌,教室和椅子,键盘和计算机,鼠标和计算机
每个部分不一定属于一个整体
b. 组合关系
组合是更强形式的聚合关系
整体与部分的生命周期完全一致,每个部分只能属于一个整体
例如:人类和大脑,人类和心脏
聚合关系和组合关系示例
3. 泛化关系
①泛化即继承
②定义:表示一般事物(父类)和该事物的特殊种类(子类)之间的关系
③例如:学生和本科生,学生和研究生,动物和狗子
4. 实现关系
①定义:说明规格的接口和实现其功能的类的关系
②和java中的接口与类的关系相同
③不继承结构,只继承行为
④常见的两种表现形式
正向工程和反向工程
1. 正向工程:从UML图形生成java代码
2. 反向工程:从java代码生成UML图形
3. 正向工程和反向工程都是一种辅助手段
类图
1. 类的组成
①名称:符合命名范围
②属性:就是状态信息,例如姓名,年龄,有无翅膀等
③行为:就是能做什么,例如吃,跑,迁徙
④属性的可访问性:
公有(pubic):+
私有(private):-
保护(protected):#
实现(implementation):~
2.类图的版型(在顺序图中会用得到)
①版型(类型或构造型):用于标明或扩展现有UML元模型的含义,几乎每个UML元模型都有很多版型
②MVC框架的版型表示:
类图的版型画法以及对应的举例(*三个版型必须记住)
③边界类
a. 位于系统与外界的交界处,例如窗体、对话框、报表、与外部设备或系统交互的;类等等
b. 边界类可以通过用例确定,因为活动者必须通过边界类参与用例
边界类画法(主要画最左边的)
④实体类:保存永久信息,最终可能映射数据库中的表和字段
实体类画法(主要画最左边的)
⑤控制类:协调其他类工作和控制总体逻辑流程,一般每个用例有一个控制类。控制类会向其他类发送消息
控制类画法(主要画最左边的)
3. 类图的抽象层级
①概念类
a. 描述相关领域的概念
b. 仅包括类名,不含细节
概念类示例(主要画最左边的)
②分析类
a. 包含类的部分属性和行为
b. 不针对具体编程语言
分析类示例
③设计类
a. 针对具体编程语言
b. 考虑实现细节
设计类示例
4. 类图的使用
①类图是UML中最重要的图形,能用于各种场合
②对概念模型,分析领域模型(概念,属性,关联)
③保持类图的简单,不要试图描述所有细节
【考试画图类型题】
要点:
1.认真读题,过滤出题目中的类
2.找出题中每个类具有的属性和行为
3.分析每个类之间的关系
例题1.教室内排放着若干个课桌和椅子,每个课桌旁最多摆放4把椅子,每把椅子上坐着一名学生,根据上述描述,画出相应的UML图。
分析:蓝色标的是类,这道题没有涉及属性和行为,只要把类和类的关系找好就行,涉及到数量要写在关系的线上,以教室和课桌举例,“教室内有若干个课桌”,教师对于课桌来说是1个,所以教室端是1,课桌对于教室来说是若干个,所以课桌端的数字是n;以课桌和椅子为例,“每个课桌旁最多摆放4把椅子”,说明课桌旁可以摆放的椅子数量是0到4个,所以椅子对于课桌的数量是0..4,椅子端的数字是0..4,因为“每个课桌”,所以课桌对于椅子的数量是1,所以课桌端的数字是1。因为课桌,学生和椅子都是教室中的,这三者与教室的关系是聚集关系,其他是关联关系,得出答案如下
例题2.某学校下属若干院系,并能招收若干学生;每个院系下属若干老师,其中有一人为负责人;每名老师讲授课程的数量不能超过3门;每个学生至少选修一门课程,最多能选10门课程;每门课程最多能够容纳80人,若少于30人即被取消。根据上述描述,画出相应的UML图。
分析:蓝色标的是类,这道题没有涉及属性和行为,只要把类和类的关系找好就行,涉及到数量要写在关系的线上。因为院系和学校属于一个生命周期,所以学校和院系是组合关系;根据院系中有老师和学校中有学生,可以推出学校和学生是聚集关系,老师和院系是聚集关系
例题3.学生包括本科生,研究生两种,研究生中的一部分利用课余时间担任助教;教师包括讲师和教授两种;一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。根据上述描述,画出相应的UML图。
分析:蓝色标的是类,这道题没有涉及属性和行为,只要把类和类的关系找好就行,涉及到数量要写在关系的线上。这题主要考泛化关系,也就是继承关系。
例题4.根据以下描述,画出相应的UML图。神州六号飞船是神舟飞船系列的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔组成,航天员可以在返回舱内驾驶飞船,在轨道舱工作和休息,在紧急情况下,可以利用逃逸救生塔逃生。在飞船两侧有多个太阳能电池翼,可以给飞船提供电能。根据上述描述,画出相应的UML图。
分析:蓝色标的是类,粉色标的属性和行为,这个题中不涉及属性,全部都是行为。驾驶飞船是返回舱的行为,工作和休息是轨道舱的行为,逃生是逃逸救生塔的行为,所有行为和属性在题中没有规定的情况下都设为public属性,所以前面写一个加号;前面说过依赖关系是人通过船过河,所以人和船是依赖关系,同理航天员通过轨道舱工作和休息,通过返回舱驾驶飞船,通过逃逸救生塔逃生,所以航天员和轨道舱、返回舱、逃逸救生塔都是依赖关系;神舟六号飞船由轨道舱、返回舱、推进舱、逃逸救生塔组成,所以神舟六号飞船和他们都是聚集关系;因为神州六号飞船是神舟飞船的一种,所以神州飞船是神舟六号飞船的父类,所以它们是继承关系,也就是泛化关系,由此得出答案
例题5.根据以下描述画出类图。动物有生命特征,需要氧气和水进行繁殖和新陈代谢。鸟是动物的一种,鸟拥有翅膀。其中大雁,企鹅和鸭都是鸟的一种。大雁会飞翔,企鹅要根据气候变化进行迁徙,唐老鸭是最著名的一只鸭子,会讲人话。
分析:蓝色标的是类,粉色标的属性和行为,“动物有生命特征”,生命特征是动物的属性;“需要水和氧气进行繁殖和新陈代谢”,所以新陈代谢和繁殖都是动物的行为,水和动物,氧气和动物都是依赖关系;“鸟是动物的一种”,所以鸟和动物是继承关系,也就是泛化关系;“鸟拥有翅膀”,所以有翅膀是鸟的属性,同时翅膀和鸟与人和心脏属于同理,所以翅膀这个类和鸟这个类属于组合关系;“大雁、企鹅,鸭都是鸟的一种,所以大雁、企鹅和鸭与鸟都是继承关系,也就是泛化关系;飞翔是大雁的行为,迁徙是企鹅的行为;“唐老鸭是最著名的一只鸭子,会讲人话”,所以唐老鸭和鸭是继承关系,也就是泛化关系,讲人话是唐老鸭的行为
对象图(正常情况下不会单独出题,会用在顺序图和协作图中)
1. 对象的三种表现形式
①对象名:类名
对象名在前,类名在后,用冒号来连接。对象名和类名都加下划线
②:类名(*这种形式在顺序图和协作图中常见)
这是对匿名对象的表示方法,用于尚未给对象取名字的情况,冒号不能省略
③对象名
省略掉类名,只有对象名,对象名必须加下划线
2.对象图和类图的区别
以上是关于UML part3 类图对象图的主要内容,如果未能解决你的问题,请参考以下文章