Keywords

1 Introduction

Nowadays, the smart systems are becoming essential into our daily life, thanks to the fast improvement of computing technology and the deployment of Internet of Things (IoT) devices. The success of the smart systems is tightly linked to features such as easy handling and user-friendly graphical interface (GUI). Primarily designing GUIs is an important step in the development of smart systems, as it allows the user to interact effectively and mutually with the intelligent system.

Adaptive Interface (AI) represents a new way to improve the GUI usability and to help the user to carry out their tasks efficiently and enjoyable [1]. Indeed, the AI adapts and customizes automatically its features and structure to the user characteristics, to facilitate users with different skill levels and impairments [2]. In order to make the user experience more enjoyable and efficient, AI is designed and employed in many different contexts: for example, in domestic environments [3, 4], in workplaces application [5, 6] and healthcare domain [7, 8]. However, all these applications propose specific approaches for the development of new systems, without considering the opportunity to convert existing smart systems into adaptive systems.

For this reason, this research work aims to provide a method able to support the designers in adapting an already existing system. In particular, starting from existing methodologies developed for new applications [9, 10], a new design method, consisting of the three following steps, has been developed: (1) context analysis; (2) adaptive module design; and (3) system re-design.

2 Research Background

Adaptive systems are entities that adapt their displays and available actions to the user’s current goals and abilities, by monitoring user status, the system state and the current situation” [11]. Benyon and Murray [12] define Adaptive Systems as “systems which can automatically alter aspects of their functionalities and/or interface in order to accommodate the differing needs of individuals or groups of users and the changing user needs over time”. To achieve this, such systems have to learn the context in which they evolve and to adapt their interfaces and interaction modalities to communicate with users. In detail, an adaptive interface is defined as the collection of software system, algorithms and graphical interface that can modify the data representation, the way of interaction, and the assignment of tasks to be performed as a function of the ability of the user, the state of the system, and the environment. The research literature describes many approaches that can be used to design an adaptive interface.

Dieterich et al., defines the adaptation strategy as a decision-making process, which answer to the following questions [13]: Where? Why? What? To what? How? The first attribute identifies the application areas in which the adaptive system can be helpful; the second attribute identify the reason to make an adaptive system: depending on the context and on the system type, the “adaptation goals” concern a search goal, a problem-solving or learning goal [14]; the third attribute refers to what aspects are subject to adaptation in a particular system; in detail, what features undergo a change depending on which users: “adaptation constituents” [11]; the fourth attribute refers to what aspects of the user consider to make adaptation: in general, the adaptation depends on the user’s characteristics and preferences, on the user’s goal, on the user’s background and on the utilization context [15]; the fifth attribute identifies how to make adaptation through the definition a set of rules “adaptation rules” [14]; finally, an additional dimension has been added to those highlighted by Benyon and Murray: when to adapt? The adaptation can be carried out in run-time (during the use of the system) or statically (at the first access of the system) [12]. Stephanids et al., define these attributes as “adaptation determinants” [14]. Liu et al., design a dynamic, seamlessly personalized adaptive user interface through the use of an approach based on episodes identification and association (EIA) [16].

Namgoong et al. propose an adaptive user controller exploiting the representation of devices through semantic descriptions [17]; Yen and Acay introduce a generalized framework for the adaptation of user interface in complex environments [18]; new framework to design an AUI in the Web Application has been proposed [19,20,21]; Bongartz et al., define a new architecture for the AUI design in the Smart environment context [22]; Song and Cho provide a new AUI through the use of Bayesian Network in a ubiquitous environment [23]; Wang et al., provide an adaptive user interface model based perceptual control theory [24]; in the world wide web Rebai uses learning algorithms and Bayesian network to provide a new AUIs [25].

There are several contexts in which the adaptive systems have been used. In the health context, for example, the adaptive user interface has been used in a hypermedia data browsing to develop a clinical workstation prototype for the cardiology domain [26], in cancer domains to develop an interactive system which provide patients information [27] in e-health domain for tracking and monitoring health data for patients [7]. In smart environments context, the adaptive user interface has been used to manage and control various devices simultaneously in a modern home theater system [23]. Yen et al. provide a generalized framework for the UI adaptation in complex environments [18]. El-Bakry et al. present a new adaptive interface design for web application [20]. In addition, the adaptive user interfaces have been used in a work smart environments context, for a warehouse picking system [22].

