UML建模简单入门

一,UML建模语言介绍
UML的全称是Unified Modeling Language,被翻译为”统一建模语言”,它为不同领域的人们提供了统一的交流方法。
UML与其他工程领域中使用的设计蓝图十分相似,在软件开发的架构设计场景中经常被使用。
UML建模语言是一种绘图时使用的可视化建模语言,并不是特定的编程语言。但是在实际使用时,基于特定的工具比如StarUML,我们可以基于UML类图生成C++、Java、Python等编程语言的源码,也可以将这些编程语言的对应源码转换为UML类图。
UML的使用与面向对象的设计思想相关联,它的主要目标是以面向对象的方式来描述任何类型的系统。
UML除了被用于描述软件工程领域的系统,也可用于描述非软件工程领域的系统,如企业机构、工业系统等。在软件工程领域,UML的使用贯穿了从需求分析、系统软件构建到软件测试的整个过程。

UML常见应用场景:

图片

二,常见的UML图表

常见的UML图表有以下九种:
用例图(use-case diagram)
类图(class diagram)
对象图(object diagram)
状态图(state diagram)
时序图(sequence diagram)
协作图(collaboration/communication diagram)
活动图(activity diagram)
构件图(component diagram)
部署图(deployment diagram)

1.用例图(use-case diagram)
由外部参与者和系统组成。
描述该用例的系统行为,不描述用例的实现细节。
基于用例图可以看出这个系统所提供的功能。

2.类图(class diagram)
由各种静态的类所组成。
描述了系统内部,类与类之间的联系。
基于类图可以看出这个系统所包含的主要的类和成员函数。

3.对象图(object diagram)
对象图可以理解为类图是实例。

4.状态图(state diagram)
状态图可以作为对类描述的补充。
基于状态图可以看出一个类的对象所经历的各种状态,以及导致状态变化的事件。

5.时序图(sequence diagram)
描述了几个对象之间的动作时序。
常用于分析对象之间传递消息的顺序。

6.协作图(collaboration/communication diagram)
功能与时序图类似,它除了描述信息的传递,还描述了对象之间的关系。

7.活动图(activity diagram)
描述了一个完整操作所经历的几个活动。

8.构件图(component diagram)
描述了构件之间的依赖关系。

9.部署图(deployment diagram)
描述了系统软件与硬件的物理结构。

三,UML建模语言的构成

1,基本的模型元素
(1).参与者(Actor)
(2).用例(use case)
(3).类(class)
(4).对象(object)
(5).接口(interface)
(6).子系统(subsystem)
(7).包(package)
(8).组件(component)
(9).节点(node)
(10).注释(comment)

2.模型元素之间的关系

(1).继承关系:Inheritance (generalisation)

(2).实现关系:Implementation(realisation)

(3).依赖关系:Dependency

(4).关联关系:Association

(5).聚合关系:Aggregation

(6).组合关系:Composition

以上关系结合实际场景,如图所示:

四,UML建模绘图步骤

step.01: 确认UML的使用场景
确认UML图用来描述某种结构还是时序。

step.02: 确认元素和关系
确认需要在UML图中描述的关键元素(类、对象、用例等)及其之间的关系。

step.03: 选择合适的UML图
选择最适合建模场景的UML图,常见类型包括类图、时序图、构建图等。

step.04: 绘制粗略草图
在使用UML建模工具之前,在纸上或白板上尝试绘制粗略草图。

step.05: 选择UML建模工具
根据偏好和功能要求,选择合适的在线或离线的UML建模工具。

step.06: 创建UML图表
在UML建模工具中创建新项目或关系图,开始向图中添加元素(类、状态、参与者等),并将这些元素用合适的关系(继承、依赖关系等)联系起来。

step.07: 定义元素的属性
对于关系图中的每个元素,指定相关属性。例如类属性、类方法、用例详细信息等。

step.08: 添加注释
通过添加注释来增强图表的清晰度和可读性。

step.09: 验证和审查
检查图表的准确性和完整性,根据预期结果验证图表并进行微调。

step.10: 优化和迭代
UML图伴随着系统的不断优化而不断迭代。

step.11: 生成图表、文档、代码
基于UML工具生成类图的图表,类文档,以及代码实现。

五,常用的主流UML绘图工具
软件名
免费or开源
StarUML

Enterprise Architect

PlantUML

PowerDesigner

Microsoft Visio

Draw.io

Visual Paradigm

六,UML建模绘图实战

1.UML类图样例:
绘制工具:StarUML
场景:由”People”类衍生出的”Lawer”,”Programmer”两个子类。

2.代码生成结果
a.代码结构:

b.主要代码逻辑:
People.h

ifndef _PEOPLE_H

define _PEOPLE_H

class People {
public:
std::string name;

void getName();

void getAddress();

private:
std::string address;
int id_number;

void setName();

void setAddress();

};

endif //_PEOPLE_H

People.cpp

include “People.h”

void People::getName() {

}

void People::getAddress() {

}

void People::setName() {

}

void People::setAddress() {

}
Lawer.h

ifndef _LAWER_H

define _LAWER_H

include “People.h”

class Lawer: public People {
public:
int salary;
std::string job;

void lawSuit();

void getJobName();

};

endif //_LAWER_H

Lawer.cpp

include “Lawer.h”

void Lawer::lawSuit() {

}

void Lawer::getJobName() {

}
八,参考阅读
https://www.drawio.com/blog/uml-class-diagrams
https://www.geeksforgeeks.org/unified-modeling-language-uml-class-diagrams/
https://github.com/imalitavakoli/learn-uml2/tree/master
https://sparxsystems.cn/resources/uml2_tutorial/

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/416331.html

(1)
联系我们
联系我们
分享本页
返回顶部