UML与他的图
UML(目前使用最广泛的建模语言)
UML,U(Unified,统一)M(modeling,模拟;建模)L(language,语言)统一建模语言(标准建模语言):
是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
来源
是将Cord-Yourdon的OOA和OOD方法中最优秀的特色组合成一个统一的方法。
OOA:面向对象分析
OOD:面向对象设计
特点
- 统一标准:UML统一了众多方法的基本概念。
- 面向对象:UML支持面向对象技术的主要概念,提供了一些表示模型元素的图形与方法。
- 可视化:UML是图形化的语言,可以清晰的表示出系统逻辑模型或者实现模型。
- 独立于过程:UML是系统建模语言,不依赖于特定的开发过程。
- 易于掌握:语法简洁明了,图形清晰。
UML的基本模型
模型元素:指的是建模过程中涉及的一些基本概念,如类、对象、用例、结点、状态等
模型元素与模型元素之间的关系也叫模型元素
UML的基本模型构成
由事物、关系、和图组成
UML的事物
事物是对模型中最具代表性成分的抽象
部分基础事物的图形表示
结构事物:
- 类:用带有类名,属性,操作的矩形框来表示。
- 主动类:主动类的实例应具有一个或多个进程或线程,能够启动控制活动。
- 接口:描述了一个类或构件的一组外部可用的服务集。
- 对象:是类的实例。
- 用例:也叫用况,用于描述一组动作序列。
- 参与者:也称角色,是指与系统交互的人,软件设备,硬件设备等。
- 协作:用例仅描述要实现的行为,不描述这些行为人的实现。
- 构件:也叫组件,是系统中物理的可替代的部件。
- 节点:是在运行时存在的物理元素。
行为事物:是UML模型的动态部分,包括了交互,状态机
交互:由特定的上下文环境中共同完成一定任务的一组对象之间传递的消息组成。
状态机:描述了一个对象或者一个交互在生存期内响应事件所经历的状态序列。
分组事物:分组事物是UML模型的组织部分,他的作用是为了降低模型复杂性。
注释事物:注释事物是UML模型的解释部分,他们用来描述和标注模型的任何元素。通常可以用注释修饰带有约束或者解释的图。
UML的关系
常见的是依赖,泛化(继承),关联,聚合
还有聚合,复合,迁移等关系。
UML中的关系
- 依赖:表示一个元素以某种方式依赖于另一元素。
两个事物之间的语义关系,其中一个事物发生变化会影响到另一个事物的语义,用一个虚线箭头表示。
- 泛化:表示一般与特殊的一种继承关系。
可以分为普通泛化与受限泛化。- 关联:连接模型元素及链接实例。
是一种结构关系,它描述了两个或者多个类的实例之间的连接关系,是一种特殊的=依赖=
关联分为:普通关联,限定关联,关联类,以及聚合与复合。
1:1个实例;
0…或:0到多个实例;
0…1:0到1个实例;
1+或1…*:1到多个实例。- 实现:是泛化关系和依赖关系的结合,也是类之间的语义关系。
出现在1)接口和实现它们的类或构件之间2)用例和实现它们的协作之间。- 聚合:表示整体与部分的关系。
UML中的图
UML的图划分为了结构图与行为图。
结构图:造型图,类图,组合结构图,构件图,部署图,对象图,包图。
行为图:活动图,交互图(顺序图,通信图,交互概览图,定时图),用例图,状态图。
用视图描述软件系统的体系结构
1.用例视图
描述系统的功能需求,找出用例和执行者
系统的中心,决定了其他视图的开发,用于确认和最终验证系统
- 用例图和活动图
2.逻辑视图
描述如何实现系统内部的功能
描述了系统的静态结构和引发消息而出现的动态协作关系
- 类图和对象图、状态图、顺序图、合作图、活动图
3.构件视图
描述系统代码构件组织和实现模块以及它们之间的依赖关系
描述系统如何划分软件构件
- 构件图
4.进程视图
描述系统的并发性,并处理这些线程间的通信和同步
将系统分割并执行的控制线程,处理这些线程的通信和同步
- 状态图、顺序图、合作图、活动图、构件图和配置图
5.配置视图
描述系统的物理设备配置
描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行。
- 配置图
UML分析和建模(按三大主要模型分类)
分为用例模型图,静态模型图,动态模型图。
1.用例模型
用例模型描述的是外部执行者所理解的系统功能,由若干个用例图组成,主要用于需求分析阶段。
1.1用例图☆
用例图是用户与系统交互的一种表示形式,可以展现用户和与之相关的其他用例之间的关系。
由模型中的参与者,用例以及各种关系组成。
包含的模型元素
例子
- 方框表示一个系统,图中表示一个成绩管理系统。
- 一个椭圆表示一个用例,图中共有3个用例。
- 一个人形图形表示一个参与者,之间的关系由连接线连接,其关系在连接线上以文字标明。
2.静态模型
任何建模语言都以静态建模机制为基础,静态建模就是对系统中对象之间相互进行的联系构建模型,关系不随时间变化而变化。UML的静态模型用于描述系统体系结构。
2.1类图☆
类图:类图使用类和它们之间的关系描述系统的一种图示,展示了系统中类的静态结构和类与类之间的相互联系,表示一个系统的逻辑结构。
- 类图是构建其他图的基础,没有类图,也就是没有状态图,合作图等其他图。
- 类的图符分为长式和短式
长式:由类名,属性,操作三部分组成。
包含的模型元素
类图实例
2.2对象图
对象图:对象图是类图的变体,两者之间的差别在于对象图表示的是一个类图的实例。
对象图
- 对象图中使用的符号与类图几乎相同,只不过是对象图中的对象名加了下划线,而且对象名后面可以直接冒号和类名,用来说明创建该对象的类。
2.3包图
包图:UML中的包是一种组合机制,包由关系密切的一组模型构成,包还可以由其他包嵌套构成。
- 包就是将许多个类集合成一个更高层次的单位,形成一个高内聚,低耦合的类的集合,UML中把这种分组机制称为包。
- 构成包的模型元素称为宝的内容,包通常用于模型的组织管理,因此可以叫包为子系统。
- 包拥有自己的模型元素,包与包之间不能公用一个相同的模型元素。
- 包的实例没有任何语义,仅仅在模型执行期间才有意义。
包图实例(来源网络)
2.4配置图(部署图)
配置图:又叫部署图,UML面向对象中配置图描述系统中硬件和软件的物理配置情况和系统体系结构。
在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行
- 配置图中的结点表示计算机资源,通常指某硬件。结点的图符是一个立方体,结点应该标注名字。
- 配置图各结点之间进行交互的通信路径称为连接,需要标明通信类型。连接表示系统 中的结点之间的联系。
配置图
2.5构件图(组件图)
构件图:又叫组件图,显示代码本身的逻辑结构,它描述了系统中存在的软件构件以及它们之间的依赖关系。
模型元素包括:构件,依赖关系,界面。
构件图
3.动态模型
动态模型主要是描述系统的动态行为和控制结构。
3.1顺序图(时序图)☆
顺序图:也叫时序图,顺序图是将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。
顺序图实例(来源网络)
-如果强调时间与顺序,就使用顺序图。
3.2活动图☆
活动图:由状态图变化而来,它们各自用于不同的目的地。状态图着重描述对象的状态变化以及触发状态变化的事件。
活动图包含的模型元素
顺序图实例
3.3状态图☆
状态图:用来描述一个特定对象的所有可能的状态以及其引起的状态迁移的事件。一个状态图包括一系列的状态以及状态之间的迁移。
- 事件:一条消息或者是满足了某些条件。
- 状态迁移:状态的改变就是状态迁移。
- 迁移动作:与状态迁移相关的动作,指出状态迁移时应该做什么。
状态图包含的模型元素
状态图实例(来源网络)
3.4合作图(协作图)(通信图)
合作图:也称协作图,通信图,用于描述相互合作的对象间的交互关系和连接关系。与顺序图一样,合作图也展现了对象间的动态协作关系。
- 如果强调对象间的相互关系,就选择合作图。
- 合作图画成对象图,图中的消息箭头表示对象间的消息流向,消息箭头必须附加标记,说明消息发送的先后顺序,还可以显示条件,重复和回送值。
合作图实例
UML的图可分为五大类
用例模型:用例图
静态模型:类图,对象图,包图
行为模型:状态图,活动图
交互模型:顺序图和合作图,描述对象之间的动态交互行为。
实现模型:构件图与部署图
其他图
组合结构图
组合结构图是UML的一种结构图。“结构”是指元素之间的相互连接,实例通过通信连接合作以实现某目的。 组合结构图的结点元素有:部件、端口、合作、合作使用;连接元素有连接件、角色绑定。它表示某一对象的内部结构,其内部由一组小对象组成。这种图有两个特色:其一,它锁定的范围是对象内部,而不是一般业务系统的系统内部;其二,它强调对象内部的组成对象,一般在业务系统中对象是平等的,而组合的结构就比较少一些。
- 部件:一个实例,是组合结构图的基本组成元素。部件可以包含子部件,当所包含的子部件都被摧毁时,部件也将不复存在。注意:一个部件可以在它的父类被删除之前从父类中被去掉,这样部件就不会被同时删除了。部件在类或组件内部显示为不加修饰的方框。
- 端口:端口是部件与其外部环境或子部件之间的交互点。当一个接口在图中单列出来,它既可以显示为类元素的方框,带 «interface» 关键字和表明它是抽象的斜体名称,也可以显示为圆环。
- 连接件:允许两个或更多个实例之间进行通信的连接。连接件可以简单到是指针,也可以复杂到是网络连接。与关联不同,关联指定的是实例所属类之间的关系,而连接件仅仅是实例之间的关系。
造型图
造型图是元模型的一种限制形式,可用于对UML进行扩展,最基础的是构造型。
构造型,UML 支持大量的构造型 。它们是对UML模型元素进行逻辑上的扩展或改变意义和显示方式,或者修改特征和语法。不同的模型元素具有与它们关联的不同标准构造型。
交互概览图
- 交互概述图是将活动图和顺序图嫁接在一起的图
- 可以看作活动图的变体,它将活动节点进行细化,用一些小的顺序图来表示活动节点内部的对象控制流。
- 也可以看作顺序图的变体,它用活动图来补充顺序图,
- 交互概述图在草图中更加适用,先通过活动图对业务流程进行建模,然后对于一些关键的、复杂度并不高的活动节点进行细化,用顺序图来表示它的对象间的控制流,
- 不要盲目的使用交互概述图,对于规模稍大的场景,它并不是一个很好的选择,它将使模型的可读性大大降低。
定时图
一种交互图。表示对象中的事件发生和对象之间相互作用的时刻,以及由此引起的对象状态变化的时刻和持续时间。