Article Preview
TopIntroduction
Software development is a complex process and many software development projects fail to meet project goals. The complexity of software development may be reduced by applying Model Driven Engineering (MDE) as it can effectively reduce repetitive, error-prone and time consuming tasks through automation (Schmidt, 2006). MDE raises the level of abstraction of a system via the systematic use of domain specific modelling languages (DSML). Domain specific modelling is a MDE methodology for designing and developing systems. In MDE, metamodelling is the act of creating DSMLs. Although MDE was introduced to reduce the complexity of system development, it adds accidental complexity in many cases (Whittle et al., 2013). This problem gets worse as software models become larger. One of the main reason of MDE not being adopted in the software development process, as pointed out by many authors, is inadequate tool support (Tomassetti et al., 2012). With advanced tool support, MDE can be successfully applied to model and develop large-scale software applications as MDE facilitates rapid software development and evolution which are two essential elements in many software projects. There exists several MDE and transformation tools such as DIAGEN (Mazanek et al., 2008), WebGME (Maróti et al., 2014), AToMPM (Syriani et al., 2013), Melanie (Kennel, 2012), AGG (Ehrig et al., 2006), eMoflon (Anjorin et al., 2011) for modelling and development of DSML. These tools include various features which are essential for developing DSMLs. In this paper, the authors present WebDPF which is a web-based tool inspired by the tools listed above yet incorporating a distinguished set of features including support for scalability concerning the size of models, completion of partial models (incomplete models), and the construction of reusable components for structural and behavioral modelling of systems.
Many graphical modelling tools suffer from the problem of scalability as graphical models occupy more space than text. In order to address this issue, WebDPF implements a model navigation feature that allows a designer to search for desired model elements and display a small fragment of a model in the modelling editor. This approach provides better visualization support for the designer to focus on the essential parts of his/her work.
The WebDPF metamodelling environment is based on the Diagram Predicate Framework (DPF) (Rutle, 2010) which supports multilevel metamodelling. Earlier (Lamo et al., 2012), an Eclipse-based diagrammatic workbench (DPF-WB) has been presented. WebDPF is built on the foundation of the DPF yet incorporating a number of new features to ease metamodelling. In WebDPF, one can graphically specify constraints and model transformation rules. Transformation rules have been introduced in WebDPF for two purposes: 1) automatic rewriting of partial models so that they can be made to conform to the underlying metamodel; 2) modelling the behavior of systems. In the process of software development, modelers are often confronted with a variety of inconsistencies and/or incompleteness in the models under construction (Mens et al., 2007). In particular, the modeler will most of the time be working with a partial model not conforming to the metamodel that defines the modelling language being used (Sen et al., 2007), i.e., it is not typed by and/or not satisfying modelling constraints.
One aspect of using model transformation rules in WebDPF is to reduce the modelling effort of the modeler by means of model completion. Model completion is also known as model repair technique (Macedo et al., 2015). Therefore, the model transformation rules that are intended to automatically complete a partial model are referred to as repair rules. The tool exploits the locality of repair rules for termination analysis and provides a foundation that enables automated tool-support to increase modelling productivity. Another aspect of using model transformation rules in WebDPF is to model the behavior of a system. While designing the behavior of a transition system, the modeler can take advantage of reusing rules. Rules that are intended to model the behavior are referred to as state transformation rules. The tool also facilitates the simulation of transition systems. To demonstrate this feature, an example from the healthcare domain is presented in the paper.