SlideShare a Scribd company logo
1 of 240
Model-Driven Engineering of User Interfaces Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management (LSM) Information Systems Unit (ISYS) Belgian Laboratory of Computer-Human Interaction (BCHI) http://www.isys.ucl.ac.be/bchi
Course outline ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Course outline ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Course outline ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What is the situation today? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Day 1: Why? [Dragicevic et al.,2004]
Adapted from [Palanque,2002] Target Applications, Domains  Notations and tools User Interface Interaction Techniques 2006 TODAY No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams
What’s the situation of today? ,[object Object],time Day 1: Why? Platform User Environment Language
Software evolution Day 1: Why?
Diversity of users ,[object Object],[object Object],[object Object],Day 1: Why?
Variety of tasks ,[object Object],Day 1: Why? [Forrester Research,2003]
Heterogeneousness of platforms Day 1: Why?
Multiplicity of contexts of use Day 1: Why? TV is multi-media family device #1 Family Device Booking notification Everywhere connectivity for simple data exchange Travelling Travel booking site Powerful interface for complex operations Working Multimedia Travel programme Sporting Experience Role Location
Consequence ,[object Object],Day 1: Why? [Abrams et al.,2001] UI #12 UI #11 UI #10 UI #9 Application 3 UI #8 UI #7 UI #6 UI #5 Application 2 UI #4 UI #3 UI #2 UI #1 Application 1 Platform #4 Platform #3 Platform #2 Platform #1 Application 1 Application 2 Application 3 UI model #1 UI model #2 UI model #3 Platform #1 Platform #2 Platform #3 Platform #4 Platform model #1 Platform model #2 Platform model #3 Platform model #4
Is this web site usable? Day 1: Why?
Ergonomic criteria ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Day 1: Why? [Scapin & Bastien,1997] [Vanderdonckt,1995]
Navigation ,[object Object],Day 1: Why? No map without any relation Metaphoric map
Navigation ,[object Object],Day 1: Why? Navigation bar Landmark Global vs local diagram
Navigation ,[object Object],Day 1: Why? Inconsistencies between the menu and navigation bar Use the same clues at the same location for the same purpose
Navigation ,[object Object],Day 1: Why? Clic  here  to go to the Publications page Clic  here  to go to the LSM page Clic  here  to go to the UCL page Go to :  UCL  /  LSM   /  Publications
Navigation ,[object Object],Day 1: Why? Aller à :... Button Avoid : come back, return, redo, cancel, undo, redirect Home page Page A Page B Page C Page D Page E First site Page 1 Page 2 Page 3 Page 4 Page 5 Second site
Presentation ,[object Object],Day 1: Why? Related label Related label
Presentation ,[object Object],Day 1: Why? Display zone of browser navigation buttons Browser status bar Area for accessing to main commands, langages, map, about, contact User category picture Site menus zone Informational contents Display zone for external links and external applications Organisation logo area Area for accessing to local commands Structure indicator
Presentation ,[object Object],Day 1: Why? [Shaikh & Lenz,2006]
Presentation ,[object Object],Day 1: Why? [Shaikh & Lenz,2006]
Presentation ,[object Object],Day 1: Why? Logo to home page Site menus zone Informational contents External links You are here: structure indictor NL -FR-DL Title, sub-title Contact - Mentions légales – Vie privée – Médiateur - Accessibilité Log in – Site map - Help  Search  Update – Printer-friendly v.
Simple choice Mixed domain: Know domain: Day 1: Why? [Vanderdonckt & Faulkner,2002] Unknown domain  : Amount of possible values    [2,3] Amount of possible values    [8,50] Amount of possible values  [4,7] Amount of possible values  ]50,+  [ Amount of possible values  [2,3] Amount of possible values  [4,7] Amount of possible values    [8,50] Amount of possible values    ]50,+  [
Choix multiple Mixed domain: Known domain: Day 1: Why? [Vanderdonckt & Faulkner,2002] Domaine inconnu : Amount of possible values  [4,7] Amount of possible values    [8,50] Amount of possible values  ]50,+   [ Amount of possible values  [2,3] Amount of possible values  [4,7] Amount of possible values    [8,50] Amount of possible values  ]50,+   [ Amount of possible values  [2,3]
Graphics ,[object Object],Day 1: Why? Use moderately artistic fonts for headers Keep hear in a separate layer Use anti-aliasing
Multimedia elements ,[object Object],Use various horizon lines depending on the context Day 1: Why? Horizon line Example Meaning Low Brings attention to the sky, the abstract, high values High Stresses immediate results, the concrete Median Suggests balance, equilibrium, peace Diagonal Creates some instability, a feeling of moving Sharp Suggests dynamic aspects, changing, aggressivity
Multimedia elements ,[object Object],Day 1: Why?
Multimedia elements ,[object Object],Day 1: Why?
Multimedia elements ,[object Object],Day 1: Why?
Multimedia elements ,[object Object],Day 1: Why?
Multimedia elements ,[object Object],Day 1: Why?
Multimedia elements ,[object Object],Day 1: Why? No white on black
Multimedia elements ,[object Object],Day 1: Why? Pale backgrounds, submit and test Pages with automatically built background
[object Object],Multimedia elements Day 1: Why? [Murch,1987] Blue (94%)  Black (63%) Red (25%)  White (75%)  Yellow (63%)  Yellow (75%) White (56%)  Black (44%) Black (100%) Blue (56%) Red (25%)  White (75%)  Yellow (63%)  Cyan (25%) Blue (69%)  Black (56%) Red (37%)  Black (63%) White (56%) Blue (44%)  Background Thin lines and  text White Black Red Green Blue Cyan Magenta Yellow Background Thin lines and   text White Black Red Green Blue Cyan Magenta Yellow Red (63%) Blue (63%)  Black (56%)
[object Object],Multimedia elements Day 1: Why? [Murch,1987] Black (69%) Blue (63%)  Red (31%)  Yellow (69%) White (50%)  Green (25%)  Black (50%)  Yellow (44%) White (44%)  Black (69%) Red (63%) Blue (31%)  Yellow (38%) Magenta (31%) Black (31%) Red (56%) Blue (50%)  Black (44%)  Blue (50%) Black (44%) Yellow (25%)  Red (75%) Blue (63%)  Black (50%)  Background Bold  lines and panels White Black Red Green Blue Cyan Magenta Yellow Black (69%) Blue (63%)  Red (31%)  Yellow (69%) White (50%)  Green (25%)  Black (50%)  Yellow (44%) White (44%)  Black (69%) Red (63%) Blue (31%)  Yellow (38%) Magenta (31%) Black (31%) Red (56%) Blue (50%)  Black (44%)  Blue (50%) Black (44%) Yellow (25%)  Red (75%) Blue (63%)  Black (50%)  Background Bold  lines and panels White Black Red Green Blue Cyan Magenta Yellow Background Bold   lines and   panels White Black Red Green Blue Cyan Magenta Yellow
[object Object],Multimedia elements Day 1: Why? [Murch,1987] Yellow (100%) Cyan (94%)  Blue (87%) Red (37%) Magenta (25%)  Magenta (81%) Blue (44%) Green (25%)  Cyan (81%) Magenta (50%) Yellow (37%) Green (62%) Red (37%) Black (37%)  Green (81%) Yellow (75%) White (31%)  Green (75%) Red (56%) Cyan (44%)  White (81%) Cyan (81%)  Background Thin lines and  text White Black Red Green Blue Cyan Magenta Yellow Yellow (100%) Cyan (94%)  Blue (87%) Red (37%) Magenta (25%)  Magenta (81%) Blue (44%) Green (25%)  Cyan (81%) Magenta (50%) Yellow (37%) Green (62%) Red (37%) Black (37%)  Green (81%) Yellow (75%) White (31%)  Green (75%) Red (56%) Cyan (44%)  White (81%) Cyan (81%)  Yellow (100%) Cyan (94%)  Blue (87%) Red (37%) Magenta (25%)  Magenta (81%) Blue (44%) Green (25%)  Cyan (81%) Magenta (50%) Yellow (37%) Green (62%) Red (37%) Black (37%)  Green (81%) Yellow (75%) White (31%)  Green (75%) Red (56%) Cyan (44%)  White (81%) Cyan (81%)  Background Thin lines and  text White Black Red Green Blue Cyan Magenta Yellow Background Thin lines and   text White Black Red Green Blue Cyan Magenta Yellow
[object Object],Multimedia elements Day 1: Why? [Murch,1987] Yellow (95%) Cyan (75%)  Blue (81%) Magenta (31%)  Magenta (69%) Blue (50%) Green (37%) Cyan (81%) Magenta (44%) Yellow (44%) Green (44%) Red (31%) Black (31%)  Yellow (69%) Green (62%) White (56%)  Cyan (81%) Green (69%) Red (44%)  White (81%) Cyan (56%) Green (25%)  Background Bold  lines and panels White Black Red Green Blue Cyan Magenta Yellow Yellow (95%) Cyan (75%)  Blue (81%) Magenta (31%)  Magenta (69%) Blue (50%) Green (37%) Cyan (81%) Magenta (44%) Yellow (44%) Green (44%) Red (31%) Black (31%)  Yellow (69%) Green (62%) White (56%)  Cyan (81%) Green (69%) Red (44%)  White (81%) Cyan (56%) Green (25%)  Background Bold  lines and panels White Black Red Green Blue Cyan Magenta Yellow Background Bold   lines and   panels White Black Red Green Blue Cyan Magenta Yellow
Multimedia elements ,[object Object],Day 1: Why? Fixed size font Label on top of field Same fonts Two browsers
IFIP Quality Properties for UIs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Day 1: Why? [Gram & Cockton,1986]
IFIP Quality Properties for UIs ,[object Object],Day 1: Why? [Stephanidis,2001]
Derivation panel with preview CTTE Operator Operator parameters Design comment resulting from Applying guidelines Design Preview that dynamically changes according to parameters Legends Day 1: Why? [Vanderdonckt et al.,2003]
Plastic UI ,[object Object],Day 1: Why? [Grolaux et al.,2001]
Plastic UI ,[object Object],Day 1: Why? [Vanderdonckt et al.,2005]
Plastic User interface ,[object Object],Day 1: Why? [Grolaux et al.,2002]
How to address this issue? ,[object Object],[object Object],[object Object],[object Object],[object Object],Day 2: What? [Calvary et al.,2003]
Typical models
What do we want to get? Final user Interface T Concrete user Interface T Task and  Domain T Abstract user Interface T T=Target context of use Concrete user Interface S Final user Interface S Task and  Domain S Abstract user Interface S S=Source context of use http://www.plasticity.org UsiXML unsupported model UsiXML supported model User S User T Day 2: What? [Calvary et al.,2003] Environment T Reification Abstraction Reflexion Translation Platform S Environment S Platform T
Software engineering interpretation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IEEE Reverse Engineering Taxonomy Reference:  Elliot J. Chikofsky , James H. Cross II, Reverse Engineering and Design Recovery: A Taxonomy, IEEE Software, v.7 n.1, p.13-17, January 1990: http://labs.cs.utt.ro/labs/acs/html/resources/ReengineeringTaxonomy.pdf  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Chikofsky & Cross,1990]
Revisitation [Bouillon,2006]
Multi-Path Development of UI ,[object Object],Forward engineering Reverse Engineering Adaptation Any Relevant Composition [Limbourg,2004] Development  step Development  step Development  path Development  path * 1 Development  Scenario Development  Scenario * * Development  step Development  step Development  path Development  path * 1 Development  Scenario Development  Scenario * *
Our goals ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Interactive system Model of the IS Model of the IS ‘ Interactive system ‘ Checks of properties Transformation Models, instances of Meta-Models described in MOF (even for properties and transformations…)
UsiXML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UsiXML =  User Interface eXtensible Markup Language ,[object Object],[object Object],[object Object],[object Object],[object Object],UML Class Diagrams UsiXML Reference manual XSD XML Schema Descriptions UsiXML Models
Adapted from [Palanque,2002] Target Applications, Domains  Notations and tools User Interface Interaction Technique 2006 TODAY 2007 No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams Multi-platform User Interfaces Web, Java applications Task model, context model, UML ,…
The problem ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Calvary et al.,2003]
The problem ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The problem ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Lao Tch’ai Tche, many many years ago]
Mono-platform UI ,[object Object],[object Object]
Mono-platform UI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mono-platform UI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mono-platform UI ,[object Object],[object Object],[Szekely,1996] ,[object Object],[object Object],[object Object],Desired interface Obtained interface ,[object Object],[object Object],[object Object]
Mono-platform UI ,[object Object],[Szekely,1996]
Mono-platform UI ,[object Object],[object Object],[object Object],[object Object],[Bodart,1989]
Mono-platform UI ,[object Object],Interface 1 Method Model 1 Model … Model  n Models Model Model Model Tools
MDE based on UsiXML Model to Model Platform Independent Model (PIM) Platform Specific Model (PSM) Model to Code Source code MDA Components Techniques proposed based on UsiXML Computing Independent Model (CIM) Model to Model UsiXML model: Abstract user interface UsiXML model: Concrete user interface Rendering Final user interface UsiXML models: task, domain Graph transformations Graph transformations
CIM Step 1: Task model
New Abstraction: the user’s task ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Markopoulos,1992]
New Abstraction: the user’s task ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
New Abstraction: the task meta-model [Limbourg,2004]
CIM Step 2: domain model [Limbourg,2004]
CIM Step 3: Task-domain mappings IdealXML [Limbourg,2004]
New Abstraction: the abstract UI ,[object Object],[object Object],[object Object],[object Object],[object Object],[Vanderdonckt & Bodart,1993]
Abstraction: the abstract UI
Abstraction: the abstract UI ,[object Object],IdealXML [Montero et al.,2005] [Constantine,2003] Abs.container Abs. component Input Output Navigation Control Select
IdealXML [Montero,2005]
Example of AUI produced
Mapping the models [Montero,2005] triggers (tg): {  ,  } x updates (up):   x observes (ob):   x isExecutedIn (ex):   x manipulates (ma): {  ,  } x These mappings can be established:
Mapping the models ,[object Object]
Your turn now! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example solution (first variant)
Example solution (first variant)
Task and domain models [Montero,2005]
Typed Model-to-Model Transformation Uses language Meta-Meta-Model Graph Structure  is instance of Meta-Model Our Meta-Model Meta-Model Subset 1 e.g., Task+Domain Model is instance of Meta-Model Subset 2 e.g., Concrete UI Model is instance of Initial UI Model e.g., MyTaskAndDomainModel  Resultant UI Model e.g., MyConcreteUIModel  Transformation Rule Our transformation catalog [Limbourg,2004]
Expression of models as graphs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Definition of a production ,[object Object],[object Object],[object Object],[object Object],[object Object],LHS G RHS G’ r m m* r* LHS G RHS G’ r m m* r*
Transformation system [Limbourg,2004] G Host USIXM specification G’ Resultant USIXM specification LHS RHS Matches - Co-Matches Is Transformed Into Is Transformed Into Transformation Rule 1 Transformation Rule 2 … Transformation Rule N Transformation System NAC Not  Matches +
PIM step: task+domain to AUI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UsiXML model: Abstract user interface UsiXML models: task, domain Graph transformations
PIM step: task+domain to AUI Identification of AUI structure Spatio-Temporal Arrangement of AIOs Selection of AIC Definition of Abstract Dialog Control STEP : From Task & Domain to AUI SUB-STEPS Derivation of AUI to Domain Relationships
How to read a graph transformation? Node type Node (Attribute,value) Edge type Edge (Attribute,value) Node Edge
Rule 1 LHS RHS ::= Ø
Rule 2 LHS RHS ::=
Rule 3 LHS RHS ::=
Rule 4 LHS RHS ::= NAC
Rule 5 LHS RHS ::= NAC1 NAC2
Rule 6 LHS RHS ::=
Rule 7  LHS RHS ::= PAC “ X < 3000”
Rule 8  LHS RHS ::= PAC “ X > 3000”  NAC
Rule 9 LHS RHS ::=
Rule 10 PAC LHS RHS ::= “ X > Y”
PIM sub-step 1: Definition of AUI structure (AC)
PIM sub-step 1: Definition of AUI structure (AC)
Facet type
 
