Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect asymmetric modeling #95

Open
nikku opened this issue Jan 13, 2023 · 3 comments
Open

Detect asymmetric modeling #95

nikku opened this issue Jan 13, 2023 · 3 comments
Labels
backlog Queued in backlog rules Concerning existing or missing rules

Comments

@nikku
Copy link
Member

nikku commented Jan 13, 2023

The rule should detect the following modeling patterns

Asymetric use of parallel / exclusive gateways, causing deadlocks or unintended token splits.

image

image

How does the rule improve the BPMN diagram?

Modeling symmetric is a modeling good practice. Not doing it leads to bad BPMN diagrams (harder to understand) and causes errors (dead locks, token splits).

Rule Details

  • Name: symmetric-gateways
  • Default notification level: error

What alternatives did you consider?

None.

@nikku nikku added the rules Concerning existing or missing rules label Jan 13, 2023
@nikku nikku added the backlog Queued in backlog label Jan 17, 2023 — with bpmn-io-tasks
@david-d-le
Copy link
Contributor

Hi, I would like to solve this issue. However @nikku I would need some additional information.

What exactly asymmetric/symetric model means? Is it only that splitting/joining gateway must be of the same type? Must every gateway have it's pair? Are there other conditions that must meet?

@nikku
Copy link
Member Author

nikku commented Jul 20, 2023

@david-d-le The recommendation indeed is that every forking gateway has its joining pair. However in practice this is not feasible, so we want to carefully approach this, i.e. see if we can detect + compute good vs. bad patterns at all.

I'm not sure due to the inherent complexity of this topic that it is a good community pick.

@david-d-le
Copy link
Contributor

@david-d-le The recommendation indeed is that every forking gateway has its joining pair. However in practice this is not feasible, so we want to carefully approach this, i.e. see if we can detect + compute good vs. bad patterns at all.

I'm not sure due to the inherent complexity of this topic that it is a good community pick.

Yes you are right. If every forking gateway has its joining pair it would be easy (I was using partitioning approach in my thesis which worked for finding the pairs).
But yes in practice where not every gateway has its pair, It is probably impossible to check so I will probably need to leave this to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog Queued in backlog rules Concerning existing or missing rules
Projects
None yet
Development

No branches or pull requests

2 participants