Adaptive user interfaces (UIs) were introduced to address some of the usability problems that plague many software applications. Model-driven engineering formed the basis for most of the systems targeting the development of such UIs. An overview of these systems is presented and a set of criteria is established to evaluate the strengths and shortcomings of the state-of-the-art, which is categorized under architectures, techniques, and tools. A summary of the evaluation is presented in tables that visually illustrate the fulfillment of each criterion by each system. The evaluation identified several gaps in the existing art and highlighted the areas of promising improvement. The user interface (UI) layer is considered one of the key components of software applications since it connects their end-users to the functionality. Well-engineered and robust software applications could eventually fail to be adopted due to a weak UI layer. Some user interface development techniques such as: universal design [Mace et al. 1990], inclusive design [Keates et al. 2000], and design for all [Stephanidis 1997] promote the concept of making one UI design fit as many people as possible. Yet, a UI is not independent from its context-of-use, which is defined in terms of the user, platform, and environment [Calvary et al. 2003]. The "one design fits all" approach is unable to accommodate all the cases of variability in the context-of-use, in many cases leading to a diminished user experience. Building multiple UIs for the same functionality due to context variability is difficult since the scope of variability cannot be completely known at design-time and there is a high cost incurred by manually developing multiple versions of the UI. Adaptive UIs have been promoted as a solution for context variability due to their ability to automatically adapt to the context-of-use at runtime. User interfaces capable of adapting to their context-of-use are also referred to as multi-context or multi-target [Fonseca 2010]. A key goal behind adaptive UIs is plasticity denoting a UI's ability to preserve its usability across multiple contexts-of-use [Coutaz 2010]. Norcio and Stanley [1989] consider that the idea of an adaptive UI is straightforward since it simply means that: "The interface should adapt to the user; rather than the user adapting to the system" (p. 399) but they note that in spite of the simplicity of the definition, there are some difficult and complex problems relating to adaptive UIs. In our study of the literature, we noticed that some of these problems are technical and are related to devising systems that can support the development of adaptive UIs, while others are related to human factors such as the end-user acceptance of these UIs. Realizing the abstract properties illustrated in Fig. 1, could help in handling some of the technical and human problems related to adaptive UIs. Salehie and Tahvildari [2009] present a hierarchy of adaptability properties for software systems, referred to as self-* properties. This hierarchy demon...