Product-line development for mobile device applications with attribute supported containers

Mobile device software applications play an ever increasing role in the interaction with ubiquitous computing environments. To grow the acceptance of the mobile product-lines among the developers, the technology used to implement them should be easy to implement and introduce. This dissertation addresses mobile product-line development related issues in three dimensions. First, based on the success of the software container component technology for server-side enterprise applications, a software container abstraction for mobile applications, called a mobile container, is introduced to organize the common functionality of mobile product-lines. Mobile containers serve as a central point to organize the functionality needed by the mobile applications. A mobile container is defined as a hybrid client- and server-side container. A mobile application communicates with the rest of a ubiquitous computing environment as a client of one or more server-side services. Mobile containers organize the common functionality of a mobile product-line as a set of services used by mobile clients, and by server-side applications. Server-side applications contain mobile client specific code to adapt the data and the services requested by the mobile clients based on the limitations that exist in mobile devices, e.g., low screen resolution. Second, attributes are used to model the container services declaratively in the source code. Attributes are known from technologies, such as .NET and Java, where they are used to decorate the program elements of the language, e.g., classes and methods. Attributes extend the language without having to maintain its compiler and are used to emulate domain-specific abstractions (DSA). Attribute families are used as a means to model the domain variability. A lightweight language extension is created that enables accessing and manipulating the annotated code. Languages that contain attribute transformation support, as part of their core functionality, will be called Generalized and Annotated Abstract Syntax Tree (GAAST) languages. GAAST-languages enable better language support for the code transformations applied in the context of the Model-Driven Architecture (MDA). Third, a structured modularization of attribute-driven transformers is introduced to ease the interpretation of attribute-based DSA. Specialized attribute transformers connect the attribute-based DSA with the container services, exposed as object-oriented (OO) libraries. Attribute-driven transformers are horizontally modularized based on the characteristics of the modeled domain. The semantics of the domain assets, expressed as attribute families, are used to determine the transformation workflow. A uniform composition model for transformers based on the inner attributes is developed. Transformers state their dependencies declaratively by decorating the processed elements with arbitrary information in the form of inner attributes. This information is used to coordinate the code processing by successor transformers. The hardwired OO language meta-model is utilized to introduce a vertical modularization of the attribute-driven transformers. The transformation strategy is structured according to the nesting of the structural elements found in the language meta-model. The layering strategy is enforced by operations, specialized for every supported element of the language meta-model. These operations form a specialized language for attribute-driven transformations. Common attribute operations, such as, checking for attribute dependencies, are declaratively specified and factored out of the individual transformers by using meta-attributes. Meta-attribute enable the decoration of attributes themselves with arbitrary semantics that can be automatically processed. The proposed technology is evaluated by an extensible mobile container framework for Mobile Information Device Profile (MIDP) applications of the Java 2 Mobile Edition (J2ME), that run in small mobile devices. Several technical MIDP concerns are addressed, e.g., data persistence, session and screen management, and networking, resulting in a simpler and more declarative programming model, that preserves the architecture of the domain in the individual applications.

[1]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[2]  P. Volgyesi,et al.  Component-based development of networked embedded applications , 2002, Proceedings. 28th Euromicro Conference.

[3]  Matthias Felleisen,et al.  Environmental acquisition revisited , 2005, POPL '05.

[4]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[5]  Mehdi Jazayeri,et al.  Software Architecture for Product Families: Principles and Practice , 2000 .

[6]  Eric Van Wyk,et al.  Forwarding in Attribute Grammars for Modular Language Design , 2002, CC.

[7]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[8]  Ted J. Biggerstaff,et al.  A New Control Structure for Transformation-Based Generators , 2000, ICSR.

[9]  Enno Ohlebusch,et al.  Hierarchical termination revisited , 2002, Inf. Process. Lett..

[10]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[11]  James R. Cordy,et al.  TXL - A Language for Programming Language Tools and Applications , 2004, LDTA@ETAPS.

[12]  Colin Atkinson,et al.  The Essence of Multilevel Metamodeling , 2001, UML.

[13]  Paul Yao,et al.  Net Compact Framework Programming with C , 2004 .

[14]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[15]  Vasian Cepa,et al.  Representing Explicit Attributes in UML , 2005 .

[16]  Shigeru Chiba,et al.  OpenJava: A Class-Based Macro System for Java , 1999, Reflection and Software Engineering.

[17]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[18]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[19]  Matthias Zenger,et al.  KERIS: evolving software with extensible modules , 2005, J. Softw. Maintenance Res. Pract..

