• 【软件建模与设计】-02-UML图


    目录

    摘要

    1、用例图(use case diagram)

    2、类与对象

    3、类图

    3.1、四种关系

    3.2、可见性

    4、交互图

    4.1、通信图

    4.2、顺序图

    5、状态机图

    6、包图

    7、并发通信图

    8、部署图

    9、UML扩展机制

    9.1、构造型

    9.2、标记值

    9.3、约束


     

    摘要

    用例图(Use case diagram)
    类图(Class diagram )

    对象图(Object diagram)

    通信图(Communication diagram)
    顺序图(Sequence diagram)
    状态机图(State Machine diagram)
    活动图(Activity diagram)

    组合结构图(Compositestructure diagram)
    部署图(Deployment diagram)

     

    1、用例图(use case diagram)

    一个参与者(actor)发起一个用例(use case)。用例定义了参与者与系统之间的一组交互序列。

    在用例图中,参与者用一个人形图标表示,系统用一个方框来表示,一个用例表示为方框中的一个椭圆。

    通信关联(communication association)将参与者与他们参与的用例进行连接。

    用例之间的关系通过包含(include)关系和扩展(extend)关系进行定义。

    依赖关系:使用虚线箭头

    衍型

    extend :指向父类

    include:指向子类

    f5a1fb26903d45f2968bb587e7966a6b.png

     

    2、类与对象

    类(class)和对象(obiect)在UML表示法中被描绘成方框,如图2-2所示。表示类的方框总是包含类名,并且可选择性地列出类的属性(attribute)和操作(operation)。当同时描述以上三者时,方框的顶部区域放置类名,中部区域放置属性,底部区域放置操作。

    为了区分类(类型)和对象(该类型的一个实例),对象名称需要带有下划线。可以在对象名和类名之间使用冒号分隔来完整地描绘一个对象,例如anObiect:Class。也可选择性地隐藏冒号和类名,仅剩下对象名,例如anObiect。另一种方式是隐藏对象名,仅在冒号后显示类名,例如:Class

    bc82e7d5608b4f8d9029d7c6e3d5714b.png

    3、类图

    在类图中,类用方框描绘,类之间的静态(永久)关系被描绘成连接方框之间的连线。

    3.1、四种关系

    1)关联(association)

    具备多重性,一对一、一对多、多对多

    2)整体/部分关系(whole/part relationship)

    组合:部分与整体具有相同生命周期,采用实心菱形

    聚合:部分与整体具有独立生命周期,采用空心菱形

    3)泛化/特化(generalization/specialization relationship)关系

    泛化采用实心箭头,特化采用空心箭头

    4)依赖关系(dependencyrelationship),经常被用来表示包之间是如何进行关联的

    32d8cd41c6c942f5801a335f0b213d82.png

    3.2、可见性

    1)公有可见性(publicvisibility)使用+号,表示一个元素在类的外部是可见的。

    2)私有可见性(private visibility)使用-号,表示一个元素只在定义它的类的内部是可见的,对于其他类是隐藏的。

    3)受保护可见性(protected visibility)使用#号,表示一个元素在定义它的类及其所有子类中是可见

    485818d34223404e85634721ec10fbe5.png

    4、交互图

    通信图和顺序图是UML的两种主要类型的交互图,它们用来描绘对象间是如何进行交互的。

    在这些交互图中,对象用长方形方框表示,对象的名字不需要使用下划线标绘。

    4.1、通信图

    展示了合作对象间如何通过发送与接收消息进行动态的交互。

    通信图描绘了交互对象的组织结构。其中,对象用方框表示,连接方框的线代表了对象间的交互。

    fff57b16d5424b91a8c63f6416660abe.png

    星号(*)表示一个可选的迭代,即一条消息被发送了多于一次

    中括号(【】)一个可选的条件(condition)表示一条消息在满足特定条件的情况下才会被发送。

     

    4.2、顺序图

    循序图将对象交互通过时间序列的方式进行描绘。

    顺序图具有两个维度,其中参与交互的对象被描绘在水平方向,而乖直方向代表时间维度。

    从每一个对象框出发都有一条被称为生命线(lifeline)的垂直虚线。

    每条生命线可以选择性地具有一个使用双实线表示的激活期(activation bar)它用来表示对象执行的时间。

    参与者通常显示在页面的最左端。带有标签的水平箭头代表消息。仅有箭头连接的源对象和目标对象是相关的,消息从源对象发送到目标对象。时间从页面的顶部开始增加直至底部。另外,消息之间的间隔是不相关的。

    543c2f29c0474477823d9b8938e46afb.png

     

    5、状态机图

    使用状态转化图表示

    圆角矩形表示状态

    状态图的初始状态(initial state)用一个始于小黑圆圈的弧线表示。

    终结状态(final state)是可选的,它被描绘为嵌套在大白圈中的小黑圆圈

    状态图可以按层次分解,将一个组合状态分解成为一组子状态。
    在表示状态转换的弧线上,使用事件[条件]/动作(Event[Condition]/Action)进行标记。

    事件(event)引起了状态的转换,当事件发生时,为发生转换,可选的布尔条件condition)必须为真

    可选的动作(action)作为转换的结果被执行。一个状态可具有以下任意的动作::

    • 1)进入动作(entry):进入状态时执行
    • 2)退出动作(exit):退出状态时执行

    9f23b7535a4849ec9346e34650fc6566.png

    下图描述了一个被分解为正交区域(orthogonal region)BC和BD的组合状态B。在这种情况下状态图在同一个时刻并行进入了每一个正交区域BC和BD中。每一个正交的子状态被进一步分解为顺序的子状态。因此,当进人组合状态B时,同样进入了状态B1和B3。

    ccda2ee85f1a4fc6b6029db72bca71e3.png

     

    6、包图

    包是一组建模元素的组合,例如代表一个系统或一个子系统。

    用一个文件夹图标表示包,即在一个大长方形的角上依附一个小长方形。

    包也可能被嵌套在其他包里面。依赖(dependency)和泛化/特化(generalization/specialization)是包之间可能具有的关系。

    包可用于容纳类、对象或者用例。

    5d92a4db10cd4426af732d1aabab1c8d.png

    7、并发通信图

    一个主动对象可用于描绘一个并发对象(concurrentobiect)、进程process)、线程(thread)或任务(task)。

    可以用一个左右两边带有两根垂直线的方框表示一个主动对象。

    1)主动对象(activeobiect)拥有自己的控制线程,并且能与其他对象并发执行。

    2)被动对象(passiveobject)不具有控制线程。被动对象只在其他对象(主动或被动)调用其方法时才会执行。

    10a2fc383e94407aa978b537507ea098.png

    消息通信

    消息接口:异步松耦合、同步紧耦合

    9bfdaf08551e433789ac8f5892e22330.png

    实心箭头:call 调用 、同步

    普通箭头:send发送、异步

    虚线箭头:返回消息

    下图表示并发通信图

    f4bf721d68a64ad98e3a17e6c54a113b.png

    8、部署图

    部署图以物理结点和结点间物理连接的方式(例如网络连接)展示了一个系统的物理配置。

    一个结点使用一个立方体表示,连接则用这些立方体之间的连接线表示。

    本质上,部署图是以系统结点为关注点的一种类图

    dc36293065fc412889e5fa1ecdeb520b.png

    9、UML扩展机制

    9.1、构造型

    从已有的UML建模元素中派生新的结构,使用<<>> 衍型表示。

    如 <<系统>>、<<子系统>> 表示不同类的包

    允许对构造的元素进行剪裁

    如<<实体>>类、<<边界>>类、<<控制>>类

    c6932e53435945279f89484ba91f0418.png

    9.2、标记值

    扩展了UML构造块的属性,从而添加新的信息

    一个类可以具备多个标记值

    表示形式:{ 标记=值 }

    55c7c4357b35402da24c3208f32901c1.png

    9.3、约束

    约束指一个必须为真的条件。

    如上图中实体属性中的 -balance: real { balance >= 0 } 的表示形式

     

  • 相关阅读:
    uniapp之uni-starter小程序多端研发框架搭建与项目实践
    如何写出新闻营销中的优质新闻稿?企业在做新闻营销需要注意哪些问题呢?
    OpenCore引导都支持哪些.efi文件
    Docker容器技术
    upp(统一流程平台),一份迟来的可行性研究报告
    java计算机毕业设计ssm课程建设制作服务平台系统
    AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】
    教培机构如何抢占招生市场
    光电探测器指标分析
    机器人运动学、动力学与控制及Matlab实现
  • 原文地址:https://blog.csdn.net/xcg340123/article/details/140323698