UML类图-软件需求分析与设计(很详细,很详细,很详细)
之类图
伤心城市冷漠的定义:是显⽰⼀组类、接⼝、协作以及它们之间关系的图。
类图主要包含7种元素:、类、接⼝、协作、、泛化关系、实现关系、关联关系。
类图:包、⼦系统,⽤来把元素聚集成更⼤的组块。
类图:、注解
类
金曲奖20161.类是⼀组拥有相同的属性、操作、⽅法、关系和⾏为的对象地描述符。
2.类定义了⼀组有着状态与⾏为的对象。类的状态由属性和关联来描述,个体⾏为由操作来描述,对象的⽣命周期则由附加给类的状态机来描述。
3.在UML中,类表达成⼀个有三个分隔区的矩形。其中顶端显⽰类名,中间显⽰类的属性,尾端显⽰类的操作。
类——属性
可见性:描述了该属性在那些范围内可以被使⽤。
可见性英⽂限定符UML标准图⽰Rose图⽰说明
公有public+其他类可以访问
私有private-只对本类可见,不能被其他类访问
保护protected#对本类及其派⽣类可见
类型:属性的数据类型,可以系统固有,也可以⽤户⾃定义。属性的类型决定了该属性的所有可能取值的集合。
类——操作
可见性:同样描述该操作在那些范围内可以使⽤,与属性的可见性相同。
参数列表:是⼀些按照顺序排列的属性定义了操作的输⼊。例如:oper(out arg1:int, arg2:double=3.2)
返回类型即回送调⽤对象消息的类型。void关键字表⽰⽆返回值。
特性是对操作性质的约束说明。
类——职责婚假国家规定
职责是类的契约或责任。当创建⼀个类时,就声明了这个类的所有对象具有相同种类的状态和相同种类的⾏为。在较⾼的抽象层次上,这些相应的属性和操作正式要完成类的职责的特征。
类的职责是⾃由形式的⽂本,在⾮正式的类图中,可以将职责列在类图操作下的另⼀分割栏中。
接⼝
1.接⼝是⼀个被命名的操作集合,⽤于描述类或组件的⼀个服务。
2.接⼝不包含属性与⽅法实现,但可以有⼀些操作。接⼝的所有内容都是公有的。
3.接⼝代表了⼀份契约,实现该接⼝的类元必须履⾏它。
4.在UML中,接⼝由⼀个带名称的⼩圆圈表⽰;也可以表⽰为带有<<interface>>构造型的类
类图中的关系
UML中最常⽤的四种关系,即关联关系、泛化关系、依赖关系和实现关系。
类图中的关系——关联关系
1)关联的实例被称为链,每个链由⼀组有序或⽆序的对象组成。
2)关联关系靠近被关联元素的部分称为关联端,关联的⼤部分描述都包含在⼀组关联端的列表⾥,每个端⽤来描述关联中类的对象的参与
3)⼆元关联、⾃关联、N元关联。
注意要点
关联名称:放在关联路径的旁边,但远离关联端。
达州旅游⾓⾊:放在靠近关联端的部分,表⽰该关联端连接的类在这⼀关联关系中担任的⾓⾊。⾓⾊名上也可使⽤可见性修饰符号。
多重性:放在靠近关联端的部分,表⽰在关联关系中源端的⼀个对象可以与⽬标类的多少个对象之间有关联。
导航性:⼀个布尔值,⽤来说明运⾏时刻是否可能穿越⼀个关联。
篾限定符:是⼆元关联上的属性组成的列表的插槽,其中的属性值⽤来从整个对象集合⾥选择⼀个唯⼀的关联对象或者关联对象的集合。
约束:关联间的约束关系。
![在这⾥插⼊图⽚描述](img-blog.csdnimg/20200412142441710.png)
[现实例⼦]
⽐如客户和订单,每个订单对应特定的客户,每个客户对应⼀些特定的订单;再例如公司和员⼯,每个公司对应⼀些特定的员⼯,每个员⼯对应⼀特定的公司。
派⽣关联:属于⼀种派⽣元素。它不增加语义信息,只是⼀种可以由两个或两个以上的基础关联推算出来的虚拟关联。
两种特殊的关联关系:聚合关系与组合关系
1.聚合关系:描述“整体-部分”的关联关系
聚合关系没有改变整体与部分之间整个关联的导航含义,也与整体和部分的⽣命周期⽆关。
2.组合关系:描述“整体-部分”的关联关系
组合关系中的部分要完全依赖于整体。
关联与聚合的区别
(1)关联关系所涉及的两个对象是处在同⼀个层次上的。⽐如⼈和⾃⾏车就是⼀种关联关系,⽽不是聚合关系,因为⼈不是由⾃⾏车组成的。
聚合关系涉及的两个对象处于不平等的层次上,⼀个代表整体,⼀个代表部分。⽐如:电脑和它的显⽰器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的⽣命周期。部分类的对象不能单独存在,它的⽣命周期依赖于整体类的对象的⽣命周期,当整体消失,部分也就随之消失。⽐如张三的电脑被偷了,那么电脑的所有组件也不存在了,除⾮张三事先把⼀些电脑的组件(⽐如硬盘和内存)拆了下来。
聚合与组合的区别
聚合关系:涉及的两个对象处于不平等的层次上,⼀个代表整体,⼀个代表部分。⽐如:电脑和它的显⽰器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
组合关系:代表整体的对象负责代表部分对象的⽣命周期。公司不存在,部门也没有意义了。再例如:⼈和五脏六腑、四肢的关系。
类图中的关系——泛化关系
泛化关系定义为⼀个较普通的元素与⼀个较特殊的元素之间的类元关系。其中描述⼀般的元素称为⽗,描述特殊的元素称为⼦。(⼦类是⽗类的继承,则⽗类就是⼦类的泛化。)
通过泛化对应的继承机制使⼦类共享⽗类的属性和操作,⼩了模型的规模,同时也防⽌了模型的更新所导致的定义不⼀致的意外。
泛化关系的特征:
传递性:⼀个类⼦类的⼦类同样继承了这个类的特性。在⽗⽅向上经过了⼀个或⼏个泛化的元素被称为祖先,在⼦⽅向上则被称为后代。反对称性:泛化关系不能成环,即⼀个类不可能是⾃⼰的祖先和⾃⼰的后代。
可可西里自然保护区泛化关系的两种情况
单继承:每个类之多能拥有⼀个⽗类。
编程语⾔:C#、Java等
多重继承:⼦类可以有多个⽗类并继承了所有⽗类的结构、⾏为和约束。
编程语⾔:C++等
类图中的关系——依赖关系
依赖关系表⽰的是两个元素之间语义上的连接关系。对于两个元素X和Y,如果元素X的变化会引起对另⼀个元素Y的变化,则称元素Y依赖于X。其中,X被称为提供者,Y被称为客户。
[现实例⼦]⽐如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝⼑(Screwdriver)来帮助你完成拧螺丝(screw)的⼯作。
对于类图⽽⾔,主要有以下需要使⽤依赖的情况:
1)客户类向提供者类发送消息。
2)提供者类是客户类的属性类型。
3)提供者类是客户类操作的参数类型。
类图中的关系——实现关系
实现关系⽤来表⽰规格说明与实现之间的关系。在类图中,实现关系主要⽤于接⼝与实现该接⼝的类之间。
⼀个类可以实现多个接⼝,⼀个接⼝也可以被多个类实现。
实现关系的两种表⽰法:
a.当接⼝元素以带构造型的类的⽅式表⽰时,⽤虚线三⾓形箭头表⽰。
b.当接⼝元素以⼩圆圈⽅式表⽰时,⽤实线表⽰。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论