使用流程图或图表来跨程序的例程

时间:2011-05-24 15:03:54

标签: scripting refactoring flowchart

我有一套繁忙的例程来验证或下载当前的客户端应用程序。它从一个调用.WSF文件的Windows桌面快捷方式开始。这会调用几个.VBS文件,一个.INI用于设置,可能还有一个.BAT文件。其中一些脚本文档具有内部功能。最后阶段打开一个Microsoft Access数据库,它需要一个AutoExec宏,它启动一些VBA,包括一个在VBA中有自己的加载例程的表单。

这些细节都不是特别重要(所以请不要添加VBA标签,或批评我的宝贵复杂性)。关键是我有各种各样的工具和容器,它们可以在功能上嵌套。

我需要更好的技术来解析流程图中的问题。目前我依赖以下任何一个或全部:

  • 一种独特的颜色
  • 一个包含例行程序的大盒子
  • 经典的“转移控制”符号
  • 也许是一个解释性的标注

我不应该增加流量图表词汇量吗?教程解释了方形,钻石,圆形,几乎没有。当然,FC可以帮助我处理这些事情:

  1. 过多的脚本类型可以让我回答不同的需求,我想指出工具/语言。
  2. 子例程可能导致整个任务中止,或者出错,我想通过更高级别的“封闭”例程来显示对其的处理(或后果)。
  3. 我想区分“内部”子例程和不同脚本文件中的子例程。
  4. 并发脚本处理可能变得至关重要,所以我想要注意。
  5. .INI文件允许我为所有例程提供持久值。这是怎么画的?
  6. 一个函数可能有一个参数和一个返回值/引用...我不知道如何有效地引用它。
  7. 请提供指导或指出我有用的资源。如果你推荐一个分析工具集(比如UML,我还没有掌握),请告诉我在哪里可以找到一个好的介绍。

    我对软件不感兴趣。请考虑这是一个白板练习。

1 个答案:

答案 0 :(得分:0)

对问题的讨论表明流程图无用或准确。

准确性取决于流程图的构建方式。如果它们是手动构建的,它们就像任何其他手动构建的文档一样,几乎可以立即过时;这使得手工构建的流程图真的没用,这就是为什么人们倾向于喜欢看代码。

[本回复的其余部分违反了OP对“对软件不感兴趣(制作流程图)”的要求,因为我认为这是以某种有用形式获取它们的唯一方法。]

如果流程图是通过适当的语言准确分析工具从代码中派生出来的,那么它们就是准确的。请参阅http://www.semanticdesigns.com/Products/DMS/FlowAnalysis.html处的示例这些示例在语义上是精确的,尽管那里的页面没有提供确切的语义,但这只是一个文档详细信息。

很难找到这样的工具: - }特别是如果你想要跨越多种语言的流程图,以及多个“执行范例”(OP想要包含他的INI文件;它们是某种隐含的赋值语句,而我是非常确定他想要建模没有流程图的SQL动作,因为它们往往是对表的纯计算。)

目前还不清楚这种流程图是否有用。我提供的页面上的例子应该是半显着的;如果你考虑所有微观细节(例如,从每个子程序调用发出的ABORT控制流的可能性[因为每个调用可能引发异常])这些图表变得非常大,速度快。图表耗费空间(盒子,钻石,线条,大量空白)这一事实加剧了这种情况。一旦它们变大,你就会在弧形之后迷失在太空中。同样,人们有理由避免整个系统的流程图。 (人们喜欢文本语言的另一个原因是它们实际上非常密集;你可以在一个简洁的语言页面上获得很多东西,等等你会看到APL:)

如果函数具有复杂的逻辑,它们可能在各个函数中提供边际帮助。

我认为你不太可能获得语言准确的分析器,为你想要的所有语言生成流程图,这样的anlayzers可以很好地组成他们的流程图(你想要JavaScript调用C#运行SQL ......?)

您可能希望的是一种折衷的解决方案:使用各种超链接显示代码,以引用其他工件。您仍然需要能够生成这样的超链接代码(请参阅http://www.semanticdesigns.com/Products/Formatters/JavaBrowser.html以了解这可能有用的方法),但您还需要跨语言边界的超链接。

我知道目前没有任何工具可以做到这一点。我怀疑你是否有兴趣或意志自己建立这样的工具。