AC Participate to OpinionPoll AC  Answer Poll AC  Answer Questionnaire AC  Answer Question AIC (Input/Single Selection) Select Proposition AIC (Output) See Statistics AIC (Input/Single Selection ) Chose Poll AIC (Control) Validate Question AIC (Output) Provide Personal Data AIC (Output) Read Question AIC (Input/Single Selection) Chose Questionnaire
PIM sub-step 2: definition of AIC types  AC = Abstract Container AIC = Abstract Individual Component CIC = Concrete Interaction Component
PIM sub-step 3:  Definition of spatio-temporal arrangement
PSM Step: AUI to CUI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UsiXML model: Abstract user interface UsiXML model: Concrete user interface UsiXML models: task, domain Graph transformations Graph transformations
PSM Step: AUI to CUI Reification of AC into CC Arrangement of CICs Selection of CIC Concrete Dialog Control Definition STEP : From AUI to CUI SUB-STEPS Definition of Navigation Derivation of CUI to Domain Relationships
PSM sub-step 3: definition of navigation An example of a complex rule
PSM: Concrete User Interface
Example: Platform adaptation widget substitution (1) <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?> < cuiModel   name =&quot; MyModel &quot;> < version  modifDate =&quot; 2004-03-24T17:09:17.402+01:00 &quot;  xmlns =&quot;&quot;> 7 </ version > < authorName  xmlns =&quot;&quot;> Youri </ authorName > < window  height =&quot; 500 &quot;  width =&quot; 600 &quot;  name =&quot; Formulaire (2/5) &quot;  id =&quot; window_1 &quot;> < box  relativeHeight =&quot; 100 &quot;  name =&quot; box1_0 &quot;  id =&quot; box1_0 &quot;> < box  type =&quot; vert &quot;  name =&quot; boxTodo &quot;  id =&quot; boxTodo &quot;> ... < box  type =&quot; horiz &quot;  name =&quot; box_2_2_2_1 &quot;  id =&quot; box_2_2_2_1 &quot;> < textComponent  defaultContent =&quot; Sexe &quot;  isBold =&quot; true &quot;  id =&quot; label_2 &quot;/> < radioButton  groupName =“ grupo01 &quot;  defaultContent =&quot; Femme &quot;   defaultState =&quot; false &quot;  id =&quot; radiobutton_0 &quot;/> < radioButton  groupName =&quot; grupo01 &quot;  defaultContent =&quot; Homme &quot;   defaultState =&quot; true &quot;  id =&quot; radiobutton_1 &quot;/> </ box > ... </ box > </ box > </ window > </ cuiModel > Excerpt for a UsiXML CUI specification
Example: widget substitution (2)
Example: widget substitution (3) The UsiXML graph before applying any rule
Example: widget substitution (4) LHS RHS NAC Rule 1: Create a new comboBox with the same  id  and  name  as the name of the group of radioButtons.
Example: widget substitution (5) Rule 1: Create a new comboBox with the same  id  and  name  as the name of the group of radioButtons. The UsiXML graph after applying the first rule
Example: widget substitution (6) LHS RHS ::= Rule 2: Convert every radio button within the group “x” into an item for the comboBox “x” that we have just created thanks to Rule 1
Example: widget substitution (7) Rule 2: Convert every radioButton within the group “x” into an item for the comboBox “x”, we have just created. The UsiXML graph after applying the second rule: radio buttons disappeared
Example: widget substitution (8) <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?> < cuiModel   name =&quot; MyModel &quot;> < version  modifDate =&quot; 2004-03-24T17:09:17.402+01:00 &quot;  xmlns =&quot;&quot;> 7 </ version > < authorName  xmlns =&quot;&quot;> Youri </ authorName > < window  height =&quot; 500 &quot;  width =&quot; 600 &quot;  name =&quot; Formulaire (2/5) &quot;  id =&quot; window_1 &quot;> < box  relativeHeight =&quot; 100 &quot;  name =&quot; box1_0 &quot;  id =&quot; box1_0 &quot;> < box  type =&quot; vert &quot;  name =&quot; boxTodo &quot;  id =&quot; boxTodo &quot;> ... < box  type =&quot; horiz &quot;  name =&quot; box_2_2_2_1 &quot;  id =&quot; box_2_2_2_1 &quot;> < textComponent  defaultContent =&quot; Sexe &quot;  isBold =&quot; true &quot;  id =&quot; label_2 &quot;/> < comboBox  id =&quot; comboBox001 &quot;  name =&quot; label_3 &quot;  isDropDown =&quot; true &quot;>   < item  id =&quot; radiobutton_0 &quot;  name =&quot; radiobutton_0 &quot;  defaultContent =&quot; Femme &quot;/>   < item  id =&quot; radiobutton_1 &quot;  name =&quot; radiobutton_1 &quot;  defaultContent =&quot; Homme &quot;/> </ comboBox >   ... </ box > </ box > </ window > </ cuiModel > Excerpt from the final transformated UsiXML specification
Example: widget substitution (9)
What do we have so far? Concrete user Interface S Final user Interface S Task and  Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S Reification Platform S Environment S
Multiple development paths
Mapping the Methodological World onto the Transformation World A development library stores (in usiXML textual format) paths, steps and sub-steps definition and their associated transformation systems and transformation rules Development  step Development  step Development  sub - step Development  sub - step Development  path Development  path Transformation  System Transformation  System Transformation Rule Transformation Rule isComposedOf isRealizedBy isComposedOf isComposedOf * 1 * 1 1 * 1 0..1 Development  step Development  step Development  sub - step Development  sub - step Development  path Development  path Transformation  System Transformation  System Transformation Rule Transformation Rule isComposedOf isRealizedBy isComposedOf isComposedOf * 1 * 1 1 * 1 0..1 Methodological World Development  step Development  step Development  sub - step Development  sub - step Development  path Development  path Transformation  System Transformation  System Transformation Rule Transformation Rule isComposedOf isRealizedBy isComposedOf isComposedOf * 1 * 1 1 * 1 0..1 Transformation World [Limbourg,2004]
Multiple development paths Rule n Transformation  System 1 Rule 1 Rule 2 … Rule n Transformation  System 2 Rule 1 Rule 2 … Rule n Transformation  System ... Rule 1 Rule 2 … Rule n Transformation  System n Rule 1 Rule 2 … : when source terminates apply target : execute development step  Development Step  α
TransformiXML API/GUI ,[object Object]
From T&D to AUI ,[object Object],TransformiXML [Bouillon et al.,2005]
Final user interface ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UsiXML model: Abstract user interface UsiXML model: Concrete user interface Rendering Final user interface UsiXML models: task, domain Graph transformations Graph transformations Generative programming
What is a Feature Model? C F1 C F1 F2 C F1 F2 Dependencies 1. 2. Optional Exclusive Alternate [Schlee & Vanderdonckt,2004]
Example of a Feature Model Alternate [Schlee & Vanderdonckt,2004]
Interpretation of a feature model C F1 F2 F3 F2a F2b F3a F3b C F1 F2 F3 F2a F2b F3a F3b 0 1 1 1 1 0 0 UsiXML Specifications <C> <F1>0</F1> <F2>1 <F2a>1</F2a> <F2b>0</F2b> </F2> <F3>1 <F3a>0</F3a> <F3b>1</F3b> </F3> </C> ABA ANGIE-Part [Schlee & Vanderdonckt,2004]
Generative Programming void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); void nlinFilterCommon  (const int& nID, Mask*, Pl*); int  pot  (const unsigned int&  ) const; ImgProcessT<T>& channelXor  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& chann elMix ImgProcessT<T> & channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); V oid channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); void nlinFilterCommon  (const int& nID, Mask*, Pl*); int  pot  (const unsigned int&  ) const; ImgProcessT<T>& channelXor  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); public: ImgProcessT(const char* const psz = &quot;&quot;, Pl* ppl = NULL); ImgProcessT(const int&,  const int&  nWidth  = 20,  const int&  nHeight  = 20, const int&  nFillColor = 0, ProgressLine* ppl  = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT(); virtual char* getClassName() const; virtual char  getClassID  () const; ImgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T>  operator+ (const ImgProcessT<T>&); ImgProcessT<T>  operator- (const ImgProcessT<T>&); ImgProcessT<T>  operator^ (const ImgProcessT<T>&); ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL); mgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T>  operator+ (const ImgProcessT<T>&); ImgProcessT<T>  operator- (const ImgProcessT<T>&); ImgProcessT<T>  operator^ (const ImgProcessT<T>&); ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); void nlinFilterCommon  (const int& nID, Mask*, Pl*); int  pot  (const unsigned int&  ) const; ImgProcessT<T>& channelXor  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); USIXML Specifications ImgProcessT<T>& channelMix  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL) ImgProcessT<T>& channelMix  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL) Components void areaOperation(const int&,  const int&,  const int&,  const int&,  ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, Pl*), const int& nAngle, Pl*  ppl ); void areaOperation(const int&,  const int&,  const int&,  const int&,  ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(Pl*), Pl*  ppl ); void areaOperation(const int&,  const int&,  const int&,  const int&,  ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, const int&, const int&, const int& ), const int&, const int&, const int&, const int& ); void channelShowHistogram(  int*,  const int&,  const int&,  const int&, const int&, const int&, const int&, const int& n = 0 ) const; void channelFft  (  T*,  T*,  T*,  const unsigned int&,  const unsigned int&,  Pl*  ppl = NULL ); void channelIfft  (  T*,  T*,  T*,  const unsigned int&,  const unsigned int&,  Pl*  ppl = NULL ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); void nlinFilterCommon  (const int& nID, Mask*, Pl*); int  pot  (const unsigned int&  ) const; ImgProcessT<T>& channelXor  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); public: ImgProcessT(const char* const psz = &quot;&quot;, Pl* ppl = NULL); ImgProcessT(const int&,  const int&  nWidth  = 20,  const int&  nHeight  = 20, const int&  nFillColor = 0, ProgressLine* ppl  = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT(); virtual char* getClassName() const; virtual char  getClassID  () const; ImgProcessT<T>& operator+=(const ImgProcessT<T>&); I Final code ImgProcessT<T>& channelAdd  (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); public: ImgProcessT(const char* const psz = &quot;&quot;, Pl* ppl = NULL); ImgProcessT(const int&,  const int&  nWidth  = 20,  const int&  nHeight  = 20, const int&  nFillColor = 0, ProgressLine* ppl  = NULL ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange  (T*, Pl* ppl = NULL  ); [Schlee & Vanderdonckt,2004]
Developed by Benjamin Michotte ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Michotte,2004]
Design Tab Design window Components toolbar Components options
Localisation of UIs ,[object Object],Support for mnemonics and shortcuts
Preview ,[object Object]
XML Editor ,[object Object],[object Object],Edit the UsiXML Show attributes A click on the tree highlights the corresponding UsiXML
Plugins ,[object Object],[object Object],[object Object],Click on « add » to open the downloader Choose the plugins you want install And install them Double-click on a plugin And look at the plugin informations
What do we have so far? Concrete user Interface S Final user Interface S Task and  Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S Reification Platform S Environment S
Reverse engineering ,[object Object],[object Object]
From FUI to CUI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Bouillon & Vanderdonckt,2004]
From compiled code [Marion,2005]
The calculator ,[object Object],<Window id=“1” name=“1” isVisible=“true” isEnabled=“true” defaultBorderTitle=“Calculator”  borderWidth=“1”height=“358”  width=“309”>  <Box id=“2” name=“2” type =“verticall” isVisible=“true”  isEnabled=“true”> <button isEnabled=“true” … USIXML [Marion,2005]
From CUI to AUI, task & domain ,[object Object],[object Object]
Example of Derivation Rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Input Name=in1 Maxlength=15 Value=login Type=text Element B TextComponent Name=in1 Maxlength=15 defaultContent=login Id=in1 Element Y [Bouillon,2006]
Derivation rules categories ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],   x    to Tt i  ,y    to Tt 0 : x = window  ٨   (y=box  ٧   y=window)  ٨ x.filename =y.targetfile   CloneNode(x.id, idnew, Tt0) where idnew =∑ node    Tt 0   ٨   RemoveNode(x, x.id)  ٨   RemoveArc(ParentNode(x).id, x.id)  ٨   z=root(Tt i )  ٨   Remove Node(z,z.id)  ٨   AddArc(y.id, idnew)    x    to Tt i  ,y    to Tt 0 : x = vocalGroup  ٨   y=VocalGroup  ٨ x.filename =y.insertFile   CloneNode(x.id, idnew, Tt0) where idnew =∑ node    Tt0  ٨   RemoveNode(x, x.id)  ٨   RemoveArc(ParentNode(x).id, x.id)  ٨   z=root(Tt i )  ٨   Remove Node(z,z.id)  ٨ AddArc(y.id, idnew)  Multi-model transformations Element 1 Element 2 Element 3 Horizontal box Horizontal box Vertical box Element 1 Element 2 Line Break Element 3    x    Tt: x=bix  ٨   ((rigthSibling(x)!=table  ٧   rigthSibling(x)!=bix  ٧   rigthSibling(x)!=cell  ٧   rigthSibling(x)!=box)  ٨   rigthSibling(x)!=NULL)   CloneNode (rightSibling(x).id, idnew)  ٨    RemoveNode (rightSibling(x), rightSibling(x).id)  ٨   RemoveArc (ParentNode(rightSibling(x)), rightSibling(x))  ٨   AddArc(x.id, idnew) where idnew =∑ node    Tt Layout Analysis
RE of Web Pages: ReversiXML ,[object Object],[object Object],[object Object],[object Object]
RE of Phone Interfaces ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RE of WML Phone Interfaces ,[object Object],[object Object],[object Object],WML <p> Yahoo! ID: <input name=&quot;login&quot; value=&quot;&quot;  format=&quot;*m&quot; />Password: <input type=&quot;password&quot;  name= &quot;passwd&quot; value=&quot;&quot;  format=&quot;*m&quot; /> <anchor title=&quot;OK&quot;>Submit <go method=&quot;post&quot;  href=&quot;/raw?&quot;> USIXML <textComponent id= &quot;textComponent_1&quot; glueHorizontal =&quot;left“ isVisible=&quot;true&quot; isEnabled= &quot;true&quot; defaultContent=&quot;Yahoo! ID: <textComponent id= &quot;textComponent_2&quot; glueHorizontal= &quot;left&quot; defaultContent=&quot;&quot; isEditable= &quot;true&quot; isVisible=&quot;true&quot;/> [Cui,2005]
Results of the Evaluation ,[object Object],[object Object]
Results of the Evaluation ,[object Object],[object Object],[object Object],[object Object]
Results of the Evaluation ,[object Object],Original UI Reengineered UI
What do we have so far? Concrete user Interface S Final user Interface S Task and  Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S Let’s go for adaptation [Calvary et al.,2003] Reification Abstraction Platform S Environment S
What do we want to get? Final user Interface T Concrete user Interface T Task and  Domain T Abstract user Interface T T=Target context of use Concrete user Interface S Final user Interface S Task and  Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S User T [Calvary et al.,2003] Environment T Reification Abstraction Reflexion Translation Platform S Environment S Platform T
Rules for Graceful Degradation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Florins,2006]
Rules at the Concrete UI level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Florins,2006]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Rules at the Concrete UI level [Florins,2006]
Rules at the Concrete UI level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Florins,2006]
Rules at the Concrete UI level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Florins,2006]
Rules at the Concrete UI level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Florins,2006]
Rules at the Concrete UI level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Florins,2006]
Rules at the Abstract UI level ,[object Object],[object Object],[object Object],[Florins,2006]
Rules at the Abstract UI level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[Florins,2006]
Rules at the Abstract UI level Source interface (in the graphical editor GrafiXML) (b) Execution of the splitting rule (a) box box box ,[object Object],[Florins,2006]
Rules at the Abstract UI level ,[object Object],[Florins,2006]
Rules at the Tasks&Concepts level ,[object Object],[object Object],[object Object]
GD Plug-in (4) ,[object Object],[Florins et al.,2006]
GD Plug-in (4) ,[object Object]
GD Plug-in (4) ,[object Object]
GD Plug-in (5) ,[object Object]
GD Plug-in (6) ,[object Object]
Multi-platform for Emergency [Amouh et al.,2005]
Multi-platform for Emergency ,[object Object],[object Object],[object Object],[object Object]
Multi-platform for Emergency ,[object Object],[object Object],[object Object],[object Object],[object Object]
Graceful degradation [Florins & Vanderdonckt,2004]
Transformation rules
Transformation rules Add all >> Add > << Remove all < Remove >> > << < > < Group box Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 8 Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 1 Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7
Transformation rules
Considering the context of use in designing user interfaces ,[object Object],[object Object],[object Object],[object Object],[object Object],Generation for multiple platforms [Plomp & Keranen,2004]
Context model
Adapted from [Palanque,2002] Target Applications, Domains  Notations and tools User Interface Interaction Technique 2006 TODAY 2007 No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams Multi-platform User Interfaces Web, Java applications Task model, context model, UML ,… Virtual Reality User Interfaces 3D Applications Scene model
Virtualisation of UIs ,[object Object],[object Object],[Vanderdonckt et al., 2004]
Developed by Donatien Grolaux ,[object Object],[object Object],[object Object],DistriXML [Grolaux & Vanderdonckt,2005] Pencil Palette Painting Painting tool
Why take care of multiple displays? [Czerwinsky,2005] Effects of Display Size on Task Times 0 20 40 60 80 100 120 140 160 DISPLAY Average Task Time (Seconds) Small Large
Why take care of multiple displays? The tasks were easy to perform 0 1 2 3 4 5 Small Large Display Size Average Rating (1=Disagree,  5=Agree) [Czerwinsky,2005]
Why take care of multiple displays? [Czerwinsky,2005]
Demonstration DistriXML [Grolaux & Vanderdonckt,2005]
Demonstration using two displays from two different computers DistriXML
Example using a Pocket PC DistriXML
UI Migration: DEMIPLAT ,[object Object],DistriXML
UI Migration: DEMIPLAT ,[object Object],DistriXML
UI Migration: DEMIPLAT ,[object Object],DistriXML
UI Migration: DEMIPLAT ,[object Object],DistriXML
This is not a floating toolbar Process DistriXML
This is migration ! Computer B Process Process Computer A DistriXML
User model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why user preference is important? ,[object Object],[object Object],[object Object],[Johnsgard,1995] If information density is low If information density is high Simple choice Multiple choice Input with exte n- sion Predefined sele c- tio n
Example of preference-based design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Users ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modeling a range of designs ,[object Object],[object Object]
A Spectrum of Preference Relations ,[object Object],[object Object],[object Object],[Eisenstein,2001]
The Spectrum ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modeling preferences in UsiXML ,[object Object],User1 Domain2 Domain3 Presen- tation4 Presen- tation5 User2
Bindings ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Binding example ,[object Object],<PREFERENCE ID=&quot;G1&quot;> <CONDITIONS> <RELATION_STATEMENT  DEFINITION=&quot;condition&quot; REFERENCE=&quot;U1&quot;/> </CONDITIONS> <TARGETS> <RELATION_STATEMENT  DEFINITION=&quot;target&quot; REFERENCE=&quot;P1&quot;/> </TARGETS> </PREFERENCE>
Simple Preferences ,[object Object],[object Object],[object Object],[object Object]
Simple preference example ,[object Object],<PREFERENCE ID=&quot;G1&quot;> <CONDITIONS> <RELATION_STATEMENT  DEFINITION=&quot;condition&quot; REFERENCE=&quot;U1&quot;/> <RELATION_STATEMENT  DEFINITION=&quot;condition&quot; REFERENCE=&quot;DM1&quot;/> </CONDITIONS> <TARGETS> <RELATION_STATEMENT  DEFINITION=&quot;target&quot; REFERENCE=&quot;P1&quot;/> </TARGETS> </PREFERENCE>
Bindings ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Binding example ,[object Object],<PREFERENCE ID=&quot;G1&quot;> <CONDITIONS> <RELATION_STATEMENT  DEFINITION=&quot;condition&quot; REFERENCE=&quot;U1&quot;/> </CONDITIONS> <TARGETS> <RELATION_STATEMENT  DEFINITION=&quot;target&quot; REFERENCE=&quot;P1&quot;/> </TARGETS> </PREFERENCE>
Ordered Preferences ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ordered preference example ,[object Object],<PREFERENCE ID=&quot;G1&quot;> <CONDITIONS> <RELATION_STATEMENT  DEFINITION=&quot;condition&quot; REFERENCE=&quot;U1&quot;/> <RELATION_STATEMENT  DEFINITION=&quot;condition&quot; REFERENCE=&quot;DM1&quot;/> </CONDITIONS> <TARGETS> <RELATION_STATEMENT  DEFINITION=&quot;target&quot; REFERENCE=&quot;P1&quot;> < ATTRIBUTE_STATEMENT  DEFINITION=&quot;priority&quot;> 100 </ATTRIBUTE_STATEMENT> </RELATION_STATEMENT> <RELATION_STATEMENT  DEFINITION=&quot;target&quot; REFERENCE=&quot;P2&quot;> <ATTRIBUTE_STATEMENT  DEFINITION=&quot;priority&quot;> 50 </ATTRIBUTE_STATEMENT> </RELATION_STATEMENT> </TARGETS> </PREFERENCE>
Summary of Concrete Preferences ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Abstract Preferences ,[object Object],[object Object],[object Object],[object Object],[object Object]
Example of Abstract Preference ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Abstract preference example ,[object Object],<PREFERENCE ID=&quot;G1&quot;> <CONDITIONS> <RELATION_STATEMENT  DEFINITION=&quot;condition&quot; REFERENCE=&quot;U1&quot;/> </CONDITIONS> <TARGETS> <RELATION_STATEMENT  DEFINITION=&quot;target&quot; REFERENCE=&quot;P1&quot;/> <RELATION_STATEMENT  DEFINITION=&quot;target&quot; REFERENCE=&quot;P2&quot;/> </TARGETS> <CRITERIA> <RELATION_STATEMENT  DEFINITION=&quot;criteria&quot;  REFERENCE=&quot;screen space&quot;> <ATTRIBUTE_STATEMENT  DEFINITION=&quot;criteria type&quot;> preferential </ATTRIBUTE_STATEMENT> <ATTRIBUTE_STATEMENT  DEFINITION=&quot;criteria behavior&quot;> minimum </ATTRIBUTE_S TATEMENT> </RELATION_STATEMENT> </CRITERIA> </PREFERENCE>
Multiple Preferential Criteria ,[object Object],[object Object],[object Object],[object Object]
Design Guidelines ,[object Object],[object Object],[object Object],[object Object]
Chaining Abstract Preferences ,[object Object],[object Object],[object Object],[object Object],[object Object]
Chaining Design Guidelines ,[object Object],[object Object],[object Object],[object Object]
How to argue for preference? ,[object Object],Question? [McLean & Belotti,1998] Criteria 1 Criteria 2 Criteria  j Criteria  m Option 1 Option 2 Option  i Option  n = negatively affects = positively affects
Preference example Problem Solution 1 Solution 2 (RE1) (RE2) suggests suggests avoids contradicts respects = for = against (A1) = drop down list requires less space than radio buttons (A2) = some possible values become obsolete when they are infrequently used (A3) = drop down list shows better then current value than the possible values (A4) = radio buttons are faster and easier to manipulate than drop down list (A5) = radio buttons are recommended in Microsoft Windows style guide (A6) = radio buttons do not allow users to change the values drop down list radio buttons (A4) is contradicted by (A2) and (A3) : the widget should be more used for output than input. (A6) is contradicted by (A3) : it is better to present all possible values than only one at a time (A5) is an autority argument , and can fall in front of (A1)+(A2)+(A3) [Vanderdonckt,1997] (A1) (A2) (A3) (A4) (A5) (A6) Standard compatibility   (e.g. Windows) Cognitive respect Minimal actions Dialog representativity Prompting Clarity contradicts
Theory or argumentation [Toulmin,1975] [Perelman, 1978] Design problem Design option parameter (parameter, value) Is described by Is solved by Accepted solution Set of admissible solutions Solution 1 Solution 2 Solution n Counter-argument (rebuttal, counter-claim) Argument (ground, typically data) can be rejected because of Can be accepted thanks to Is justified by Design claim Warrant Is reinforced by Qualifier satisfied unsatisfied Is related to corresponds to Is justified by Is qualified by
Mixed reality ,[object Object]
Mixed reality for games [Alterface,2006]
Mixed reality in surgery ,[object Object],[object Object],[object Object],[object Object],Adaptive IS composition  based on focus of interest [Trevisan et al.,2004]
Composing the MIS Real CIO Patient head Virtual CIOs Anatomic organs Virtual CIOs Annotations Primary object  of interest
Annotation placement strategy  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Context-aware Multimodal Annotation Rendering (a) Background context (b) Background/Real  Object context (c) Virtual Object context ,[object Object],[object Object],[object Object],User focus controls adaptive  presentation management
Context model in mixed reality ,[object Object],[object Object],[object Object],[object Object]
Plasticity analysis and usability evaluation Plasticity Domains  in the MIS Plasticity thresholds and context  boundary values Inter-context continuity  Perceptive, cognitive, functional intra-context continuity and inter-context continuity Intra-context / inter-context frequency and frequency switch Refined Metrics for Plastic MR systems
What do we have now? Final user Interface T Concrete user Interface T Task and  Domain T Abstract user Interface T T=Target context of use Concrete user Interface S Final user Interface S Task and  Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S User T Environment T Reification Abstraction Reflexion Translation Platform S Environment S Platform T
Conclusion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evaluation [Skezely,1996] 0 2000 4000 6000 8000 10000 12000 14000 16000 Word KB KB Parser Query Network ops. UI states Presentation Actions Update Interactions Application logic User interface Generated code Models
Coverage ,[object Object],[object Object],[object Object],[object Object],Capabilities Resources (time, experience,…) 100% 50% Ceiling Threshold First generation Second generation MDA CASE tools Interface builders and integrated environments Resource win for applications supported by MDA-compliant tools Resource win for applications supported by first-generation
What’s the User Interface language? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion: the big picture of MDA UsiXML model: Abstract user interface UsiXML model: Concrete user interface Rendering Final user interface UsiXML models: task, domain Generative programming Graph transformations Graph transformations Derivation rules IdealXML ReversiXML FlashiXML QtkXML JaviXML VisualiXML TransformiXML GrafiXML VisiXML SketchiXML FormiXML KnowiXML MethodiXML
The Invisible UI All Applications Adapted from [Palanque,2002] Target Applications, Domains  Notations and tools User Interface Interaction Technique No more programming: only models 2020 2006 TODAY 2008 2007 No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams Multi-platform User Interfaces Web, Java applications Task model, context model, UML ,… Virtual Reality User Interfaces 3D Applications Scene model Mixed Reality User Interfaces Command and control systems, games World models Tangible UIs Embodied UIs Physical models Embarked syst
Thank you very much for your attention For more information and downloading, http://www.isys.ucl.ac.be/bchi   http://www.usixml.org User Interface eXtensible Markup Language http://www.similar.cc European network on Multimodal UIs Special thanks to all members of the team!

