关于手写UML程序基础语法详解(不定期更新|增量)

UML统一建模语言 阅读详情

        UML语言生成的流程图、活动图等图形对我们软件设计、逻辑分析、程序拆解等设计思路有不可忽视的重要性。

        在网络上很少看到对UML程序语言、语法的讲解。

        本文将简要解析程序"语法"的使用与规则及其一些可能的报错现象进行规避。

目录

1、UML程序的开始与结束

2、节点块(个人对该模块的称呼)

3、抬头|标题

4、路径解析与多路径分离(重点)

5、判断语句详解

6、UML程序有关模块外注释讲解

7、隔离模块(区分内容性质)

8、★★★重点关注★★★


1、UML程序的开始与结束

@startuml程序起始点
@enduml程序结束点

程序开始用@startuml定义开始

程序写完后用@enduml定义结束

中间是程序内容,首行和末行不需要加任何其他。

(@startuml与@enduml)是不会在生成的图形里面显示出来的!

代码演示:

@startuml

:程序中间内容;

@enduml

2、节点块(个人对该模块的称呼)

        释义:模块内的文字,包含这个"方块"称之为 "节点块"

                  以":"开始,以";"结尾,中间的内容构成了一个"节点块"

代码演示:

@startuml
:两只老虎,两只老虎;
note right :这个方块就是一个节点块
:跑的快,跑的快。;
note right :这个方块又是一个节点块
@enduml

3、抬头|标题

title 标题文字前面是标题关键字语句 后面空格后加标题文字

title 这个位置就是标题

title 后面有一个空格 空格后面放标题文字 (不需要跟";"分号)

警告:请不要将title写成tittle(一部分人会写错,并且报错也找不到原因。)

title意思标题 | tittle是一点或者说 一点点 一丢丢 ,很微小的意思,完全不是一个东西!

                                        -------------------------------细致是成功的第一步!

代码演示:

@startuml

title 这是一个标题
:程序中间内容;

@enduml

4、路径解析与多路径分离(重点)

fork第一条路径起始位
 -> xxxxx;->空格后面跟第一条路径线侧面的文字";"结束
:xxxxxxx;第一条路径的第一个节点块
fork again第二条路径起始位
 -> xxxxx;->空格后面跟第二条路径线侧面的文字";"结束
:xxxxxxx;第二条路径的第一个节点块

fork again

..............

第三条.....第四条.....第五条,可多路径
fork end路径结束

  代码演示:

@startuml
title :这是一个标题
:标题下面可以跟一个内容,也可以不加;
:开始;
fork
  -> 这是一条路径;
  :这是第一条路径的第一个节点块;
fork again
 -> 这是第二条路径;
  :这是第二条路径的第一个节点块;
fork end
@enduml

(能看得出来 "->"这个符号实际上是在某一条路径下的箭头边上的文字,而不是在节点块内)

实际上可以继续在后面跟"fork again"

如果大家嫌麻烦,可以直接复制我的代码块,然后修改一下即可。

下次继续完成更新---update_DateTime_2025/06/06

5、判断语句详解

if () then ()如果(括号内条件是否成立?) then (成立)
else ()否则 (不成立)
endif判断语句正式结束(如果不加结束语句,可能会有其他未知问题,推荐使用符合语法要求的endif)

代码演示:

@startuml
title 这个标题看着就很不错
:开始;
fork
 -> 第一个节点;
 :节点内加点东西;
 :免得看着空空的;
fork again
 -> 第二个节点;
 if (今天任务完成了吗?) then (完成了)
  :奖励一下自己吧;
  :吃个冰淇淋;
 else (未完成)
  :没完成更要奖励一下自己;
  :吃个大西瓜;
 endif
fork end
@enduml

随着学习的深入,

我会尽可能的将前面的知识呢,给融入到现有的场景内。

这样更容易融会贯通。

6、UML程序有关模块外注释讲解

程序代码:

note left :注释的内容;  #首先这是对该位置上方的模块进行注释,其次这是从left方向进行注释!

note right:注释内容; #这也是对该段代码上方的模块进行注释,其次这是从right方向进行的注释!

代码演示:

@startuml

