A Pattern-Based Approach for the Consistent Design of Interaction Interfaces
MetadataShow full item record
We depend more and more on networked systems in our every day lives. The functionality and correctness of such systems are thus becoming increasingly important both for individuals and the society as a whole. At the same time, people expect new services to be developed more rapidly than ever. These two forces makes the design of these often complex services a difficult task. Model-driven techniques are in widespread use for the design of distributed services, and software tools can support the designer through the development process. Our goal is to help the user of such modelling tools making it easier to develop correct services more quickly. When we take a closer look at existing services, we find great similarities in the way two parts of the service interact. For instance, one part might request for some information from another part or perhaps notify another part of something. We identify them as so-called interaction patterns, which describe these generic interactions at a high level of abstraction. They are modelled using UML~2.0 collaboration templates. We have defined an approach for using a number of interaction patterns to describe the interaction interface between two parts, modelled by a UML~2.0 collaboration. The user of the tool selects, customises and applies a number of patterns to the interaction interface. The applied patterns can then be composed, meaning that the user determines their sequence of activation. The composition technique defined is based on the use of UML~2.0 state machines and submachine states. We have designed an algorithm which generates the behaviour of the interaction interface based on the applied patterns and their composition. The behaviour is expressed using two state machines which describes the allowable sequence of signals for each participant in this interaction. To ensure the correctness of the behaviour of the interaction interface, we have identified a number of common design flaws that might occur during the composition of pattern instances based on the work by Jacqueline Floch. The error situations are either prevented through reasonable constraints on the used model elements or resolved when the behaviour of the interaction interface is generated by the defined algorithm. The approach has been implemented as an Eclipse plug-in and integrated with Ramses, a modelling tool suite developed at the Department of Telematics. This provides the possibility to get hands-on experience with using our approach for the design of reactive services. We believe that our work can make it easier for the user of such tools to design correct services more rapidly.