在软件开发之前,使用UML
为什么要建模
🎈 必须到用户中去,以一种训练有素的方式访问客户,揭示系统的真实需求;
🎈 如果正在建造一座大厦,有时需要从宏观的角度上让投资者看到大厦的样子,感受到大厦的整体效果;而有时也需要认真的思考细节问题,例如复杂棘手的管道铺设;
🎈 对于很多软件工程师来说,从考虑实现到编写代码,其实不需要花费太多时间,就是思考和编码。程序员会在心中做一些建模,甚至在白板或者草稿上模拟出一些想法。然而别人对这些概念容器产生误解;同时阅读某种层次分布中的代码,虽然可以推断出它的大概意思,但我们却很难直接领会它,一旦编码者另寻高就,信息将会永远丢失。
UML介绍
UML主要包含以下概念:
事物 | 结构 | 🔸类 🔸主动类 🔸接口 🔸构件 🔸协作 🔸用况 🔸制品 🔸结点 🔸包 🔸注释 |
行为 | 🔸交互 🔸状态机 🔸活动 | |
关系 | 依赖 | 🔹dependency |
关联 | 🔹association | |
泛化 | 🔹generalization | |
实现 | 🔹realization | |
图 | 结构图 | 🥉类图、🥉构件图(组合结构图)、🥉部署图、🥉制品图、🥉对象图、 |
行为图 | 🥈交互图(时间顺序图、通信图)、🥈状态图、🥈活动图、🥇用况图、 |
最好用5个互连的视图来描述软件密集型系统的体系结构:
❗ use case view | 它没有描述软件系统是如何组织的,而是描述了形成系统体系结构的动力。 | 实际场景的用况图,及元素的交互、状态、活动图 |
design view | 表达了现实世界中的问题及其解决方案的词汇 | 类图,及其元素的交互、状态、活动图 |
implementation view | 表达了计算机中系统装配与管理的逻辑 | 构件图,及其元素的交互、状态、活动图 |
interaction view | 展示了系统不同部分之间的信息流,针对性能、伸缩性等 | (主动)类图,及其元素的交互、状态、活动图 |
deployment view | 物理系统的分布、交付和安装; | 部署图,及其元素的交互、状态、活动图 |
🥇用况图
描述了参与者和一组用况以及它们之间的关系。
用况是指一系列动作的总称,最终有一个可以观察的结果。
🥉类图
展示了一组由🔸类 🔸接口 🔸协作 以及它们之间的关系。
🥇构件图(组合结构图)
展示了🔸类或者🔸协作的内部结构、包括🔸构件的内部部件等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix