UML

发布时间 2023-12-07 15:26:28作者: Arkiya
用例图 (Use Case Diagrams) 用例图是用于描述系统功能需求的图表,展示了系统如何与外部实体(称为参与者)交互以实现特定目标。让我们举一个简单的例子: 示例:在线购物系统 参与者 (Actor): 用户 支付网关 用例 (Use Case): 登录 浏览商品 添加商品到购物车 结账 支付订单 关系: 用户通过登录来访问系统并执行购物流程。 支付网关作为外部系统参与支付订单的处理。 类图 (Class Diagrams) 类图描述系统中的类、接口以及它们之间的关系。让我们以一个简单的图书馆系统为例: 示例:图书馆管理系统 类: 书籍 读者 图书馆员 借阅记录 关系: 书籍和借阅记录之间存在关联,记录了哪个读者借了哪本书。 图书馆员可以管理借阅记录并处理书籍归还。 对象图 (Object Diagrams) 对象图展示类图的实例,并呈现对象及其之间的关系。考虑一个简单的汽车租赁系统: 示例:汽车租赁系统 对象: Car1: Model - "Tesla", License - "ABC123" Car2: Model - "Toyota", License - "XYZ789" Customer: Name - "Alice", RentedCar - Car1 序列图 (Sequence Diagrams) 序列图用于展示对象之间的交互以及消息传递的时间顺序。以在线订单处理为例: 示例:在线订单处理 对象: 用户 订单系统 支付网关 交互: 用户发送订单请求给订单系统。 订单系统验证订单并发送支付请求给支付网关。 支付网关处理支付并返回支付状态给订单系统。 协作图 (Collaboration Diagrams) 协作图也描述对象间的交互,但注重于交互的组织结构。考虑一个简单的社交平台: 示例:社交平台 对象: 用户 帖子 评论 交互: 用户创建帖子,并且其他用户可以对帖子进行评论或点赞。 状态图 (State Diagrams) 状态图描述对象在其生命周期内可能经历的状态变化。以订单状态为例: 示例:订单状态 状态: 待处理 已确认 运送中 已完成 转移: 当订单确认后,状态从“待处理”转移到“已确认”。 随着订单交付,状态从“已确认”到“运送中”,最终到达“已完成”。 活动图 (Activity Diagrams) 活动图用于展示一系列的动作和决策,通常用来描述业务流程。考虑一个简单的申请流程: 示例:申请流程 活动: 用户申请 审批流程 结果反馈 动作: 用户填写申请表 审批人员审核申请 系统发送批准或拒绝通知给用户 部署图 (Deployment Diagrams) 部署图展示系统的硬件配置和软件组件在硬件上的部署方式。以一个简单的网络应用为例: 示例:网络应用 元素: Web 服务器 数据库服务器 客户端设备 连接: Web 服务器连接到数据库服务器以获取和存储数据。 客户端设备通过网络与服务器通信。 UML 其他常用符号和含义 泳道 (Swimlanes) 含义:泳道用于将系统的不同部分、参与者或执行者分组表示,显示它们的职责和关联。 示例:在活动图和协作图中,使用泳道可以清晰地区分各个执行者或系统组件的职责范围。 接口 (Interfaces) 含义:接口定义了类或组件对外提供的服务、操作或功能的契约。 示例:在类图中,接口通常用带有斜线的矩形表示,展示类所实现的接口。 包 (Package) 含义:包用于组织和管理 UML 中的各种元素,将相关的元素放在一起。 示例:包可以包含类、接口、子系统等,并通过包的层次结构组织这些元素。 注释 (Annotations) 含义:注释用于提供关于 UML 图中元素的额外信息或解释,以增强图表的可读性和理解。 示例:在图表中使用文本框来添加注释,解释特定元素的功能、约束或其他重要信息。 约束 (Constraints) 含义:约束用于定义对系统或类的限制、条件或规则。 示例:在类图中使用大括号表示,指定类的属性或操作的约束条件。 消息 (Messages) 含义:在序列图中,消息表示对象之间的通信或交互,可以是同步或异步的。 示例:消息通常带有箭头,用来表示信息传递的方向和类型(同步、异步、返回等)。 生命周期 (Lifelines) 含义:序列图和协作图中表示对象存在的时间跨度,描述对象在交互中的生命周期。 示例:生命线通常以竖直的虚线表示,沿着序列图中的交互展示对象的存在时间。 虚线 (Dashed Lines) 含义:在 UML 中,虚线通常用于表示依赖、关联、继承等关系,并强调这些关系的松散性或动态性。 示例:虚线可用于表示类之间的依赖关系、不同系统组件之间的关联等。 关联方向 (Association Direction) 含义:在关联关系中,箭头表示关联的方向,即两个类之间的引用方向。 示例:在类图中,箭头指向被引用的类,表示一个类知道另一个类的存在。