vPAV
vPAV copied to clipboard
As an IT architect I want to validate reads and writes of process variables in order to control the data flow of a process application
Results of the Delphi study showed that there is great interest into organizing process data. Furthermore, validating the data flow was explicitly mentioned as a concern. BPMN models lack the functionality of validating data flow (data objects are not validated and serve merely as a special comment).
Conventions on how process variables are supposed to be written and read can be used to validate a process application against. A convention could be built on a previously agreed upon naming convention of process variables. However, at the moment it's still unclear how exactly such a convetion could look like.
An additional feature could be to validate whether previously defined process variable naming conventions are adhered to. For example, the convention is that ext_* variables contain externally received data. A validator would check, whether this is actually true and create an error if this is not the case.
Regarding the implementation the idea is to lean on the ProcessVariablesModelChecker and scan the whole project (model+code) for process variable usages. These usages are than validated against the defined convetions/rules.
This feature could be implemented as an additional checker, as it also outputs validation errors that can be included into the regular result file.
Let's use the new label "architecture review" to keep ideas that share this perspective together.
Evaluation of this user story in the second round of the Delphi study confirmed interest in this feature and we made the decision to realize this feature. The approach we want to take is best explained by distinguishing between process flow discovery and rules against which the process flow is validated. The former is already in place (ProcessVariablesModelChecker) and extended by @Phorv01. Additionally we plan to implement a DSL that helps in formulating data flow rules (see #46). To make formulation of rules easier, we want to make the discovery of process variables accessible to the user by providing a visualization feature (see #28).