UML入门,带你了解UML!

1.前言

        如果你要建造一座高层办公大楼,若是先备好材料、钉子和一些基本工具就开始工作,那将是非常愚蠢的。因为你所使用的资金可能是别人的,它们会对建筑物的规模、形状和风格做出要求。同时,他们经常会改变想法,甚至是在工程已经开工之后。由于失败的代价太高了,因此必须要做详尽的计划。你需要各种各样的设计图和模型,以供各方相互沟通。只要得到了合适的人员和工具,并对把建筑概念转换为实际建筑的过程进行积极的管理,将会建成这座满足使用要求的大厦。
        开发软件也是如此,如果你曾经开发过软件,或者写过学生管理系统,你应该能体会到中途发现可以新增功能,但由因为代码之间的功能划分不明显,需要大改代码的痛苦。笔者以前写过一个类似宠物小精灵的精灵捕捉游戏,虽然只是停留在console窗口,但其中一些分支功能的实现,比如:宠物升级,捕捉,进化,技能,恢复,刷怪,天赋…,如果开始考虑不周全的话,数据库表没建好,那么…哎!。
        现在接触到UML,可以解决自己平时在开发过程中的许多问题,少走了很多弯路。因为我也是刚涉及到这一方面,所以这一专栏将会以笔记的方式呈现给大家,如有遗漏,欢迎大家批评指正!

2.UML介绍

(1)概述
        从企业信息系统到基于Web的分布式应用,乃至硬实时嵌入式系统,都适合用UML建模。UML是一种富有表达力的语言,可以描述开发所需要的各种视图,然后以此为基础来部署系统。要学习使用UML,一个有效的出发点是形成该语言的概念模型,这要求学习3个要素:UML的基本构造块、支配这些构造块如何放置在一起的规则,运用于整个语言的一些公共机制。
(2)UML是一种语言
        何为语言,通俗来说,是指在传递信息时,双方都认可也都能理解的一种表达方式。在软件开发过程中,如果软件功能较少,框架也不复杂,你当然可以通过口头描述让对方明白你软件是如何实现的,然后对方才能更好的帮你分担任务。而如果软件功能太多,光靠口头描述或者只是一份文字描述的Word文档,是很难反映出各个功能部件之间的逻辑关系的。既然文字描述不足以满足软件开发的需求,那么UML就派上用场了,一种大家公认的构建模型的语言。
(3)UML是一种用于可视化的语言
        UML可以构建清晰的模型,有利于交流。对有些事物最好是使用文字建模,而对有些事物又最好用图形建模。的确 ,在所有引人关注的系统中都有一些用编程语言难以描绘的结构。UML正是这样的图形化语言。UML表示法中的每个符号都有明确语义。这样,一个开发者可以用UML绘制一个模型,而另一个开发者可以无歧义地解释这个模型。
(4)UML是一种可用于详细描述的语言
        在此处,详细描述意味着所建的模型是精确的、无歧义的和完整的。特别是,UML适于对所有重要的分析、设计和实现决策进行详细描述,这些是软件密集系统在开发和部署时所必需的。
(5)UML是一种用于构造的语言
        UML不是一种可视化的编程语言,但用UML描述的模型可与各种编程语言直接相关联。这意味着一种可能性,即可把用UML描述的模型映射成编程语言,如Java,C++等。甚至映射成关系数据库的表或面向对象数据库的持久存储。对一个事物,如果表示为图形方式最为恰当,则用UML,而如果表示为文字方式最为恰当,则用编程语言。
(6)UML是一种用于文档化的语言
一个的健康的软件组织除了生产可执行代码之外,还要给出各种制品。这些制品包括(但不限于):

  • 需求
  • 体系结构
  • 设计
  • 源代码
  • 项目计划
  • 测试
  • 原型
  • 发布

依赖于开发文化,一些制品做得或多或少地比另一些制品要正规些。这些制品不但是项目交付时所要求的,而且无论是在开发期间还是在交付使用后对控制、度量和理解系统也是关键的。
        相信讲到这,应该彻底明白UML的概念了,下面我们来介绍UML的概念模型。

3.UML的概念模型

(1)UML的构造模块
UML的词汇表包含下面3种构造块:

  • 事物:是对模型中首要成分的抽象
  • 关系:把事物结合在一起
  • 图:聚集了相关的事物。

(2)事物
在UML中有4种事物:

  • 结构事物
  • 行为事物
  • 分组事物
  • 注释事物

这些事物是UML中基本的面向对象的构造块,用它们可以写出形式良好的模型。
1’.结构事物
         是UML模型中的名词。它们通常是模型的静态部分,描述概念元素或物理元素。结构事物总称为类目
