统一建模语言UML

一、 概念知识:

  1. UML是什么:
    UML是一种语言,分析设计语言,它有属于自己的标准表达规则,也就是一种建模语言。
    UML是由图形符号表达的建模语言。
    UML是一种用于描绘软件蓝图的标准语言。
  2. UML结构
    视图:用户视图、结构视图、实现视图、行为视图、环境视图。
    图:用例图、类图等。
    模型元素:模型元素包括事物以及事物与事物之间的联系、每一个模型元素都有一个与之相对应的图形元素、同一个模型元素可以在不同的UML图中使用、无论在哪个图中,同一个模型元素都保持相同的意义和符号。
    通用机制:额外的注释、修饰和语义等、包括规格说明、修饰、公共分类和扩展机制四种、允许用户对UML进行扩展。
  3. UML的特点
    工程化、规范化、可视化、系统化、文档化、智能化。

二、 用例建模:用例图、用例执行文档
建模步骤:
  识别执行者Actor、识别用例、绘制用例图、书写用例文档、检查用例模型。
执行者:
  在系统之外,透过系统边界与系统进行有意义交互的任何事物。
用例:
  在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。起名为动词加宾语,要保持用户观点。
起名原则可理解为**【执行者】使用系统来【用例】**
执行者和用例之间的关联关系(Association)(或通信关系):一根直线来表示
在这里插入图片描述

执行者之间的泛化关系(Generalization)(或继承关系)
在这里插入图片描述

用例之间的关系:
包含关系(include):
  描述在多个用例中都有的公共行为,由用例A指向用例B,表示用例A中使用了用例B中的行为或功能,包含关系是通过在依赖关系上应用<>构造型(衍型)来表示的。
在这里插入图片描述

扩展关系(extend):
  扩展用例可以在基用例之上添加新的行为,但是基用例必须声明某些特定的“扩展点”,并且扩展用例只能在这些扩展点上扩展新的行为。扩展关系是通过在依赖关系上应用<>构造型(衍型)来表示的。单看,扩展用例可以“独立”的。
在这里插入图片描述

泛化关系:
  当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。
  在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。(子用例之间互相扩展extend)
  泛化关系一般很少使用
在这里插入图片描述
书写用例文档:
用例是文本文档,而非图形。用例建模主要是编写文本的活动,而非制图。
用例文档的内容:
 用例编号
 用例名
 执行者
 前置条件(开始用例前所必需的系统及其环境的状态,必须是系统在用例开始前系统能检测到的,主语一般是执行者)
 后置条件(用例成功结束后系统应该具备的状态,必须是系统能检测到的)
 涉众利益
 基本路径(执行者动作,系统验证,对应的改变,回应执行者)
 1××××
 2××××
 3××××
 扩展路径
 2a.××××:
 2a1….×××××
 字段列表()
 业务规则
 非功能需求
 设计约束(这四个可以直接放在用例中,也可以单独集中到另外的文档,从用例文档指向)
在这里插入图片描述在这里插入图片描述

三、 状态图(State Diagram)
适合用于表述在不同用例之间的对象行为
定义:
  用来描述一个特定对象的所有可能状态及其引起状态转移的事件。
  通常用状态图来描述单个对象的行为
  只有那些具有重要交互行为的类,才会使用状态图来描述。
  一个状态图包括一系列对象的状态及状态之间的转换。
状态框:
  每个状态框中有两格:上格放置状态名称,下格说明处于该状态时,系统或对象要进行的动作(Action)
转移:
  从一个状态到另一个状态之间的连线,状态之间的过渡事件(Event)对应对象的动作或活动(Action)其。
语法为:事件名 [条件] / 动作名
组成元素:
  初始状态(实心的圆点)
   终止状态(实心圆外加一个圆圈)
  状态
  转移
  守护条件
  事件
  动作
在这里插入图片描述

复合(组合)状态:
  不包含其他状态的状态称为简单状态,将若干状态组织在一起可以得到一个复合状态。包含在一个复合状态中的状态称为子状态。
在这里插入图片描述

四、 活动图(Activity Diagram)
定义:
  用来表示系统中各种活动的次序,它的应用非常广泛,既可用来描述用例的工作流程,也可以用来描述类中某个方法的操作行为。
活动图是UML中的流程图,是一种描述工作流的方式。
作用:
  描述业务流程
  描述用例路径
  描述方法执行流程(程序流程图)
