Component Based Model Driven Development: An Approach for Creating Mobile Web Applications from Design Models

Component Based Model Driven Development: An Approach for Creating Mobile Web Applications from Design Models

Pablo Martin Vera
DOI: 10.4018/IJITSA.2015070106
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Current MDD methodologies are complex to use and require doing lots of models and configurations. Usually after all that effort only some part of the application source code can be automatically created. It would be desirable to have a more simple technique, but powerful enough for automatically creating a fully functional application. This works introduces a component based model driven development approach where a set of user interface components will be configured to define system behavior. Component configuration will be direct, simple and supported by a modeling tool which also includes automatic transformations for reducing the modeling task. The methodology requires the designer to build only two models: a class diagram, representing the data model of the application and a component diagram defining the user interface and the system navigation. Both components are based on UML extended with stereotypes and tagged values allowing configuring the system behavior.
Article Preview
Top

Introduction

Application modeling is underestimated by the software industry. Many times software development companies, especially small and medium size, don’t give enough importance to modeling and consider it a waste of time. In other instances modeling is only used in early stages of the development process for making a first definition of the problem and getting the requirements. Most of the models used in early stages are not updated with the changes that arise in the following stages of the process, so they quickly became obsolete. For that reason, the idea of giving models more importance appears. Models are used for the automatic creation of the application source code, or at least part of it. “Software development automation consists of starting from a high level (or early) representation of the desired software features and deriving a running application out of it, possibly through a set of intermediate steps to enable some degree of user interaction with the generation process.” (Brambilla, Cabot & Wimmer 2012).

Developing Software by Making Models and automatically creating source code is a tendency started several years ago. These techniques can be found with several names MDD (Model Driven Development), MDA (Model Driven Architecture), MDSE (Model Driven Software Engineering), MDE (Model Driven Engineering). All these techniques have something in common, they use models and transformations to generate source code. A transformation is a process that takes as input a model and creates a target model or source code. For example OMG MDA Approach (OMG 2003a; Kleppe, Warmer & Bast 2003) uses different kinds of models with different types of abstraction levels, starting from Platform Independent Models (PIM) to Platform Specific Models (PSM). “PIM allows visual representation of the model using a high level of abstraction. Details of the environmental models can be expressed clearly and precisely in UML as it does not use any particular implementation formalism … PSM is developed by mapping a PIM to a particular computer platform and a specific programming language” (Papajorgji, Beck & Braga 2004).

From PIM to PSM there are automatic or semi-automatic transformations. The final goal of these techniques is to automate the creation of the application source code, making designers focusing on the models rather than in the coding process. But most of the existing techniques are difficult to use and require to do a really complex process detailing models and configuring transformations in order to obtain useful code, and most of them only can create part of that code.

By taking the premise of automatic code creation and also making easier the modeling process, a new methodology was created. This methodology uses predefined and configurable user interface components to define system behavior. The use of components in the software development process is a very well establish technique by the software industry (Heineman & Councill 2001). Components are pre-defined pieces of software with a very well establish purpose. “Component-based software development stands for software construction by assembly of prefabricated, configurable, and independently evolving building blocks” (Keller Reinhard, 1998)

Components are excellent for re-use and they are reliable because once they were tested they can be re-use without modification. “Component software benefits include reusability and interoperability, among other” (Adler, 1995). Most of modern programming frameworks include pre-defined components for easiness the development process. For example login component or some UI components like grids, carrousels, etc.

This article is organized as following: first the methodology is introduced justifying why it is mainly focused on mobile web applications. Then Data and User interface models are explained with all configuration capabilities. After that, the modeling of complex applications is shown including views for different roles and complex database design. After describing all capabilities of the methodology, the support tool is shown including the transformation process and the resulting application source code. Finally related works, conclusions and future work are discussed.

Complete Article List

Search this Journal:
Reset
Volume 17: 1 Issue (2024)
Volume 16: 3 Issues (2023)
Volume 15: 3 Issues (2022)
Volume 14: 2 Issues (2021)
Volume 13: 2 Issues (2020)
Volume 12: 2 Issues (2019)
Volume 11: 2 Issues (2018)
Volume 10: 2 Issues (2017)
Volume 9: 2 Issues (2016)
Volume 8: 2 Issues (2015)
Volume 7: 2 Issues (2014)
Volume 6: 2 Issues (2013)
Volume 5: 2 Issues (2012)
Volume 4: 2 Issues (2011)
Volume 3: 2 Issues (2010)
Volume 2: 2 Issues (2009)
Volume 1: 2 Issues (2008)
View Complete Journal Contents Listing