More Related Content

What's hot

USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTvicci4041
 
16 user interfacedesign
16 user interfacedesign16 user interfacedesign
16 user interfacedesignrandhirlpu
 
user support system in HCI
user support system in HCIuser support system in HCI
user support system in HCIUsman Mukhtar
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface designPreeti Mishra
 
HCI 3e - Ch 7: Design rules
HCI 3e - Ch 7:  Design rulesHCI 3e - Ch 7:  Design rules
HCI 3e - Ch 7: Design rulesAlan Dix
 
Ch09-User Interface Design
Ch09-User Interface DesignCh09-User Interface Design
Ch09-User Interface DesignFajar Baskoro
 
Mobile UI Design – User Centered Design and UI Best Practices
Mobile UI Design – User Centered Design and UI Best PracticesMobile UI Design – User Centered Design and UI Best Practices
Mobile UI Design – User Centered Design and UI Best PracticesOXD
 
User Interface Design
User Interface DesignUser Interface Design
User Interface DesignJReifman
 
CSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationCSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationSalocin Dot TEN
 
User interface design(sommerville) bangalore university
User interface design(sommerville) bangalore universityUser interface design(sommerville) bangalore university
User interface design(sommerville) bangalore universityJaisha Shankar
 
Graphical user interface of web form
Graphical user interface of web formGraphical user interface of web form
Graphical user interface of web formmentorrbuddy
 