[20]  Michael Eichberg,et al.  XIRC: a kernel for cross-artifact information engineering in software development environments , 2004, 11th Working Conference on Reverse Engineering.

[21]  Mira Mezini,et al.  Modules for Crosscutting Models , 2003, Ada-Europe.

[22]  Mark Weiser,et al.  The world is not a desktop , 1994, INTR.

[23]  George Lawton Moving Java into Mobile Phones , 2002, Computer.

[24]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[25]  Bill N. Schilit,et al.  Context-aware computing applications , 1994, Workshop on Mobile Computing Systems and Applications.

[26]  Seyed Masoud Sadjadi,et al.  An aspect-oriented approach to dynamic adaptation , 2002, WOSS '02.

[27]  Peter Van Roy,et al.  Concepts, Techniques, and Models of Computer Programming , 2004 .

[28]  Vasian Cepa,et al.  Implementing Tag-Driven Transformers with Tango , 2004, ICSR.

[29]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[30]  Klaus Ostermann,et al.  Modules for hierarchical and crosscutting models , 2003 .

[31]  Matthias Felleisen,et al.  Classes and mixins , 1998, POPL '98.

[32]  Eelco Visser,et al.  A Survey of Strategies in Program Transformation Systems , 2001, WRS.

[33]  Gabor Karsai,et al.  A formal graph transformation based language for model-to-model transformations , 2004 .

[34]  Flemming Nielson,et al.  Semantics with applications - a formal introduction , 1992, Wiley professional computing.

[35]  Dominic Duggan,et al.  A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages , 2000, ECOOP.

[36]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

[37]  Wilson C. Hsieh,et al.  Maya: multiple-dispatch syntax extension in Java , 2002, PLDI '02.

[38]  Abdelsalam Helal Pervasive Java , 2002, IEEE Pervasive Comput..

[39]  Mark Weiser,et al.  Some Computer Science Problems in Ubiquitous Computing , 1993 .

[40]  Jason Hickey,et al.  Phobos: a front-end approach to extensible compilers , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[41]  Mira Mezini Maintaining the consistency of class libraries during their evolution , 1997, OOPSLA '97.

[42]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[43]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[44]  Oscar Nierstrasz,et al.  Composable Encapsulation Policies , 2004, ECOOP.

[45]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[46]  Tim Ewald Transactional COM+: Building Scalable Applications , 2001 .

[47]  Niklaus Wirth,et al.  Toward a discipline of real-time programming , 1977, CACM.

[48]  Mira Mezini,et al.  Variability management with feature-oriented programming and aspects , 2004, SIGSOFT '04/FSE-12.

[49]  Jan Newmarch A Programmer’s Guide to Jini™ Technology , 2000, Apress.

[50]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[51]  Martin Odersky,et al.  Implementing Extensible Compilers , 2001 .

[52]  Andy Schürr,et al.  Rapid Programming with Graph Rewrite Rules , 1994 .

[53]  Raphael A. Finkel,et al.  Advanced programming language design , 1995 .

[54]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[55]  Tom Mens,et al.  A formal foundation for object-oriented software evolution , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[56]  Uwe Aßmann,et al.  Graph rewrite systems for program optimization , 2000, TOPL.

[57]  Joseph Gil,et al.  Environmental acquisition: a new inheritance-like abstraction mechanism , 1996, OOPSLA '96.

[58]  Paul Graham ANSI Common Lisp , 1995 .

[59]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[60]  Brett D. McLaughlin,et al.  Java and XML , 2000, The Java series.

[61]  Richard Monson-Haefel,et al.  Enterprise JavaBeans , 1999, Java series.

[62]  Alberto L. Sangiovanni-Vincentelli,et al.  Using Multiple Levels of Abstractions in Embedded Software Design , 2001, EMSOFT.

[63]  Tony Mason,et al.  Lex & Yacc , 1992 .

[64]  Mira Mezini,et al.  Separation of Concerns with Procedures, Annotations, Advice and Pointcuts , 2005, ECOOP.

[65]  Erik Ernst gbeta - a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance , 2000 .

[66]  Weishan Zhang,et al.  Supporting Product Line Evolution with Framed Aspects , 2004 .

[67]  Jan Bosch,et al.  Issues Concerning Variability in Software Product Lines , 2000, IW-SAPF.

[68]  Axel-Tobias Schreiner Object oriented programming with ANSI-C , 1993 .

[69]  Uwe Aßmann On Edge Addition Rewrite Systems and their Relevance to Program Analysis , 1994, TAGT.

