2

最近,我正在为我的大学项目编写 SRS 文档。当我绘制状态机图时,我对应该绘制哪些部分感到困惑。是为了组件吗?还是上课?

对象的固有状态清楚地显示在状态图中。但是,我的问题是我们如何找到我们应该绘制的状态。那是从组件或类中获得的吗?

4

1 回答 1

4

SRS 是系统需求规范:您记录需求而不是解决方案。所以 SRS 中的状态图应该与需求相关,不管它们是什么。

在 UML 中,为分类器定义了状态机。它们可以定义事件驱动的行为(行为状态机)或与分类器的有效交互集(协议状态机)。分类器通常是一个类或一个组件:两者都是可能的。

但是在你的 SRS 中你并不关心:你不需要为每个类或每个组件提供一个 SM;只有在有与州相关的要求时,您才需要提供 SM。

虚拟示例:

  1. 用户可以创建一个shopping basket,然后将items其添加到catalog购物车。项目也可能被删除。用户可以查看购物车并继续购买。用户可以签出购物车,一旦payment完成,购物车将无法再更改
  2. controller点燃火箭助推器。一旦检测到增压器燃料油位为空,控制器就会激活增压器的分离,并点燃主发动机。一旦助推器成功解耦,控制器应监控高度的任何变化。

您肯定会使用类对 1 进行建模,并且关于操作有效性的约束shopping cart很容易在状态机中表达。顺便说一句,这对于任何具有要跟踪的生命周期的对象来说都是典型的。其他类似乎没有任何有趣的状态可以建模。

您肯定会使用controller组件对 2 进行建模,并且事件驱动的行为集可以使用状态机轻松清晰地表达。

所以最终,你并不关心它是一个类还是一个组件。唯一应该在 SRS 中驱动您的建模的是,是否存在可以使用状态机更精确/轻松/清晰地表达的行为或约束。许多 SRS 甚至没有显示任何状态机,因为状态仅在解决方案的设计中出现。

于 2020-07-20T09:55:07.123 回答