Software refactoring process for adaptive user-interface composition

Adaptive user-interface composition is the ability of a software system to: (a) compose its user-interface at runtime according to a given deployment profile; and (b) to possibly drop running components and activate better alternatives in their place in response to deployment profile modifications. While adaptive behavior has gained interest for a wide range of software products and services, its support is very demanding requiring adoption of user-interface architectural patterns from the early software design stages. While previous research addressed the issue of engineering adaptive systems from scratch, there is an important methodological gap since we lack processes to reform existing non-adaptive systems towards adaptive behavior. We present a stepwise transformation process of user-interface software by incrementally upgrading relevant class structures towards adaptive composition by treating adaptive behavior as a cross-cutting concern. All our refactoring examples have emerged from real practice.

[1]  Jean Vanderdonckt,et al.  Model-Driven Engineering of Multi-target Plastic User Interfaces , 2008, Fourth International Conference on Autonomic and Autonomous Systems (ICAS'08).

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[4]  Constantine Stephanidis,et al.  Distributed interface bits: dynamic dialogue composition from ambient computing resources , 2005, Personal and Ubiquitous Computing.

[5]  Ralph E. Johnson,et al.  Refactoring and Aggregation , 1993, ISOTAS.

[6]  Kris Luyten,et al.  A task-driven user interface architecture for ambient intelligent environments , 2006, IUI '06.

[7]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[8]  Constantine Stephanidis,et al.  A Decision-making Specification Language for Verifiable User-interface Adaptation Logic , 2005, Int. J. Softw. Eng. Knowl. Eng..

[9]  Ran Ettinger,et al.  Untangling: a slice extraction refactoring , 2004, AOSD '04.

[10]  Gediminas Adomavicius,et al.  Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions , 2005, IEEE Transactions on Knowledge and Data Engineering.

[11]  Anthony Savidis Dynamic Software Assembly for Automatic Deployment-oriented Adaptation , 2005, Electron. Notes Theor. Comput. Sci..

[12]  Ivar Jacobson,et al.  Object Design: Roles, Responsibilities, and Collaborations , 2002 .

[13]  Constantine Stephanidis,et al.  Unified User Interface Development: New Challenges And Opportunities , 2007 .

[14]  Yasuyuki Sumi,et al.  C-MAP: Building a Context-Aware Mobile Assistant for Exhibition Tours , 1998, Community Computing and Support Systems.

[15]  Joëlle Coutaz,et al.  A Unifying Reference Framework for the Development of Plastic User Interfaces , 2001, EHCI.

[16]  Patrick Nixon,et al.  Composite Refactorings for Java Programs , 2000 .

[17]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[18]  Fabio Paternò,et al.  Automatically adapting web sites for mobile access through logical descriptions and dynamic analysis of interaction resources , 2008, AVI '08.

[19]  Michelle X. Zhou,et al.  Context-Aware, adaptive information retrieval for investigative tasks , 2007, IUI '07.

[20]  Constantine Stephanidis,et al.  A Case Study in Unified User Interface Development: The AVANTI Web Browser , 2000 .

[21]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .