zoukankan      html  css  js  c++  java
  • UML基础总结

    UML(Unified Modeling Language)统一建模语言

    官方网站:http://www.uml.org/

    建模是在编码之前进行的设计工作,一般常用于需求分析中,而且在软件功能设计方面也能起到很大的作用。
    模型可以提高抽象层次,可以屏蔽或隐藏软件编码上的细节,使得在软件开发前对软件具有宏观把控。
    当然UML也不一定是在软件开发前就画好的,很多编译器,比如IDEA、Eclipse等,都有插件可以将java类直接生成对应的UML类图。而常用的UML建模工具,比如Rational Rose,也是具有直接将UML类图转化为java代码的能力的。
    UML显然可以是和平台无关的,也可以是和平台有关的。

    面向对象建模通常有三种模型,分为对象模型、动态模型、功能模型
    (1)对象模型:描述系统的数据结构;
    (2)动态模型:描述系统的控制结构;
    (3)功能模型:描述系统的功能。
    其中对象模型是最基本、最重要的

    UML目前最新版本为UML 2.5.1
    其包括十三种图表,分成三类

    类别 UML图
    结构图 类图,对象图,组件图,复合结构图,封装图,包图
    行为图 用例图(在需求收集期间由某些方法使用); 活动图和状态机图
    交互图 (所有这些都来自更一般的行为图)—— 序列图,协作图,时序图和交互概述图

    在这里插入图片描述
    在这里插入图片描述

    每种图下面仅做简单介绍,深入学习请前往W3CSchool等学习网站,以下图片及相关资料来自W3CSchool(侵删)

    1、类图(Class Diagram)

    用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型

    本图为:订单类图
    在这里插入图片描述
    我的理解:类图描述了各个类(接口)的内部方法、成员变量的设计,以及类(接口)之间的逻辑关系

    2、对象图(Object Diagram)

    ① 对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的;
    ② 显示某时刻对象和对象之间的关系。一个UML对象图可看成一个类图的特殊用例,实例和类可在其中显示;
    ③ 对象图是类图的实例,几乎使用与类图完全相同的标识;
    ④ 由于对象存在生命周期,因此UML对象图只能在系统某一时间段存在

    本图为:订单管理系统对象图
    在这里插入图片描述
    我的理解:对象图和类图在表现形式上很类似,他们的关系很类似进程和程序的关系,即一个类在类图上只能出现一次,但是一个类却可以有很多个实例对象出现在对象图中,他们在UML图里的画法也很类似,可以注意的是,对象图的最上面一栏的写法是:对象名:类名

    3、组件图(Component Diagram)

    ① UML 组件图又称为构件图,他描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块;
    ② 组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector);
    ③ 组件图给提供了将要建立的系统的高层次的架构视图,这将帮助开发者开始建立实现的路标,并决定关于任务分配及(或)增进需求技能;
    ④ 组件图不描述该系统的功能,但它描述了用于使这些功能的组件;
    ⑤ 组件图的目的概括如下:

    • 可视化系统的组成部分;
    • 构建的可执行文件,使用正向和反向工程;
    • 描述的组织和组件的关系。

    注:W3CSchool的组件图似乎不太正确,故下图来自https://blog.csdn.net/suzan_bingtong/article/details/80555294
    本图为:机房收费系统组件图
    在这里插入图片描述
    我的理解:组件图是架构师在初期就要设计好的图,主要描述软件部分物理组成,就是抽象层次很高的类(或一组类)与类(或一组类)的关系描述。

    4、复合结构图(Composite Structure Diagram)

    以下翻译自:https://sparxsystems.com/resources/tutorials/uml2/composite-diagram.html
    复合结构图是显示类元的内部结构的图,包括其与系统其他部分的交互点。它显示了部件的配置和关系,它们一起执行包含类元的行为。
    在这里插入图片描述
    建议参考资料:https://www.cnblogs.com/coolstream/p/9573438.html

    5、包图(Package Diagram)

    Package可以类似理解为Folder,即文件夹,包图也就是描述项目类似文件夹的这种结构的模型
    在这里插入图片描述

    6、用例图(Use Case Diagram)

    ① 用例图捕捉了模拟系统中的动态行为,并且描述了用户、需求以及系统功能单元之间的关系。
    ② 用例图展示了一个外部用户能够观察到的系统功能模型图。
    ③ 用例图由主角,用例和它们之间的关系组成。
    在这里插入图片描述

    7、部署图(Deployment Diagram)

    ① 部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中;
    ② 部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图;
    ③ 部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构。
    在这里插入图片描述

    8、活动图(Activity Diagram)

    活动图是用来显示消息流从一个活动到另一个活动的图
    活动图只能由一个开始元素,可以有多个结束元素
    在这里插入图片描述

    9、状态机图(State Machine Diagram)

    参考:https://www.cnblogs.com/yxx123/p/5227267.html
    状态机图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序
    在这里插入图片描述

    10、序列图(Sequence Diagram)

    参考自:https://www.cnblogs.com/tian830937/p/4454433.html
    ① 序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。
    ② 消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。
    在这里插入图片描述

    11、协作图(Communication Diagram)

    参考自:https://blog.csdn.net/a213489/article/details/72608461
    协作图是动态图的另一种表现形式,它强调参加交互的各对象结构的信息。协作图是一种类图,它包含类元角色和关联角色,而不仅仅是类元和关联。协作图强调参加交互的各对象的组织。
    在这里插入图片描述

    12、时序图(Timing Diagram)

    参考自:http://www.360doc.com/content/17/1228/09/51135619_717043226.shtml
    时序图是用来显示交互的UML交互图,当图的主要目的是为了解释时间。时序图关注条件的变化在时间轴中沿直线的生命线。时序图描述个体量词和量词行为相互作用,注重在模拟条件下的生命线事件引起变化的时间。
    在这里插入图片描述

    13、交互概述图(Interaction Overview Diagram)

    参考自:https://www.cnblogs.com/coolstream/p/9573461.html
    ① 交互概述图是将不同交互图衔接在一起的图,属于UML2.0的新增图。交互概述图并没有引入新的建模元素,其主要元素来自于活动图和时序图。交互概述图侧重从整体上概览交互过程中的控制流,包括交互图之间的事件或消息流。
    ② 当前交互概述图主要应用于活动图与时序图之间的协作,主要有两种形式:交互和交互应用,前者适用于控制流相对简单的场景,后者适用于控制流相对复杂的场景。
    在这里插入图片描述


    仓促参考以成此文,诸多细节尚待完善,在日后学习使用过程中我再来慢慢补充。
  • 相关阅读:
    UNIX环境C
    UINX标准C
    centOS 部署服务器(三)
    centOS 部署服务器(二)
    centOS 部署服务器(一)
    mysql数据库的还原及常见问题解决
    tomcat启动报错java.lang.OutOfMemoryError:PermGen space解决办法
    mysql 使用service mysqld start 提示未识别服务 进入/etc/rc.d/init.d 下面未发现有mysqld解决方法
    数据库表修复问题
    Ubuntu系统图形化界面无法登录到root用户的解决方法
  • 原文地址:https://www.cnblogs.com/yinyoupoet/p/13287473.html
Copyright © 2011-2022 走看看