Experience with Automatic Product Derivation of Mobile Applications Using Model-Driven Techniques

Experience with Automatic Product Derivation of Mobile Applications Using Model-Driven Techniques

Elder Cirilo (Pontifical Catholic University of Rio de Janeiro, Brazil), Uirá Kulesza (Federal University of Rio Grande do Norte, Brazil), Mário Torres (Federal University of Rio Grande do Norte, Brazil) and Carlos Lucena (Pontifical Catholic University of Rio de Janeiro, Brazil)
DOI: 10.4018/978-1-61520-655-1.ch007


In this work, the authors describe their experience on the adoption of a model-driven product derivation tool to help variability management and automatic product instantiation of a mobile product line, called MobileMedia. MobileMedia is a software product line (SPL) that provides support to manage (create, delete, visualize, play, send) different medias (photo, music, and video) on mobile devices. It was previously implemented as a Java Micro Edition (JME) application, in two different versions: (i) the first one uses conditional compilation implementation mechanisms to modularize their respective variations; and (ii) the second one adopts aspect-oriented programming, specifically AspectJ language, to explore a better modularization and separation of their respective variations. In this chapter, the authors illustrate how GenArch, a model-driven product derivation tool developed at the authors’ research labs, can be used to automatically produce the different applications of both versions of MobileMedia SPL. The chapter discusses the impact of using these two different modularization techniques (conditional compilation and aspect-oriented programming) for the product derivation process by emphasizing their benefits and drawbacks and also showing the particular model-driven techniques used to better provide their instantiation.
Chapter Preview


In this section, we provide an overview of the MobileMedia product line and the GenArch product derivation tool. Both are fundamental to understand better our experience about the automatic product derivation of a product line in the mobile application domain using model-driven techniques and mechanisms.

Key Terms in this Chapter

Model-Driven Techniques: are techniques adopted in Model-Driven Development (MDD) that promote automatic software development by means of high level specification described in formal models and transformations between these models.

Feature Model: is a model used in the development of software product lines and software families that aims to identify the commonalities and variabilities and to improve the management of the SPL features.

Domain-specific languages (DSLs): DSL is a programming or specification language that is dedicated to model abstractions from a specific problem or technical domain.

Product Derivation: refers to the process of constructing a product from the set of assets specified or implemented for a SPL.

Aspect-Oriented Programming (AOP): is a programming paradigm that aims to improve modularity by allowing the separation of cross-cutting concerns. AOP is one of the key components of Aspect-Oriented Software Development (AOSP).

Generative Programming: is a software family programming approach that focuses on the automatic synthesis of software family member from high-level specifications (domain-specific languages) and code generators.

Software Product Lines (SPL): SPL is a well-known approach to allow the systematic development of program families for a particular domain. They enable modular, large-scale reuse through a core software architecture and a set of common and variable features of a product family.

Complete Chapter List

Search this Book: