统一建模语言(Unified Modeling Language,简称 UML)是一种标准化的建模语言,它提供了一套图形化的符号来创建软件系统的抽象模型。UML 广泛应用于软件开发过程中,用于设计、分析和文档化软件系统。以下是 UML 的一些精要概念:
1. **用例图(Use Case Diagram)**:描述系统的功能以及与用户(或其他系统)的交互。
2. **类图(Class Diagram)**:展示了系统中类的属性、操作以及类之间的关系。
3. **对象图(Object Diagram)**:是类图的实例,展示了系统中对象的实例以及它们之间的关系。
4. **序列图(Sequence Diagram)**:展示了对象之间交互的顺序,强调时间顺序。
5. **通信图(Communication Diagram)**:与序列图类似,但更强调对象之间的关系。
6. **状态图(State Diagram)**:描述对象状态的变化以及触发这些变化的事件。
7. **活动图(Activity Diagram)**:展示了业务流程或工作流,强调过程的顺序和条件。
8. **组件图(Component Diagram)**:描述系统中的软件组件以及它们之间的关系。
9. **部署图(Deployment Diagram)**:展示了系统的物理部署,包括硬件、节点以及它们上运行的软件组件。
10. **包图(Package Diagram)**:组织和显示模型元素的逻辑分组。
11. **组合结构图(Composite Structure Diagram)**:展示了类的内部结构,包括它的属性和端口。
12. **时间图(Timing Diagram)**:展示了事件在时间上的分布。
13. **交互概览图(Interaction Overview Diagram)**:结合了活动图和序列图,展示了系统的动态行为。
14. **配置文件图(Profile Diagram)**:定义了模型的元数据,如数据类型、约束等。
15. **UML 视图(View)**:UML 允许从不同的角度(视图)来观察系统,每个视图关注系统的某个方面。
16. **泛化(Generalization)**:表示一个类是另一个类的更特殊版本。
17. **实现(Realization)**:表示一个类实现了某个接口。
18. **关联(Association)**:表示两个类之间的连接。
19. **聚合(Aggregation)**:一种特殊的关联,表示整体和部分的关系。
20. **组合(Composition)**:一种比聚合更强的关系,表示部分不能独立于整体存在。
21. **多重性(Multiplicity)**:指定了关联或泛化中的基数,如“1个或多个”。
22. **角色(Role)**:在交互图中,表示一个对象在交互中扮演的角色。
23. **守卫条件(Guard Conditions)**:在状态图中,指定了状态转换的条件。
24. **活动节点(Activity Nodes)**:在活动图中,表示活动的步骤。
25. **扩展点(Extension Points)**:在用例图中,表示用例可以被扩展的点。
UML 提供了一套丰富的工具来建模复杂的系统,但它也需要根据项目的具体情况来选择使用哪些图和视图。重要的是要理解 UML 的基本概念,并能够灵活地应用它们来解决实际问题。