HCI 3e - Ch 6: HCI in the software process
HCI 3e - Ch 6:  HCI in the software processHCI 3e - Ch 6:  HCI in the software process
HCI 3e - Ch 6: HCI in the software processAlan Dix
 
golden rules of user interface design
golden rules of user interface designgolden rules of user interface design
golden rules of user interface designgadige harshini
 
Software Usability Implications in Requirements and Design
Software Usability Implications in Requirements and DesignSoftware Usability Implications in Requirements and Design
Software Usability Implications in Requirements and DesignNatalia Juristo
 
Chapter 11 designing interfaces and dialogues
Chapter 11 designing interfaces and dialoguesChapter 11 designing interfaces and dialogues
Chapter 11 designing interfaces and dialoguesJob Master
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
User interface design
User interface designUser interface design
User interface designSlideshare
 

What's hot (20)

Chapter 12 user interface design
Chapter 12 user interface designChapter 12 user interface design
Chapter 12 user interface design
 
Seii unit5 ui_design
Seii unit5 ui_designSeii unit5 ui_design
Seii unit5 ui_design
 
USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPT
 
16 user interfacedesign
16 user interfacedesign16 user interfacedesign
16 user interfacedesign
 
user support system in HCI
user support system in HCIuser support system in HCI
user support system in HCI
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface design
 