title 这是一个标题
:程序中间内容;
note left:这是从左边开始注释
:第二段内容;
note right:这是从右边注释

@enduml

7、隔离模块(区分内容性质)

作用:便于观察,层次与结构分明。

程序代码:

 partition 模块名{

        :隔离模块内的内容;

        :这里面可以包含任意的内容;

}

代码演示:

@startuml

skinparam backgroundColor #EEEBDC
skinparam ArrowColor #3366CC
skinparam ActivityBorderColor #333333
skinparam ActivityBackgroundColor #CCCCFF
skinparam NoteBackgroundColor #FFFFCC

title 这是一个标题
:程序中间内容;
note left:这是从左边开始注释
:第二段内容;
note right:这是从右边注释
:开始;
fork
    :这是第一路径的内容;
    
    partition 检修模式{
        :隔离模块内的内容;
        :大概写个判断;
        if (这就是大佬嘛?) then (是的)
            :斯锅以,原来这就是大佬;
            :大佬就是强的离谱;
        else(不是)
            :嘻嘻,这其实是菜鸡;
        endif
        
    }
    :结束;

fork again
    :这是并行第二个路径的内容;
    partition 自动模式{
    :巴拉巴拉;
    :小魔仙;
    :大概写一下内容了;
    if (这个是自动模式吗?) then (是的)
        :这就是自动模式;
    else (不是)
        :这不是自动模式;
        :结束;
        end
    endif
    }

fork again
    :这是并行第三个路径;
    partition 手动模式{
    :这里面内容少一点;
    note right :不是不想写,页面快满了
    :页面放不下了;
    }
@enduml

8、★★★重点关注★★★

        其实今天我本身想要直接讲解repeat 和repeat while这个函数

        但是考虑到现在函数的类型越来越多,类型与类型之间混合使用更加混淆难辨!

        而其实作为初学者包括我,并不能很好的梳理uml程序(因过多的语法产生严重的混乱行为)

        实际上梳理出自己逻辑,然后(排兵布阵)才能更好的理解自己的函数的结构和框架内的具体内容。

        这是基本功,也是为了写好UML而打牢的基础要素!

        我知道您很急,想要咔咔咔把自己想要表达的内容赶紧写出来,但是您请先别急!先将代码结构梳理清楚,再将想要表达的内容填充进去,是否更加简洁,清楚,明了呢?

        下面我来用本人自己的代码结构为大家梳理 如何多函数多角度更容易地去写好UML程序。

下面是我写的代码结构和梳理的头脑风暴。

        

@startuml


skinparam backgroundColor #EEFFFC
skinparam ArrowColor #3366CC
skinparam ActivityBorderColor #333333
skinparam ActivityBackgroundColor #CCCCFF
skinparam NoteBackgroudColor #FFFFCC
:上面是对颜色的定义(主打一个炫);

title 如何让↓(箭头)从底下上去?
start
:↓都是从上朝下?如何让↑从下朝上?;
note left : 今天学习的内容就是如此;
note right : 内容会有点儿复杂;
:说人话就是让流程返回想要返回的节点;
:自此可以产生循环;
:该块内容是讲解程序头内容;
:有多少种可能就写多少个fork,多一个不写,少一个不行。;
:fork的最后 完成时的时候 一定要用一个  fork end 更加合情合理(可能);

fork
    :第一路径内容;
    partition 第一条路径待命名{
    :梳理思想;
    :调整结构;
    }
    
fork again 
    :第二路径内容;
    partition 第二条待命名{
    :梳理思想;
    :调整结构;
    }
    
fork again
    :第三路径内容;
    partition 第三条待命名{
    :梳理思想;
    :调整结构;
    }
    
fork again
    :第四路径内容;
    partition 第四条待命名{
    :梳理思想;
    :调整结构;
    }
fork end

@enduml

总结:先思考自己需要用到什么样UML语句,再将UML代码结构先写好。最后再向代码内填充你想要填充的内容。        PS-也许这也是我在写嵌入式,写java,写Python等等的时候养成的良好的习惯吧!

本次更新日期---update_DateTime_2025/06/17

简洁的 PlantUML 入门教程 评论中太多朋友在问,我的文章中图例如何完成的。 我一直用plantUML,也推荐大家用,下面给出一个简洁的PlantUML教程。 阅读详情