In the mobile device context, the adaptive user interface has been used to adapt a graphical interface to a various type of user [24, 28, 29]. The literature on the adaptive interfaces research context is very heterogeneous and closely linked with each domain of application; however, all these experimental applications propose methods and specific approaches for the creation of new adaptive systems, without considering the adaptation of existing systems.

3 The Design Method

Not every system can just be turned into an adaptive one, so it is worth to specify some requirements that the existing system should meet for the proposed method to be applicable. They are the following:

  • Communication and storing capabilities should be supported by the system to ensure the proper data flow;

  • Capabilities of sensing contextual data from the user, the environment, the system itself. The system should be able to recognize user and human-system interaction information;

  • Adaptable elements and actions should be supported by the system. They allow introducing variability in system behavior based on the changeable requirements.

In addition, the economic feasibility to make a system adaptive should be verified.

The method consists of three main steps: (1) context analysis; (2) adaptive module design; and (3) system re-design (Fig. 1).

Fig. 1.
figure 1

Design method

The context analysis consists of two interdependent activities. The former identifies the reason to make a system adaptive by defining the “adaptation goals”, which could refer to search goals, problem-solving or learning goals. On the basis of the final target, there are different type of adaptations such as user-centered adaptation, target-oriented adaptation, software architecture adaptation. In general, the profile of the target user plays a key role. Therefore, it is essential to understand his/her characteristics (e.g. goals, needs, moods, preferences, intentions, etc.) and investigate how to acquire the missing information. In case of potential conflicting system goals, it is suggested to perform a trade-off analysis. At the end of this activity, the main functionalities (both existing and new) of the adaptive system must be clear. The latter involves the study of the main system features such as architecture, framework, database, script code and layout, etc. It includes the characteristics of the application, the devices, and the physical features of a system as well as the relationships between elements. According to the adaptation purpose and the company’s needs, the following components have to be identified: existing elements or features that cannot be modified (i.e., constrained component) and existing requirements that can be changed (i.e., editable components). In particular, the main constraints concern technical issues, marketing requirements and economic strategies.

In order to satisfy the adaptation goals, all possible design variabilities should be explored by constructing a design space with the help of experts’ knowledge. The design of the adaptive module consists of three sub-modules. The first one refers to the determination of what aspects of the system are subject to adaptation or what new features, which undergo a change depending on users interaction, should be implemented. They may refer to semantics, syntactic (i.e. sequencing of the interaction) or lexical aspects of interaction (i.e. interface objects, interaction techniques, media and modalities). They include generic functions (error correction, help, etc.) and interaction (task simplification, improved user experience, etc.). At the same time, it is necessary to establish what aspects of the user consider to make adaptation. The second sub-module identifies how to make adaptation. It consists on the definition of a set of rules that involves the logics formalization for a proper adaptive behavior [30]. The last sub-module concerns the mechanism inference definition that consists in the identification of the domain-independent algorithm used to draw conclusions or perform actions using the knowledge base and the user’s responses. It also defines the right time for adaptation, which is a crucial point in the adaptive process. The adaptation can be carried out in run-time (during the use of the system) or statically (at the first access of the system).

Finally, the system re-design consists of modifying the current architecture by inserting the adaptive module and editing the graphical interface. The system architecture redesign includes the database restructuring, the addition of the adaptation module and possible sensors, the data flow optimization, and the enabling of new system actions. The method implications on the user interface redesign could refer to graphics (e.g. colors, brightness, contrast, font, etc.), navigation (e.g. wizard mode), interaction mode (e.g. voice, gesture, etc.), and content (e.g. pre-selected function, help, notify, etc.).

4 The Case Study

The described method is applied, as an example, to a Wi-Fi system for the control and management of household appliances developed by a large Italian company.

4.1 Context Analysis

First of all, the final adaptation goals have been defined: make the system adaptive on the basis of the user behavior and needs. Subsequently, a system analysis to identify the specifics of the smart system has been carried out. Three different modules make the current system architecture: the mobile application, the household appliances and the Cloud (Server-DB) (Fig. 2).

Fig. 2.
figure 2

The architecture design

