流程图和方法调用


11

我正在做一些流程图,想知道我是否正确地做到了这一点。本质上,我有几个方法调用,并且每个都分别流程图。但是,这些方法中的几种使方法调用某些信息,然后继续。请参阅以下示例:

在此处输入图片说明

我还有另外3个也调用GetQueue()的方法,我想知道自己是否正确表示了这一点。AddQueue()流在外观上看起来已损坏。

注意:我的流程图中所做的更改:

在此处输入图片说明


这样的图片细节水平真的有必要吗?我知道,像这样的流程图曾经很流行,但是由于许多原因,如今它们似乎已经不受欢迎了……从本质上讲,它们是多余的文档形式。您必须使它们保持最新,并且代码无论如何都应该已经足够代表流程图中显示的内容(意味着:花更多的时间来制作更多的代码)。
罗伯特·哈维

在我转到另一个客户之前,这是我的要求。
基思·巴罗斯

@Robert Harvey:在过去,人们直接编写机器或汇编代码时,流程图非常有用。它们对于早期的FORTRAN和BASIC程序员可能很有用,因为他们没有很好的控制结构。如今,我愿意这样做的唯一原因是,如果客户希望它们作为可交付成果并且愿意为我支付足够的钱。
David Thornley,

从头开始开发这些工具时,我发现使用黄色便笺纸(将其旋转90度)非常有帮助。这使您可以移动它们并在它们之间插入过程。当您都穿完后,将其输入到您的软件中。
迈克尔·赖利

尽管我发现出于相同的目的单元测试通常会更好,但我仍然偶尔会使用流程图。但是,它们不是可交付的。我用它们来控制流程。
Michael K

Answers:



2

我最近做了一些流程图,并遇到了相同的问题,如何呈现子例程调用,或者也许像现在所说的那样调用方法和函数调用。

我确定了将子例程CALLS与子例程REFERENCES分开的约定。对于前者,我使用一个普通的矩形来显示带有参数的调用,该调用使用在程序执行时此时有效的任何变量。

我仅使用双面的“预定义过程”矩形作为对另一个流程图的引用,该流程图包含该函数或子例程的定义。子例程矩形不必显示子例程的参数,因为它是所讨论的子例程的定义流程图的一部分,但是将它们添加到引用中可能会有所帮助,以便任何人阅读它都可以查看调用中使用的实际参数的含义。

这增加了矩形的数量,但更清楚地显示了那些其他流程图可以从中查找某些被调用函数的定义。通常,如果一个函数很简单,我不会为它创建单独的图表,而只是口头记录它。

我还使用“文档”符号表示应该从代码清单中查找详细信息。

流程图对我来说不是要创建程序,而是要让其他人更容易理解程序。我认为应该牢记帮助的鸟瞰图及其目的。它们并不是为了直观地描述程序的每个细节,需要时可从代码中看到详细信息。从高级的角度来看,流程图只是程序的一幅图。

保持流程图的高级还意味着在修改代码后无需保持流程图为最新。

他们是图片。像任何好的故事一样,软件文档也应该有图片,这些图片为代码提供了另一种观点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.