悬空输入和输出是否在某种情况下也能成为有用之物?是的,因为它们可以只显示某些选定的流,从而成为一种用来减少模型
中的混乱的有效方法。在我们发现的两种可能的建模方法中,您可以安全地使用悬空输入和输出,而不会对执行流程模型的能
力造成影响。
图 5 显示的是第一种方法,它使用已连接的控制流,将所有数据输入和输出置于单独的输入和输出条件之下。
图图 5. 某个单独的输入条件中的悬空输入,允许执行流程某个单独的输入条件中的悬空输入,允许执行流程
在这种方法背后隐藏着一种直观的想法,即,数据不流经此流程,而是让任务和子流程访问由在活动间共享的数据源提供的数
据。特定的控制流会决定以何种顺序访问数据。将已连接的控制流与未连接的数据输入和输出分离开来,将后者置于单独的输
入和输出条件中,这可以确保该流程能沿着已连接控制流正确地执行。而且,所有的网关只涉及控制流,而与数据无关。当在
高级编辑模式下查看模型时,数据输入和输出是可见的;在基本模式下则只能看到控制流。
图 6 显示的是第二种方法,该方法只使用单个输入和输出条件,但它会把所有未连接的输入和输出的最小增殖次数设置为
零。
图图 6. 将最小增殖次数设置为零的悬空输入表示可选输入,它们可以在可执行的流程模型中保持未连接状态将最小增殖次数设置为零的悬空输入表示可选输入,它们可以在可执行的流程模型中保持未连接状态
这种方法只关注如何在某个流程模型中显示选定的数据流。在活动和网关之间已经存在某个数据流连接的情况下,不应再有其
他数据流连接。而且,只能有一个遍历网关的业务项,以使数据流尽可能保持简单。这种表示方法有一个优点,即网关与数据
相关联,这样您就可以捕获基于数据的分支 decision 了。第一种方法只能显示控制流,因此您无法用它建立这些 decision 的
模型。如果您只使用某个单独的输入和输出条件,会使模型的编辑变得更容易。这有一个小小的缺点,即它会导致控制流与涉
及不同业务项的数据流混杂起来,从而使模型难以理解(与此相比,如果模型只显示带有未连接输入和输出的控制流,会显得
容易理解)。建模项目中不同的参与者有时无法就哪种数据相关性最强、哪种数据可被视为可选项达成一致,这使事态更趋复
杂。
建议
为了减少复杂的数据流模型中出现的混乱,请显示未连接的数据输入和输出。未连接的输入应被放入某个单独的输入条
件,或是标记为可选,即把它们的最小增殖次数设置为零,以允许执行流程。
活动间的多个连接
复杂的控制和数据流容易导致流程模型中出现
多个连接
,这是产生混乱的模型的另一个来源。多个连接(或称
多连接
)都是
在某个相同的连接或网关中开始,并在另一个活动或网关中结束的。如果多连接只涉及控制流,那么这些连接会导致不必要的
冗余。如果多连接与同一个业务项相关,它们容易导致建模错误。图 7 显示了一个示例。
图图 7. 一个由于多连接而产生混乱的模型一个由于多连接而产生混乱的模型