码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • UML设计系列(7):UML设计阶段性总结


    目录

    传送门

    什么是UML设计

    UML设计的作用

    常见用例

     功能模型

    用例图

    对象模型

    动态模型

    其它


    传送门

    UML设计系列(1):状态机图

    UML设计系列(2):类图

    UML设计系列(3):时序图

    UML设计系列(4):用例图

    UML设计系列(5):系统依赖图

    UML设计系列(6):活动图

    经过上面几节,对UML可能有一个初步认识和体感。

    但是UML设计具体是什么?作用是什么?是怎么建模的?有哪些常用图例?

    这就系统性的讨论一下

    什么是UML设计

    要回答这个问题,百科已经定义的很明确了:统一建模语言

    归纳起来,就是下面几个方面:

    UML设计的作用

    前面图上列举了UML设计的作用

    • 为软件系统建立可视化模型
    • 为软件系统建立构件
    • 为软件系统建立文档 

    如果只是枯燥的理解这几句话,还是不容易体会到它真正的好处的。

    一个伟人说过一句说,实践是检验真理的唯一标准!只有去用了,才能体会到UML设计的好处和自己的评判。做为一个开发人员,并且使用过UML一段时间的"过来人",按照自己浅薄的经验,觉得在开发过程中,可以归纳为以下3个阶段,使用并体现UML的好处:

    见过不少项目组,甚至一些小一些的公司,是几乎没有什么文档的。

    项目中的老司机会牛逼的说,所有的,最好的文档就是代码,自己去看!你知道刚去报道的新人心中是有多少匹马跑过吗?

    所以UML设计的一个直接好处是:为系统建立设计文档库,记录系统的演进过程,新人的学习资料!

    而且这种机制形成之后,在以后的开发过程中,开发人员通过设计UML编写设计文档时,一方面对负责的模型/系统会进行相关实现方案的调研,是否可行。并同步的思考相关的一些细节,可以细到一个类,一张表的字段,接口的出入参等。另一方面能对相关业务做个了解,而不仅仅是个coder!

    最后呢,在大一点的项目或者复杂的功能,可以用以上的UML设计文档作为评审材料,比如开发人员设计的,由架构师或者团队其它人员交叉审核,众人拾柴火焰高嘛!

    常见用例

    UML设计的常用图例不少,大致如下

    按照刚才上面的分类,一共有3种

     功能模型

    用例图

    UML设计系列(4):用例图

    UML设计系列(5):系统依赖图

    对象模型

    UML设计系列(2):类图

    包图

    部署图

    动态模型

    UML设计系列(3):时序图

    UML设计系列(6):活动图

    UML设计系列(1):状态机图

    其它

    UML设计里面,还有一些不是很常见的用例,比如对象图,协作图。

    顾名思义,对象图,主要是指java这种面向对象的语言,对象之间的关系,个人觉得跟类图差别不是很大,而且类图基本已经覆盖对象图的功能了,所以不是很常用。

    另一个是协作图,用的也不多,就不过多讨论了。

    但是有一个非常特殊的,就是ER图。主要是表示关系数据库,表及表之间的关系,比如

    这个在现在的系统设计中还是很常用的,后续会单独讨论这种 

    UML设计是银弹吗

    上面都是在说UML设计的好处,那它就这么完美吗?

    当然不是的,天生万物,不可能十全十美,UML设计也是一样!

    成本

    首先,要使用UML设计,还是要有一定学习成本,需要了解它,使用它,熟悉对应的工具。

    其次,是开发过程中,增加了开发成本,要画各种图,而这个工作量有的时候,不亚于编写等量的代码!

    最后,也是最重要的,是对一些没有接触过的,或者是对UML设计天生抵触的人来说,这无异是一项负担, 要转变开发思维,和开发习惯!

    场景

    对于想要使用UML设计的,肯定是建议尝试,在项目中或者自己学习中,找到可以使用的地方,去用,去写。

    但是一些小项目,或者可以预见,规模不大的,是可以不用的,甚至自己的私人项目。

    因为UML设计,背后还有一个目的在于协作

  • 相关阅读:
    【Hash表】无重复字符的最长字串-力扣 3 题
    C语言-atof函数介绍
    关于前端开发中导入导出
    Tools-反射
    Windows下,ESP-IDF&ESP-ADF的安装
    OpenCV-Python学习(14)—— OpenCV 绘制箭头线(cv.arrowedLine)
    android studio 字节码查看工具jclasslib bytecode viewer
    图解LeetCode——1656. 设计有序流(难度:简单)
    CKEditor5定制及文件上传
    【PTA刷题】请编写函数,求子串(详解+代码)
  • 原文地址:https://blog.csdn.net/weigeshikebi/article/details/126440405
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号