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.
Published in Chapter:
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)
Copyright: © 2012
|Pages: 11
DOI: 10.4018/978-1-61520-655-1.ch007
Abstract
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.