The user-household appliance interaction takes place in two different ways: Direct Interaction (performed on the household appliance) or Mobile Interaction (performed on the mobile application). The application allows the user-household appliance communication both in the home (through Local Network) and outside (through Remote Control). In the first case queries are sent directly to the household appliances and saved on the Cloud DB (View HAs status and HAs Programming). In the case of Remote Control use, however, the queries are sent to the Household Appliances through the Server on Cloud. In detail, the HAs programming queries will be sent through the Appliance Actuator in Active Remote Control mode, while the status will be displayed on Cloud Database. The status update on the Database takes place every 30 s (polling).

On the basis of the defined adaptation goals, the constrained components (CC) and editable components (EC) have been identified. Specifically, the defined CC are: User-Household appliances communication modality, Home-appliance Program Temperature and Cycle, Mobile Application Interface color and font. Instead, the defined EC are: Database, Mobile Application Interface contrast and layout, mobile application browsing mode, adaptive functions addition (i.e., programs or temperature suggestion).

4.2 Adaptive Module Design

Starting from the current system architecture and based on the defined requirements, the adaptive module has been designed. Specifically, the Adaptive module consists of:

  • Adaptation Rules, which involves the:

    • Back-end Translation for Bayesian Network. This module is responsible for reading the updated Database, filtering and translating it. Specifically, the filtering action selects from the DB the states needed to perform the adaptation. Instead, the translation action consists of translating the states, previously filtered, into a compatible language to be sent to the Adaptive Middleware module.

    • Adaptive Middleware. This second module consists of Adaptive Engine, characterized by the Decision-Making Algorithm (DM) [12]. The adaptive middleware is responsible for Bayesian network learning; through this module data received from the Middleware Translation are processed and sent to the network. Once trained the network and obtained the specific conditional probabilities, these will be elaborated through the Decision-Making algorithm. The DM will identify the appropriate adaptation actions to be taken on the system by upgrading network node dependencies on the mobile application.

  • Mechanism Inference, this module consists of the Bayesian Network customized for the System. The nodes number constituting the network is affected by the devices number involved and by the user’s monitoring actions. The network learning is made via the adaptive middleware.

4.3 System Re-design

4.3.1 Architecture Re-design

Finally, the system architecture has been re-designed. In details, the Adaptive module introduction has been carried out on two different levels: the first level involves the DB Server on Cloud, the second level involves the mobile application. The adaptation actions suggested by the adaptive module will be shown on the mobile device through the user interface.

Figure 3 shows the adaptive module addition in the system architecture.

Fig. 3.
figure 3

The architecture re-design (in red the adaptive module addition) (Color figure online)

4.3.2 User Interface Re-design

In order to simplify the control and the setting of household appliances, the mobile application UI has been redesigned. The UI re-designing consists in removing features that are not required by the user and adapting others to his preferences. Based on the user profile, the previously interaction and the monitored actions, the adaptive module introduction allows finding the optimal features combination for the interface (Table 1).

Table 1. User interface re-design.

The UI adaptations concerned two main features: the first one consists of changing the interface’s characteristics, and the last consists of changing the content displayed by the interface. The first UI adaptations is based on varying the graphical features (contrast, zoom, etc.,) or its layout configuration. In this case, the platform is aware of the user experience with the interface and it makes the corresponding adaptation based on these interactions. The second UI adaptation deals with the interface contents. Contents represent all interface items editable according to uses and actions the user acts on interface, own preferences and needs.

As a result, the user interface has been split into two presentation modalities: Default (i.e. the current UI) and New UI. The New UI has been designed by creating separate user interfaces (starting from Default UI) and by dynamically adapting the graphical features and the content according to the adaptation rules.

5 Conclusion and Future Works

In order to support the development of smart systems able to ensure a better user experience, this paper proposes a design methodology for making an existing system adaptive. It consists of three steps: from the context analysis in terms of goals, constraints, and opportunities to the redesign of the system architecture and GUI, through the definition of adaptation algorithms.

The methodology has been experimented by an Italian company, which aimed at improving its Wi-Fi system for the control and management of household appliances. It led designers in their activity, supporting the rules definition and reducing the overall efforts. Such approach allowed performing adaptation activities (i.e., monitoring, analysis, decision-making, execution, etc.) without affecting system performance and availability.

Different applications will be carried out to highlight the benefits of using the proposed methodology as opposed to the traditional ones and to validate it. Aspects related to usability, technology, efficiency and costs will be addressed. The final aim is the development of a set of guidelines and a user-friendly tool that effectively support the universal design.