UML总结

UML是一种用于绘制软件概念图的图形化标记语言,包括静态图、动态图和物理图。静态图如类图、对象图描述不变的逻辑元素,动态图如序列图、协作图展示执行过程的变化,物理图描绘不变的物理实体。类图中,用不同的符号表示类、变量和方法的可见性,以及继承、接口实现和关联关系。序列图、协作图、状态图分别展示了对象交互、合作方式及对象状态变迁。UML图在沟通和交付中起到重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UML(unified model language):统一建模语言
UML是一个绘制软件概念图的图形化标记语言;

1. 图的类型:
UML有三种主要的图:静态图,动态图,物理图
静态图通过对象,类,数据结构以及他们之间的关系来表达那些软件元素中不会改变的逻辑元素;
动态图通过执行流,实体改变状态的方式来描述软件实体在执行过程中如何变化;
物理图用来描述不会改变的物理实体,例如源文件,二进制文件,数据文件,类库等;

2. 常用图:
类图
对象图
序列图
协作图
状态图

3. 何时用UML图
   UML图用于沟通以及最后的交付;
   UML图应该尽可能简单;
   
类图(class diagram)
框图表示类,如果需要,第二个框表示类变量,第三个框表示方法;
再详细点,-代表private和friendly的可见性,#代表protected可见性,+代表public的可见性;
继承用封闭三角形的箭头符来表示,实现接口用虚线的封闭三角形箭头来,关联使用普通的箭头来表示;
标注:
实现接口也可用继承的方式来表示,但接口类上要加<<interface>>
对于工厂模式的类,即某个方法用以产生某个对象并返回,则可用关联箭头外加<<creates>>标注
如果某个类实例在方法中被定义和使用,则用关联箭头外加<<local>>标注
如果某个类实例在方法参数中被用到,则用关联箭头外加<<parameter>>标注
内部类可用圆圈内+号的方式来表示关联;

序列图
对象,生命线,消息

状态图
状态,事件,初始伪状态,结束伪状态,超状态;
状态用圆形拐角矩形(被分成上下两格)来表示,状态名字显示在状态图上面的框格中,状态图下面的框格则表示进入或退出这个状态时触发的动作;也可添加其它的事件;
初始伪状态即状态机的初始状态,用实心的黑色圆圈表示,
超状态包括多个状态,用来描述多个状态的一致行为,用大框将几个状态框起来即可;
超状态的转换可被子状态发出的转换重载;
对于事件,如从其它状态进入超状态,则会先触发超状态的对应动作,再触发子状态的对应动作;如从超状态进入其它状态,则相反;
结束伪状态用空心的实心圆表示;






























### UML 图类型及其应用场合总结 | 序号 | UML图名称 | 特点描述 | 主要用途 | |------|--------------|--------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| | 1 | 类图 | 描述系统的静态结构,展示类之间的关系以及属性和操作 | 设计阶段用于定义系统中的类、接口和其他实体的关系;帮助理解系统的架构[^3] | | 2 | 对象图 | 表现特定时刻的对象实例及其链接 | 展示具体场景下的对象状态,辅助理解和验证类图的设计合理性 | | 3 | 组件图 | 显示程序组件间的依赖关系 | 软件开发过程中用来规划和管理不同模块或子系统的交互 | | 4 | 部署图 | 描述硬件节点上运行的软件构件 | 系统部署时配置服务器或其他计算资源 | | 5 | 包图 | 将模型元素分组到逻辑单元内 | 大型项目的组织工具,有助于简化复杂性的处理 | | 6 | 用例图 | 定义外部参与者与系统功能之间的互动 | 收集并记录用户需求,作为沟通桥梁连接开发者和技术人员 | | 7 | 状态机图(状态图)| 描述一个实体基于事件影响的状态变化过程 | 分析和设计有限状态自动机,特别适用于实时控制系统 | | 8 | 活动图 | 流程控制流的表现形式 | 工作流程建模,强调并发性和决策路径 | | 9 | 顺序图 (序列图) | 记录消息传递的时间顺序 | 动态行为建模,特别是对于涉及时间因素的关键算法 | | 10 | 协作图 (通信图)| 强调参与交互的对象角色 | 清晰展现各对象间的信息交换模式 | | 11 | 时间图 (定时图)| 关注于随时间推移而发生的动作 | 实时系统中精确描绘事件发生时机 | 此表格综合了多种类型的UML图表,并指出了每种图表最适合的应用环境。通过这种方式可以帮助读者更好地掌握何时应该选用哪种UML图表来进行有效的需求分析、设计文档编写等工作。 ```python # 示例代码:创建简单的Python字典模拟上述表格数据结构 uml_diagrams = { 'class': {'description': '描述系统的静态结构...', 'use_case': '设计阶段...'}, # ...其他条目... } print(uml_diagrams['class']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值