HCI 3e - Ch 7: Design rules
HCI 3e - Ch 7:  Design rulesHCI 3e - Ch 7:  Design rules
HCI 3e - Ch 7: Design rules
 
Ch09-User Interface Design
Ch09-User Interface DesignCh09-User Interface Design
Ch09-User Interface Design
 
Mobile UI Design – User Centered Design and UI Best Practices
Mobile UI Design – User Centered Design and UI Best PracticesMobile UI Design – User Centered Design and UI Best Practices
Mobile UI Design – User Centered Design and UI Best Practices
 
User Interface Design
User Interface DesignUser Interface Design
User Interface Design
 
CSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationCSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 Documentation
 
User interface design(sommerville) bangalore university
User interface design(sommerville) bangalore universityUser interface design(sommerville) bangalore university
User interface design(sommerville) bangalore university
 
Graphical user interface of web form
Graphical user interface of web formGraphical user interface of web form
Graphical user interface of web form
 
HCI 3e - Ch 6: HCI in the software process
HCI 3e - Ch 6:  HCI in the software processHCI 3e - Ch 6:  HCI in the software process
HCI 3e - Ch 6: HCI in the software process
 
golden rules of user interface design
golden rules of user interface designgolden rules of user interface design
golden rules of user interface design
 
Chap01
Chap01Chap01
Chap01
 
Software Usability Implications in Requirements and Design
Software Usability Implications in Requirements and DesignSoftware Usability Implications in Requirements and Design
Software Usability Implications in Requirements and Design
 
Chapter 11 designing interfaces and dialogues
Chapter 11 designing interfaces and dialoguesChapter 11 designing interfaces and dialogues
Chapter 11 designing interfaces and dialogues
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
User interface design
User interface designUser interface design
User interface design
 

Similar to Model-driven engineering of user interfaces

Ui Design And Usability For Everybody
Ui Design And Usability For EverybodyUi Design And Usability For Everybody
Ui Design And Usability For EverybodyEmpatika
 
Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)Howard Kramer
 
Ni week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothatNi week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothatDMC, Inc.
 
When User Interface Patterns Become Mobile
When User Interface Patterns Become MobileWhen User Interface Patterns Become Mobile
When User Interface Patterns Become MobileJean Vanderdonckt
 
Top tasks one hour workshop
Top tasks one hour workshopTop tasks one hour workshop
Top tasks one hour workshopSteffen Longfors
 
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...Jean Vanderdonckt
 
Optimizing Mobile UX Design Webinar Presentation Slides
Optimizing Mobile UX Design Webinar Presentation SlidesOptimizing Mobile UX Design Webinar Presentation Slides
Optimizing Mobile UX Design Webinar Presentation SlidesUserZoom
 
Intro to User Centered Design Workshop
Intro to User Centered Design WorkshopIntro to User Centered Design Workshop
Intro to User Centered Design WorkshopPatrick McNeil
 
Linking Education with Employment Outcomes (LEEO) in a NAF Academy
Linking Education with Employment Outcomes (LEEO) in a NAF AcademyLinking Education with Employment Outcomes (LEEO) in a NAF Academy
Linking Education with Employment Outcomes (LEEO) in a NAF AcademyNAFCareerAcads
 
1 - Designing A Site
1 - Designing A Site1 - Designing A Site
1 - Designing A SiteGraeme Smith
 
Msr14 tutorial 4upload
Msr14 tutorial 4uploadMsr14 tutorial 4upload
Msr14 tutorial 4uploadWalid Maalej
 
Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)Howard Kramer
 
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...Harvard Web Working Group
 
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...dtremonte
 
Final Presentation
Final PresentationFinal Presentation
Final PresentationJordan King
 

Similar to Model-driven engineering of user interfaces (20)

Ui Design And Usability For Everybody
Ui Design And Usability For EverybodyUi Design And Usability For Everybody
Ui Design And Usability For Everybody
 
Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)
 
Ni week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothatNi week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothat
 
When User Interface Patterns Become Mobile
When User Interface Patterns Become MobileWhen User Interface Patterns Become Mobile
When User Interface Patterns Become Mobile
 
Top tasks one hour workshop
Top tasks one hour workshopTop tasks one hour workshop
Top tasks one hour workshop
 
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
Model-Driven Engineering of User Interfaces: Promises, Successes, Failures, a...
 
Optimizing Mobile UX Design Webinar Presentation Slides
Optimizing Mobile UX Design Webinar Presentation SlidesOptimizing Mobile UX Design Webinar Presentation Slides
Optimizing Mobile UX Design Webinar Presentation Slides
 
Website Usability
Website UsabilityWebsite Usability
Website Usability
 
Intro to User Centered Design Workshop
Intro to User Centered Design WorkshopIntro to User Centered Design Workshop
Intro to User Centered Design Workshop
 
Linking Education with Employment Outcomes (LEEO) in a NAF Academy
Linking Education with Employment Outcomes (LEEO) in a NAF AcademyLinking Education with Employment Outcomes (LEEO) in a NAF Academy
Linking Education with Employment Outcomes (LEEO) in a NAF Academy
 
Ch11
Ch11Ch11
Ch11
 
UXCampDC 2010 - Agile UX
UXCampDC 2010 - Agile UXUXCampDC 2010 - Agile UX
UXCampDC 2010 - Agile UX
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
1 - Designing A Site
1 - Designing A Site1 - Designing A Site
1 - Designing A Site
 
Web Design Process
Web Design ProcessWeb Design Process
Web Design Process
 
Msr14 tutorial 4upload
Msr14 tutorial 4uploadMsr14 tutorial 4upload
Msr14 tutorial 4upload
 
Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)Designing and evaluating web sites using universal design principles (hands on)
Designing and evaluating web sites using universal design principles (hands on)
 
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
 
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
Demystifying UX – A toolkit approach to better, cheaper & faster experience d...
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
 

More from Jean Vanderdonckt

To the end of our possibilities with Adaptive User Interfaces
To the end of our possibilities with Adaptive User InterfacesTo the end of our possibilities with Adaptive User Interfaces
To the end of our possibilities with Adaptive User InterfacesJean Vanderdonckt
 
Engineering the Transition of Interactive Collaborative Software from Cloud C...
Engineering the Transition of Interactive Collaborative Software from Cloud C...Engineering the Transition of Interactive Collaborative Software from Cloud C...
Engineering the Transition of Interactive Collaborative Software from Cloud C...Jean Vanderdonckt
 
UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...
UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...
UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...Jean Vanderdonckt
 
µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...
µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...
µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...Jean Vanderdonckt
 
RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...
RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...
RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...Jean Vanderdonckt
 
Gesture-based information systems: from DesignOps to DevOps
Gesture-based information systems: from DesignOps to DevOpsGesture-based information systems: from DesignOps to DevOps
Gesture-based information systems: from DesignOps to DevOpsJean Vanderdonckt
 
Engineering Slidable User Interfaces with Slime
Engineering Slidable User Interfaces with SlimeEngineering Slidable User Interfaces with Slime
Engineering Slidable User Interfaces with SlimeJean Vanderdonckt
 
Evaluating Gestural Interaction: Models, Methods, and Measures
Evaluating Gestural Interaction: Models, Methods, and MeasuresEvaluating Gestural Interaction: Models, Methods, and Measures
Evaluating Gestural Interaction: Models, Methods, and MeasuresJean Vanderdonckt
 
Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...
Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...
Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...Jean Vanderdonckt
 
Designing Gestural Interaction: Challenges and Pitfalls
Designing Gestural Interaction: Challenges and PitfallsDesigning Gestural Interaction: Challenges and Pitfalls
Designing Gestural Interaction: Challenges and PitfallsJean Vanderdonckt
 
Fundamentals of Gestural Interaction
Fundamentals of Gestural InteractionFundamentals of Gestural Interaction
Fundamentals of Gestural InteractionJean Vanderdonckt
 
Gestural Interaction, Is it Really Natural?
Gestural Interaction, Is it Really Natural?Gestural Interaction, Is it Really Natural?
Gestural Interaction, Is it Really Natural?Jean Vanderdonckt
 
User-centred Development of a Clinical Decision-support System for Breast Can...
User-centred Development of a Clinical Decision-support System for Breast Can...User-centred Development of a Clinical Decision-support System for Breast Can...
User-centred Development of a Clinical Decision-support System for Breast Can...Jean Vanderdonckt
 
Simplifying the Development of Cross-Platform Web User Interfaces by Collabo...
Simplifying the Development of  Cross-Platform Web User Interfaces by Collabo...Simplifying the Development of  Cross-Platform Web User Interfaces by Collabo...
Simplifying the Development of Cross-Platform Web User Interfaces by Collabo...Jean Vanderdonckt
 
Attach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you WorkAttach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you WorkJean Vanderdonckt
 
The Impact of Comfortable Viewing Positions on Smart TV Gestures
The Impact of Comfortable Viewing Positions on Smart TV GesturesThe Impact of Comfortable Viewing Positions on Smart TV Gestures
The Impact of Comfortable Viewing Positions on Smart TV GesturesJean Vanderdonckt
 
