Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

What plug-ins can calculate simplicity or complexity?

Posts: 24
Hi, I wanted to calculate complexity using the complexity =(2*CardosoValue*CyclomaticValue)/(CardosoValue+CyclomaticValue) method initially, but sometimes the denominator was 0,This results in a poor measure of complexity, so I was wondering if there are plugins that can be used to check for complexity or simplicity. Kind regards, Wk.

• Posts: 910
Hi,

If the denominator is 0, then the numerator should be 0 as well. Perhaps an idea to check the numerator first, and to return 0 if the numerator is zero, and return your metric otherwise?

Kind regards,
Eric.

• Posts: 24
Hi,
When I use the show-Petri-net Metrics plug-in, the Extended Cyclomatic metric attribute is 0. Can this possibly be true?I have also looked at other ways to measure Complexity, such as CFC and Struct. Are there plug-ins available for these?
Kind regards,
Wk.
• Posts: 910
Hi,

In the end, this metric returns |E| - |V| + p, where |E| is the number of edges, |V| is the number of nodes, and p is the number of components. If you, for example, have a graph with two nodes and an edge that connects both, I guess it will return 0.

For details on the metrics, please have a look at Complexity Metrics for Workflow Nets by K.B. Lassen and W.M.P. van der Aalst, Information and Software Technology, 51(3):610-626, 2009.

This plugin can also compute the Cardoso (CFC) metric and structuredness metric. I do not know of any other plugins that compute these metrics.

Kind regards,
Eric.

• Posts: 11
Hi, I wanted to calculate complexity using the complexity =(2*CardosoValue*CyclomaticValue)/(CardosoValue+CyclomaticValue) method initially, but sometimes the denominator was 0,This results in a poor measure of complexity, so I was wondering if there are plugins that can be used to check for complexity or simplicity. Kind regards, Wk.
please a_lovely_boy or anyone can write the reference that remember the Equation of:
complexity =(2*CardosoValue*CyclomaticValue)/(CardosoValue+CyclomaticValue)

• Posts: 910
Hi,

The formula
complexity =(2*CardosoValue*CyclomaticValue)/(CardosoValue+CyclomaticValue)
just uses the harmonic mean of CardosoValue and CyclomaticValue to determine the complexity. See also https://en.wikipedia.org/wiki/F-score, where they take the harmonic mean of precision and recall. Of course, measuring complexity this way only takes the Cardoso metric and the cyclomatic metric into account, and ignores other possible complexity metric.

I only know of the "Show Petri-net Metrics" plugin from the PNAnalysis package.

Kind regards,
Eric.

• Posts: 11
thank you for response;
can I take the value of "Structuredness metric" only or value of "Extended Cyclomatic metric" only or value of "Cardoso metric" only for calculating value for Complexity.

• Posts: 910
Hi,

All these metrics are complexity metrics that you could use. Please have a look at the following publication for (most of) these metrics:

K.B. Lassen and W.M.P. van der Aalst. Complexity Metrics for Workflow Nets.  Information and Software Technology, 51(3):610-626, 2009.

Kind regards,
Eric.

• Posts: 11
thanks
I read this paper; but for example,If it is possible to use "Structuredness metric" only to decide if the model is simple or not!

• Posts: 910
Hi,

These metrics all have their pros and cons. As far as I know, there is no single perfect metric that you can use for complexity and simplicity.

Kind regards,
Eric.
• Posts: 11
Hi
thank you too much;
another Q:
paper "A Review on Conformance Checking Technique for the Evaluation of Process Mining Algorithms", use the formula for simplicity =
#transitions in the model - (#alternative duplicate tasks + #redundant invisible) / #transitions in the model
if any plugin in prom help me to find the #alternative duplicate tasks  and #redundant invisible

• Posts: 910
Hi,

As far as I know, there are no plugins that compute this metric.

The notion of alternative duplicate tasks is troubling me a bit here. If I understand the definition right, then adding a big loop to restart the entire process effectively removes all alternative duplicate tasks (as they can now appear in one sequence). Hence, adding this loop would improve simplicity, which seems not intuitive to me.

Kind regards,
Eric.