首页 百科知识 结构复杂度

结构复杂度

时间:2022-06-27 百科知识 版权反馈
【摘要】:这是由于SM指标不仅考虑了流程自身结构上的复杂性,同时在迭代分解流程模型复杂度的过程中,也将流程组成的模块之间的关系考虑进来,因此比较适合具有高度嵌套关系的流程模型的复杂度分析。

流程模型的结构化程度是指流程中的路由节点(分裂、合并等)需要成对出现,即对于流程中的每一个路由开始节点都有一个对应的结束节点。结构化程度是保证流程模型可读性的关键因素。Mendling等比较了2 000个流程模型的结构化程度和错误率,发现结构化程度高的流程模型通常容易理解,结构化程度是决定流程错误率的最主要指标[10]。因此,Aalst将流程的结构化程度作为7大流程建模原则之一,通过提高流程模型的结构化程度规范流程建模,增强模型的可读性[11]

流程的结构化程度与流程的模块性相关,即流程模型可以被分解为子流程的难易程度。具有较高模块性的流程模型可以被分解为简单易懂的子流程,从而提高模型的可读性和复用性。Gruhn等根据软件结构的模块化度量,分析了流程模型的结构复杂度[12]。公式(7.4)为流程模型的模块复杂度的计算公式,fan-in表示流程模块被调用的次数;fan-put表示流程模块调用其他子流程模块的次数。

在结构良好的流程模型中,底层模块通常需要被调用,具有较高的fan-in值,高层模块通常需要调用子流程,具有较高的fanput值。而fan-in和fan-put都高的流程模块则可能存在设计上的缺陷,即流程模型的层次划分不合理,需要对相应的模块进行重新划分或汇总,以降低结构复杂度。模块化从软件设计的角度评估了流程模型的内聚性和耦合性,帮助业务人员分析流程模型的模块化,增强模型的可复用性和执行效率。

结构复杂度在控制流复杂度的基础上考虑流程的结构化程度对流程模型可读性的影响,通过提高非结构化元素的权重,改进流程模型容易理解的程度。例如,Aalst教授等扩展了控制流复杂度(CFC),讨论了针对工作流网(workflow net,WFN)的流程结构复杂度指标(structuredness metric,SM)[13]。通过定义时序、选择、循环、标记图、状态机、良结构、非结构化组件等多种不同类型的模块原型,将流程模型看成由子模块组成且相互影响的有机体。对流程模型进行迭代分解,求各个子模块的结构复杂度的加权和,得到流程模型的总结构复杂度。

流程结构复杂度指标在对流程复杂性的表述能力和区分能力上比传统的控制流复杂性有更好的效果。这是由于SM指标不仅考虑了流程自身结构上的复杂性,同时在迭代分解流程模型复杂度的过程中,也将流程组成的模块之间的关系考虑进来,因此比较适合具有高度嵌套关系的流程模型的复杂度分析。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