Workflow managed elements

In a model, only certain elements will in practice be managed by a Workflow. Indeed, all the elements of a model do not require a management of their life cycle.
Usually, the life-cycle management of an element in a model is relevant only for top-level elements, typically packages, components, or other artifacts. These elements are usually complex because they consist of many parts and other sub-elements.

For example, a developer will probably not be interested in the life cycle of a single, particular attribute of a class. However the life cycle of the component containing this class and many others and constituting the production base of a library will probably benefit from a management of its state: dev in progress, ready for testing, validated and so on.

However, Modelio Workflow does not impose any limit on the nature of manageable elements in Workflow excepted that these elements must support stereotyping, that is to say in practice that they are ModelElement. This technical constraint related to the modeling techniques internally used by Modelio Workflow does not impact the user experience.

State

When an element is managed in Workflow, it has a state called its current state . Such a state is uniquely named, it is visible to the user.

The possible states are in finite number for a given Workflow, this list of possible states being the very definition of the Workflow.

The Workflow Designer normally chooses significant and relevant conditions for the development cycle and methodology used.

Transition

A transition represents the change from the current state E of a model element managed by the workflow W to another state E' .

It will be noted that:

  1. The state E belongs by definition to workflow W

  2. The state E' also belongs to the workflow W

  3. All possible states of the workflow are not always accessible from the current E state.

In summary, a workflow defines certain transitions to move from one of its states to another of its states.

Workflow

The workflow is in practice the graph of possible states and transitions applicable to an element.

The figure below shows an example of a workflow for a Requirement subject to a review cycle before publication:

Analyst Items workflow.png

On this Workflow the evolution of the Requirement and its review cycle can easily be understood. The rectangles correspond to the states, the arrows to the possible transitions.

For example, a Requirement can change from "Writing in Progress" state to "Ready for review" state, which will probably be carried out by the Author when he considers that his writing is complete and that the Requirement can be reviewed. On the other hand this same Author cannot pass the state of the document directly to "Published" because no transition exists between "Writing in progress" and "Published".

As part of the application of this workflow, it is likely that a user with the role of reviewer can, after reading the document, choose to put the document in the state "To be edited" or "Published" according to the result of proofreading.

Here we see an important notion in the operation of a workflow, which is that a possible transition is not necessarily achievable by any actor.

In terms of vocabulary these two situations are distinguished by talking about possible transition when it comes to the graph and allowed transition when the user’s rights come into play. It will be noticed that an authorized transition is always a possible transition but that the converse is not true.

Diversity of Workflows

Methodologies that can benefit from the use of a workflow are numerous and varied, at least as much as the businesses and organizations that implement them. Indeed, each profession, each organization has its working methods, its methodology, its own needs.

Modelio Workflow allows you to define as many different workflows as you want. These workflows are therefore first modeled by a "workflow designer" and later on deployed to the projects where they are needed.

Implementing a workflow in a project

The implementation of a workflow in a project goes through the following phases:

  1. Identification and obtaining the workflow to use

  2. an existing workflow on the shelf

  3. OR development of a custom workflow

  4. Deployment of the workflow in the project (s)

  5. Using the workflow deployed in the project by users