Skip to content

UML 图

UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。本质是 实现关系的可视化,难点是 抽象提取

An image

An image

UML(统一建模语言)图是软件工程中用于描述、可视化和文档化系统设计的标准化图形表示。常见的 UML 图有很多种,每种图用于表示系统的不同方面。

1. 用例图(Use Case Diagram)

  • 用途:展示系统的功能需求以及外部用户(或其他系统)如何与系统交互。
  • 主要元素
    • 参与者(Actor):外部用户或其他系统。
    • 用例(Use Case):系统的功能或服务。
    • 关系(Association):参与者和用例之间的连接。

2. 类图(Class Diagram)

  • 用途:描述系统的静态结构,展示系统中的类及其属性、方法和相互关系。
  • 主要元素
    • 类(Class):表示一个对象类型。
    • 属性(Attribute):类的特性或数据。
    • 方法(Method):类的操作或行为。
    • 关系(Relationships):类之间的连接,如继承、实现、关联、聚合和组合。

3. 序列图(Sequence Diagram)

  • 用途:描述系统中对象之间的动态交互,展示对象在执行过程中交换消息的顺序。
  • 主要元素
    • 对象(Object):参与交互的实例。
    • 生命线(Lifeline):对象存在的时间段。
    • 消息(Message):对象之间发送的消息。
    • 激活(Activation):对象处理消息的时间段。

4. 活动图(Activity Diagram)

  • 用途:展示系统中的流程或活动序列,类似于流程图。
  • 主要元素
    • 活动(Activity):系统执行的操作。
    • 控制流(Control Flow):活动之间的顺序。
    • 分叉/合并节点(Fork/Join Node):并行流的开始和结束。
    • 决策节点(Decision Node):表示分支条件。

5. 状态图(State Diagram)

  • 用途:描述对象的生命周期状态及其状态之间的转换。
  • 主要元素
    • 状态(State):对象的状态。
    • 转换(Transition):状态之间的变化。
    • 事件(Event):触发状态转换的事件。

6. 组件图(Component Diagram)

  • 用途:描述系统的物理结构,展示系统的组件及其相互依赖关系。
  • 主要元素
    • 组件(Component):系统中的模块或部分。
    • 接口(Interface):组件提供或使用的接口。
    • 依赖(Dependency):组件之间的依赖关系。

7. 部署图(Deployment Diagram)

  • 用途:描述系统的物理部署结构,展示系统在硬件节点上的分布。
  • 主要元素
    • 节点(Node):硬件设备或执行环境。
    • 组件(Component):部署在节点上的软件组件。
    • 通信路径(Communication Path):节点之间的通信链接。

下面是一个简单的类图示例,用于表示一个在线书店系统的部分结构:

plaintext
+-----------------+        +---------------------+
|    Customer     |        |       Order         |
+-----------------+        +---------------------+
| - name          | 1     *| - orderNumber       |
| - email         |<------>| - orderDate         |
+-----------------+        +---------------------+
| + login()       |        | + placeOrder()      |
| + register()    |        | + cancelOrder()     |
+-----------------+        +---------------------+
                1          *
               |          / \
               |         /   \
        +------+----+  *     1+------------------+
        |  ShoppingCart |       |      Product       |
        +---------------+       +--------------------+
        | - items       |       | - productId        |
        +---------------+       | - name             |
        | + addItem()   |       | - price            |
        | + removeItem()|       +--------------------+
        +---------------+       | + addReview()      |
                                +--------------------+

在这个类图中,我们展示了 CustomerOrderShoppingCartProduct 类及其之间的关系:

  • Customer 可以有多个 Order
  • 每个 Order 包含一个 ShoppingCart
  • ShoppingCart 可以包含多个 Product

UML 图是设计和交流系统结构和行为的强大工具,能够帮助团队成员更好地理解和协作。