UML 图
UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。本质是 实现关系的可视化,难点是 抽象提取。
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() |
+--------------------+
在这个类图中,我们展示了 Customer
、Order
、ShoppingCart
和 Product
类及其之间的关系:
Customer
可以有多个Order
。- 每个
Order
包含一个ShoppingCart
。 ShoppingCart
可以包含多个Product
。
UML 图是设计和交流系统结构和行为的强大工具,能够帮助团队成员更好地理解和协作。