相关推荐

(一)软件过程(持续更新)

文章目录1.1 软件开发的本质1.1.1 软件工程的本质问题1.1.2 利益相关者1.1.3 过程1.1.4 建模1.1.5 开发和集成1.2 系统规划1.2.1 SWOT1.2.2 VCM1.2.3 BPR方法1.2.4 ISA方法1.3 三级管理系统1.3.1 事务处理系统1.3.2 分析处理系统1.3.3 知识处理系统1.4 软件开发周期1.4.1 开发方法1、结构化方法2、面向对象方法1.4.2 生命周期的阶段1、业务分析(==需求分析==)2、系统设计(==体系结构设计和详细设计==)3、实现4、

毕业于东北大学软件工程专业,现就职于字节跳动 1584

UML类图语法介绍

UML - Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的结果UML图:通过不同的图形和符号,来描述软件模型以及各个元素之间的关系依赖关系:一条虚线加箭头的形式泛化关系:一条实线加三角箭头,箭头要指向父类实现关系:一条虚线加三角箭头 箭头方向指向接口关联关系:单向关联: 一条实线加一个箭头双向关联: 一条实线 (一条实线加两个箭头)聚合关系。

weixin_43811057的博客 3407

《UML系统建模基础教程(第3版)》课后习题

习题 1 填空题: (1)______是面向对象技术领域内占主导地位的标准建模语言,它统一了过去相互独立的数十种面向对象的建模语言共同存在的局面,形成了一个统一的、公共的、具有广泛适用性的建模语言。(2)类的定义要包含_____、_____、_____要素。 (3)面向对象程序的三大要素是_____、_____和_____。 (4)面向对象方法中的_____机制使子类可以自动地拥有(复制)父类全部属性和操作。(5)面向对象方法中系统分析要确定地3个系统模型是_____、_____和_____。 选择题:

qq_45332400的博客 7472

常用UML图基本语法

1 用例图 1.1 基本要素 用例图的基本要素包含:参与者、用例、系统边界、元素之间的关系,其中元素之间的关系分为:参与者与参与者之间的关系、参与者与用例之间的关系,用例与用例之间的关系。 1.2 示例 二、类图 三、对象图 四、状态图 五、活动图 六、顺序图 七、协作图 八、构件图 九、部署图 ...

m0_67677436的博客 3999

6、信息系统分析与设计:统一过程与统一建模语言

本文详细介绍了信息系统开发中的统一过程(Unified Process)和统一建模语言(UML)。统一过程通过工程工作流和支持工作流的协同,为信息系统的开发提供系统化的方法论框架;而UML则通过丰富的图表技术,帮助开发团队在不同阶段对系统进行建模和设计。文章还探讨了统一过程的扩展,包括新增的工作流和现有工作流的改进,并结合实际案例说明了UML的具体应用方式。最后,文章总结了统一过程与UML的协同作用,并提出了实际应用中的注意事项。

xray4的博客 50

UML全方位复习题集:类图、活动图等多种图表全面掌握

UML,全称为统一建模语言(Unified Modeling Language),是一种被广泛接受的标准化建模语言,用于可视化、定义、构造和文档化软件系统的各个方面。UML通过提供一套标准化的符号和图表,使得软件设计师能够在设计阶段用图形化的方式表达软件的设计思想。UML的历史背景可以追溯到1990年代早期,当时三位面向对象方法学的先驱Grady Booch、Jim Rumbaugh和Ivar Jacobson将他们的方法学整合起来,形成了一套统一的方法。

weixin_42146230的博客 421

史上最全的StarUML使用教程

文章目录一. 版本二. 界面说明三. 画图种类介绍1. 类图(Class Diagram)2. 用例图(Use Case Diagram)3. 时序图(Sequence Diagram)4. 组件图(Component Diagram)5. 部署图(Deployment Diagram)6. 协作图(Comunication Diagram)7. 对象图(Object Diagram)8. 活动图...

雨剑的博客 16万+

旋转变压器软件解码simulink仿真

旋转变压器软件解码simulink仿真、电机转速位置测量

qq_31446727的博客 2580