Head and Shoulders Gestures: Exploring User-De fined Gestures with Upper Body
Head and Shoulders Gestures: Exploring User-Defined Gestures with Upper BodyHead and Shoulders Gestures: Exploring User-Defined Gestures with Upper Body
Head and Shoulders Gestures: Exploring User-De fined Gestures with Upper BodyJean Vanderdonckt
 
G-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for Smartphones
G-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for SmartphonesG-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for Smartphones
G-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for SmartphonesJean Vanderdonckt
 
Vector-based, Structure Preserving Stroke Gesture Recognition
Vector-based, Structure Preserving Stroke Gesture RecognitionVector-based, Structure Preserving Stroke Gesture Recognition
Vector-based, Structure Preserving Stroke Gesture RecognitionJean Vanderdonckt
 
An ontology for reasoning on body-based gestures
 An ontology for reasoning on body-based gestures An ontology for reasoning on body-based gestures
An ontology for reasoning on body-based gesturesJean Vanderdonckt
 

More from Jean Vanderdonckt (20)

To the end of our possibilities with Adaptive User Interfaces
To the end of our possibilities with Adaptive User InterfacesTo the end of our possibilities with Adaptive User Interfaces
To the end of our possibilities with Adaptive User Interfaces
 
Engineering the Transition of Interactive Collaborative Software from Cloud C...
Engineering the Transition of Interactive Collaborative Software from Cloud C...Engineering the Transition of Interactive Collaborative Software from Cloud C...
Engineering the Transition of Interactive Collaborative Software from Cloud C...
 
UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...
UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...
UsyBus: A Communication Framework among Reusable Agents integrating Eye-Track...
 
µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...
µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...
µV: An Articulation, Rotation, Scaling, and Translation Invariant (ARST) Mult...
 
RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...
RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...
RepliGES and GEStory: Visual Tools for Systematizing and Consolidating Knowle...
 
Gesture-based information systems: from DesignOps to DevOps
Gesture-based information systems: from DesignOps to DevOpsGesture-based information systems: from DesignOps to DevOps
Gesture-based information systems: from DesignOps to DevOps
 
Engineering Slidable User Interfaces with Slime
Engineering Slidable User Interfaces with SlimeEngineering Slidable User Interfaces with Slime
Engineering Slidable User Interfaces with Slime
 
Evaluating Gestural Interaction: Models, Methods, and Measures
Evaluating Gestural Interaction: Models, Methods, and MeasuresEvaluating Gestural Interaction: Models, Methods, and Measures
Evaluating Gestural Interaction: Models, Methods, and Measures
 
Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...
Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...
Conducting a Gesture Elicitation Study: How to Get the Best Gestures From Peo...
 
Designing Gestural Interaction: Challenges and Pitfalls
Designing Gestural Interaction: Challenges and PitfallsDesigning Gestural Interaction: Challenges and Pitfalls
Designing Gestural Interaction: Challenges and Pitfalls
 
Fundamentals of Gestural Interaction
Fundamentals of Gestural InteractionFundamentals of Gestural Interaction
Fundamentals of Gestural Interaction
 
Gestural Interaction, Is it Really Natural?
Gestural Interaction, Is it Really Natural?Gestural Interaction, Is it Really Natural?
Gestural Interaction, Is it Really Natural?
 
User-centred Development of a Clinical Decision-support System for Breast Can...
User-centred Development of a Clinical Decision-support System for Breast Can...User-centred Development of a Clinical Decision-support System for Breast Can...
User-centred Development of a Clinical Decision-support System for Breast Can...
 
Simplifying the Development of Cross-Platform Web User Interfaces by Collabo...
Simplifying the Development of  Cross-Platform Web User Interfaces by Collabo...Simplifying the Development of  Cross-Platform Web User Interfaces by Collabo...
Simplifying the Development of Cross-Platform Web User Interfaces by Collabo...
 
Attach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you WorkAttach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you Work
 
The Impact of Comfortable Viewing Positions on Smart TV Gestures
The Impact of Comfortable Viewing Positions on Smart TV GesturesThe Impact of Comfortable Viewing Positions on Smart TV Gestures
The Impact of Comfortable Viewing Positions on Smart TV Gestures
 
Head and Shoulders Gestures: Exploring User-De fined Gestures with Upper Body
Head and Shoulders Gestures: Exploring User-Defined Gestures with Upper BodyHead and Shoulders Gestures: Exploring User-Defined Gestures with Upper Body
Head and Shoulders Gestures: Exploring User-De fined Gestures with Upper Body
 
G-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for Smartphones
G-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for SmartphonesG-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for Smartphones
G-Menu: A Keyword-by-Gesture based Dynamic Menu Interface for Smartphones
 
Vector-based, Structure Preserving Stroke Gesture Recognition
Vector-based, Structure Preserving Stroke Gesture RecognitionVector-based, Structure Preserving Stroke Gesture Recognition
Vector-based, Structure Preserving Stroke Gesture Recognition
 
An ontology for reasoning on body-based gestures
 An ontology for reasoning on body-based gestures An ontology for reasoning on body-based gestures
An ontology for reasoning on body-based gestures
 

Recently uploaded

House of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview documentHouse of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview documentHenry Tapper
 
Classical Theory of Macroeconomics by Adam Smith
Classical Theory of Macroeconomics by Adam SmithClassical Theory of Macroeconomics by Adam Smith
Classical Theory of Macroeconomics by Adam SmithAdamYassin2
 
212MTAMount Durham University Bachelor's Diploma in Technology
212MTAMount Durham University Bachelor's Diploma in Technology212MTAMount Durham University Bachelor's Diploma in Technology
212MTAMount Durham University Bachelor's Diploma in Technologyz xss
 
Managing Finances in a Small Business (yes).pdf
Managing Finances  in a Small Business (yes).pdfManaging Finances  in a Small Business (yes).pdf
Managing Finances in a Small Business (yes).pdfmar yame
 
Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...
Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...
Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...First NO1 World Amil baba in Faisalabad
 
(中央兰开夏大学毕业证学位证成绩单-案例)
(中央兰开夏大学毕业证学位证成绩单-案例)(中央兰开夏大学毕业证学位证成绩单-案例)
(中央兰开夏大学毕业证学位证成绩单-案例)twfkn8xj
 
Quantitative Analysis of Retail Sector Companies
Quantitative Analysis of Retail Sector CompaniesQuantitative Analysis of Retail Sector Companies
Quantitative Analysis of Retail Sector Companiesprashantbhati354
 
PMFBY , Pradhan Mantri Fasal bima yojna
PMFBY , Pradhan Mantri  Fasal bima yojnaPMFBY , Pradhan Mantri  Fasal bima yojna
PMFBY , Pradhan Mantri Fasal bima yojnaDharmendra Kumar
 
Call Girls Near Delhi Pride Hotel, New Delhi|9873777170
Call Girls Near Delhi Pride Hotel, New Delhi|9873777170Call Girls Near Delhi Pride Hotel, New Delhi|9873777170
Call Girls Near Delhi Pride Hotel, New Delhi|9873777170Sonam Pathan
 
NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...
NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...
NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...Amil baba
 
BPPG response - Options for Defined Benefit schemes - 19Apr24.pdf
BPPG response - Options for Defined Benefit schemes - 19Apr24.pdfBPPG response - Options for Defined Benefit schemes - 19Apr24.pdf
BPPG response - Options for Defined Benefit schemes - 19Apr24.pdfHenry Tapper
 
Governor Olli Rehn: Dialling back monetary restraint
Governor Olli Rehn: Dialling back monetary restraintGovernor Olli Rehn: Dialling back monetary restraint
Governor Olli Rehn: Dialling back monetary restraintSuomen Pankki
 
AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...
AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...
AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...yordanosyohannes2
 
NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...
NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...
NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...Amil Baba Dawood bangali
 
Financial Leverage Definition, Advantages, and Disadvantages
Financial Leverage Definition, Advantages, and DisadvantagesFinancial Leverage Definition, Advantages, and Disadvantages
Financial Leverage Definition, Advantages, and Disadvantagesjayjaymabutot13
 
SBP-Market-Operations and market managment
SBP-Market-Operations and market managmentSBP-Market-Operations and market managment
SBP-Market-Operations and market managmentfactical
 
