UML
上午题:3~5分
下午题:试题三15分
- 构成要素
- 基本构造块
- 事物
- 结构事物
- 结构事物(Structural Thing)。结构事物是UML模型中的名词。它们通常是模型静态部分,描述概念或物理元素。
- 类(Class)
- 接口(Interface)
- 协作(Collaboration)
- 用例(Use Case)
- 主动类(Active Class)
- 构件(Component)
- 制品(Artifact)
- 结点(Node)
- 行为事物
- 行为事物(Behavior thing)。行为事物是UML模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为。
- 交互(Interaction)
- 交互由在特定语境中共同完成一定任务的一组对象之间交换的消息组成。一个对象群体的行为或单个操作的行为可以用一个交互来描述。交互涉及一些其他元素,包括消息、动作序列(由一个消息所引起的行为)和链(对象间的连接)。在图形上,把一个消息表示为一条有向直线,通常在表示消息的线段上总有操作名。
- 状态机(State Machine)
- 状态机描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。单个类或一组类之间协作的行为可以用状态机来描述。一个状态机涉及到一些其他元素,包括状态、转换(从一个状态到另一个状态的流)、事件(触发转换的事物)和活动(对一个转换的响应)。在图形上,把状态表示为·个圆角矩形,通常在圆角矩形中含有状态的名称及其子状态。
- 活动(Activity)
- 活动是描述计算机过程执行的步骤序列,注重步骤之间的流而不关心哪个对象执行哪个步骤。活动的一个步骤称为一个动作。在图形上,把动作画成一个圆角矩形,在其中含有指明其用途的名字。状态和动作靠不同的语境得以区别。
- 分组事物
- 分组事物(Grouping Thing)。分组事物是UML模型的组织部分,是一些由模型分解成的“盒子”。
- 包(Package)
- 包是把元素组织成组的机制,这种机制具有多种用途。结构事物、行为事物甚至其他分组市物都可以放进包内。包与构件(仅在运行时存在)不同,它纯粹是概念上的(即它仅在开发时存在)
- 注释事物
- 注释事物(Annotational Thing)。注释事物是UML模型的解释部分。这些注释事物用米描述、说明和标注模型的任何元素。
- 注解(Note)
- 注解是一个依附于一个元素或者一组元素之上,对它进行约束或解释的简单符号。
- 关系
- 类图
- 关联
- 【关联(Association)】关联是一种结构关系,它描述了一组链,链是对象之间的连接。
【聚集(Aggregation)】是一种特殊类型的关联,它描述了整体和部分间的结构关系。在关联上可以标注重复度(Multiplicity)和角色(Role)。
- 聚合
- 聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在部分可以脱离整体存在。
- 空心菱形
- 组合
- 组合:部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在。
- 实心菱形
- 依赖
- 依赖(Dependency)。依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另个事物(依赖事物)的语义。
- 虚线实箭头
- 泛化
- 泛化(Generalization)。泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共亨了父元素的结构和行为。在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素。
- 实线空箭头
- 实现
- 实现(Realization)。实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种情况下会使用实现关系:一种是在接口和实现它们的类或构件之间:另一种是在用例和实现它们的协作之间。
- 虚线空箭头
- 用例图
- 包含
- 虚线箭头《include》,指向被包含用例
- 包含是用例和用例之间的关系
- 扩展
- 虚线箭头《extend》,指向基本用例
- 一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例。
- 泛化
- 实线空箭头,子类指向父类
- 图
静态建模:类图、对象图、用例图
动态建模:序列图(顺序图,时序图)、通信图(协作图)、状态图、活动图
物理建模:构件图(组件图)、部署
交互图:序列图(顺序图,时序图)、通信图(协作图)
- 类图
- 类
- +:public
-:private
#:protected
~:package
- 接口
- 协作
- 依赖、泛化和关联关系
- 对象图
- 对象图(Obiect Diagram)展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。对象图一般包括对象和链
- 用例图
- 用例图(Use Case Diagram)展现了一组用例、参与者(Actor)。以及它们之间的关系。
- 用例
- 参与者
- 用例之间的扩展关系(<<extend>)和包含关系(<<include>>),参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。
- 交互图
- 序列图
- 序列图(Sequence Diagram)是场景(Scenario)的图形化表示,描述了以时间顺序组织的对象之间的交互活动。形成序列图时,首先把参加交互的对象放在图的上方,沿水平方向排列。通常把发起交互的对象放在左边,下级对象依次放在右边。然后,把这些对象发送和接收的消息沿垂直方向按时间顺序从上到下放置。这样,就提供了控制流随时间推移的清晰的可视化轨迹。
- 序列图有对象生命线
- 序列图有控制焦点
- 通信图
- 通信图(Communication Diagram)强调收发消息的对象的结构组织,在早期的版本中也被称作协作图。通信图强调参加交互的对象的组织。产生一张通信图,首先要将参加交互的对象作为图的顶点,然后把连接这些对象的链表示为图的弧,最后用对象发送和接收的消息来修饰这些链。这就提供了在协作对象的结构组织的语境中观察控制流的一个清晰的可视化轨迹。
- 通信图有路径
- 通信图有顺序号
- 交互概览图
- 计时图
- 状态图
- 状态图(State Diagram)展现了一个状态机,它由状态、转换、事件和活动组成。状态图关注系统的动态视图,对于接口、类和协作的行为建模尤为重要,强调对象行为的事件顺序。
- 状态
- 状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的伏态厂还可以是既改变状态,又做动作。
- 初态:黑圆点
- 中间态:圆角矩形
- 终态:黑圆点+圆
- 活动
- 三种标准事件:entry,exit,do
- entry:入口动作,进入状态,立即执行
- exit:出口动作,退出状态,立即执行
- do:内部活动,占有有限时间,并可以中断的工作
- 事件
- 事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。
- 转换
- 状态变迁通常是由事件触发的,在这种情况下,应在表示状态转换的箭头线上标出触发转换的事件表达式
- 事件表达式:事件说明【守卫条件】/动作表达式
- 活动图
- 【对工作流建模】此时所关注的是与系统进行协作的参与者所观察到的活动。工作流常常位于软件系统的边缘,用于可视化、详述、构造和文档化开发系统所涉及的业务过程。在活动图的这种用法中,对对象流的建模是特别重要的,常采用泳道将活动图中的活动状态分组。
- 【对操作建模】此时是把活动图作为流程图使用,对一个计算的细节部分建模。在活动图的这种用法中,对分支、合并、分岔和汇合状态的建模是特别重要的。用于这种方式的活动图语境包括该操作的参数和它的局部对象。
- 构件图(组件图)
- 供接口:圆
- 需接口:半圆
- 部署图
- 部署图(Deployment Diagram)是用来对而向对象系统的物理方而建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。部署图对系统的静态部界视图进行建模,它与构件图相关。通常,一个结点是一个在运行时存在并代表一项计算资源的物理元素,至少拥有一些内容,常常具有处理能力,包含一个或多个构件。
- 支配这些构造块如何放置在的规则
- 运用与整个语言的一些公共机制