状态图笔记

一、状态图的核心概念

  1. 定义
    状态图(State Diagram)是UML中用于描述对象在其生命周期内状态变化的图形化工具,通过状态、事件、转换和动作等元素,展现对象的动态行为。
  2. 适用场景
    • 对象具有三个及以上潜在状态(如订单的“未支付”“已发货”“已完成”)
    • 需明确状态间的转换规则(如电梯的运行状态)
  3. 核心元素
    • 状态:圆角矩形表示(如未选课已满),分初态(实心圆)、终态(双圆环)和中间状态。
    • 转换:带箭头的实线,标注触发事件和动作(如选课操作/课程数+1
    • 事件:引起状态变化的动作(如用户点击按钮、系统超时)
    • 决策节点:菱形表示条件分支(如库存是否充足)

二、状态图绘制步骤

  1. 确定建模对象
    • 选择具有复杂状态变化的实体(如用户、订单、设备)
    • 示例:选课系统中的“学生选课状态”
  2. 识别状态与转换
    • 列出所有可能状态(如未选课选课中已满
    • 定义触发转换的事件(如选课操作删除课程
  3. 优化逻辑结构
    • 合并冗余状态:将相似状态合并(如“待审核”和“审核中”)
    • 层次化设计:使用子状态管理复杂流程(如电商订单的“物流子状态”)

三、设计技巧与注意事项

  1. 最佳实践
    • 精简状态数量:避免过度细化(如不区分“选课中1”和“选课中2”)
    • 明确转换条件:标注警戒条件和动作(如[库存>0]/生成订单
    • 标注活动与动作:在状态内描述进入/退出时的操作(如进入时检查权限
  2. 常见错误规避
    • 遗漏终态:需明确终止条件(如订单终态为“已完成”或“已取消”)
    • 循环转换未处理:确保每个转换都有明确的退出路径

你可能感兴趣的:(软件工程,入门须知,笔记,软件工程)