系统架构设计专业技能 · 软件工程之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) 。部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。


点击进入系列文章目录

相关推荐
碳学长2 小时前
软件工程:如何在项目中把软件做好
软件工程
碳学长16 小时前
软件工程:如何做好软件产品
软件工程
Scabbards_17 小时前
CPT304 Software Engineering II 题型收集
软件工程
PXM的算法星球17 小时前
【软件工程】可行性研究
软件工程
HAPPY酷18 小时前
Kafka 和Redis 在系统架构中的位置
redis·kafka·系统架构
奇妙之二进制21 小时前
低内聚高耦合的衡量指标
软件工程·架构设计
李明卫杭州1 天前
UML中用例图的绘制
架构·uml
奇妙之二进制1 天前
软件功能模块归属论证方法
软件工程·架构设计
掘金-我是哪吒1 天前
分布式微服务系统架构第144集:FastAPI全栈开发教育系统
分布式·微服务·架构·系统架构·fastapi
张较瘦_2 天前
[论文阅读] 软件工程 | 如何挖掘可解释性需求?三种方法的深度对比研究
软件工程·需求分析