如何设计软件工作流程图?

时间:2017-11-01 15:00:39

标签: algorithm logic workflow software-design

我已经工作了一段时间,但由于我早先的习惯,我从未系统地工作过。

从未为我的软件创建工作流程图,因为软件将如何工作,而不是我直接开始工作,这反过来导致了许多问题。


以下是我目前需要帮助的一个小情况: -

注意:我已经创建了一个软件,它执行以下操作并且我不需要任何代码,我只想知道如何为这种情况创建工作流程图

1)派对列表:这是我想存储客户所有信息的地方。

enter image description here

2)销售:在这里,我将向客户出售我的产品。

这里有 2个案例,每当客户到达时,我们都可以选择

  • 将其保存在聚会列表中,然后从销售表单中的列表中选择

enter image description here

  • 或手动输入然后保存

enter image description here

现在检查部分: -

如果勾选了复选框并且用户选择了某个聚会时,如果某个条目已保存在销售中,请说" Akhmed "已保存并且用户尝试删除" Akhmed "的记录从派对列表表单中,软件不应该允许它进入" Akhmed "已存在于销售中。


有人能告诉我如何为这种情况创建工作流程图吗?

修改

以下是我阅读一些文章后所做的示例工作流程,请指出可以对其进行的任何改进,或者是完全错误还是其他任何内容。

enter image description here

3 个答案:

答案 0 :(得分:4)

首先,很好的问题。我希望所有软件工程师在开始编写代码之前先考虑一下。特别是当它比任何一条线条更重要的时候都是为了好玩。

我认为您的软件流程可以表示为活动图表。活动图的一个例子表示在这张图片上:https://www.tutorialspoint.com/uml/images/uml_activity_diagram.jpg

基本上,活动图是连接它们的步骤和过渡(箭头)的组合。步骤可以是流程中发生的事情,也可以是将流程执行分支到不同方向的逻辑运算符(决策)。

如果您还需要强调谁需要执行该步骤,除了显示步骤之外,您还可以将泳道(显示演员姓名的水平或垂直列)添加到活动图中。这就是它变成流程图的地方。例如在此图像上,您可以看到水平swimplanes,解释执行步骤的人http://static1.creately.com/blog/wp-content/uploads/2011/11/Support-Process-Flowchart-Template-1024x613.png

请注意,术语可能因人而异,但这些是我自己最常听到和使用的这两种图表的名称。

还有其他类型的图表,但我认为您的具体案例将包含上述内容。虽然...用例图可能是您可能感兴趣的东西,但这并不描述步骤。这只会提到演员以及他们可以对你的系统采取什么样的行动。例如https://sourcemaking.com/files/sm/images/uml/img_32.jpg

你没有要求工具,但我通常更喜欢使用严格的工具(而不是像Visio那样松散),所以我建议使用WhiteStarUML。它是免费的,做得很好。但正如我所说,它严格基于UML,因此需要熟悉UML。

最后,关于你的附图: 你展示的内容看起来像一个活动图,上面有一些非法组件(从UML规范的角度来看是非法的)。是好还是坏? - 要看。如果它应该是一个严格的UML图,那么它是坏的。如果它只是一个想法的草图 - 不错。

您的图表提到数据库标志(称为“DB”)和连接到它的箭头。这在活动图UML上是非法的。相反,您可以使用“将数据保存到数据库”的步骤,并删除“DB”。此外,您只需一步即可显示“Party”和“Sales” - 这不是合法的UML。我想你试图表达有2个流量。在这种情况下,只有2个不同的活动图而不是一个。

答案 1 :(得分:3)

你的问题很广泛,但我会试一试。

我想你想重新考虑你的方法。我建议阅读UML序列图。它们是一种图表,提供了一种表示在代码中如何生成请求的方法。通常,UML也可用于制作类图和其他有用的流程图来表示代码。许多工具(例如visual-paradigm)允许您构建可以直接转换为代码的UML图(例如类图)。这可以在您开始使用该程序时很有用。使用这些工具有一个学习曲线,因为不同类型的箭头意味着不同的东西,但它们可以非常强大。它们也可用于获取现有代码并将其转换为图表,这在尝试解释程序的工作原理时非常有用。

这里有一些其他可能有用的链接:

lucidchart有一个弹出窗口图的示例,就像您描述的那样。

draw.io只允许你制作图表,而不是将它们转换为代码,但它是一个易于使用的工具,并与google驱动器和git hub集成。

stackoverflow也有关于UML的一些信息。

如果您正在寻找专业的工作流程图" UML如果是一个很好的方法,有很多方法可以布局,而且它们可以非常专业,我在学校学到了它们,并在工作中使用它们来帮助计划通过我们的系统的数据流。还有更多的UML工具,可能值得研究一下教程,找到最适合你的工具。

答案 2 :(得分:1)

你似乎走在正确的轨道上,我从来没有在我的流程图中添加数据库,但是你需要详细的数据取决于你。你似乎正在使用正确的符号!

这是我使用的一个很棒的免费网站。 https://www.draw.io/它是为制作流程图和其他内容而创建的。

我个人会删除图表开头的UI。在开始使用流程图时,请尝试远离过于技术性的示例,点击YouTube或Google图片以获取一些简单但正确的示例。

祝你好运的朋友!