2024-05-23
藏龙卧虎
00
请注意,本文编写于 107 天前,最后修改于 70 天前,其中某些信息可能已经过时。

目录

简介
常见考点
结构行为类
类图示例
对象图示例
组件图示例
部署图示例
动态行为类
用例图示例
时序图示例
协作图示例
活动图示例
状态图示例

简介

UML图是一种统一建模语言(Unified Modeling Language)的图形表示,用于描述软件系统的结构和行为。它是一种标准化的图形化语言,被广泛应用于软件开发领域,用于可视化、规划和构建软件系统。UML图提供了一种可视化的方法来描述系统的各个方面,包括静态结构、动态行为、交互和用例等。常见的UML图包括类图、用例图、时序图、活动图、状态图等。

下面是几个常见的分类:

  1. 类图(Class Diagram):描述系统中的类、属性和方法之间的关系,是静态结构的表示。
  2. 用例图(Use Case Diagram):描述系统中的功能需求和用户之间的交互,以及系统对外部实体的行为。
  3. 时序图(Sequence Diagram):描述系统中对象之间的交互顺序,特别适用于描述系统的动态行为。
  4. 活动图(Activity Diagram):描述系统中的活动流程和控制流程,用于展示系统中的业务流程或算法流程。
  5. 状态图(State Diagram):描述系统中对象的状态以及状态之间的转换,用于表示对象在不同状态下的行为变化。

关注公众号“月上老狗”,发送“软件设计师”,获取历年软件设计师软考真题。

image

常见考点

  1. 活动图的关键路径:活动图的关键路径是指开始到结束,距离(耗时)最长的路径。

结构行为类

  1. 类图(Class Diagram):描述系统中的类、属性和方法之间的静态关系。
  2. 对象图(Object Diagram):描述系统中对象之间的静态关系,是类图的实例化。
  3. 包图(Package Diagram):描述系统中各个包之间的组织关系和依赖关系。
  4. 组件图(Component Diagram):描述系统中各个组件之间的静态关系和依赖关系,通常用于展示系统的物理结构。
  5. 部署图(Deployment Diagram):描述系统中软件和硬件资源之间的静态关系,通常用于展示系统的部署架构。

类图示例

类图

  • 车的类图结构为 <<abstract>>,表示车是一个抽象类;
  • 它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示;
  • 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示;
  • 小汽车与发动机之间是组合关系,使用带实心箭头的实线表示;
  • 学生与班级之间是聚合关系,使用带空心箭头的实线表示;
  • 学生与身份证之间为关联关系,使用一根实线表示;
  • 学生上学需要用到自行车,与自行车是一种依赖关系,使用带箭头的虚线表示;

对象图示例

对象图

  • 上面的对象图代表订单管理系统,顾客在一个特定的时间下单。
  • 它具有顾客、订单、特殊订单和一般订单四个对象。
  • 现在客户对象(C)是与三个订单对象(O1,O2和O3)。
  • 这些订单对象相关联的特殊订单和一般订单对象(S1,S2和N1)。
  • 顾客具有以下三个具有不同数目的订单(12,32和40),用于所考虑的特定的时间。

组件图示例

组件图

  • 在购买一件商品时,我们首先是浏览商品,了解商品详情。
  • 在商品详细页面上,我们可以看到一个“加入购物车”。
  • 可以绘制网上商城组件图,如上图所示:购物车、订单、库存、支付管理组件。

部署图示例

部署图

动态行为类

  1. 用例图(Use Case Diagram):描述系统的功能需求和用户之间的交互。
  2. 时序图(Sequence Diagram):描述系统中对象之间的交互顺序和消息传递,是一种时序关系图。有时也成为序列图。
  3. 协作图(Collaboration Diagram):描述系统中对象之间的协作关系和消息传递,与时序图类似但更强调对象之间的交互。
  4. 活动图(Activity Diagram):描述系统中的活动流程和控制流程,通常用于展示系统的业务流程或算法流程。
  5. 状态图(State Diagram):描述系统中对象的状态以及状态之间的转换。

用例图示例

用例图

时序图示例

时序图

协作图示例

协作图

活动图示例

活动图

状态图示例

状态图

图形参考:【简书:zhangyah(UML九种图汇总)

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!