系统架构设计专业技能 · 软件工程之UML建模设计

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

点击进入系列文章目录

系统架构设计高级技能 · 软件工程之UML建模设计

一、需求分析 - UML图

二、用例图

2.1 用例图相关关系(包含、扩展、泛化)

包含关系(必然的): 其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。

扩展关系(可选的): 如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。

泛化关系(父子): 当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。

2.2 用例图

  • 用例图描述一组用例、参与者及它们之间的关系。
  • 用户角度描述系统功能;
  • 参与者是外部触发因素;
    (包括用户、组织、外部系统,时间)
  • 用例是功能单元。

关系包括:包含关系、扩展关系、泛化关系

用例建模的流程:
识别参与者(必须)
合并需求获得用例(必须)
细化用例描述(必须)
调整用例模型(可选)

三、类图与对象图

3.1 类图与对象图相关关系(依赖、泛化、关联(聚合/组合)、实现)


3.2 类图与对象图

类图(class diagram) : 类图描述一组类、接口、协作和它们之间的关系。

对象图(object diagram) : 对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。

类名,方法名,属性名
多重度(对应关系数1、0...*)
关系

四、顺序图(序列图)

顺序图(sequence diagram, 序列图) 。顺序图是一种交互图(interaction diagram)它强调对象之间消息发送的顺序,同时显示对象之间的交互。

五、通信图(协作图)

通信图(communication diagram) 。通信图也是一种交互图, 它强调对象之间存在的消息收发关系,而不专门突出这些消息发送的时间顺序。

六、状态图

状态图(state diagram) 是对类描述的补充。用于展现此类对象所具有的可能状态,以及某些事件发生时其状态转移情况。

在订单处理的过程中,会员可以点击"取消订单"取消该订单。如果 支付失败 ,该订单将被标记为 挂起状态 ,可后续重新支付,如果挂起超时30分钟未支付,系统将自动取消该订单。订单支付成功后,系统判断订单类型:

(1)对于常规订单,标记为 备货状态 ,订单信息发送到货运部,完成打包后 交付快递 发货;

(2)对于定制订单,会自动进入 定制状态 ,定制完成后 交付快递 发货。会员在系统中点击" 收货 "按钮变为 收货状态 ,结束整个订单的处理流程。

七、活动图

活动图(activity diagram) 是一种特殊的状态图。活动图描述一个操作中要进行的各项活动的执行流程。同时,也常被用来描述一个用例的处理流程或者某种交互流程。活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。它强调对象间的控制流程。

活动图与流程图的区别是可以并行。

八、定时图

定时图 也叫计时图,也是一种交互图,用于展示交互过程中的真实时间信息,具体描述对象状态变化的时间点以及维持特定状态的时间段。

九、构建图与包图

构件图(component diagram) 。构件图描述一个封装的类和它的接口、端口, 以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。

包图 ,包的图标像是一个带标签的文件夹,包的基本思想是把共同工作的元素放到一个文件夹中。例:多个类或构件组成了一个子系统,就可以将它们放到一个包中。

十、部署图

部署图(deployment diagram) 。部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。


点击进入系列文章目录

相关推荐
科技互联人生13 小时前
微服务常用的中间件及其用途
微服务·中间件·系统架构
不止会JS15 小时前
软考:系统架构设计师教材笔记(持续更新中)
系统架构·软件工程·软考
Theodore_10221 天前
4 软件工程——总体设计
java·开发语言·数据库·算法·java-ee·软件工程·设计
Theodore_10221 天前
1 软件工程——概述
java·开发语言·算法·设计模式·java-ee·软件工程·个人开发
碳学长1 天前
2025系统架构师(一考就过):案例题之一:嵌入式架构、大数据架构、ISA
大数据·架构·系统架构
shinelord明2 天前
【再谈设计模式】享元模式~对象共享的优化妙手
开发语言·数据结构·算法·设计模式·软件工程
人才程序员3 天前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面
Theodore_10223 天前
3 需求分析
java·开发语言·算法·java-ee·软件工程·需求分析·需求
七灵微3 天前
进程与线程以及如何查看
linux·系统架构
做人求其滴3 天前
GDPU软件工程习题(挖空版)
软件工程