Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) A MDA-Compliant Environment for Developing User Interfaces of Information Systems Presented by Jean Vanderdonckt [email protected] Head of BCHI Lab, http://www.isys.ucl.ac.be/bchi CAiSE'2005 Keynote address - Porto, June 16, 2005 1 « Everything you can imagine is real » (Picasso) « Everything you model can be turned into a real interface » CAiSE'2005 Keynote address - Porto, June 16, 2005 2 Outline 1. 2. 3. 4. 5. Conceptual modeling of user interfaces Forward engineering Reverse engineering Lateral engineering Conclusion CAiSE'2005 Keynote address - Porto, June 16, 2005 3 1.1 Why is conceptual modeling of user interfaces desirable? “The presentation layer outside the scope of CSCD” (Antoni Olivé) – A domain model is certainly not a presentation model, but there could be a mapping between UIs remained for many years the poor parent of conceptual modeling and software engineering – It emerged during late 80’s – Still growing The complexity and the variety of user interfaces (UI) is dramatically increasing The paradigm of « one system fits all » is no longer valid CAiSE'2005 Keynote address - Porto, June 16, 2005 4 1.1 Diversity of users Traditional users People with disabilities – Visual, motor, cognitive CAiSE'2005 Keynote address - Porto, June 16, 2005 5 1.1 Variety of tasks [Forrester Research, Inc., 2003] Users want to determine their path on each platform CAiSE'2005 Keynote address - Porto, June 16, 2005 6 1.1 Heterogeneousness of platforms CAiSE'2005 Keynote address - Porto, June 16, 2005 7 1.1 Multiplicity of contexts of use Location Role Device Experience Sporting Multimedia Travel programme Working Travel booking site Powerful interface for complex operations Travelling Booking notification Everywhere connectivity for simple data exchange Family TV is multi-media family device #1 CAiSE'2005 Keynote address - Porto, June 16, 2005 8 1.1 Consequence Proliferation of developments Platform #1 Platform #2 Platform #3 Platform #4 Application 1 UI #1 UI #2 UI #3 UI #4 Application 2 UI #5 UI #6 UI #7 UI #8 Application 3 UI #9 UI #10 UI #11 UI #12 Application 1 Application 2 Application 3 Platform model #1 Platform #1 Platform model #2 Platform #2 Platform model #3 Platform #3 Platform model #4 Platform #4 UI model #1 UI model #2 UI model #3 CAiSE'2005 Keynote address - Porto, June 16, 2005 9 1.1 Consequence Why is it difficult? – For the designer: • Multiplicity of contexts of use • No systematic design method – For the user: • Poor usability of resulting UI Fold & Drop technique: P. Dragicevic • UI not adapted to the genuine context of use – For the developer: • Increase of development and maintenance costs • Increasing development complexity • Little of no factoring out of common elements CAiSE'2005 Keynote address - Porto, June 16, 2005 10 1.2 What does it cover? Conceptual modeling should cover – Presentation: external manifestation of the UI that is perceivable to the user (static) – Dialog: ordering in time and space of operations performed by the user/system (dynamic) – Modalities of interaction • Graphical • Vocal • Haptic, tactile CAiSE'2005 Keynote address - Porto, June 16, 2005 11 1.2 What does it cover? Platform Environment User Domain Task CAiSE'2005 Keynote address - Porto, June 16, 2005 12 1.3 Abstraction #1: the concrete UI Starting point: FUI = Final User Interface – Mark-up languages: HTML, WML, cHTML – Programming languages: Visual Basic, Java Many manifestations of the same object Abstraction with respect to the toolkit – – – – Presentation aspects Events: generating, passing, controlling Attributes: external (e.g., font) vs internal (e.g. state) Primitives: life cycle CAiSE'2005 Keynote address - Porto, June 16, 2005 13 1.3 Abstraction #1: the concrete UI [Vanderdonckt & Bodart, 1993] IO created IO displayed IO activated IO deactivated IO undisplayed IO destroyed PR_IO_Deactivate PR_IO_Create PR_IO_Display PR_IO_Activate PR_OI_Erase PR_OI_Destroy PR_IO_Activate PR_IO_ChangeAttribute Definitions – Original: Abstract Interaction Object = abstraction of the same Concrete Interaction Objects independently of their underlying presentation and dialog – We have introduced this abstraction in 1993! – Current: Concrete Interaction Object = abstraction of interaction objects with respect to the underlying toolkit CAiSE'2005 Keynote address - Porto, June 16, 2005 14 1.3 Abstraction #1: the concrete UI [Limbourg, 2004] CUI Model CIO graphicalCIO graphicalContainer graphicalIndividualComponent Each graphicalCIO has specific properties such as isVisible, isEnabled, fgColor, and bgColor. Each graphicalCIO is sub-typed into one of the two possible categories: graphicalContainer, and graphicalIndividualCom ponent GrafiXML CAiSE'2005 Keynote address - Porto, June 16, 2005 15 1.3 Abstraction #2: the abstract UI Different CIOs can be used for the same purpose, but with different interaction modalities Definition – Abstract Container = set of Abstract Individual Component – AIC = abstraction of CIOs of the same type, but independently of any interaction modality – Abstract User Interface (AUI) = decomposition into AC+AIC CAiSE'2005 Keynote address - Porto, June 16, 2005 16 1.3 Abstraction #2: the abstract UI [Limbourg, 2004] CAiSE'2005 Keynote address - Porto, June 16, 2005 17 1.3 Abstraction #2: the abstract UI [Montero et al., 2005] Notation: based on canonical abstract prototypes: Larry Constantine, Helmut Windl, James Noble, & Abs.container Lucy Lockwood: http://www.forUse.com A. component input output navigation control select IdealXML CAiSE'2005 Keynote address - Porto, June 16, 2005 18 1.3 Abstraction #3: the task [Paternò et al., 1997] Task = set of actions carried out by a user in a given context to reach a goal Logical decomposition of task into sub-tasks Temporal ordering: LOTOS operators – – – – – – – – – – – – T1 >> T2 T1 [ ]>> T2 T1 |> T2 T1 [ ] T2 T1 [> T2 T1 |=| T2 T1* T1{n} T1 ||| T2 T1 |[x]| T2 [T] T Enabling Enabling + information passing Suspend/resume Choice Disabling (e.g. Form submit) Independence (any order, but finished) Iteration Finite iteration Concurrency Concurrency + information passing Optional Recursion CAiSE'2005 Keynote address - Porto, June 16, 2005 CTTE Editor 19 1.3 Abstraction #3: the task Task definition = action + object – Action types • Acquire, render, modify, publish, compute, derive,… – Object types: • Element, list, table, collection, compound,… CAiSE'2005 Keynote address - Porto, June 16, 2005 20 1.3 Abstraction #3: the task [Limbourg, 2004] CAiSE'2005 Keynote address - Porto, June 16, 2005 21 1.3 Abstraction #4: the context of use [Cameleon project, 2004] Context of use= triple (U,P,E) where – U is a user model: from cognitive psychology – P is a platform model: subset of UAProf (W3C) – E is an environment model: from ubiquitous computing Pick & Drop technique: J. Rekimoto CAiSE'2005 Keynote address - Porto, June 16, 2005 22 1.3 Abstraction #4: the context of use [Limbourg, 2004] CAiSE'2005 Keynote address - Porto, June 16, 2005 23 1.3 Mapping the models [Montero et al., 2005] These mappings can be established: triggers (tg): { , updates (up): x observes (ob): x isExecutedIn (ex): x manipulates (ma): { CAiSE'2005 Keynote address - Porto, June 16, 2005 }x , }x 24 1.3 Mapping the models [Limbourg, 2004] Mapping the models with a mapping model (!!) CAiSE'2005 Keynote address - Porto, June 16, 2005 25 1.4 What do we have so far? Task & Domain Abstract User Interface (AUI) Concrete User Interface (CUI) Final User Interface (FUI) Method triggered: download a file Object: computer file Task Classes Modality-independent Abstract Individual Component Control AIC Digital control AIC Toolkit-independent Concrete Interaction Object HTML push button Code Graphical 2D push button Windows push button Physical control AIC Graphical 3D push button OSF/Motif XmButton VRML97/X3D button Physical push button Software key Function key <input type=submit value=“Download" name= Rendering Download CAiSE'2005 Keynote address - Porto, June 16, 2005 26 1.4 What do we have so far? S=Source context of use User S Platform S Environment S Task and Domain S UsiXML supported model Abstract user Interface S Concrete user Interface S UsiXML unsupported model Reification Final user Interface S CAiSE'2005 Keynote address - Porto, June 16, 2005 27 2. Forward engineering [Limbourg, 2004] 2.1 Task and domain models 2.2 From T&D to AUI – Model-to-model transformation 2.3 From AUI to CUI – Model-to-model transformation 2.4 From CUI to FUI CAiSE'2005 Keynote address - Porto, June 16, 2005 28 2.1 Task and domain models CAiSE'2005 Keynote address - Porto, June 16, 2005 29 2.1 Task and domain models [Limbourg, 2004] CAiSE'2005 Keynote address - Porto, June 16, 2005 30 2.1 Task and domain models CAiSE'2005 Keynote address - Porto, June 16, 2005 31 2.2 From T&D to AUI [Limbourg, 2004] Definition of AUI structure – Which objects should be logically grouped? Definition of AIC types – Which « functionnality » should assume AICs and what data do they manipulate ? Definition of spatio-temporal arrangement – How should AIC be arranged in space and/or in time ? Definition of dialog control – What is the valid flow of action on AIOs ? CAiSE'2005 Keynote address - Porto, June 16, 2005 32 2.2 From T&D to AUI [Limbourg, 2004] Definition of AUI structure NAC LHS RHS ::= NAC LHS RHS ::= CAiSE'2005 Keynote address - Porto, June 16, 2005 33 2.2 From T&D to AUI [Limbourg, 2004] Definition of AIC types NAC LHS RHS ::= AC = Abstract Component AIC = Abstract Individual Component CIC = Concrete Interaction Component CAiSE'2005 Keynote address - Porto, June 16, 2005 34 2.2 From T&D to AUI [Limbourg, 2004] Definition of spatio-temporal arrangement NAC LHS RHS ::= CAiSE'2005 Keynote address - Porto, June 16, 2005 35 2.2 From T&D to AUI All transformations are in UsiXML – Each model = instance of meta-model – Each model = graph as instance of graph type – Each model-to-model transformation = • graph transformation • Set of productions CAiSE'2005 Keynote address - Porto, June 16, 2005 36 2.2 From T&D to AUI [Limbourg, 2004] Typed model-to-model transformation Meta-Meta-Model Graph Structure is instance of Meta-Model Our Meta-Model Meta-Model Subset 1 Meta-Model Subset 2 e.g., Task+Domain Model e.g., Concrete UI Model Uses language is instance of is instance of Initial UI Model Transformation Rule Resultant UI Model e.g., MyTaskAndDomainModel Our transformation catalog e.g., MyConcreteUIModel CAiSE'2005 Keynote address - Porto, June 16, 2005 37 2.2 From T&D to AUI TransformiXML CAiSE'2005 Keynote address - Porto, June 16, 2005 38 2.3 From AUI to CUI [Limbourg, 2004] Definition of CUI structure – Which AIC is a window? Definition of CIO type – Which « widget » should represent which AIO ? Definition of placement – What layout can be specified between CIOs – Definition of navigation – Which container can be started or closed from which container? Definition of dialog control – What is the dialog local to each CIO? – What is the valid flow of action on CIOs? CAiSE'2005 Keynote address - Porto, June 16, 2005 39 2.3 From AUI to CUI [Limbourg, 2004] Definition of CIO structure NAC LHS RHS ::= NAC LHS RHS ::= ::= CAiSE'2005 Keynote address - Porto, June 16, 2005 40 2.3 From AUI to CUI Definition of placement NAC [Limbourg, 2004] LHS RHS ::= CAiSE'2005 Keynote address - Porto, June 16, 2005 41 2.4 From CUI to FUI Model-to-code transformation – By rendering (interpretation) • Java (InterpiXML) • Tcl/tk (QtkiXML) • Flash (FlashiXML) – By code generation • HTML • Visual Basic CAiSE'2005 Keynote address - Porto, June 16, 2005 42 2.4 What do we have so far? S=Source context of use User S Platform S Environment S Task and Domain S UsiXML supported model Abstract user Interface S Concrete user Interface S UsiXML unsupported model Reification Abstraction Final user Interface S CAiSE'2005 Keynote address - Porto, June 16, 2005 43 3. Reverse engineering 3.1 From FUI to CUI 3.2 From CUI to AUI, task & domain CAiSE'2005 Keynote address - Porto, June 16, 2005 44 3.1 From FUI to CUI [Bouillon & Vanderdonckt, 2004] Do you have the source code? – Markup languages (e.g., HTML): static code analysis (ReversiXML) Do you have the compiled code? – Programming languages (e.g., compiled C): resource file extraction and static code analysis Do you have the running application? – Video analysis: computer vision Do you have only the documentation? – Image analysis: image processing CAiSE'2005 Keynote address - Porto, June 16, 2005 45 3.1 From FUI to CUI [Bouillon & Vanderdonckt, 2004] ReversiXML CAiSE'2005 Keynote address - Porto, June 16, 2005 46 3.2 From CUI to AUI, task & domain [Limbourg, 2004] Code-to-model and model-to-model – CUI to AUI NAC LHS RHS ::= CAiSE'2005 Keynote address - Porto, June 16, 2005 47 3.2 From CUI to AUI, task & domain Re-engineering = reverse + forward Possible reinterpretation by QtkiXML [Bouillon & Vanderdonckt, 2004] CAiSE'2005 Keynote address - Porto, June 16, 2005 48 3.2 What do we have so far? S=Source context of use User S Platform S Environment S Task and Domain S UsiXML supported model Abstract user Interface S Concrete user Interface S UsiXML unsupported model Reification Abstraction Final user Interface S CAiSE'2005 Keynote address - Porto, June 16, 2005 49 3.2 What do we want to get? [Cameleon project, 2004] S=Source context of use User S Platform S Environment S T=Target context of use User T Platform T Environment T http://www.plasticity.org Task and Domain S Task and Domain T UsiXML supported model Abstract user Interface S Abstract user Interface T Concrete user Interface S Concrete user Interface T UsiXML unsupported model Reification Abstraction Final user Interface S Final user Interface T CAiSE'2005 Keynote address - Porto, June 16, 2005 Reflexion Translation 50 3.3 Lateral engineering Definition = model-to-model transformation applied at the same level of abstraction – Same context of use – Across various contexts of use Examples – Simple CUI adaptation: widget replacement – Design-time vs run-time adaptation CAiSE'2005 Keynote address - Porto, June 16, 2005 51 Example 1: widget replacement (1) [Limbourg et al., 2004] <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cuiModel name="MyModel"> <version modifDate="2004-03-24T17:09:17.402+01:00" xmlns="">7</version> <authorName xmlns="">Youri</authorName> <window height="500" width="600" name="Formulaire (2/5)" id="window_1"> <box relativeHeight="100" name="box1_0" id="box1_0"> <box type="vert" name="boxTodo" id="boxTodo"> ... <box type="horiz" name="box_2_2_2_1" id="box_2_2_2_1"> <textComponent defaultContent="Sexe" isBold="true" id="label_2"/> <radioButton groupName=“grupo01" defaultContent="Femme" defaultState="false" id="radiobutton_0"/> <radioButton groupName="grupo01" defaultContent="Homme" defaultState="true" id="radiobutton_1"/> </box> ... </box> </box> </window> </cuiModel> Excerpt for an usiXML CUI specification. CAiSE'2005 Keynote address - Porto, June 16, 2005 52 Example 1: widget replacement (2) CAiSE'2005 Keynote address - Porto, June 16, 2005 53 Example 1: widget replacement (3) The UsiXML graph before applying any rule CAiSE'2005 Keynote address - Porto, June 16, 2005 54 Example 1: widget replacement (4) [Limbourg et al., 2004] Rule 1: Create a new comboBox with the same id and name as the name of the group of radioButtons. NAC RHS LHS CAiSE'2005 Keynote address - Porto, June 16, 2005 55 Example 1: widget replacement (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 aplying the first rule CAiSE'2005 Keynote address - Porto, June 16, 2005 56 Example 1: widget replacement (6) [Limbourg et al., 2004] Rule 2: Convert every radioButton within the group “x” into an item for the comboBox “x”, we have just created. LHS RHS ::= CAiSE'2005 Keynote address - Porto, June 16, 2005 57 Example 1: widget replacement (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 aplying the second rule CAiSE'2005 Keynote address - Porto, June 16, 2005 58 Example 1: widget replacement (8) <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cuiModel name="MyModel"> <version modifDate="2004-03-24T17:09:17.402+01:00" xmlns="">7</version> <authorName xmlns="">Youri</authorName> <window height="500" width="600" name="Formulaire (2/5)" id="window_1"> <box relativeHeight="100" name="box1_0" id="box1_0"> <box type="vert" name="boxTodo" id="boxTodo"> ... <box type="horiz" name="box_2_2_2_1" id="box_2_2_2_1"> <textComponent defaultContent="Sexe" isBold="true" id="label_2"/> <comboBox id="comboBox001" name="label_3" isDropDown="true"> <item id="radiobutton_0" name="radiobutton_0" defaultContent="Femme"/> <item id="radiobutton_1" name="radiobutton_1" defaultContent="Homme"/> </comboBox> ... </box> </box> </window> </cuiModel> Excerpt from the final transformated usiXML specification CAiSE'2005 Keynote address - Porto, June 16, 2005 59 Example 1: widget replacement (9) CAiSE'2005 Keynote address - Porto, June 16, 2005 60 Example 2: Adaptation Two forms of adaptation – Adaptability: user-initiated – Adaptivity: system-initiated Four steps: user, system, third party, combination – – – – Detection Computation Decision Execution 2 Adaptivity forms – UI remain the same: vectorial UIs – UI change at run-time: plastic UIs CAiSE'2005 Keynote address - Porto, June 16, 2005 61 Example 2: Plastic UI [Grolaux, Van Roy, Vanderdonckt, 2002] CAiSE'2005 Keynote address - Porto, June 16, 2005 62 Example 3: multimodal UI [Stanciulescu, Limbourg, Michotte, Vanderdonckt, 2005] Need for additional abstraction Additional transformation rules CAiSE'2005 Keynote address - Porto, June 16, 2005 63 Example 4: Crazy UIs [Molina, Vanderdonckt, Gonzalez, 2005] Use the same model – for 3D UI: Cube – for migration across platforms in virtual reality: MigriXML CAiSE'2005 Keynote address - Porto, June 16, 2005 64 5. Conclusion A multi-path support of MDA TransformiXML IdealXML FlashiXML Rendering UsiXML models: task, domain Graph transformations UsiXML model: UsiXML model: Graph Concrete user Abstract user transformations interface interface Generative programming Final user interface VisualiXML Derivation rules KnowiXML GrafiXML VisiXML SketchiXML FormiXML CAiSE'2005 Keynote address - Porto, June 16, 2005 ReversiXML 65 5. Conclusion Conceptual modeling of UIs – – – – – – Separation of concerns is feasible Correlability of models is required It is possible to have multiple abstractions on demand Not all models should be involved Everything is in UsiXML Extreme modeling or extreme engineering • Everything is in the model: relatively easy • Model-to-model transformation: harder • Model-to-code generation: hardest Industrial practise – Multi-path development – Sketching of UI CAiSE'2005 Keynote address - Porto, June 16, 2005 66 Future trend: sketching? CAiSE'2005 Keynote address - Porto, June 16, 2005 [Coyette & Vanderdonckt, 2005] 67 I would like to dedicate this talk to Prof. Em. François Bodart (Univ. of Namur, BE) for – Inoculating me the virus of (meta-)modeling and structured design of information systems – Sharing with me his vision about user interfaces and interactive information systems CAiSE'2005 Keynote address - Porto, June 16, 2005 68 I would like to thank BCHI team members for their involvement and their constant effort in the UsiXML initiative among others – – – – – – – – – – – – – – – – Laurent Bouillon: ReversiXML, UsiXML Benoît Collignon: PlastiXML Adrien Coyette: SketchiXML Murielle Florins: Graceful degradation Monica Gemo: multi-platform UIs and annotations Juan Gonzalez: 3D UsiXML Donatien Grolaux: detachable UIs, DistriXML Josefina Guerrero: UIs for workflows Quentin Limbourg: multi-path development, UsiXML, all tools Céline Mariage: MetroWeb, guidelines Benjamin Michotte: GrafiXML, TransformiXML, UsiXML José Pascual Molina: MigriXML, VUIToolkit Francisco Montero: IdealXML Adrian Stanciulescu: ModaliXML, UsiXML Daniela Trevisan: augmented reality … CAiSE'2005 Keynote address - Porto, June 16, 2005 69 I would like to thank João Falcão e Cunha, Oscar Pastor, Nuno Jardim Nunes The CAiSE Advisory Committee – Janice Bubenko – Collette Roland – Arne Solvberg CAiSE'2005 Keynote address - Porto, June 16, 2005 70 … and you for your attention Free download and register USer Interface eXtensible Language http://www.usixml.org SIMILAR, the European task force making user interfaces similar to human-to-human communication http://www.similar.cc Home Page of BCHI Lab http://www.isys.ucl.ac.be/bchi CAiSE'2005 Keynote address - Porto, June 16, 2005 71
© Copyright 2024 Paperzz