[70]  Laurie J. Hendren,et al.  A Framework for Optimizing Java Using Attributes , 2001, CC.

[71]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[72]  Kris Gybels,et al.  On the Existence of the AOSD-Evolution Paradox , 2003 .

[73]  Mira Mezini,et al.  Expressive Pointcuts for Increased Modularity , 2005, ECOOP.

[74]  Edward O. Thorp,et al.  The invention of the first wearable computer , 1998, Digest of Papers. Second International Symposium on Wearable Computers (Cat. No.98EX215).

[75]  Gail C. Murphy,et al.  Explicit programming , 2002, AOSD '02.

[76]  Walid Taha,et al.  Multi-Stage Programming. , 1997, ICFP 1997.

[77]  Gustavo Alonso,et al.  Web Services: Concepts, Architectures and Applications , 2009 .

[78]  Detlef Plump,et al.  Essentials of Term Graph Rewriting , 2002, GETGRATS Closing Workshop.

[79]  Jim Steel,et al.  Generating human-usable textual notations for information models , 2001, Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference.

[80]  Gustavo Alonso,et al.  Spontaneous Container Services , 2003, ECOOP.

[81]  Detlef Plump,et al.  On Termination of Graph Rewriting , 1995, WG.

[82]  Jing Dong,et al.  UML Extensions for Design Pattern Compositions , 2002, J. Object Technol..

[83]  Stuart Dabbs Halloway Component Development for the Java¿ Platform , 2001 .

[84]  Joel Huselius,et al.  Component Based Software Engineering for Embedded Systems A literature survey , 2003 .

[85]  Pierre-Yves Schobbens,et al.  Semantics of FODA Feature Diagrams , 2004 .

[86]  Eric A. Brewer,et al.  Adapting to network and client variability via on-demand dynamic distillation , 1996, ASPLOS VII.

[87]  M. Weiser The Computer for the Twenty-First Century , 1991 .

[88]  Yan Han,et al.  Towards Visual AspectJ by a Meta Model and Modeling Notation , 2005 .

[89]  Hidehiko Masuhara,et al.  Compilation Semantics of Aspect-Oriented Programs , 2002 .

[90]  Uwe Aßmann,et al.  Invasive Software Composition , 2003, Springer Berlin Heidelberg.

[91]  Martín Abadi,et al.  A core calculus of dependency , 1999, POPL '99.

[92]  Martin P. Ward Language-Oriented Programming , 1994, Softw. Concepts Tools.

[93]  Mira Mezini,et al.  On aspectualizing component models , 2003, Softw. Pract. Exp..

[94]  Yannis Smaragdakis,et al.  Object-oriented frameworks and product lines , 2000, SPLC.

[95]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[96]  Ivica Crnkovic,et al.  Building Reliable Component-Based Software Systems , 2002 .

[97]  Shigeru Chiba,et al.  Josh: an open AspectJ-like language , 2004, AOSD '04.

[98]  Mira Mezini,et al.  MobCon: A Generative Middleware Framework for Java Mobile Applications , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[99]  Don S. Batory,et al.  Achieving extensibility through product-lines and domain-specific languages: a case study , 2000, TSEM.

[100]  Jonathan Bachrach,et al.  The Java syntactic extender (JSE) , 2001, OOPSLA '01.

[101]  Klaus D. Müller-Glaser,et al.  Generative Development of Embedded Real-Time Systems , 2002 .

[102]  Görel Hedin Attribute Extensions - a Technique for Enforcing Programming Conventions , 1997, Nord. J. Comput..

[103]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[104]  Donald E. Knuth,et al.  The Genesis of Attribute Grammars , 1990, WAGA.

[105]  Viktor K. Prasanna,et al.  MILAN: A Model Based Integrated Simulation Framework for Design of Embedded Systems , 2001, OM '01.

[106]  Gregory D. Abowd,et al.  Charting past, present, and future research in ubiquitous computing , 2000, TCHI.

[107]  Gabor Karsai,et al.  Smart Dust: communicating with a cubic-millimeter computer , 2001 .

[108]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[109]  Andy Schürr,et al.  Computing with Graphs and Graph Rewriting , 1999 .

[110]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[111]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[112]  Paul W. Calnan EXTRACT: Extensible Transformation and Compiler Technology , 2003 .

[113]  Andy Schürr,et al.  Graph Grammar Engineering with PROGRES , 1995, ESEC.

[114]  Gabor Karsai,et al.  Model-Integrated Computing , 1997, Computer.

[115]  Mohammad Ilyas,et al.  Smart Dust , 2006 .

[116]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[117]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.