Turning a business process model into the specification, design and implementation of a software solution for process enactment is a non trivial task. It might be considered as not so relevant by business analysts (that typically focus more on BPR and BP optimization), but I think it’s a crucial issue anyway.
Indeed, the specified processes can be a mix of new functionality to be developed and interactions with pre-existing systems and the user’s activities must be supported through effective and usable interfaces, possibly compliant with the visual identity and interaction style of other corporate applications.
Furthermore, the business requirements embodied in the process models, as well as the technical context in which the underlying applications are deployed, are subject to evolution. This may cause severe alignment problems when trying to keep the business process and the application in sync.
I think that business process models per se are not enough for representing the complexity of real world software applications that implement them; therefore other design dimensions must be taken into account in the analysis, design, and implementation of applications.
The gap between process modeling and application development (aka, the business-IT gap) can be alleviated by increasing the degree of automation in the design, implementation and maintenance of applications derived from process models. The automation framework should support the semi-automatic translation of the process model into running applications, be flexible enough to incorporate different architectural and interaction requirements, and apply not only to the initial deployment of the application but also to its evolution and maintenance. An outstanding difficulty in providing such an automation framework is the semantic distance between the process model and the running application: the former dictates roles, activities and business constraints at a very abstract level, irrespective of how these are supported by computing tools; the latter embodies very low-level details, where business, architecture, and interaction aspects are blended together and hard to customize and evolve separately. As an example, the same user’s activity specified in the process model could be enacted in a variety of ways: by means of a wizard, by form editing, by using a legacy application interface, and so on.
With WebML and WebRatio we propose an integrated design approach to BPM that comprises modeling of business processes, application structure, master data, and user interaction, together with automatic model transformations among them. In this way, it is possible to work at different levels of abstraction and get quick prototypes to be discussed with the customers, but also generate production applications to be delivered as finalized systems. Indeed, the models allow the designers and analysts to work on orthogonal aspects of the design, and to fine tune the final application in several ways, e.g., by integrating the visual identity of the organization, plugging in new components, or connecting the business process to legacy applications via Web Services.
The basic design flow we propose is the following:
This is in line with and extends the vision of integrated BPM and MDM (Master data management) design proposed by Clay Richardson (Forrester) and studied by several research and industrial experts, including Rick Hull (IBM Research), ISIS Papyrus and Pallas Athena.
You can try our solution by downloading the free WebRatio tool at http://www.webratio.com .