Enabling End-users Participation in an MDD-SPL Approach Francisca Pérez, Pedro Valderas, Joan Fons Research Centre on Software Production Methods Technical University of Valencia Valencia, Spain {mperez, pvalderas, jfons}@pros.upv.es Abstract—Developing smart home systems that properly fit of an interactive design tool that allows end-users to create end-user needs is not always an easy task due to the lack of tailored solutions that directly reflect their needs and expec- understanding that may exist between end-users and system tations. To do this, we have been inspired by well-known developers. In the context of Software Product Lines, several approaches have been presented to improve the development and tested end-user techniques and interaction patterns that of smart home system functionality. However, little support is improve the user interface usability [5], [6], [7]. provided to improve the interaction with end-users. In this work, Considering the schema of the MDD-SPL (see Fig. 1), we extend a Software Product Line based on Model-Driven where a product operation transforms input assets into an Development with an interactive design tool that allows end-users output system according to the configuration specified in a to actively participate in the SPL. This tool allows end-users to configure the decision model that drives the production process decision model, the contribution of this work is an end-user of the software product line by themselves. In order to develop tool that enables end-users to configure the decision model this tool we have been inspired by well-known and tested end- that drives the production process by themselves. user techniques and interaction patterns that improve the user interface usability. End-user tool I. I NTRODUCTION Software Product Smart home systems are in charge of providing different Decision Line Concepts services to support the daily activities of the inhabitants of a Model home. In order to do this, smart home systems automatically perform actions such as turning the lights on [1], controllling a Production Output Assets thermostat, closing the blinds, etc. However, all these actions Operation System must be performed according to the user’s preferences and needs. Fig. 1. Approach overview Adapting smart home systems to end-users needs is not always an easy task due to the lack of understanding that may The rest of this paper is structured in the following way: exist between end-users and system developers. End-users are Section II presents the related work in the field of the end-user the owners of the domain of knowledge, the ones with more in- development techniques for smart homes. Section III presents depth knowledge about both the services that must be provided the MDD-SPL for developing smart home systems. Section IV by the system and the environment in which the system is introduces the end-user tool and the interaction patterns that going to be deployed. However, many times they do not have have been applied to improve the interface usability. Section the ability of transmitting this information properly. We think V presents some aspects of the technology used to implement that this can be improved by providing mechanisms that allow this tool. Finally, section VI concludes the paper. end-users to actively participate in the development process. In the area of Software Product Lines (SPL), many efforts II. R ELATED WORK have already been made to improve the development of smart There are several works that show how to combine MDD home systems [2], [3]. However, these approaches focus and SPLs [8], [2]. Voelter and Groher [2] describe an mainly on providing developers with techniques and tools to approach where development is combined with model-driven develop the system functionality, and they pay little attention development. They define aspects at the modelling level, the to the interaction with end-users. In this work, we face the transformation level, and the implementation level. They apply problem of allowing end-users to actively participate in the their approach to the Smart Home domain. Anastasopoulos development of a smart home within an SPL. et al. [8] apply a combination of both MDD and SPL to To do this, we have extended a Software Product Line to the Ambient Assisted Living (AAL) domain. They express develop smart home systems [4], which is based on Model variations in smart home functionality as features, and syn- Driven Development (MDD). The proposed extension consists thesize AAL specifications by composing features. Compared to our work, the above approaches do not involve end-user jigsaw metaphor to create new services. expectations in the MDD-SPL, which is essential for the Although these techniques encourage end-users to partici- successful development of Smart Homes [9]. Other works pate in the creation of software systems, they do not address such as [10] presents a tool to support end-users in working a process where end-users can specify the requirements of the with large-scale product line variability models in product system. Our approach applies end-user techniques within an derivation. This tool is based on derivation models and it MDD-SPL in order to allow end-users to actively participate provides end-users with a textual visualization which allows in the configuration of the desired software (in this particular end-users to set values on decisions by answering questions. case, a smart home system). However, the use of a visual language seems to be the best option since visual languages have demonstrated to be more III. MDD-SPL FOR S MART H OMES intuitive and easier to be used by users than other options like In this section, we illustrate the SPL for smart home sys- textual languages [11], [12]. tems. Fig. 2 illustrates the models used in the SPL. The input Many research initiatives seek to allow end-users to pro- assets consist of a collection of models describing all smart gram or customize their systems using end-user techniques homes that can be produced. These models are created by as Pervasive Interactive Programming (PiP) [13], or CAP- using the PervML language. A smart home is uniquely defined pella [14]. Furthermore, other research initiatives allow end- by the selections made on the feature model, which plays users to interact with their system using metaphors as jigsaw the role of decision model. The selected features determine puzzle pieces [15], or magnetic refrigerator poetry [16]. Some which elements of the PervML models are used for the initial of these well-accepted end-user techniques are: configuration of the smart home by means of a Realization Model. Finally, the output system is obtained through a model • Natural Programming [17]: it is an application of the transformation. standard user-centered design process to the specific do- main of programming languages and environments. The Modeling Languages premise of this approach is that programmers will have an easier job if their programming tasks are made more PervML Realization Pervasive Related M2T Model Model System natural. For example, HANDS [18] is a programming system for children. HANDS is an event-based system Feature featuring a concrete model for computation based on Model concepts that are familiar with non-programmers. The computation is represented as an agent named Handy, sitting at a table handling a set of cards. Fig. 2. MDD-SPL for Smart Homes • Programming By Example [19]: also called Program- ming by demonstration (PBD) because the user shows The following subsections provide details about the models examples of the desired behaviour to the computer. For involved in the SPL. example, Pervasive Interactive Programming (PiP) [13] provides a platform that uses the physical user space as A. The PervML model the programming environment providing the user with a Pervasive Modeling Language (PevML) [23] is a DSL natural and more familiar mechanism to “program” the for describing pervasive systems using high-level abstraction functionality they require to suit their particular needs. concepts. This language focuses on specifying heterogeneous • Visual Programming [20]: it is the use of visual services in specific physical environments such as the services expressions in the programming process. For example, of a smart home. These services can be combined to offer Alice [21] is an innovative 3D programming environment more complex functionality by means of interactions. These that allows students to learn fundamental programming services can also start the interaction as a reaction to changes concepts in the context of creating animated movies and in the environment. The main concepts of PervML are: (1) simple video games. a Service coordinates the interaction between suppliers to • Jigsaw metaphor [15]: it is based on the familiarity accomplish specific tasks (these suppliers can be hardware o evoked by the notion and the intuitive suggestion of software systems); (2) a Binding provider (BP) is a supplier assembly by connecting pieces together. Essentially, it adapter that embeds the issues of dealing with heterogeneous allows end-users to make variability decisions through a technologies; (3) an Interaction is a description of a set of series of left-to-right couplings of pieces. For example, ordered invocations between Services; and (4) a Trigger is ACCORD has developed the Tangible Toolbox [22], an ECA rule (Event Condition Action) that describes how based on a shared Data Space, that enables people to a Service reacts to changes in its environment. This DSL easily administer and re-configure services based on has been applied to develop solutions in the smart home embedded devices around the home. This toolkit also domain [24]. enables devices to integrate with each other through This model (see the bottom of Figure 3) describes the several different editors. One of these editors uses the building blocks for the assembly of a pervasive system [23]. The grey blocks implement the functionality of the selected Feature Model features. The white blocks enable an alternative functionality (1) Smart Home of the system. The (l), (o), (m) and (p) blocks provide adapters Optional for the new resources available. (3) Presence (4) Automated Illumination (2) Security Simulation Multiple choice Mandatory Requires B. The feature model (7) TV - (8) Illumination (9) Light By Presence Multimedia Feature models are widely used to describe the set of prod- (5) Alarm (6) In Home Detection ucts in a software product line in terms of features. In these Single choice (16) Gradual (17) Infrared (18)Volumetric (15) Lamp models, features are hierarchically linked in a tree-like struc- (10) Silent (11) Siren (12) Visual Lamp Detector detector Alarm ture and are optionally connected by cross-tree constraints. Alarm (13) Infrared (14) Volumetric There are many proposals for the type of the relationships Detector Detector and the graphical representation of feature models [25]. We have chosen the Feature Model [26] as the modeling language Realization Model because it is feature reasoning oriented and has a good tool Security support [27]. (2) <> (i) This model (see the top of Fig. 3) determines the initial and Alarm In Home Detection the potential features of the smart home. The grey features are (5) <> (c) (6) <> (h) selected to specify a member of the smart home family. The (10) <> (o) (6) <> (b) white features represent potential variants. Initially, the smart (11) <> (q) (14) <> (k) home provides Automated illumination, Presence simulation (12) <>(p) (13) <> (n) (12) <> (m) and a Security system. This security system relies on In home detection (inside the home) and a siren alarm. The system can potentially be upgraded with volumetric presence detection Automated Illumination and more alarms to enhance home security. (4) <> (d) The feature model also determines how the features relate Light by presence Illumination to each other by cross-tree constraints. As the feature model (9) <> (h) (8) <> (e) of Fig. 3 shows, these relationships are: Optional represented (9) <> (a) with a small white circle on top of the feature, Mandatory (18) <> (k) represented with a small black circle on top of the feature, (17) <> (n) Multiple choice represented with a black triangle, Single choice represented with a white triangle, Requires which it Presence Simulation is represented with a dashed arrow and Excludes represented (3) <> (f) Light by presence with a dashed double-headed arrow. (3) <> (f) (3) <> (g) C. Realization model (8) <> (e) The realization model is an extension that we have incor- porated to Atlas Model Weaving (AMW) [28] in order to PervML Model Abstraction relate the SPL features to the PervML elements. AMW is <> <> << Service>> << Service>> << Service>> a model for establishing relationships between models. Our (a)Light by (b)In Home (d) Automated (e) Lamp (c) Alarm extension augments the AMW relationship with the default presence Detection Lighting Mediator and alternative tags. This augmented relationship is applied between features and PervML elements (BPs and Services). <> In the context of a BP, the default relationship means that << Service>> << Trigger>> (g) Random << Interaction>> (f) Presence (h) Presence the BP is selected for the initial configuration of the system. Simulation Simulation Detected (i) Security Starter The alternative relationship means that the BP is considered a quiescent element that should be incorporated to the SPL product, but does not participate in the initial configuration. << BP>> << BP>> << BP>> << BP>> (j) Automated (k) Volumetric (l) Perimeter (m) Blink Quiescent BPs provide an alternative BP to replace the default Lighting Detector Detector Lighting BP in case of fault. The more quiescent BPs identified, the more flexible the adaptation will be. << BP>> << BP>> << BP>> << BP>> This model (see the middle of Figure 3) establishes the (n) Infrared (o) Silent (p) Visual Alarm (q) Buzzer Detector Alarm relationships between the features and the PervML elements. For instance, the visual alarm feature is related to a BP (p) for visual alarms, but, alternatively, it can be replaced with a BP Fig. 3. Models for the SPL (m) that emulates the visual alarm by using the blink lighting. D. Model To Text (M2T) Techniques and End-user metaphors in the field of Once the pervasive system is modelled, the transformation end-user development front-end engine can be applied to generate the code. For this task, we B. Saving the have used the MOFScript language which provides capabilities A. Catalog of available configurations configuration navigating models, creating files, etc. MOFScript takes as Feature input one model and applies over one selected metaelement Model a contextual rule. The applied rule can access the element properties, navigate over the related model elements and PervML Realization Pervasive invoke other rules. M2T Model Model System At 1 there is more information about the transformation rules and the tools to support the code generation. IV. I NTRODUCING END - USERS IN THE MDD-SPL Fig. 4. Approach overview In the presented MDD-SPL, variability engineers set the smart home configuration by means of the feature model. system) but several decisions need to be made before Variability engineers make assumptions about the desirable the goal can be fully achieved (several steps), which may functionality of end-users. Conversely, end-users are the ones not be known to the user. Thus, the use of a wizard is who best know their activities and their functionality expecta- recommended in [5] since the user wants to reach the tions. End-users and professional developers actually possess overall goal but may not be familiar with or interested in distinct types of knowledge. End-users are the “owners” of the the steps that need to be performed. problem and developers are the “owners” of the technology • Offering navigation buttons: we use navigation buttons to solve the problem. End-users do not understand software to suggest end-users that they are navigating a path with developers’ jargon and developers often do not understand steps. This is recommended in [5] because the learning end-users’ jargon [29]. Although, end-users are not profes- and memorization of the task of each step are improved. sional developers they have deep knowledge of their specific In addition, when users are forced to follow the order of environment and they should be able to develop their own tasks, they are less likely to miss important things and smart home system according to their needs. Hence, we therefore will make fewer errors. involve end-users in the Smart Home configuration in order to • Displaying the elements using a grid layout: this is minimize the mismatch between user expectations and system recommended in [5] to any circumstance where several behaviour. information objects are presented and arranged spatially In order to tackle this, end-users must be supplied with within a limited area. This improves the presentation and visual development tools that allow them to describe their it minimizes the time to scan, read and view objects on needs [30]. In this work, we have developed a tool that allows screen. end-users to configure their smart home system using the • Offering options: an interesting conclusion is reached MDD-SPL for smart homes described in the previous section. in [6]: what people see is what they select from!. The Fig. 4 shows an overview of the MDD-SPL with end-users. study states that people tend to select from the entire The end-user tool allows end-users to indicate which services list of options what they are first presented with. Rarely and devices must be available in each location and configuring is an effort made to find additional options through the feature model accordingly. Thus, when end-users have scrolling. If eleven items are presented, the choice is from finished describing their needs, we obtain the decision model these eleven. When options must be compared among that determines the output system to be obtained by applying themselves, controls presenting all the options together the model transformation. will yield the best results. To design the end-user front-end, we have based on well- • Selection rather than introduce text: the studies pre- accepted techniques and metaphors in the field of end-user sented in [7] show the advantages and disadvantages development such as: Natural Programming, Programming By of using either entry fields or selection fields for data Example, Visual Programming and metaphors (see Section II). collection. Since information became less familiar or We have also applied interaction patterns and design principles subject to spelling or typing errors they recommend to end-user interface design according to studies [5], [6], choosing a selection technique. [7] which show how these patterns and principles help end- users (who may not have any background about computer Thus, we have developed a user interface based on the applications). According to these studies, the main design interface decisions presented above which allows end-users to interface decisions that we have applied are: specify the services and devices that they need. Fig. 5 shows • Using a wizard: in our process the end-user needs to a snapshot of this interface as end-users configure devices and achieve a single goal (the description of their needed services in their home. Each interface is divided into four areas: (1) Title and navigation buttons, (2) Catalog of available 1 www.pros.upv.es/labs/projects/pervml configurations, (3) End-user environment and (4) Information Device configuration Service configuration 1 2 3 4 Fig. 5. Snapshot of the end-user front-end where our tool can advise to end-users or assist them. In At the top of Fig. 3 is shown the feature model which particular, we show at the left side of the figure how the end- determines the initial and potential features of the smart home. user has selected some devices for different locations of their These features represent services and families of devices. smart home (i.e. a siren alarm and a Volumetric detector for the The families of devices are the leaves of the feature model corridor). At the right of the figure we show how the end-user and the services are the nodes which are not leaves. We has selected some services for different locations (i.e. Alarm specify families of devices in the feature model rather than service for the corridor). devices because there is a large diversity of devices which are As Fig. 5 shows, we have applied the interaction patterns continuously changing. For each family of devices we offer described above. The grid layout pattern is applied to divide a catalog of compatible devices. For example, the Volumetric the interface into the four areas presented above. The wizard Detection device family has a catalog of compatible devices pattern is used to guide end-users along the process of creating which contains a Volumetric 360 degree detector as well as a pervasive description by progressively asking them for the a 160 degree one. Thus, when a new device is supported all required information (services, devices, etc.). In addition, we have to do is update the catalog of that family of devices navigation buttons are also used in the area (1) to allow rather than the feature model. end-users to navigate between the different windows that ask Our tool shows end-users the options from the available for the required information. The offer options and selection configurations according to the feature model. Fig. 6 shows an rather than introduce text patterns are applied in the area (2) example of service and device options according to the feature offering the devices/services available as options and allowing model. Note that these device options match the node leaves end-users to select these devices/services into the end-user of the feature model presented in the figure (Siren Alarm, environment represented in the area (3). Visual Alarm, Siren Alarm, Infrared Detector and Volumetric The next two subsections describe how the tool uses the Detector) and the service options match the nodes which are Feature Model. Subsection A. describes how the end-user not leaves of the feature model (Security, Alarm and In Home front-end uses the feature model to show the catalog of Detection). available configurations (see Fig. 4) and Subsection B. de- The available options are displayed in a tree. Studies scribes how the tool saves the configuration in the feature described in [5] recommend using a tree when the number model activating/inactivating features according to the end- of groups is high. They also recommend that each option user’s configurations. be explained so that users know of the consequences. Thus, we show in our tool a representative image for each service A. Catalog of available configurations or device and a brief description. Fig. 5 shows the list of As we described in subsection III-B, we use the feature available devices and services that is shown to end-users from model to describe the system configuration and its variants the feature model presented at the top of Fig. 3. in terms of features. In the smart home domain, the system configuration that end-users have to select is made up of B. Saving the configuration in the feature model the services and devices required for each location in the Once the catalog of configurations has been shown, end- environment. users can select services or devices for each location in Feature Model Services of the available list [7]. This improves the speed of … Security performance and satisfaction According to the interaction patterns presented above, we have defined a set of mappings between the feature model Alarm In Home Detection and our end-user front-end and how the interaction patterns Devices Silent Siren Visual are used depending on the information that is available at the Alarm Alarm Infrared Volumetric feature model. Next we present the interaction patterns used Detector Detector for each relationship of the feature model: • If there is a Mandatory feature, we use Autocomple- tion. When a feature A is related to another feature B with a mandatory relationship, if A is selected B has to be selected too. In the end-user front-end, features Fig. 6. The catalog of available configurations are represented by services/devices. Thus, when the end- user selects a service that represents a feature A with a mandatory relationship to a feature B, the service the end-user’s tool. When this happens, the end-user tool representing feature B is automatically added to the same sets activated/inactivated features to the feature model. Thus, location of service A. For instance (see Fig. 7) when the when end-users finish setting their system the feature model end-user selects the Presence Simulation service for the will have activated the features according to the end-user living room (1) the TV-Multimedia device is automatically configuration. added to the same location (2) because there is mandatory To set a configuration end-users have to select the desired relationship between the Presence Simulation feature and services and devices from the catalog of configurations and put the TV-Multimedia feature. In addition, the feature model them into the proper location. Then, a representative image is updated by activating both features (3). of the service/device is displayed in the environment. The service/device can be displayed in two different colours: (1) 1 red with a dotted frame if the service configuration has not fulfilled their constraints (services/devices that the service need) or (2) green if the service configuration has fulfilled Feature Model their constraints. Fig.5 shows the specification of devices (see … Presence Simulation at the left side of the figure) and services (see at the right side 2 3 of the figure). TV - Multimedia In order to define these end-user interfaces we have based on the following end-user principles and interaction patterns [7], Fig. 7. Applying patterns in a mandatory relationship [5]: • Using autocompletion: The study showed in [7] states • If there is a Requires or Excludes feature, we use that aided entry, also known as autocompletion, is pre- Warning. When a feature A has a requires relationship ferred over unaided entry methods, and it is also the with B, if A is selected feature B has to be selected fastest method. Autocompletion reduces errors in com- too. Similarly, if feature A has an excludes relationship parison to unaided entry. In addition, it also minimizes with B, when feature A is selected feature B does not the user’s effort by reducing input time and keystrokes. have to be selected. In the end-user front-end, when the • Using a warning: this is recommended in situations end-user selects a service that represents a feature with where the user performs an action that may unintention- a requires or excludes relationship, the end-user front- ally lead to a problem [5] and the system cannot or end warns end-users by showing a warning. Fig. 8 shows should not automatically resolve this situation so the user when the end-user selects the Presence Simulation service needs to be consulted. The warning might also include a for the living room (1). As the feature that represents this more detailed description of the situation to help the user service has a requires relationship with the Illumination make the appropriate decision by means of two options feature, the end-user front-end shows a Warning (2). at least. Then the end-user adds this required service to the same • Offering all options: this is recommended when the location (3) and the feature model is updated activating number of options is not large and they can be displayed the features Illumination and Presence Simulation (4). without scrolling [7]. Rarely was an effort made to find • If there is an Optional or single choice feature, we additional options through scrolling. use Show all options and Autocompletion. When a • Offering some options: this is recommended when the feature A has an optional o single choice relationship number of options is high and it needs a scroll to be with other features, one of them has to be selected. In the displayed. Thus, it is recommended to show some options end-user front-end, when the end-user selects a service Service and the In Home Detection services. Finally, the Feature Model is updated activating the features Security, Alarm, and In Home Detection (3). 2 3 1 1 Feature Model 2 … Presence Simulation 4 Requires … Illumination Feature Model … Fig. 8. Applying patterns in a requires relationship (2) Security Alarm In Home Detection … … 3 that represents a feature with an optional or single choice relationship, the end-user front-end shows a dialog with Fig. 10. Applying patterns in a multiple choice relationship all the services/devices that represent the related features. Thus, the end-user can select one of them and the end- V. S UPPORTING TECHNOLOGIES FOR THE END - USER user front-end adds the related service/device to the ORIENTED MDD-SPL same location as the selected service/device. Finally, the feature model is updated. Fig 9 shows, as a representative As we described in the previous section, our end-user tool example, how the end-user selects the Alarm service (1). uses the Feature Model to offer the catalog of available This service represents a feature that has a Single Choice services/devices. This model is also used to save the end- relationship. Then, a dialog is shown with all the devices user’s configurations by activating/inactivating features. The that represent the related features (2). Then the end-user feature model is specified using the MOSkitt Feature Modeller selects the Siren device and the feature model is updated editor [31], which uses the technology provided by the Eclipse activating the features Alarm and Siren (3). Modelling Platform [32]. Thus, in order to connect the end-user front-end with the feature model we have used the EMF Model Query frame- 2 work [33]. EMF Query provides an API to construct and execute query statements. These query statements can be used 1 for discovering and modifying model elements. Queries are first constructed with their query clauses and then they are ready to be executed. There are two query statements available: SELECT and Feature Model UPDATE. The SELECT statement provides querying without … modification while the UPDATE statement provides query- Alarm ing with modification. The SELECT statement requires two Silent Siren Visual 3 clauses, a "FROM" and a "WHERE." The FROM clause Alarm Alarm describes the source of model elements where SELECT can Fig. 9. Applying patterns in an optional or single choice relationship iterate in order to derive results. The WHERE clause describes the criteria for a model element that matches. The condition • If there is a Multiple choice, we use Show some options provided to the WHERE clause falls under a specialized con- and autocompletion. When a feature A has a multiple dition called an EObjectCondition which is specially designed relationship with other features, one or more of them to evaluate model elements. has to be selected. In the end-user front-end, when the We have implemented the interaction patterns described in end-user selects that represents a feature with a multiple the Subsection IV-B by using EMF Model Query. For instance, relationship, the end-user front-end shows a dialog with when the end-user selects the Alarm service, the tool checks services/devices that represents the related features. Then, the feature model for the selected feature. It also checks the the end-user can select one of more of them and the relations with other features. In this case, the Alarm service end-user front-end adds them to same location where is related with a single choice relation with three features the previously selected service is located. In addition, the (Silent Alarm, Siren and Visual Alarm). Thus, as the feature feature model is updated according to this selection. Fig model relation is Single choice, the interaction patterns that 10 shows, as representative example, how the end-user are applied are (see previous section): (1) Show all options selects the Security service (1). The feature that represents and (2) Autocompletion. Then, we need both to obtain the this service has a Multiple Choice relationship. Then, a features related with the selected one in order to show all of dialog is shown with the devices that represent the related them, and to update the selected feature and also the selected features (2). Afterwards, the end-user selects the Alarm related feature. Next, we show the query that we have implemented to [3] Javier Muñoz and Vicente Pelechano. Building a software factory for obtain the child features of the single choice relationship by pervasive systems development. In CAiSE, pages 342–356, 2005. [4] C. Cetina, J. Fons, and V. Pelechano. Applying software product lines using EMF Model Query: to build autonomic pervasive systems. pages 117–126, Sept. 2008. SELECT s t a t e m e n t = [5] Martijn van Welie and Hallvard Trætteberg. Interaction patterns in user interfaces. In PLoP 2000, pages 13–16, 2000. new SELECT ( [6] Mick P. Couper, Roger Tourangeau, Frederick G. Conrad, and Scott D. new FROM( c u r r e n t F e a t u r e . g e t C o n t e n t s ( ) ) , Crawford. What they see is what we get: response options for web new WHERE( new E O b j e c t R e f e r e n c e V a l u e C o n d i t i o n ( surveys. Soc. Sci. Comput. Rev., 22(1):111–127, 2004. new E O b j e c t T y p e R e l a t i o n C o n d i t i o n ( [7] Wilbert O. Galitz. The Essential Guide to User Interface Design: An F e a t u r e M o d e l P a c k a g e P a c k a g e . eINSTANCE Introduction to GUI Design Principles and Techniques. John Wiley & . getFeatureRelationship ()) , Sons, Inc., New York, NY, USA, 2002. F e a t u r e M o d e l P a c k a g e P a c k a g e . eINSTANCE . [8] M. Anastasopoulos, T. Patzke, and M. Becker. Software product getFeatureRelationship_From () , line technology for ambient intelligence applications. In In Proc. new E O b j e c t I n s t a n c e C o n d i t i o n ( S i n g l e C h o i c e ) ) Net.ObjectDays, page 179Ű195, 2005. [9] Jon O’Brien, Tom Rodden, Mark Rouncefield, and John Hughes. At ) home with the technology: an ethnographic study of a set-top-box trial. ); ACM Trans. Comput.-Hum. Interact., 6(3):282–308, 1999. [10] Rick Rabiser. Flexible and user-centered visualization support for Given a feature (currentFeature) the select statement product derivation. In SPLC (2), pages 323–328, 2008. gets all the features related with the currentFeature [11] John Steinmetz. Computers and Squeak as Environments for Learning. with a single choice relationship (EObjectInstanceCondi- 2000. [12] David Canfield Smith, Allen Cypher, and Jim Spohrer. Kidsim: pro- tion(SingleChoice)). Then, these features are shown as service gramming agents without a programming language. Commun. ACM, options on the dialog of Fig. 9. 37(7):54–67, 1994. Once the end-user chooses one of the presented options, the [13] Chin, Callaghan, and Clarke. An end-user programming paradigm for pervasive computing applications. International Conference on state of the selected feature and its related one is updated in Pervasive Services, 0:325–328, 2006. the feature model from inactivated to activated. By contrast, if [14] Anind K. Dey, Raffay Hamid, Chris Beckmann, Ian Li, and Daniel the end-user drops this kind of device into the trash, its state Hsu. A cappella: programming by demonstration of context-aware applications. In CHI ’04, pages 33–40, New York, USA, 2004. is updated to inactive. [15] Jan Humble et al. Playing with the bits: User-configuration of ubiquitous domestic environments. In UbiComp 2003, 2003. VI. C ONCLUSIONS AND FUTURE WORK [16] Khai N. Truong, Elaine M. Huang, and Gregory D. Abowd. Camp: Taking the advantage of current MDD techniques and an A magnetic poetry interface for end-user programming of capture applications for the home. In Ubicomp 2004, pages 143–160, 2004. integrated SPL architecture, we have provided an interactive [17] Brad A. Myers, John F. Pane, and Andy Ko. Natural programming design tool that allows end-users (rather than engineers) to languages and environments. Commun. ACM, 47(9):47–52, September create tailored solutions that directly reflect their needs and 2004. [18] John Francis Pane. A programming system for children that is designed expectations. In order to tackle this, we have presented an for usability. PhD thesis, Pittsburgh, PA, USA, 2002. Co-Chair-Myers„ MDD-SPL approach based on Model Driven Development Brad A. and Co-Chair-Garlan„ David. to develop smart home systems which is complemented with [19] Henry Lieberman. Programming by example (introduction). Commun. ACM, 43(3):72–74, 2000. our end-user tool. We have also presented how the end-user [20] Andrew J. Ko and Brad A. Myers. Designing the whyline: a debugging tool gets and sets information of the feature model according interface for asking questions about program behavior. In CHI ’04, to the end-user configurations. Furthermore, we have applied pages 151–158, 2004. [21] Carnegie Mellon University. Alice. http://www.alice.org/index.php, 1 interaction patterns to the end-user tool which improve the user 2009. interface usability. Finally, we have presented the technology [22] The accord toolkit. http://www.sics.se/accord/toolkit.html, 1 2009. implementation for handling the feature model. [23] Javier Muñoz and Vicente Pelechano. Applying software factories to As future work, we plan to validate the end-user config- pervasive systems: A platform specific framework. In ICEIS (3), pages 337–342, 2006. urations in the end-user tool and assist end-users during the [24] Javier Muñoz, Vicente Pelechano, and Carlos Cetina. Implementing a configuration process. To do this, we plan to use the feature pervasive meeting room: A model driven approach. In IWUC, pages model Analyser Framework [27]. Furthermore, we plan to 13–20, 2006. [25] Pierre-Yves Schobbens, Patrick Heymans, Jean-Christophe Trigaux, and involve end-users in the domain engineering phase. Our goal is Yves Bontemps. Generic semantics of feature diagrams. Comput. the participation of end-users in the definition of new service Networks, 51(2):456–479, 2007. configurations. [26] D. Benavides, Ruiz A. Cortés, and P. Trinidad. Automated reasoning on feature models. CAiSE 2005, 3520:491–503, 2005. ACKNOWLEDGMENT [27] P. Trinidad, D. Benavides, A. Ruiz-Cortés, S. Segura, and A.Jimenez. Fama framework. In SPLC, 2008. This work has been developed with the support of MEC [28] Marcos Didonet Del Fabro, Jean Bézivin, and Patrick Valduriez. Weav- under the project SESAMO TIN2007-62894 and cofinanced ing models with the eclipse amw plugin. In Eclipse Modeling Sympo- sium, Eclipse Summit Europe 2006, Esslingen, Germany, 2006. by FEDER, in the grants program FPI. [29] Maria Francesca Costabile, Piero Mussio, Loredana Parasiliti Provenza, and Antonio Piccinno. End users as unwitting software developers. In R EFERENCES WEUSE ’08, pages 6–10, New York, USA, 2008. [1] M. K. Lee, S. Davidoff, J. Zimmerman, and A. K. Dey. Smart homes, [30] Henry Lieberman, Fabio Paternò, and Volker Wulf. End User Develop- families and control. In Proceedings of Design & Emotion 2006, 2006. ment. Springer, 2006. [2] Markus Voelter and Iris Groher. Product line implementation using [31] Moskitt feature modeller. www.pros.upv.es/labs/projects/mfm. aspect-oriented and model-driven software development. SPLC 2007, [32] Eclipse modelling framework. http://www.eclipse.org/modeling/. pages 233–242, Sept. 2007. [33] Emf model query. http://www.eclipse.org/modeling/emf/?project=query.