Lightweight Process CoordinationDuring the last decade we have developed a new modeling process called the Lightweight Process Coordination (LPC), which does not substitute but enhance other modeling processes like the Unified Modeling Process.
GoalsBasic idea of the Lightweight Process Coordination is to add an additional coordination layer into the generally known three tier architecture. This coordination layer is created by a graphically interactive tool called the Java Application Building Center (jABC / jABC). In this program the user builds his model by arranging predefined building blocks simply by drag and drop. These basic building blocks are called SIBs (Service Independent building Block). The whole process reminds of the child's play with Lego bricks, where you build extraordinary artefacts from just basic 2 by 4 bricks. The building blocks are connected by edges, which carry one or more labels called branches. The possible branches of an edge are defined by the SIB at the source of the edge because they depend on the different results of the feature represented by such a SIB. For an example we may use a SIB called CreateBooking, which will prepare a modification in a database. The branches of this SIB could be: Successful, DataError and DatabaseError, showing the difference between an error caused by invalid featured data and an error caused by a problem with the database.
Simplicity: The process focuses on application experts, which are typically non-programmers. The basic ideas of our modeling process have been explained in past projects to new participants in less than one hour.
Agility: According to Agile Software Development, changes of a model are expected and therefore do not obstruct other enhancements of a system.
Customizability: The LPC building blocks which form the model can be freely renamed or restructured to fit the need of the applications experts.
Consistency: In our process we use the same model from the very first steps of prototyping up to the final execution.
Verification: With techniques like Local- and Modelchecking we assist the LPC user while modifying his model. The basic idea is to define local or global rules, which the model has to satisfy.
Service-Oriented: Existing features or applications can be easily integrated into a LPC model by wrapping the functionality into LPC building blocks.
Executability: The defined model can contain different levels of execution code beginning from first simulation runs up to the final runtime implementation.
Universality: By using the platform independent, object oriented programming language Java as base of the system, the range of use of LPC is not restricted in any form.
RolesThe work on a LPC standard model is divided into two different roles:
- The SIB Expert is a Java developer with detailed knowledge about the development of SIBs and appropriate plugin interfaces.
- The Application Expert has detailed knowledge about the process or application, which has to be realized.
The application expert will construct his model from existing SIBs. If he needs additional SIBs, he can define name, appropriate parameters and branches on his own (with the support of a SIBCreator Plugin). To add functionality to the SIB, he has to cooperate with the SIB expert.
The SIB development pattern postulates, that a SIB class should be implemented independent from the features or methods represented by this SIB. This is essential to load SIB Java classes into the Java virtual machine on any computer, even if required libraries are not available. The access of this library method from the onTrace() method must be realized with the Java reflection API. The resulting SIB can be loaded and used for modeling on any computer, for the Tracer execution the library and underlying database must be available. As a hierarchical approach, each SIBGraph model can be understood as a single SIB and may be used on another level of modeling. Similarly, each SIB can be split up into an own model showing a more detailed view on the represented feature. With this features we support both the top-down and bottom-up proceeding of a modeling process.