UML

统一建模语言(UML) 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。 传统的瀑布开发 试图在遍程之前详细定义所有或者大部分需求。通常在遍程之前就创出完整的设计。试图在开始前定义“可靠的”计划或时间表。 局...

weixin_42603009的博客 912

可视化工具--Plotly

随着信息技术的发展和硬件设备成本的降低,当今的互联网存在海量的数据,要想快速从这些数据中获取更多有效的信息,数据可视化是重要的一环。对于Python语言来说,比较传统的数据可视化模块是Matplotlib,但它存在不够美观、静态性、不易分享等缺点,限制了Python在数据可视化方面的发展。   为了解决这个问题,新型的动态可视化开源模块Plotly应运而生。由于Plotly具有动态、美观、易用、种类丰富等特性,所以一经问世就受到开发人员的喜爱。

YFater的博客 1万+

Frida+Objection保姆级教程:从环境搭建到实战Hook(含Wallbreaker插件使用)

本文提供了一份从零开始的Frida与Objection移动安全动态分析实战指南。详细讲解了Python环境配置、Frida-Server部署、Objection核心命令使用以及Wallbreaker插件安装与应用。通过实战案例演示如何Hook网络请求(如HttpURLConnection和OkHttp3),帮助安全研究人员快速掌握应用运行时行为分析与漏洞挖掘技能。

weixin_28318011的博客 101

应用于Eclipse的简单快速的UML编辑软件

应用于Eclipse的简单快速的UML编辑软件 时间:2012-07-06 12:50来源:风信网 作者:末信 点击:416次 我要评论 摘要:在应用系统软件开发过程中,如果软件由很多对象组成,它的结构仅仅凭借分析很难理清,同时为了有利于软件的开发及重用,所以在开发系统之前建模是非常有必要的,在众多的建模方法中选择一种适应自身应用特点,方便不同背景的人们交流的建模方

EvoShark的专栏 1462

【Matlab/Unity】跨平台UDP通信实战:从数据发送到实时可视化

本文详细介绍了Matlab与Unity之间通过UDP协议实现跨平台通信的实战方法,涵盖数据发送、接收和实时可视化全流程。针对科研仿真和工业设计场景,提供优化代码示例和性能对比数据,帮助开发者解决低延迟传输、线程安全等关键问题,显著提升跨平台协作效率。

weixin_29044713的博客 152

南邮UML期末复习2021-6

