UBC Theses and Dissertations
Using AspectJ to build a software product line for mobile devices Young, Trevor J.
Software development for mobile devices has become very popular in the last few years. There are hundreds of programmable micro devices on the market, each having different properties in terms of memory capacity, screen size, networking protocols, audio/video support, peripheral extensions and software platforms. Despite the technical differences of these devices, people use them in a similar fashion for communicating, organizing and interacting with their personal data. For a mobile software developer, it would save a great deal of time and effort to program an application in a way that allows it to run on all of these devices without modification. However, the variability of hardware in these mobile phones, PDA's or music players has led the vendors to provide additional levels of software support for different devices. For example, with the Java programming language, vendors and standards bodies have introduced optional, device specific libraries (APIs) that only run on certain hardware devices. A software developer can thus not rely on standard programming practices to build an application that can run on multiple platforms and still offer features that take advantage of unique functionality that is only embedded in specific devices. We call this the device API fragmentation problem. One potential way to ease the development of a common application for a variety of devices is using Aspect-Oriented Programming (AOP) techniques to build a software product line. The basic idea is to modularize features into aspects and to use the weaving technology in aspect-oriented programming to bind features into different instances of the product line. In this thesis, we evaluate an approach for building a software product line for mobile devices using J2ME and AspectJ. We present different implementations of a prototype application to compare the AspectJ product line approach with standard object-oriented techniques that are currently used to build families of mobile Java software in industry. The results indicate that AspectJ provides a good solution to the device API fragmentation problem by maintaining modularity of features.
Item Citations and Data