组成元素:
  起始活动(Start Activity)(实心圆饼)
  终止活动(End Activity)(圆圈内一个实心圆点)
  活动(Activity)(圆角矩形)
  转移(Transition)或流(Flow)(带箭头直线)
  决策(Decision)
  守护条件(Condition),用来约束转移,守护条件为真时转移才可以开始
  同步条(Synchronization)(粗黑线),将一个转移分解成两个或更多的转移,从而导致并发的动作
  泳道(Swimlane) 划分负责活动的对象
  对象流(带箭头的虚线)对象(矩形)
在这里插入图片描述

活动图描述业务流程并不是对每个系统都必不可少的工作,不要看成可编程的模型。

五、 顺序图
以用例为单位创建顺序图。
定义:
  用于确认和丰富一个使用情境的逻辑。
  将交互关系表现为一个二维图,纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色,类元角色的活动用生命线表示。
组成元素:
  生命线:用一条纵向虚线表示。
  对象:表示为一个矩形,其中对象名称标有下划线。
  激活:是过程的执行,包括等待过程执行的时间。激活部分替换生命线,使用长条的矩形表示。
  消息:对象之间的通信,有标记的箭头表示。分为以下几种:
调用消息:对应于激活,表示它将会激活一个对象。
发送消息:没有对应激活框,表示它不是一个调用消息,不会引发其他对象的活动。
返回消息
自身消息
创建消息
销毁消息
同步消息
异步消息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

交互片段:一个复杂的顺序图可以划分为几个小块,每一个小块称为一个交互片段。
  alt:多条路径,条件为真时执行。
  opt:任选,仅当条件为真时执行。
  par:并行,每一片段都并发执行。
  loop:循环,片段可多次执行。
  critical:临界区,只能有一个线程对它立即执行。
在这里插入图片描述

注意:
  启动交互的对象放在最左边,随后放入消息的对象放在启动交互对象的右边。
  有的消息对应于激活,表示它将会激活一个对象,这种消息称为调用消息(Call Message);如果消息没有对应激活框,表示它不是一个调用消息,不会引发其他对象的活动,这种消息称为发送消息(Send Message)
似乎是一个使用者,和几个系统之类交互。使用者完全没有激活。系统只有有进有出才会激活。

六、 活动图、状态图、顺序图区分:
  需要考察单个用例内部多个对象的行为可以使用顺序图;
  需要考察单个对象的行为就需要使用状态图;
  需要考察跨用例或者跨线程的行为就需要考虑使用活动图

七、 类图:类名(对象),属性,操作
类的属性表示方式:
  可见性 名称:类型 [= 默认值]
  + age :int =25
类的操作表示方式:
  可见性 名称([参数列表]) [: 返回类型]
  + method(int a,intb): int
类之间的关系:
关联关系(Association)
  用于表示一类对象与另一类对象之间有联系
  用实线连接有关联的对象所对应的类
  通常将一个类的对象作为另一个类的属性
在这里插入图片描述
自关联
  一些类的属性对象类型为该类本身
在这里插入图片描述

多重性关联
  表示一个类的对象与另一个类的对象连接的个数。
在这里插入图片描述
在这里插入图片描述
聚合关系(Aggregation)
  表示一个整体与部分的关系。
  成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。(梦回extend?)
  在UML中,聚合关系用带空心菱形的直线表示。
在这里插入图片描述
组合关系(Composition)
  部分和整体具有统一的生存期。
  部分对象与整体对象之间具有同生共死的关系。
  整体类可以控制成员类的生命周期,即成员类的存在依赖于整体类。(这也是梦回include?)
  在UML中,组合关系用带实心菱形的直线表示。
在这里插入图片描述
依赖关系(Dependency)
  使用关系。
  体现在某个类的方法使用另一个类的对象作为参数。
  在UML中,依赖关系用带箭头的虚线表示。
在这里插入图片描述
做属性,是关联;做方法的参数,是依赖。
泛化关系(Generalization)
  用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。
  在UML中,泛化关系用带空心三角形的直线来表示。
在这里插入图片描述

接口与实现关系(Realization)
  类实现了接口,类中的操作实现了接口中所声明的操作。
  在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。
在这里插入图片描述

八、 正向工程与逆向工程
  正向工程:模型到代码
  逆向工程:代码到模型

之后的包图、组件图、部署图、对象图、组合结构图、通信图、定时图、交互概览图等,需要了解英文名称、作用以及定义。由于篇幅过长,编辑软件不好用,距离不方便等原因,不予交代。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值