第一章 SDLC(软件开发生命周期)阶段: 可行性分析 需求分析与说明 设计 编码 测试 维护 5种软件开发方法: 瀑布方法:将开发过程分为七阶段,进行线性开发 原型方法:原型是系统实例,方法用于需求分析阶段,需求冻结后执行剩余阶段 螺旋方法:在软件生命周期内不断迭代,有瀑布方法线性+原型方法迭代的特性 双赢螺旋方法:在螺旋方法基础上加入了客户的协商确认 增量方法:将需求拆分为多个功能单元,只适用于大项目开发 面向对象概念 第二章 UML(统一建模语言unified modeling languag

weixin_44796147的博客 1905

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——原生“龙虾”OpenClaw快速部署、问题速查与避坑指南

至此,你已经完成了从选购服务器到配置AI大脑的全过程。无论是想在云上养一只7x24小时的“龙虾”,还是在本地体验AI Agent的魅力,上述指南都提供了明确的路径。下一步,就是接入飞书、钉钉或QQ,让你的OpenClaw真正开始“干活”赚钱了 [citation:6]。

冯·诺依曼 990

C# 上位机程序中的数据采集与存储技术:从采集到持久化的完整解决方案

本文系统讲解C#上位机程序如何实现设备数据采集与持久化。主要内容包括:1)多种数据采集方式(串口通信、Modbus、OPC等)及代码示例;2)详细对比不同存储技术(CSV、SQLite、关系型数据库等)的优缺点;3)提供SQLite等存储实现代码;4)推荐分层系统架构(采集-缓存-存储-可视化);5)性能优化建议(多线程采集、异步存储、批量写入等)。文章强调应根据项目需求选择合适的技术方案,构建高效稳定的数据采集存储闭环系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1025

PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件

PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件 简介: 在应用系统软件开发过程中,如果软件由很多对象组成,它的结构仅仅凭借分析很难理清,同时为了有利于软件的开发及重用,所以在开发系统之前建模是非常有必要的,在众多的建模方法中选择一种适应自身应用特点,方便不同背景的人们交流的建模方法已经成为开发人员及用户的迫切愿望。UML 是面向对象软件开发中的一种通用、统一的图形

zealot_2002的专栏 4249

uniapp(全端兼容) - 最新详细实现双色球开奖走势图功能组件,uni-app红球走势图/蓝球走势图,解决双色球 “蓝球连线“ 问题,双色球效果及用线连接每个号码详细教程(同样适用于彩票开奖走势图

uni-app,双色球,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,红球走势,蓝球走势,连线,uniapp(vue):js实现双色球开奖走势图带连线,vue2,vue3,uniApp双色球组件插件,uniapp如何实现双色球走势图和连线,彩票走势图,前端 Vue实现彩票走势图,详细示例,走势图,彩票项目,绘制股票走势图,前端 JS实现彩票开奖走势图 连线,Uniapp有没有双色球的页面代码,红球蓝球的走势图如何做,双色球红球和值尾走势图,

✅ 精选推荐文章 3344

PlantUML4IDEA插件完全指南:让IntelliJ IDEA秒变专业UML绘图神器

PlantUML4IDEA是一款专为IntelliJ IDEA平台打造的UML绘图插件,它将强大的PlantUML工具无缝集成到IDE环境中,让开发者能够直接在代码编辑器中创建、编辑和预览各种UML diagrams。无论是软件架构设计、流程图绘制还是时序图制作,这款插件都能帮助你高效完成,堪称程序员的UML绘图神器。 ## 🚀 核心功能一览 PlantUML4IDEA提供了丰富而实用的功能

gitblog_00656的博客 900

ROM和RAM在单片机程序运行理解

ROM和RAM是电子设备中两种核心存储组件,主要区别在于:ROM用于长期存储系统程序、用户文件等固定数据,断电后数据不丢失,但写入速度较慢;RAM则用于临时存储运行中的程序和数据,读写速度快但断电后数据会清空。在单片机中,ROM存储程序代码和常量,RAM存储运行时的变量和数据。两者协同工作,ROM如同"永久档案库"保存必要信息,RAM则像"临时工作台"支持高速运算,共同确保设备正常运行。

qq_37999850的博客 1619

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

start uml怎么自动生成代码_基于UML-RT和Papyrus-RT的系统建模与代码生成

摘要本文使用 UML-RT 和 Papyrus-RT 对具有软实时约束的实时嵌入式系统(RTE)的模型驱动工程(MDE)进行了研究。UML-RT 是专门为 RTE 系统设计的 UML 概要文件。它通过 IBM Rational RoseRT、IBM RSARTE 和实时 Papyrus-RT,在应用程序和工具支持方面有着长期成功的记录。Papyrus RT 是一个基于 Eclipse 的、用于 U...

weixin_31437717的博客 828

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

基于UML的网上订餐系统:提升餐饮业服务效率的利器

基于UML的网上订餐系统:提升餐饮业服务效率的利器 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 基于UML的网上订餐系统,实现线上点餐、支付与订单管理。 项目介绍 随着互联网技术的发展和移动设备的普及,网上订餐已成为现代生活的一部分。本文将为您介绍一个基于UML(统一建模语言)的网上订餐系统开发文档,该文档详细记录了系统从设计到实现的每一步。通过UML的强...

gitblog_06757的博客 721

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Excalidraw绘制UML图的完整流程演示

借助Excalidraw与AI的结合,开发者可通过自然语言快速生成UML类图,大幅缩短建模时间。从环境搭建、插件启用到AI生成与人工优化,整个流程高效流畅,支持团队实时协作与多格式导出,重塑技术设计协作方式。

weixin_42509888的博客 967

面向对象概念及术语总结

名称 注解 范型(paradigm) 做事情的整体策略和观点,范型是一套特定的思想集. 类(class)

603
上一篇: C中的位操作以及奇怪符号含义超简易理解
PATH_HOME
博客等级 码龄9年 8粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值