【问题标题】:What would be the better unit to draw state machine diagrams in SRS?在 SRS 中绘制状态机图的更好单位是什么?
【发布时间】:2020-07-20 03:59:00
【问题描述】:

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

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

【问题讨论】:

  • 有趣的问题。
  • 我的答案是针对课程的,如果您需要任何明确的信息,我可以为您提供详细的答案

标签: uml state-machine requirements state-diagram system-analysis


【解决方案1】:

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

在 UML 中,状态机是为分类器定义的。他们可以定义事件驱动的行为 (behavioral state-machine) 或与分类器的有效交互集 (protocol state-machine)。 classifier 通常是一个类或一个组件:两者都是可能的。

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

虚拟示例:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多