面向对象复习_UML相关
重点在于如何根据实例画出类图。
UML类图
活动者
活动者是作用于系统的一个角色或者说是一个外部用户。活动者可以是一个人,也可以是使用本系统的外部系统。
用例(Use Case)
用例是对活动者使用系统的一项功能的交互过程的陈述。
用户进行登录的用例图
对象类(Class)
对象类(类)是具有相同属性和相同操作的对象的集合。
属性
可视性(+,-,#) 属性名 [多重性] :类型 = 初始值
操作
可视性(+,-,#) 操作名 (参数列表) :返回列表
接口(Interface)
接口是一种抽象类,它对外提供一组操作,但自己没有属性和方法(操作的实现),它是在没有给出对象实现的情况下对对象行为的描述。
接口使用对象类的图形表示方法,接口名前面加构造型<<interface>>
。
包(Package)
包也是一种模型元素,可以把语义相近的模型元素组织在一个包里,增加对模型元素的可维护性。
关联(Association)
关联就是类或对象之类链接的描述。
组合(Composition)
组合关系用于表示对象之间部分和整体关系,关系很紧密。
聚合(Aggregation)
聚合关系也用于表示对象之间部分和整体关系,但关系比较松散。
聚合是关联的特例。如果类与类之间的关系具有整体与部分(part-whole)的特点,则把这样的关联称为聚合。
泛化(Generalization)
泛化用于表示对象之间一般和特殊的结构关系。
依赖(Dependency)
依赖表示两个或多个模型元素之间语义上的关系 。
- 总是单向的。
- 依赖体现为方法参数或局部变量。
实现(Realization)
实现是指一个模型元素(如:类)是另一个模型元素(如:接口)的实现。
消息(Message)
一般消息
返回消息
注释(Comment)
注释没有特定的语义,它用于对其他模型元素的补充说明。
UML的构造块(了解)
组成UML有三种基本的构造块:
- 事物(Things)
- 关系(Relationships)
- 图(Diagrams)
事物
- 结构事物(Structural things)
- 动作事物(Behavioral things)
- 分组事物(Grouping things)
- 注释事物(Notational things)
这些事物是UML模型中最基本的面向对象的建筑块。它们在模型中属于最静态的部分。
图
为了能支持从不同角度来考察系统,标准建模语言UML定义了下列5类、共9种模型图:
- 用例图
- 静态图
- 行为图
- 交互图
- 实现图
用例图
从用户角度描述系统功能,并指出各功能的操作者。
用例图中包含三种模型元素:系统、角色、用例。在画用例图时,还要画出元素之间的各种关系。
静态图
包括类图、对象图和包图。
类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。
类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
对象图是类图的实例,几乎使用与类图完全相同的标识。不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
行为图
描述系统的动态模型和组成对象间的交互关系。
状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。
活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。
交互图
描述对象间的交互关系。
顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互(也称时序图、序列图)
协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择协作图。
顺序图
- 描述对象是怎么交互的,着重体现对象间消息传递的时间顺序。
- 用顺序图说明系统的动态视图。
消息:
简单消息(simple):表示简单的控制流。用于描述控制如何在对象间进行传递,而不考虑通信的细节。
同步消息(synchronous):表示嵌套的控制流。操作的调用是一种典型的同步消息。调用者发出消息后必须等待消息返回,只有当处理消息的操作执行完毕后,调用者才可继续执行自己的操作。
异步消息(asynchronous):表示异步控制流。当调用者发出消息后不用等待消息的返回即可继续执行自己的操作。异步消息主要用于描述实时系统中的并发行为。
实现图
构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。 它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。
配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。