(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办
(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办
(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办fqiuho152
 
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》rnrncn29
 
NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...
NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...
NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...Amil baba
 

Recently uploaded (20)

House of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview documentHouse of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview document
 
Classical Theory of Macroeconomics by Adam Smith
Classical Theory of Macroeconomics by Adam SmithClassical Theory of Macroeconomics by Adam Smith
Classical Theory of Macroeconomics by Adam Smith
 
212MTAMount Durham University Bachelor's Diploma in Technology
212MTAMount Durham University Bachelor's Diploma in Technology212MTAMount Durham University Bachelor's Diploma in Technology
212MTAMount Durham University Bachelor's Diploma in Technology
 
Managing Finances in a Small Business (yes).pdf
Managing Finances  in a Small Business (yes).pdfManaging Finances  in a Small Business (yes).pdf
Managing Finances in a Small Business (yes).pdf
 
Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...
Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...
Authentic No 1 Amil Baba In Pakistan Authentic No 1 Amil Baba In Karachi No 1...
 
(中央兰开夏大学毕业证学位证成绩单-案例)
(中央兰开夏大学毕业证学位证成绩单-案例)(中央兰开夏大学毕业证学位证成绩单-案例)
(中央兰开夏大学毕业证学位证成绩单-案例)
 
Quantitative Analysis of Retail Sector Companies
Quantitative Analysis of Retail Sector CompaniesQuantitative Analysis of Retail Sector Companies
Quantitative Analysis of Retail Sector Companies
 
PMFBY , Pradhan Mantri Fasal bima yojna
PMFBY , Pradhan Mantri  Fasal bima yojnaPMFBY , Pradhan Mantri  Fasal bima yojna
PMFBY , Pradhan Mantri Fasal bima yojna
 
Call Girls Near Delhi Pride Hotel, New Delhi|9873777170
Call Girls Near Delhi Pride Hotel, New Delhi|9873777170Call Girls Near Delhi Pride Hotel, New Delhi|9873777170
Call Girls Near Delhi Pride Hotel, New Delhi|9873777170
 
NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...
NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...
NO1 WorldWide Love marriage specialist baba ji Amil Baba Kala ilam powerful v...
 
BPPG response - Options for Defined Benefit schemes - 19Apr24.pdf
BPPG response - Options for Defined Benefit schemes - 19Apr24.pdfBPPG response - Options for Defined Benefit schemes - 19Apr24.pdf
BPPG response - Options for Defined Benefit schemes - 19Apr24.pdf
 
Governor Olli Rehn: Dialling back monetary restraint
Governor Olli Rehn: Dialling back monetary restraintGovernor Olli Rehn: Dialling back monetary restraint
Governor Olli Rehn: Dialling back monetary restraint
 
AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...
AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...
AfRESFullPaper22018EmpiricalPerformanceofRealEstateInvestmentTrustsandShareho...
 
NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...
NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...
NO1 Certified Ilam kala Jadu Specialist Expert In Bahawalpur, Sargodha, Sialk...
 
Financial Leverage Definition, Advantages, and Disadvantages
Financial Leverage Definition, Advantages, and DisadvantagesFinancial Leverage Definition, Advantages, and Disadvantages
Financial Leverage Definition, Advantages, and Disadvantages
 
SBP-Market-Operations and market managment
SBP-Market-Operations and market managmentSBP-Market-Operations and market managment
SBP-Market-Operations and market managment
 
Q1 2024 Newsletter | Financial Synergies Wealth Advisors
Q1 2024 Newsletter | Financial Synergies Wealth AdvisorsQ1 2024 Newsletter | Financial Synergies Wealth Advisors
Q1 2024 Newsletter | Financial Synergies Wealth Advisors
 
(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办
(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办
(办理原版一样)QUT毕业证昆士兰科技大学毕业证学位证留信学历认证成绩单补办
 
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
 
NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...
NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...
NO1 Certified Amil Baba In Lahore Kala Jadu In Lahore Best Amil In Lahore Ami...
 

Model-driven engineering of user interfaces

  • 1. Model-Driven Engineering of User Interfaces Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management (LSM) Information Systems Unit (ISYS) Belgian Laboratory of Computer-Human Interaction (BCHI) http://www.isys.ucl.ac.be/bchi
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Adapted from [Palanque,2002] Target Applications, Domains Notations and tools User Interface Interaction Techniques 2006 TODAY No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams
  • 7.
  • 9.
  • 10.
  • 12. Multiplicity of contexts of use Day 1: Why? TV is multi-media family device #1 Family Device Booking notification Everywhere connectivity for simple data exchange Travelling Travel booking site Powerful interface for complex operations Working Multimedia Travel programme Sporting Experience Role Location
  • 13.
  • 14. Is this web site usable? Day 1: Why?
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Simple choice Mixed domain: Know domain: Day 1: Why? [Vanderdonckt & Faulkner,2002] Unknown domain : Amount of possible values  [2,3] Amount of possible values  [8,50] Amount of possible values  [4,7] Amount of possible values  ]50,+  [ Amount of possible values  [2,3] Amount of possible values  [4,7] Amount of possible values  [8,50] Amount of possible values  ]50,+  [
  • 27. Choix multiple Mixed domain: Known domain: Day 1: Why? [Vanderdonckt & Faulkner,2002] Domaine inconnu : Amount of possible values  [4,7] Amount of possible values  [8,50] Amount of possible values  ]50,+  [ Amount of possible values  [2,3] Amount of possible values  [4,7] Amount of possible values  [8,50] Amount of possible values  ]50,+  [ Amount of possible values  [2,3]
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. Derivation panel with preview CTTE Operator Operator parameters Design comment resulting from Applying guidelines Design Preview that dynamically changes according to parameters Legends Day 1: Why? [Vanderdonckt et al.,2003]
  • 45.
  • 46.
  • 47.
  • 48.
  • 50. What do we want to get? Final user Interface T Concrete user Interface T Task and Domain T Abstract user Interface T T=Target context of use Concrete user Interface S Final user Interface S Task and Domain S Abstract user Interface S S=Source context of use http://www.plasticity.org UsiXML unsupported model UsiXML supported model User S User T Day 2: What? [Calvary et al.,2003] Environment T Reification Abstraction Reflexion Translation Platform S Environment S Platform T
  • 51.
  • 52.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58. Adapted from [Palanque,2002] Target Applications, Domains Notations and tools User Interface Interaction Technique 2006 TODAY 2007 No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams Multi-platform User Interfaces Web, Java applications Task model, context model, UML ,…
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69. MDE based on UsiXML Model to Model Platform Independent Model (PIM) Platform Specific Model (PSM) Model to Code Source code MDA Components Techniques proposed based on UsiXML Computing Independent Model (CIM) Model to Model UsiXML model: Abstract user interface UsiXML model: Concrete user interface Rendering Final user interface UsiXML models: task, domain Graph transformations Graph transformations
  • 70. CIM Step 1: Task model
  • 71.
  • 72.
  • 73. New Abstraction: the task meta-model [Limbourg,2004]
  • 74. CIM Step 2: domain model [Limbourg,2004]
  • 75. CIM Step 3: Task-domain mappings IdealXML [Limbourg,2004]
  • 76.
  • 78.
  • 80. Example of AUI produced
  • 81. Mapping the models [Montero,2005] triggers (tg): { , } x updates (up): x observes (ob): x isExecutedIn (ex): x manipulates (ma): { , } x These mappings can be established:
  • 82.
  • 83.
  • 86. Task and domain models [Montero,2005]
  • 87. Typed Model-to-Model Transformation Uses language Meta-Meta-Model Graph Structure is instance of Meta-Model Our Meta-Model Meta-Model Subset 1 e.g., Task+Domain Model is instance of Meta-Model Subset 2 e.g., Concrete UI Model is instance of Initial UI Model e.g., MyTaskAndDomainModel Resultant UI Model e.g., MyConcreteUIModel Transformation Rule Our transformation catalog [Limbourg,2004]
  • 88.
  • 89.
  • 90. Transformation system [Limbourg,2004] G Host USIXM specification G’ Resultant USIXM specification LHS RHS Matches - Co-Matches Is Transformed Into Is Transformed Into Transformation Rule 1 Transformation Rule 2 … Transformation Rule N Transformation System NAC Not Matches +
  • 91.
  • 92. PIM step: task+domain to AUI Identification of AUI structure Spatio-Temporal Arrangement of AIOs Selection of AIC Definition of Abstract Dialog Control STEP : From Task & Domain to AUI SUB-STEPS Derivation of AUI to Domain Relationships
  • 93. How to read a graph transformation? Node type Node (Attribute,value) Edge type Edge (Attribute,value) Node Edge
  • 94. Rule 1 LHS RHS ::= Ø
  • 95. Rule 2 LHS RHS ::=
  • 96. Rule 3 LHS RHS ::=
  • 97. Rule 4 LHS RHS ::= NAC
  • 98. Rule 5 LHS RHS ::= NAC1 NAC2
  • 99. Rule 6 LHS RHS ::=
  • 100. Rule 7 LHS RHS ::= PAC “ X < 3000”
  • 101. Rule 8 LHS RHS ::= PAC “ X > 3000” NAC
  • 102. Rule 9 LHS RHS ::=
  • 103. Rule 10 PAC LHS RHS ::= “ X > Y”
  • 104. PIM sub-step 1: Definition of AUI structure (AC)
  • 105. PIM sub-step 1: Definition of AUI structure (AC)
  • 107.  
  • 108. AC Participate to OpinionPoll AC Answer Poll AC Answer Questionnaire AC Answer Question AIC (Input/Single Selection) Select Proposition AIC (Output) See Statistics AIC (Input/Single Selection ) Chose Poll AIC (Control) Validate Question AIC (Output) Provide Personal Data AIC (Output) Read Question AIC (Input/Single Selection) Chose Questionnaire
  • 109. PIM sub-step 2: definition of AIC types AC = Abstract Container AIC = Abstract Individual Component CIC = Concrete Interaction Component
  • 110. PIM sub-step 3: Definition of spatio-temporal arrangement
  • 111.
  • 112. PSM Step: AUI to CUI Reification of AC into CC Arrangement of CICs Selection of CIC Concrete Dialog Control Definition STEP : From AUI to CUI SUB-STEPS Definition of Navigation Derivation of CUI to Domain Relationships
  • 113. PSM sub-step 3: definition of navigation An example of a complex rule
  • 114. PSM: Concrete User Interface
  • 115. Example: Platform adaptation widget substitution (1) <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?> < cuiModel name =&quot; MyModel &quot;> < version modifDate =&quot; 2004-03-24T17:09:17.402+01:00 &quot; xmlns =&quot;&quot;> 7 </ version > < authorName xmlns =&quot;&quot;> Youri </ authorName > < window height =&quot; 500 &quot; width =&quot; 600 &quot; name =&quot; Formulaire (2/5) &quot; id =&quot; window_1 &quot;> < box relativeHeight =&quot; 100 &quot; name =&quot; box1_0 &quot; id =&quot; box1_0 &quot;> < box type =&quot; vert &quot; name =&quot; boxTodo &quot; id =&quot; boxTodo &quot;> ... < box type =&quot; horiz &quot; name =&quot; box_2_2_2_1 &quot; id =&quot; box_2_2_2_1 &quot;> < textComponent defaultContent =&quot; Sexe &quot; isBold =&quot; true &quot; id =&quot; label_2 &quot;/> < radioButton groupName =“ grupo01 &quot; defaultContent =&quot; Femme &quot; defaultState =&quot; false &quot; id =&quot; radiobutton_0 &quot;/> < radioButton groupName =&quot; grupo01 &quot; defaultContent =&quot; Homme &quot; defaultState =&quot; true &quot; id =&quot; radiobutton_1 &quot;/> </ box > ... </ box > </ box > </ window > </ cuiModel > Excerpt for a UsiXML CUI specification
  • 117. Example: widget substitution (3) The UsiXML graph before applying any rule
  • 118. Example: widget substitution (4) LHS RHS NAC Rule 1: Create a new comboBox with the same id and name as the name of the group of radioButtons.
  • 119. Example: widget substitution (5) Rule 1: Create a new comboBox with the same id and name as the name of the group of radioButtons. The UsiXML graph after applying the first rule
  • 120. Example: widget substitution (6) LHS RHS ::= Rule 2: Convert every radio button within the group “x” into an item for the comboBox “x” that we have just created thanks to Rule 1
  • 121. Example: widget substitution (7) Rule 2: Convert every radioButton within the group “x” into an item for the comboBox “x”, we have just created. The UsiXML graph after applying the second rule: radio buttons disappeared
  • 122. Example: widget substitution (8) <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?> < cuiModel name =&quot; MyModel &quot;> < version modifDate =&quot; 2004-03-24T17:09:17.402+01:00 &quot; xmlns =&quot;&quot;> 7 </ version > < authorName xmlns =&quot;&quot;> Youri </ authorName > < window height =&quot; 500 &quot; width =&quot; 600 &quot; name =&quot; Formulaire (2/5) &quot; id =&quot; window_1 &quot;> < box relativeHeight =&quot; 100 &quot; name =&quot; box1_0 &quot; id =&quot; box1_0 &quot;> < box type =&quot; vert &quot; name =&quot; boxTodo &quot; id =&quot; boxTodo &quot;> ... < box type =&quot; horiz &quot; name =&quot; box_2_2_2_1 &quot; id =&quot; box_2_2_2_1 &quot;> < textComponent defaultContent =&quot; Sexe &quot; isBold =&quot; true &quot; id =&quot; label_2 &quot;/> < comboBox id =&quot; comboBox001 &quot; name =&quot; label_3 &quot; isDropDown =&quot; true &quot;> < item id =&quot; radiobutton_0 &quot; name =&quot; radiobutton_0 &quot; defaultContent =&quot; Femme &quot;/> < item id =&quot; radiobutton_1 &quot; name =&quot; radiobutton_1 &quot; defaultContent =&quot; Homme &quot;/> </ comboBox > ... </ box > </ box > </ window > </ cuiModel > Excerpt from the final transformated UsiXML specification
  • 124. What do we have so far? Concrete user Interface S Final user Interface S Task and Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S Reification Platform S Environment S
  • 126. Mapping the Methodological World onto the Transformation World A development library stores (in usiXML textual format) paths, steps and sub-steps definition and their associated transformation systems and transformation rules Development step Development step Development sub - step Development sub - step Development path Development path Transformation System Transformation System Transformation Rule Transformation Rule isComposedOf isRealizedBy isComposedOf isComposedOf * 1 * 1 1 * 1 0..1 Development step Development step Development sub - step Development sub - step Development path Development path Transformation System Transformation System Transformation Rule Transformation Rule isComposedOf isRealizedBy isComposedOf isComposedOf * 1 * 1 1 * 1 0..1 Methodological World Development step Development step Development sub - step Development sub - step Development path Development path Transformation System Transformation System Transformation Rule Transformation Rule isComposedOf isRealizedBy isComposedOf isComposedOf * 1 * 1 1 * 1 0..1 Transformation World [Limbourg,2004]
  • 127. Multiple development paths Rule n Transformation System 1 Rule 1 Rule 2 … Rule n Transformation System 2 Rule 1 Rule 2 … Rule n Transformation System ... Rule 1 Rule 2 … Rule n Transformation System n Rule 1 Rule 2 … : when source terminates apply target : execute development step Development Step α
  • 128.
  • 129.
  • 130.
  • 131. What is a Feature Model? C F1 C F1 F2 C F1 F2 Dependencies 1. 2. Optional Exclusive Alternate [Schlee & Vanderdonckt,2004]
  • 132. Example of a Feature Model Alternate [Schlee & Vanderdonckt,2004]
  • 133. Interpretation of a feature model C F1 F2 F3 F2a F2b F3a F3b C F1 F2 F3 F2a F2b F3a F3b 0 1 1 1 1 0 0 UsiXML Specifications <C> <F1>0</F1> <F2>1 <F2a>1</F2a> <F2b>0</F2b> </F2> <F3>1 <F3a>0</F3a> <F3b>1</F3b> </F3> </C> ABA ANGIE-Part [Schlee & Vanderdonckt,2004]
  • 134. Generative Programming void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const; ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& chann elMix ImgProcessT<T> & channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); V oid channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const; ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); public: ImgProcessT(const char* const psz = &quot;&quot;, Pl* ppl = NULL); ImgProcessT(const int&, const int& nWidth = 20, const int& nHeight = 20, const int& nFillColor = 0, ProgressLine* ppl = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT(); virtual char* getClassName() const; virtual char getClassID () const; ImgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T> operator+ (const ImgProcessT<T>&); ImgProcessT<T> operator- (const ImgProcessT<T>&); ImgProcessT<T> operator^ (const ImgProcessT<T>&); ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL); mgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T> operator+ (const ImgProcessT<T>&); ImgProcessT<T> operator- (const ImgProcessT<T>&); ImgProcessT<T> operator^ (const ImgProcessT<T>&); ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const; ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); USIXML Specifications ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL) ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL) Components void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, Pl*), const int& nAngle, Pl* ppl ); void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(Pl*), Pl* ppl ); void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, const int&, const int&, const int& ), const int&, const int&, const int&, const int& ); void channelShowHistogram( int*, const int&, const int&, const int&, const int&, const int&, const int&, const int& n = 0 ) const; void channelFft ( T*, T*, T*, const unsigned int&, const unsigned int&, Pl* ppl = NULL ); void channelIfft ( T*, T*, T*, const unsigned int&, const unsigned int&, Pl* ppl = NULL ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const; ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); public: ImgProcessT(const char* const psz = &quot;&quot;, Pl* ppl = NULL); ImgProcessT(const int&, const int& nWidth = 20, const int& nHeight = 20, const int& nFillColor = 0, ProgressLine* ppl = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT(); virtual char* getClassName() const; virtual char getClassID () const; ImgProcessT<T>& operator+=(const ImgProcessT<T>&); I Final code ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); public: ImgProcessT(const char* const psz = &quot;&quot;, Pl* ppl = NULL); ImgProcessT(const int&, const int& nWidth = 20, const int& nHeight = 20, const int& nFillColor = 0, ProgressLine* ppl = NULL ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); [Schlee & Vanderdonckt,2004]
  • 135.
  • 136. Design Tab Design window Components toolbar Components options
  • 137.
  • 138.
  • 139.
  • 140.
  • 141. What do we have so far? Concrete user Interface S Final user Interface S Task and Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S Reification Platform S Environment S
  • 142.
  • 143.
  • 144. From compiled code [Marion,2005]
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 154.
  • 155. What do we have so far? Concrete user Interface S Final user Interface S Task and Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S Let’s go for adaptation [Calvary et al.,2003] Reification Abstraction Platform S Environment S
  • 156. What do we want to get? Final user Interface T Concrete user Interface T Task and Domain T Abstract user Interface T T=Target context of use Concrete user Interface S Final user Interface S Task and Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S User T [Calvary et al.,2003] Environment T Reification Abstraction Reflexion Translation Platform S Environment S Platform T
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169.
  • 170.
  • 171.
  • 172.
  • 173.
  • 174. Multi-platform for Emergency [Amouh et al.,2005]
  • 175.
  • 176.
  • 177. Graceful degradation [Florins & Vanderdonckt,2004]
  • 179. Transformation rules Add all >> Add > << Remove all < Remove >> > << < > < Group box Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 8 Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 1 Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7
  • 181.
  • 183. Adapted from [Palanque,2002] Target Applications, Domains Notations and tools User Interface Interaction Technique 2006 TODAY 2007 No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams Multi-platform User Interfaces Web, Java applications Task model, context model, UML ,… Virtual Reality User Interfaces 3D Applications Scene model
  • 184.
  • 185.
  • 186. Why take care of multiple displays? [Czerwinsky,2005] Effects of Display Size on Task Times 0 20 40 60 80 100 120 140 160 DISPLAY Average Task Time (Seconds) Small Large
  • 187. Why take care of multiple displays? The tasks were easy to perform 0 1 2 3 4 5 Small Large Display Size Average Rating (1=Disagree, 5=Agree) [Czerwinsky,2005]
  • 188. Why take care of multiple displays? [Czerwinsky,2005]
  • 189. Demonstration DistriXML [Grolaux & Vanderdonckt,2005]
  • 190. Demonstration using two displays from two different computers DistriXML
  • 191. Example using a Pocket PC DistriXML
  • 192.
  • 193.
  • 194.
  • 195.
  • 196. This is not a floating toolbar Process DistriXML
  • 197. This is migration ! Computer B Process Process Computer A DistriXML
  • 198.
  • 199.
  • 200.
  • 201.
  • 202.
  • 203.
  • 204.
  • 205.
  • 206.
  • 207.
  • 208.
  • 209.
  • 210.
  • 211.
  • 212.
  • 213.
  • 214.
  • 215.
  • 216.
  • 217.
  • 218.
  • 219.
  • 220.
  • 221.
  • 222.
  • 223. Preference example Problem Solution 1 Solution 2 (RE1) (RE2) suggests suggests avoids contradicts respects = for = against (A1) = drop down list requires less space than radio buttons (A2) = some possible values become obsolete when they are infrequently used (A3) = drop down list shows better then current value than the possible values (A4) = radio buttons are faster and easier to manipulate than drop down list (A5) = radio buttons are recommended in Microsoft Windows style guide (A6) = radio buttons do not allow users to change the values drop down list radio buttons (A4) is contradicted by (A2) and (A3) : the widget should be more used for output than input. (A6) is contradicted by (A3) : it is better to present all possible values than only one at a time (A5) is an autority argument , and can fall in front of (A1)+(A2)+(A3) [Vanderdonckt,1997] (A1) (A2) (A3) (A4) (A5) (A6) Standard compatibility (e.g. Windows) Cognitive respect Minimal actions Dialog representativity Prompting Clarity contradicts
  • 224. Theory or argumentation [Toulmin,1975] [Perelman, 1978] Design problem Design option parameter (parameter, value) Is described by Is solved by Accepted solution Set of admissible solutions Solution 1 Solution 2 Solution n Counter-argument (rebuttal, counter-claim) Argument (ground, typically data) can be rejected because of Can be accepted thanks to Is justified by Design claim Warrant Is reinforced by Qualifier satisfied unsatisfied Is related to corresponds to Is justified by Is qualified by
  • 225.
  • 226. Mixed reality for games [Alterface,2006]
  • 227.
  • 228. Composing the MIS Real CIO Patient head Virtual CIOs Anatomic organs Virtual CIOs Annotations Primary object of interest
  • 229.
  • 230.
  • 231.
  • 232. Plasticity analysis and usability evaluation Plasticity Domains in the MIS Plasticity thresholds and context boundary values Inter-context continuity Perceptive, cognitive, functional intra-context continuity and inter-context continuity Intra-context / inter-context frequency and frequency switch Refined Metrics for Plastic MR systems
  • 233. What do we have now? Final user Interface T Concrete user Interface T Task and Domain T Abstract user Interface T T=Target context of use Concrete user Interface S Final user Interface S Task and Domain S Abstract user Interface S S=Source context of use UsiXML unsupported model UsiXML supported model User S User T Environment T Reification Abstraction Reflexion Translation Platform S Environment S Platform T
  • 234.
  • 235. Evaluation [Skezely,1996] 0 2000 4000 6000 8000 10000 12000 14000 16000 Word KB KB Parser Query Network ops. UI states Presentation Actions Update Interactions Application logic User interface Generated code Models
  • 236.
  • 237.
  • 238. Conclusion: the big picture of MDA UsiXML model: Abstract user interface UsiXML model: Concrete user interface Rendering Final user interface UsiXML models: task, domain Generative programming Graph transformations Graph transformations Derivation rules IdealXML ReversiXML FlashiXML QtkXML JaviXML VisualiXML TransformiXML GrafiXML VisiXML SketchiXML FormiXML KnowiXML MethodiXML
  • 239. The Invisible UI All Applications Adapted from [Palanque,2002] Target Applications, Domains Notations and tools User Interface Interaction Technique No more programming: only models 2020 2006 TODAY 2008 2007 No Interaction Technique Automated, batch systems Nothing Character UIs Business applications Screen definitions Graphical User Interfaces Information systems Entity-relationship Attribute model State-transition diagrams Multi-platform User Interfaces Web, Java applications Task model, context model, UML ,… Virtual Reality User Interfaces 3D Applications Scene model Mixed Reality User Interfaces Command and control systems, games World models Tangible UIs Embodied UIs Physical models Embarked syst
  • 240. Thank you very much for your attention For more information and downloading, http://www.isys.ucl.ac.be/bchi http://www.usixml.org User Interface eXtensible Markup Language http://www.similar.cc European network on Multimodal UIs Special thanks to all members of the team!