流程图、顺序图、状态图他们三者分别解决什么样的问题?

流程图:用于表示完成某件事情中的各个活动过程,其中最重要的部分是“处理 process”单元;

顺序图:用于表示程序执行时各个对象的交互过程(这些对象会按调用时间顺序排序);

状态图:描述一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态之间的转移,其最主要的就是程序目前的状态,每一个状态总结记录程序由开始到目前所有接到的输入。

这么描述可能还不够清晰,下面我将从流程图VS顺序图,以及流程图VS状态图,对这三者的优势和局限性作进一步解读:

流程图 VS 顺序图

这是push流程的一张顺序图:

《流程图、顺序图、状态图他们三者分别解决什么样的问题?》

 

它直观地反应了push程序执行的过程,各个对象之间的调用顺序是怎样的一目了然。

这还属于比较简单的顺序图。如果是下面这类复杂的,甚至一个方法里面有很多分支语句的,那用顺序图肯定是很不好画了。

《流程图、顺序图、状态图他们三者分别解决什么样的问题?》

 

因此,一般情况下分析程序中的方法用流程图更好,它可以很好的反应各种复杂的逻辑。

流程图 VS 状态图

这是表示电梯运行状态的一张状态图:

《流程图、顺序图、状态图他们三者分别解决什么样的问题?》

                                  状态图:电梯运行的三种状态

如果用流程图来表示上述状态图,就需要做的处理单元比较多,这种情况下状态图明显在结构上要比流程图要更简单。

流程图和状态图的差别在于,流程图更在意动作是如何完成的,状态图更重视动作的完成,相较不在意是哪一个程序完成的

因此,当状态图中某一个状态下少考虑了哪一个输入事件,我们可以很快地检查出来,但如果在流程图上,我们就无法分辨了。

因此,状态图比较适合对象导向的程序,流程图则比较适合描述程序导向或是数据处理的程序

以上图形均由亿图图示软件绘制而成,感兴趣的小伙伴可以收藏体验下[]~( ̄▽ ̄)~*

    原文作者:亿图图示
    原文地址: https://blog.csdn.net/Edraw_Max/article/details/109785941
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