我拿来写论文凑字数的
UML 图表可大致分为结构性图表和行为性图表两种。
类图是一切面向对象方法的核心建模工具。该图描述了系统中对象的类型以及它们之间存在的各种静态
关系。
表示类的框分为以下几层:
类名:类名如果是正体字,表面这是一个具体的实例。如果是斜体字,表面类是抽象的。
属性:一个属性可以是public、private或protected。一个属性的左边如果是加号(+),表示它是public;左边如果是减号(-),表示它是private;左边如果是井号(#),表示它是protected;
方法:一个方法的左边如果是加号(+),表示它是public;左边如果是减号(-),表示它是private;左边如果是井号(#),表示它是protected;
具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示:
抽象类在UML类图中同样用矩形框表示,但是抽象类的类名以及抽象方法的名字都用斜体字表示:
接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端用构造型 <>表示,下面是接口的名字,第二层是方法:
类和接口一般都出现在包中
在统一建模语言中,组件图描绘了组件如何连接在一起以形成更大的组件或软件系统。它展示了软件组件的体系结构以及它们之间的依赖关系。那些软件组件包括运行时组件,可执行组件和源代码组件。
订单系统组件依赖于客户资源库和库存系统组件。中间的虚线箭头表示依赖关系。另外两个符号,表示组件连接器,一个提供接口,一个需要接口。
部署图有助于模拟面向对象软件系统的物理方面。它是一个结构性图表,显示了软件产出于系统架构内如何被分发至指定目标。产出即现实生活中各种通过开发过程产生的产品。部署图对运行时配置进行建模,并可视化应用程序中 产出的分布。在大多数情况下,它表达了硬件配置以及和软件组件之间的关系。
图中简单的表示,不同机器上面部署的不同软件。
对象图是实例 (Instance) 的表达,包括对象和数据值。静态的对象图是类图的一个实例,它是系统在某个时间点的详细状态的快照,不同之处在于类图表示了一个由类及其关系组成的抽象模型,而对象图则表达了特定时刻的实例。对象图的使用是相当有限的,它常被用作展示数据结构例子。
UML 对象图显示了系统中的对象实例如何在特定状态下彼此交互。它也表示那个状态下那些对象的数据值。换句话说,UML 对象图可以被看作是如何在特定状态下使用类(在 UML 类图中绘制)的表达。
类图示例:
以下类图示例代表两个类 - 用户和附件。用户可以上传多个附件,因此这两个类都以一个关联连接,在附件方侧以0 … *作为多重性。
对象图示例:
下面的对象图示例显示了當Peter (即用户)上载两个附件时 User 和 Attachment 类的对象实例如何。因上传两个附件,所以有两个附件对象。
包图是 UML 一種用以显示包和包之间的依赖关系的结构性图表。模型图能显示系统的不同视图,例如,多层应用程序。
组合结构图是添加到 UML 2.0 中的新的图表之一。组合结构图与类图相似,是一种用于微观视角的系统建模组件图,而不是整个类的组成部分。它是一种静态结构图,显示了一个类的内部结构和这个结构所实现的协作。
组合结构图可以包括内部零件,零件通过其互相交互或通过端口与外界交互。复合结构是一组相互关联的元素,它们在运行时进行协作以达到某种目的。每个元素在协作中都有一些定义的角色。
图中描述了Car是由车轴连接着的两个前面轮子、两个后面轮子,和引擎组合的。
用例模型从用例的角度描述系统的功能需求,它是系统预期功能(用例)及其环境(参与者)的模型。用例使您能够将系统需要与系统如何满足这些需求相关联。
将用例模型想象成一个菜单,就像在餐馆中找到的菜单一样,通过查看菜单,你知道什么菜肴以及他们的价格,你也知道餐厅供应什么样的菜肴:意大利,墨西哥,中国等等。通过查看菜单,您可以对该餐厅的用餐体验有个全面的了解。
因为它是一个非常强大的计划工具,所以团队成员通常在开发周期的所有阶段都使用用例模型。
活动图用于展示工作流程,它支持选择 (Choice),迭代 (Iteration)和并发 (Concurrency)。活动图描述了目标系统的控制流程,比如探索复杂的业务规则和操作,描述用例和业务流程。在统一建模语言中,活动图旨在模拟计算和组织过程(即工作流程)。
状态图是 UML 中用来描述基于 David Harel 的状态图概念的系统行为的一种图表。状态图描绘允许的状态和转换以及影响这些转换的事件,它有助于可视化对象的整个生命周期,从而更好地理解以状态主導 (State-based) 的系统。
图中描述了,门在其生命周期内所经历的状态。
序列图根据时间序列展示对象如何进行协作。它展示了在用例的特定场景中,对象如何与其他对象交互。
生命线:在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。
关于对象的命名:
在生命线的虚线上可以用活动条来表示某种行为的开始和结束,一般用小矩形来表示。
在面向对象的分析和设计中,对象的行为也被称为消息,因为对象之间的行为的交互擢用也可以看成是对象之间发送消息实现的。通常,当一个对象调用另一个对象中的行为时,即完成了一次消息传递。
时序图中关注生命线之间的通信,这些通信就是对象发送的消息。UML用生命线间带有实心箭头的实现表示消息,每条消息从发送对象指向接收对象。
另外消息中还细分为了简单消息、同步消息和异步消息。
简单消息:就表示控制如何从一个对象发送给另一个对象,并不包含控制的细节。
同步消息:意味着阻塞和等待。如:A向B 发送一个消息后,对象A 必须一直等到B执行完成后返回才能继续往下执行。这就是同步消息。
异步消息:就意味着是非阻塞。如:A向B发送消息后,直接可以执行下面代码,无需等待B的执行。
同步消息用实心箭头表示,异步消息用开放式箭头表示。
自我调用消息:
消息的返回值:
与序列图类似,通訊圖也用于模拟用例的动态行为。与序列图相比,通訊圖更侧重于显示对象的协作而不是时间顺序。
图中展示了一个线上书店的通讯图,方框和小人表示生命线,不同生命线之间可以传递消息,消息前面的数字可以表达序列顺序。
交互概述图侧重于交互控制流程的概述,它是活动图的变体,其中节点是交互 (Interactions) 或交互发生 (Interaction Occurrences)。交互概述图描述了隐藏於消息 (Message) 和生命线 (Lifeline) 間的交互。
时序图显示了既定时间内对象的行为。时序图是序列图的一种特殊形式,它俩之间的差异是轴反转,时间从左到右增加,生命线显示在垂直排列的独立隔间中。
【概念】时序图被用来显示随时间变化,一个或多个元素的值或状态的更改。也显示时控事件之间的交互和管理它们的时间和期限约束。
【目的】用来表示元素状态或者值随时间的变化而变化的视图。