美文网首页
揭秘状态建模:软件工程中的关键一步

揭秘状态建模:软件工程中的关键一步

作者: 需求探索 | 来源:发表于2024-04-22 10:50 被阅读0次

状态建模

1 目的

状态建模用于描述和分析系统中实体的不同可能状态、该实体如何从一种状态转变为另一种状态,以及当实体处于不同状态时可能发生的情况。

2 描述

实体 是系统中的一个对象或概念。实体 可以用于多个流程。每个实体都有自己的生命周期,有始有终。

在状态模型(有时也称为状态转换模型)中,状态是对状态的一种形式化表示。当需要对一个行为复杂且对其行为有严格要求的实体有一个准确一致的理解时,会使用到这种模型。

状态模型描述了:

  • 一个实体可能的状态集,
  • 实体可能存在的状态序列,
  • 一个实体如何从一种状态变为另一种状态,
  • 使实体状态改变的事件和条件,以及
  • 实体在生命周期中所处的不同阶段可以或必须采取的动作。

虽然流程模型可以显示所有在该流程中使用或受影响的实体,但状态模型则提供了一种补充视角:一个实体如何影响或被用在所有与之相关的流程上。

3 元素

.1 状态

实体在其生命周期内具有有限的状态数,尽管它可以同时处于多个状态。每个状态都有一个名称,并描述了在该状态下可以执行的操作。可能存在规则,规定哪些操作必须或能够执行以及实体可以响应或触发哪些事件。

一个复杂的状态可以分解为子状态。

.2 状态转换

实体如何从一种状态转换到另一种状态,可能是由流程步骤、业务规则或信息内容决定的。一个实体的状态序列并不总是线性的;一个实体可能会跳过几个状态或将退回到之前的某个状态,甚至可能不止一次。

转换可能是有条件的(由特定事件或达到条件触发)或自动的(在前一个状态中通过完成所需操作或经过一段时间后触发)。它也可以递归,离开一个状态并返回到相同的状态。转换以导致转换的事件、决定实体是否必须对事件做出反应的条件以及与事件关联的操作的形式进行描述。

.3 状态图

状态图显示一个实体的生命周期,从该实体第一次被创建开始,经过所有可能的状态,直到它被丢弃且不再被使用。

在状态图中,一个状态用带圆角的矩形表示。可能有任意多个状态。一个状态可以分解为子状态。

从一个状态转换到另一个状态,使用 一个指向起点状态到终点状态 的单向箭头表示,可选地用导致实体的状态从一种状态转变为另一种状态的事件名称、可选的条件和操作 标记。

实体生命周期的开始和结束分别用特殊的符号表示,用于指示该实体已存在或已被丢弃且生命周期结束。

.4 状态表

状态表 是一种显示状态及其之间转换的二维矩阵。它可以用作状态图的替代品、预处理或补充,用于捕获和分析。这是一种从领域专家那里获取 状态名称 和 事件名称 的简单方法。

每一行显示一个初始状态、转换以及结束状态。如果一个状态能够响应多个转换,那么每一个转换都会有一行来表示。

一个在一排中看起来像终端状态的状态 可能在另一排中作为起始状态。

4 使用考虑 10.44.4 使用考虑

.1 优势

  • 确定适用于正在建模实体的业务规则和信息属性。
  • 确定并描述实体在不同状态下的活动。
  • 与纯文本相比,它是一种更有效的文档和沟通工具,尤其是当要描述的事物有多个状态、转换和这些转换所受的条件时。

.2 限制

  • 通常只用于理解并交流被视为复杂的实体;简单的实体可以不用构建状态模型所需的时间和精力来理解。
  • 建立一个状态模型似乎很简单,但在域 SME 之间就模型所需的细节达成共识可能很困难且耗时。
  • 构建状态图需要对状态和转换有很高的精度;一些域 SME 和商业分析从业者在试图描述这种程度的细节时感到不舒服。

本文同步发表在 软件需求探索http://www.srs.pub/babok/zhuangtai-jianmo.html

相关文章

  • Swift 中的状态建模

    在构建应用程序和设计系统时,最困难的事情之一是决定如何建模和处理状态。当我们的应用程序的一部分最终没有符合我们的预...

  • 系统分析与设计学习笔记5

    Asg状态建模 淘宝退货业务状态建模

  • 20180122领域建模讨论

    总摘要: 领域建模点击查看技术分享链接 2018-01-22摘要: 领域建模. 1. 领域建模中,状态的转变不是...

  • 编码的方法论

    一、分析问题二、建模这一步是针对实际问题做的提炼,建模是解决问题的关键例如数据结构就是针对现实中一系列问题做的建模...

  • 软件工程:需求建模

    任何的一个软件都不是无中生有,都不是凭空捏造出来而没有任何的价值点及功能,软件生命的最开始的起点便是有一个需求,有...

  • 精神状态,请紧绷起来

    精神状态是任何场景中拔得头筹的最关键因素; 精神状态,它凝练于日常点滴,非朝夕之功; 从来没有一步天堂或者一步地狱...

  • 学会整体化统筹

    任何项目、事情的布局、统筹、谋划。 比如:做一个软件工程而言,开始之前,需要进行分析、建模、设计……一...

  • 3.5 Streams-笔记

    流 对现实世界事物建模时,由于事物中存在随时间变化的状态,目前只能通过赋值和可变对象实现。虽然可以解决建模的问题,...

  • 《UML面向对象需求分析与建模教程》期末知识点总结复习

    title: 2018《UML面向对象需求分析与建模教程》期末知识点复习categories:软件工程专业课tag...

  • 2018-01-26

    远程放疗流程,关键还是tps建模啊!

网友评论

      本文标题:揭秘状态建模:软件工程中的关键一步

      本文链接:https://www.haomeiwen.com/subject/qcwbxjtx.html