关于手写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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值