【愚公系列】软考中级-软件设计师 049-面向对象技术(UML)

举报
愚公搬代码 发表于 2024/02/24 17:46:09 2024/02/24
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。🏆《博客内容...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏


🚀前言

UML(Unified Modeling Language)是一种用于软件系统设计的建模语言,它在面向对象技术中起着重要的作用。

UML提供了一套丰富的图形符号和标记,用于描述软件系统的结构、行为和交互。常用的UML图包括类图、对象图、序列图、活动图、状态图等。

在面向对象技术中,UML可以用来表示系统的静态结构,例如类的属性和方法、类之间的关系等。类图是最常用的UML图之一,用于表示类和类之间的关系,其中包括继承、关联、聚合、组合等。类图可以帮助开发人员理清系统中各个类的关系,从而更好地进行系统设计和开发。

UML还可以用来表示系统的行为和交互,例如序列图可以展示对象之间的交互流程,活动图可以展示一个系统中的业务流程等。这些图形化的表示方式使得开发人员更容易理解和沟通系统的设计和实现。

🚀一、UML

🔎1.UML的概念

UML(Unified Modeling Language)是一种统一建模语言,与程序设计语言并无直接关系。它是一种独立于编程语言的图形化表示技术,旨在帮助开发人员在软件开发过程中进行系统设计和建模。

与程序设计语言相比,UML更注重于系统的结构、行为和交互的可视化表示。它提供了一套丰富的建模图形,例如类图、对象图、序列图、活动图等,用于描述系统的各个方面。这些图形化的表示方式对于开发团队之间的沟通和理解非常重要,可以帮助开发人员更好地协同工作,并确保他们对系统的设计和实现有一个一致的理解。

与程序设计语言不同,在UML中并没有具体的语法规则和编译步骤。它更像是一种可视化的设计工具,用来辅助开发人员进行系统分析和设计。因此,UML可以与多种编程语言一起使用,例如Java、C++、C#等。开发人员可以根据UML图形表示的设计,使用合适的编程语言进行实现,并按照UML图中定义的结构和行为来开发系统。

UML的三个要素是:

UML要素 描述
基本构造块 UML提供了一系列的基本构造块,用于描述系统中的各种元素和它们之间的关系。基本构造块包括类、对象、接口、关联、聚合、组合、继承、依赖、泛化等。
放置规则 UML定义了一些规则,用于描述如何将基本构造块组合放置在一起,以形成更复杂的结构。例如,类和对象可以组合成包,包可以组合成子系统,子系统可以组合成系统等等。这些规则有助于组织和管理系统的各个部分。
公共机制 UML提供了一些公共机制,用于增强语言的表达能力和扩展性。其中包括扩展机制,可以通过定义新的构造块、规则和关系来扩展UML语言。此外,UML还提供了一些标记、备注和注释等机制,用于解释和补充模型的信息。

🔎2.UML的基本构造

UML的基本构造块包括:事物(对模型中最具有代表性的成分的抽象)、关系(把事务结合在一起)、图(聚集了相关的事物)。

🦋2.1 事物

UML中有四种事物:结构事物、行为事物、分组事物、注释事物。

结构事物:模型的静态部分,如类、接口、用例、构件等;如右图示例:

在这里插入图片描述
行为事物:模型的动态部分,如交互、活动、状态机
在这里插入图片描述
分组事物:模型的组织部分,如包;

注释事物:模型的解释部分,依附于一个元素或一组元素之上对其进行约束或解释的简单符号。
在这里插入图片描述

🦋2.2 关系

依赖:一个事物的语义依赖于另一个事物的语义的变化而变化

关联:是一种结构关系,描述了一组链,链是对象之间的连接。分为组合和聚合,都是部分和整体的关系,其中组合事物之间关系更强。两个类之间的关联,实际上是两个类所扮演角色的关联,因此,两个类之间可以有多个由不同角色标识的关联。

泛化:一般/特殊的关系,子类和父类之间的关系

实现:一个类元指定了另一个类元保证执行的契约。
在这里插入图片描述

🦋2.3 图

☀️2.3.1 类图

类图:静态图,为系统的静态设计视图,展现一组对象、接口、协作和它们之间的关系。

多重度:指的是不同类之间的联系,类似于数据库设计的表与表的关系。

在这里插入图片描述

☀️2.3.2 对象图

对象图:静态图,展现某一时刻一组对象及它们之间的关系,为类图的某一快照。在没有类图的前提下,对象图就是静态设计视图。

在这里插入图片描述

☀️2.3.3 用例图

用例图:静态图,展现了一组用例、参与者以及它们之间的关系。

用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作。

用例之间的关系:包含(include)、扩展(extend)、泛化。

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

☀️2.3.4 序列图

序列图:即顺序图,动态图,是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。

有同步消息(进行阻塞调用,调用者中止执行,等待控制权返回,需要等待返回消息,用实心三角箭头表示)、异步消息(发出消息后继续执行,不引起调用者阻塞,也不等待返回消息,由空心箭头表示)、返回消息(由从右到左的虚线箭头表示)三种。
在这里插入图片描述

☀️2.3.5 通信图

通信图:动态图,即协作图,是顺序图的另一种表示方法,也是由对象和消息组成的图,只不过不强调时间顺序,只强调事件之间的通信,而且也没有固定的画法规则,和顺序图统称为交互图。如下:

在这里插入图片描述

☀️2.3.6 状态图

状态图:动态图,展现了一个状态机,描述单个对象在多个用例中的行为,包括简单状态和组合状态。转换可以通过事件触发器触发,事件触发后相应的监护条件会进行检查。

状态图中转换和状态是两个独立的概念,如下:图中方框代表状态,箭头上的代表触发事件,实心圆点为起点和终点。下图描述的就是一个图书的状态变化

在这里插入图片描述

☀️2.3.7 活动图

活动图:动态图,是一种特殊的状态图,展现了在系统内从一个活动到另二个活动的流程。

活动的分岔和汇合线是一条水平粗线。

每个分岔的分支数代表了可同时运行的线程数。

活动图中能够并行执行的是在一个分岔粗线下的分支上的活动。

在这里插入图片描述

☀️2.3.8 构件图

构件图(组件图):静态图,为系统静态实现视图,展现了一组构件之间的组织和依赖。

在这里插入图片描述

☀️2.3.9 部署图

部署图:静态图,为系统静态部署视图,部署图描述的事物理模块的节点分布。它与构件图相关,通常一个结点包含一个或多个构件。其依赖关系类似于包依赖,因此部署组件之间的依赖是单向的类似于包含关系。

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


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。