第一,:是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述。
第二,接口:是一组操作的集合,其中的每个操作描述了类或构件的一个服务。 在这里插入图片描述
第三,协作:定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的总和。
第四,用况:是对一组动作序列的描述,系统执行这些动作将产生对特定的参与者价值而且可观察的结果。
在这里插入图片描述
        剩余的3种事物—主动类,构件和结点,都和类相似,就是说它们也描述了一组具有相同属性、操作、关系和语义的实体。然而,这3种事物与类的不同点也不少,而且对面向对象的某些方面的建模是必要的,因此对这几个术语需要单独处理。
第五,主动类:其对象至少拥有一个进程或线程,因此它能够启动控制活动。
第六,构件:是系统设计的模块化部件,将实现隐藏在一组外部接口背后
第七,制品:是系统中物理的而且可替换的部件,它包括物理信息(“比特”)。在一个系统中,会遇到不同类型的部署制品,如源代码文件、可执行程序和脚本。
第八,结点:是在运行时存在的物理元素,它表示一个计算机资源,通常至少有一些记忆能力,还经常具有处理能力。 在这里插入图片描述
2’.行为事物
        行为事物是UML模型的动态部分。它们是模型中的动词,代表了跨越时间和空间的行为。共有3类主要的行为事物。
第一,交互:它由在特定语境中共同完成一定任务的一组对象或角色之间交换的消息组成。
第二,状态机:它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列以及它对这些事件做出的响应。
第三,活动:它描述了计算过程执行的步骤序列。
交互所注重的是一组进行交互的对象,状态机所注重的是一定时间内一个对象的生命周期,活动所注重的是步骤之间的流,而不关心按个对象执行哪个步骤。
在这里插入图片描述
注:状态和动作靠不同的语境得以区别。
3’.分组事物
是UML模型的组织部分。它们是一些由模型分解成的“盒子”。主要的分组事物是包。
        包是用于对设计本身进行组织的通用机制,与类不同,它是用来组织实现构造事物的。结构事物、行为事物甚至其他的分组事物都可以放进包内。包不像构建,它纯粹是概念上的。它也有变体,如框架、模型和子系统
4’.注释事物
是UML模型的解释部分。这些注释事物用来描述、说明和标注模型中的任何元素。有一种主要的注释事物,称为注解。
在这里插入图片描述
(3)关系
        在UML中有4种关系:

  • 依赖
  • 关联
  • 泛化
  • 实现

        这些关系是UML的基本关系构造块,用它们可以写出良好的模型。
第一,依赖:是两个模型元素之间的语义关系,其中一个元素发生变化会影响另一个元素的语义。
第二,关联:是类之间的结构关系,它描述了一组链,链是对象之间的连接。
第三,泛化是一种特殊/一般关系,其中特殊元素(子元素)基于一般元素(父元素)而建立。用这种方法,子元素共享了父元素的结构和行为。
第四,实现:是类目之间的语义关系,其中一个类目指定了由另一个类目保证执行的合约。在两种地方会遇到实现关系:一种是在接口和实现他们的类或构件之间;另一种是在用况和实现他们的协作之间。
在这里插入图片描述
(4)图
        图是一组元素的图形表示,大多数情况下把图画成顶点(代表事物)和弧(代表关系)的连通图。为了对系统进行可视化,可以从不同的角度画图,这样一个图是对系统的投影。
        UML包括13种这样的图:

  • 类图:展现了一组类、接口、协作和它们之间的关系。
  • 对象图:展现了一组对象以及它们之间的关系。
  • 构件图:展现了一个封装的类和它的接口、端口以及内嵌的构件和连接件构成的内部结构。
  • 用况图:展现了一组用况、参与者(一种特殊的类)及它们之间的关系。
  • 顺序图:顺序图和通信图都是交互图。
  • 通信图:
  • 状态图:展现了一个状态机,它由状态、转移、事件和活动组成。
  • 活动图:将进程或其他计算的结构展示为计算内部一步一步的控制流和数据流。
  • 部署图:展现了对运行时的处理结点以及在其中生存的构建的配置。
  • 制品图:展现了计算机中一个系统的物理结构。
  • 包图:展现了由模型本身分解而成的组织单元以及它们的依赖关系。
  • 定时图:是一种交互图,它展现了消息跨越不同对象或角色的实际时间,而不仅仅是关心消息的相对顺序。
  • 交互概览图:是活动图和顺序图的混合物。
            图的具体介绍会在之后的几篇博客中介绍,这里就不详细叙述。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赶路的苟狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值