前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UML系列(1):认识UML踏入设计之路

UML系列(1):认识UML踏入设计之路

作者头像
Homqyy
发布2023-03-06 13:26:07
5840
发布2023-03-06 13:26:07
举报
文章被收录于专栏:知行合一知行合一

前言

特别说明:本系列受《UML基础、案例与应用》和《软件工程》的启发,最终精炼于日常工作的经验。

UML(Unified Modeling Language),统一建模语言。UML对程序员是极度友好的,是系统分析工具、系统设计工具,也是系统相关人员沟通的桥梁。

UML提供了多种图,目的是为了用不同的视图去展示一个系统,这样构建出来的一组视图被称为一个“模型”。注意:一个UML模型只描述了一个系统要做什么,它并没告诉说明系统是如何被实施的。

而UML之所以称之为“语言”是因为其最根本用途是用于交流,特别当一个系统中有多个不同类型的风险承担人时,采用多视角的视图可以跟不同的风险承担人进行沟通。比如:系统分析员通过“用例图”与客户和系统设计师沟通,系统设计师用类图、状态图等与开发人员沟通等。

建模是一项极其讲究经验的能力,是一种多角色间沟通的方法,其学习大致有如下三个阶段:

  1. 知识匮乏,无领域意识。
  2. 在某领域中工作并学习一段时间,领域意识觉醒,寻求补充领域知识及其表达。
  3. 补充领域知识,开始跳出终端(编程)看源头(战略、需求、问题),常常要在多角色视角中切换。

而UML建模是从阶段1至阶段2的一个助推剂,也是阶段3的一个燃料。当然,在阶段3中,UML建模更多承担的是技术层面的沟通。

术语

术语

描述

系统

是硬件和软件的结合体,它能提供业务问题的解决方案

系统开发

是为客户建立一个系统的过程

客户

是需要解决问题的人

系统分析员

将客户所要解决的问题编制成文档,并将其文档交付给开发人员

开发人员

是为了解决客户的问题而构造软件,并在计算机硬件上实施该软件的程序员

UML图

类图

一个类是一类或一组具有类似“属性”和共同“行为”的事物。类图能够为开发人员提供一种模仿现实世界的表达方式。

类图示例

如上所示,第一区块是类名,第二区块是属性,第三区块是行为:

  • 类名:所有单词的首字母都大写
  • 属性:首个单词的首字母小写,随后的单词首字母都大写
  • 行为:首个单词的首字母小写,随后的单子首字母都大写,并在最后面加()以表示是一个行为。

对象图

对象是一个类的实例,是具有具体属性值的一个具体事物。

命名对象示例图

如上所示,对象与类相似,区别有两点:

  • 类名前提供对象名称,并用冒号分隔。且对象名称的首个单词的首字母是小写的。
  • 对象名和类名有下划线

当然,把“对象名”去掉后就是匿名对象了:

匿名对象示例图

用例图

用例是从用户的观点对系统行为的一个描述。

用例示例图

左侧的人行被称为“参与者”,右侧的椭圆形则代表用例。注意:“参与者”既可以是人,也可以是另一个系统。而矩形表达的是代表解决方案的系统,用例则在其中。

每个用例都是由一组场景组成的。用例对于系统开发人员来说,可以用来从用户角度收集系统需求。

状态图

在任一给定的时刻,一个对象总是处于某一特定的状态,状态图就是用来陈述这些状态是如何转换的。

状态示例图

一个圆圈的符号表示起始状态,两个圆圈的符号表示终止状态。注意:从一个状态到另一个状态的转换不总是线性。有时候,条件指明了不同的路径。

时序图

在一个运行的系统中,对象之间要发生交互,并且这些交互是需要经历一定时间的。顺序图就是用来表达这种基于时间的动态交互。

时序示例图

活动图

用例和对象的行为中的各个活动之间通常具有时间顺序,活动图就是用来陈述这些活动的顺序关系。注意:这里跟时序图有所不同,时序图强调的是交互,活动图强调的是流程。且活动图与状态图一样,都并非线性的,有时会有不同路径。

活动示例图

协作图

系统的工作目标是由系统中各个组成元素相互协作完成的,建模语言必须具备这种协作关系的表达方式,协作图就是为此而生的。注意:协作图与时序图都表达了时间和交互,因此两者可以合并,统称为“交互图”。

协作示例图

构件图

现在软件都是基于构件开发的,而构件图就是用来表示软件构件的。2.0和1.x的构件图不同,分别如下所示:

UML2.0的构件示例图

UML1.x构件示例图

部署图

部署图显示了基于计算机系统的物理体系结构。它可以描述计算机,展示它们之间的连接,以及驻留在每台机器中的软件。

部署示例图

如上所示,每台计算机用一个立方体表示,立方体之间的连线表示这些计算机之间的通信关系。

组成结构图

用来展示一个类的内部结构,尤其是当一个类由多个类组成时,用此图从内部来审视一个类。

组成结构示例图

如上所示,假设“人”这个类由“头脑”类和“身体”类组成。

交互纵览图

用“交互图(时序图或协作图)”替换“活动图”中的部分活动。比如,我们把上述的“时序示例图”和“活动示例图”结合到一起,得到如下“交互纵览示例图”:

交互纵览示例图

包图

包图标就像是一个带有标签的文件夹,思想就是把共同工作的元素放到这样一个带标签的文件夹图标中。如多个类或则构件组成了一个特殊的子系统时,他们就放到一个子系统包中。

包示例图

其它特征

注释

注释的图标是一个带折角的矩形,矩形框中是解释性文字。注释和被注释的元素之间用一条虚线连接。注意:任何元素都可以添加注释。

注释示例图

构造型

构造型使UML具有扩展能力,通过它去创造新的元素。用两对尖括号括起来表示构造型,并在括号中填充对应的关键字来说明元素名称。比如一个“接口”构造型的表示方法如下所示:

构造型示例图

小结

系统开发是一项团队性的人力活动,如果没有一门即易于理解又可用于沟通的表示方法,整个系统开发过程就会出现很大的风险问题,尤其是无法应对变化,这在软件和互联网中尤其明显。其造成的直接结果就是,做出来的产品毫无竞争力,注定要被淹没在时代的洪流之中。

继续阅读

UML系列(2):快速读懂结构间的关系

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年5月1日20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 术语
  • UML图
    • 类图
      • 对象图
        • 用例图
          • 状态图
            • 时序图
              • 活动图
                • 协作图
                  • 构件图
                    • 部署图
                      • 组成结构图
                        • 交互纵览图
                          • 包图
                            • 其它特征
                              • 注释
                              • 构造型
                          • 小结
                          • 继续阅读
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档