Question

It is questionable whether this question really belongs here, but, in any case, it does not fit in Stack Overflow or any other Stack Exchange site. So here I go.

The purpose

My current pet project consists in developing a software tool to generate code from business process specifications.

The program's inputs are...

  • Process diagrams (very detailed ones, of course!)
  • User interfaces, if necessary, for those activities to be automated
  • Identification of interfaces with third-party programs, either already existing or to be constructed later

And the program's outputs are...

  • Table, view and stored procedure creation scripts
  • Application code (CRUD, information flow between processes/activities/users, etc.)

The problem

Well, I still do not know which process modeling notation I should use.

The alternatives

Personally, I like EPC (event-process chain) diagrams very much because of the simplicity of their structure:

  • The process flow must start with an event and must end with an event. If there are several alternative branches, this rule applies to all branches and possible flows.

  • Events may trigger zero or more activities. If they trigger zero activities, they are final events. If they trigger two or more activities, a branch opening must be used.

  • When completed, an activity must trigger exactly one event.

  • Activities may be triggered by one or more events. If they are triggered by two or more events, a branch closing must be used.

  • Everything else (i.e., anything that is not an event or an activity; e.g. personnel, resources, physical materials, information) can be added after completing the description of the process flow.

However, at least judging from other software developers I know, EPC diagrams are unpopular. Everyone else seems to be using BPMN, which are of course excellent for describing functional / responsibility aspects (i.e., who performs each activity), but are horrible for everything else, because the lanes get in the way.

The constraints

Other notations I know but have explicitly rejected are...

  • UML sequence diagrams: Because a diagram must be created for each alternative flow, the cost of which would be prohibitive for users of my tool.

  • IDEF: IDEF0 is great for mapping information flows, but IDEF3 is a horrible process flow notation: gotos should not be allowed at this level.

The questions

Which process notations have you used? Which one would you recommend me for my project?

No correct solution

Licensed under: CC-BY-SA with attribution
scroll top