用UML状态机进行需求分析

Posted itisnonsense

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用UML状态机进行需求分析相关的知识,希望对你有一定的参考价值。



vol.004




1.什么是状态机

1.1概念

状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

1.2构成要素

现态:是指当前所处的状态。

条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。

动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。

次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

 

2.应用场景

在需求分析中,涉及到业务有多种状态转换时,用状态机来梳理状态流转过程和转换条件。避免状态遗漏和重复。如电商类产品的需求分析,订单通常会有较多状态。如果在流程图中表示订单状态会比较混乱,可以用状态机来单独梳理订单流程的变化。

以下是一个简化的下单流程:

用UML状态机进行需求分析

3.怎样使用

根据上面的下单流程,对整个订单流程的状态用状态机梳理如下:

用UML状态机进行需求分析


图例


1)列出主流程的订单状态:

待支付,待发货,待收货,已完成。以及表示出现态转换为次态的条件。

2)列出每种异常状态:

①待支付订单:若订单超时未支付,系统会自动取消订单,订单状态为已取消;若用户主动取消订单,则订单状态为已取消。

②待发货订单:若用户发起退款申请,则要进入退款流程。退款流程为订单流程中的分支流程,它的状态不归属与订单状态,故用虚线框标示它是一个独立的流程。退款完成后,订单状态为已取消。

 

4.注意事项

1)不重不漏:例如“已支付”与“待发货”表示的是同一个状态。

2)状态机的边界:一个状态机表示一个流程/模块内的状态迁移。



以上是关于用UML状态机进行需求分析的主要内容,如果未能解决你的问题,请参考以下文章

05《火星——UML大战需求分析》阅读笔记之五

UML大战需求与分析--阅读笔记4

《UML大战需求分析》阅读笔记6

UML大战需求分析--阅读笔记3

《UML大战需求分析》阅读笔记1

《UML大战需求分析》阅读笔记3