您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。
😁 1. 社区逛一逛,周周有福利,周周有惊喜。码农飞哥社区,飞跃计划
💪🏻 2. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
❤️ 3. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当,持续更新中 。python爬虫入门进阶
❤️ 4. Ceph实战,从原理到实战应有尽有。 Ceph实战
❤️ 5. Java高并发编程入门,打卡学习Java高并发。 Java高并发编程入门
关注下方公众号,众多福利免费嫖;加我VX进群学习,学习的路上不孤单
文章目录
UML的介绍
UML (Unified Modeling Language)是一种通用的可视化的建模语言,可以用来描述、可视化、构造和文档化软件密集型系统的各种工件。它不是一种程序设计语言。
UML 是独立于过程的,它可以在软件生命周期的各个阶段运用,不过主要应用于软件开发的设计与分析阶段。
模型
什么是模型呢?模型就是对现实的简化。比如:我们在设计一款新汽车时首先需要设计该汽车的模型,只有模型设计好之后才会开始汽车的生产开发。
建模的作用
- 模型有助于按照实际情况或按照所需要的样式对系统进行可视化。
- 支持独立于编程语言和开发过程的规范。
- 模型给出了指导构造系统的模板。
- 模型对做出的决策进行文档化。
UML的组成
UML由构造块,规则和公共机制这三部分组成。
- 构造块:UML组成中构造块是对模型中最具有代表性的成分的抽象
- 规则:UML有一套规则,这些规则描述了一个结构良好的模型看起来应该像什么
- 公共机制: UML中有4种贯穿整个语言且一致应用的公共机制,因此使得UML变得较为简单。
构造块
构造块由事物,关系,模型图三个部分组成。
- 事物:UML模型中最基本的组成元素,可以把事物理解成汉语中的单词和词语
- 关系:关系是把事物紧密联系在一起,可以把关系理解成汉语中的语法
- 模型图:模型图是事物和关系的可视化展示,可以把模型图理解成汉语中的文章。
构造块之事物
事物分为结构事物,行为事物,分组事物,注解事物四种。
结构事物:指的是模型中的静态部分,用于呈现概念或者实体的表现元素。
行为事物:指模型里随着时空不断变化的部分。
分组事物:可以把分组事物看成一个"盒子",模型可以在其中被分解。
注解事物:UML模型的解释部分
下面就分别对这几种事物进行介绍
结构事物
结构事物下有类,用例,接口,协作,活动类,组件,节点
- 类:类是指具有相同属性、方法、关系和语义的对象的集合;
- 用例:定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;
- 接口:定义行为规范,描述了类或组件对外可见的动作;
- 协作:合作完成某个特定任务的一组类及其关联的集合
- 活动类:活动类的对象有一个或多个进程或线程。活动类和类很相象
- 组件:组件是物理的、可替换的部分,包含接口的集合
- 节点:系统在运行时存在的物理元素,代表一个可计算的资源
行为事物
行为事物分为交互,状态机两种
交互:由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作;交互就是指时序图中的消息。
状态机:状态机由一系列对象的状态组成。
分组事物
分组事物只有一个就是包
包:结构事物、动作事物甚至分组事物都有可能放在一个包中
构造块之四种基本关系
在UML中的关系有四种基本关系,分别是
- 泛化关系:就是继承关系,子类和父类的关系,比如鸟与动物的关系就是泛化关系,实线的三角箭头从子类指向父类。
- 实现关系:实现关系是实现类与接口之间的关系,比如大雁实现了飞翔的功能。他是虚线的三角箭头从实现类指向接口。如下图所示:
- 关联关系:一组对象之间连接的结构关系,如下图老师,学生与课程之间的关系。
老师和学生之间是双向关联关系,老师有多个学生,学生也可能有多名老师。但是学生与某个课程间的关系是单向关联关系,一个学生可能要上多门课程,但是课程是个抽象的东西它不拥有学生。 - 依赖关系:一个类的实现必须依赖于其他类的协助,比如人依赖空气。
这四种关系的强弱顺序是:泛化=实现>关联>依赖
构造块之模型图
UML模型图图表共有十三种,本文将对其中比较常用的图表进行详细介绍。首先让我们来看看这些图表的介绍以及作用。
UML建模的图表按照种类可以分为结构型图表和行为型图表。
结构型图表:从不同的抽象和实现程度上描述了一个系统和系统构建的静态结构,并且描述他们是如何直接关联到一起的。
该类型的图表包括:
-
类图(Class Diagram),
-
对象图(Object Diagram),
-
包图(Package Diagram),
-
组件图(Component Diagram),
-
部署图(Deployment Diagram),
-
复合结构图(Composite Structure)
行为型图表:展示系统中的对象的动态行为,它描述了一个系统中的对象如何随时间变化而变化。
该类型的图表包括: -
用例图(Use Case Diagram),
-
活动图(Activity Diagrams),
-
状态图(State Machine Diagram),
-
时序图(Sequence Diagram),
-
通信图(Communication Diagram)
-
交互概览图(Interaction Overview Diagram):
-
定时图(Timing Diagram):
规则
- 命名:为事物、关系和图起名。
- 范围:给一个名称以特定含义的语境
- 可见性:怎样让其他人使用或者看见名称
- 完整性:事物如何正确、一致地相互联系
- 执行:运行或模拟动态模型的含义是什么
公共机制
公共机制分为:规则说明,修饰,通用划分,扩展机制
规则说明
- 规格说明提供了对构造块的语法和语义的文字描述
- 规格说明用来描述系统的细节
- UML的规格说明提供了一个语义底版,它包含了一个系统的各个模型的所有部分,并且各部分相互联系,并保持一致。
总而言之,规格说明就是UML图的产品说明书
修饰
修饰:UML表示法中的每个元素都有一个基本符号,可以把各种修饰细节加到这个符号上。
通用划分
- 类/对象二分法(class/object dichotomy): 类是一个抽象,对象是这个抽象的一个具体表现形式,UML的每一个构造块几乎都存在像类/对象这样的二分法。例如:用例和用例实例(场景),构件和构件实例,节点和节点实例等。
- 接口/实现二分法(interface/realization dichotomy)接口声明了一个契约,而实现则表示了对该契约的具体实施,它负责如实地实现接口的完整语义。几乎每一个UML的构造块都有像接口/实现这样的二分法。例如:用例和实现它们的协作,操作和实现他们的方法。如下图所示:
扩展机制
对UML图示符号的扩展。包含:构造型Stereotype-标注值Taggedvalue-约束Constraint。如下图所示:
UML的应用范围
如上图展示了UML在软件生命周期中的应用范围。
- 在需求分析阶段可以通过用例图来描述系统的使用者,以及系统有哪些功能
- 在分析与设计阶段经常需要使用到类图、包图、组件图几种静态视图,以及所有动态视图。静态视图用来描述系统的设计类,动态视图用来确定任一时刻某一对象或者实体需要执行的操作,或者应该处于的状态。
- 在开发阶段根据UML图表来编写代码,
- 在测试阶段根据UML图表来设计测试用例,使用活动图来辅助测试
- 在部署阶段根据部署图来部署项目。
参考
粉丝专属福利
软考资料:实用软考资料
面试题:5G 的Java面试题
学习资料:50G的各类学习资料
脱单秘籍:回复【脱单】
并发编程:回复【并发编程】
👇🏻 验证码 可通过搜索下方 公众号 获取👇🏻