Techniques for Software Portability in Mobile Development

When attempting to get a software product to reach a larger part of the market, portability is a key factor. Unfortunately, it is often neglected from the software development cycle, and rather achieved by ad hoc methods in not very cost-effective ways. This thesis investigates portability in the context of mobile development. Previous research in this particular area has been hard to find, despite there obviously being special aspects surrounding it which are worth investigating further. The project was initiated with a literature study to find out the current state-of-the-art for portability. After this step the development of a mobile application was conducted, before which a market analysis had been carried out in order to explore which mobile platforms would be the most relevant to develop it for. The point of this case study was to attempt to achieve as high a degree of portability as possible, to later port the application to another platform. Based on the data gathered from this, conclusions were drawn and a general model with guidelines for developing mobile applications with portability as a main attribute was constructed. Among the more important lessons learned was that portability is more important in mobile development, due to the market being so diverse, while it also is a lot harder to achieve properly. This research will hopefully help development teams see the strengths and weaknesses of mobile application portability more clearly, allowing them to more easily design for it as well as making it a more intricate part of their process.

[1]  Mari Matinlassi Evaluating the portability and maintainability of software product family architecture: terminal software case study , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[2]  James D. Mooney,et al.  Issues in the Specification and Measurement of Software Portability , 2001 .

[3]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[4]  Stephen L. Burbeck,et al.  Applications programming in smalltalk-80: how to use model-view-controller (mvc) , 1987 .

[5]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[6]  Nicholas Rogness An Assessment of Design and Implementation Trade-Offs and Their Impact on Mobile Applications , 2003 .

[7]  Paul Clements,et al.  ATAM: Method for Architecture Evaluation , 2000 .

[8]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[9]  Mary Shaw,et al.  Patterns for software architectures , 1995 .

[10]  Jeffrey S. Poulin,et al.  Measuring software reusability , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[11]  Amar Ramdane-Cherif,et al.  Quality Characteristics for Software Architecture , 2003, J. Object Technol..

[12]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[13]  James D. Mooney Strategies for supporting application portability , 1990, Computer.

[14]  James D. Mooney,et al.  Portability and reusability: common issues and differences , 1995, CSC '95.

[15]  James D. Mooney Bringing Portability to the Software Process , 2000 .

[16]  Markus Aleksy,et al.  Context-aware User Interface Framework for Mobile Applications , 2007, 27th International Conference on Distributed Computing Systems Workshops (ICDCSW'07).

[17]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[18]  Mitsuari Hakuta,et al.  A study of software portability evaluation , 1997, J. Syst. Softw..

[19]  Dominik Gruntz C# and Java: The Smart Distinctions , 2002, J. Object Technol..

[20]  Barry Boehm,et al.  Aids for Identifying Conflicts Among Quality Requirements , 1996 .