Towards Effective Adaptive User Interfaces Design

Slides:



Advertisements
Similar presentations
DWebSpec Why dWebSpec? It could be asked,with all the web application alternatives.
Advertisements

Towards a Standard Interface for Runtime Inspection in AOP Environments OOPSLA Workshop on Tool for AOSD, Seattle, November 2002 Katharina Mehner and Awais.
Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
H Apr-01 Clark Thomborson Software Security CompSci 725 Handout 28: Report Writing #2 (Sample Titles & Abstracts) Clark Thomborson University of.
Unified Modeling Language
An Agile Approach for Web Systems Engineering A Presentation of an Article by V.E.S. Souza and R.A. Falbo.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
The Architecture Design Process
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
UNIT-V The MVC architecture and Struts Framework.
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
Introduction To System Analysis and design
UML - Development Process 1 Software Development Process Using UML (2)
Grant Ronald Principal Product Manager JDeveloper and ADF for Forms Developers: Taking it to the next level.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
XML in Development of Distributed Systems Tooling Programming Runtime.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 1 Introduction to Java in the Context of Software Engineering.
Unified Modeling Language, Version 2.0
I T & S A e r o s p a c eD e f e n c e THALES Research & Technology THALES recommendations for the final OMG standard on Query / Views / Transformations.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Drawbacks of object-oriented software development Lecture P12 T120B pavasario sem.
MDD approach for the Design of Context-Aware Applications.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Java EE - JSR 303 Bean validation - Pierre-Johan CHARTRE
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Unified Modeling Language, Version 2.0 Chapter 2.
25 April Unified Cryptologic Architecture: A Framework for a Service Based Architecture Unified Cryptologic Architecture: A Framework for a Service.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Singleton Academy, Pune. Course syllabus Singleton Academy Pune – Course Syllabus1.
Nr: 1 FGAN Research Institute for Communication, Information Processing, and Ergonomics KIE Reengineering an Ada95-programmed Command and Control Information.
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
Aspect, Rich and Anemic Domain models in Enterprise Information Systems Karel Cemus 1, Tomas Cerny 1, Lubos Matl 1, Michael J. Donahoo 2 1 Czech Technical.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Leveraging ColdSpring to build a robust Flex applications Chris Scott, Cynergy Systems.
Survey On Concern Separation in Service Integration by Tomas Cerny* and Michal J. Donahoo # * Czech Technical University, Czech Rep. # Baylor University,
Form Builder Tomáš Černý Michael J. Donahoo Eunjee Song Department of Computer Science Baylor University, Waco, TX.
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
M&CML: A Monitoring & Control Specification Modeling Language
The Role of Reflection in Next Generation Middleware
Software Engineering Lecture 7
UNIT 1.
MACS 2005 First International Workshop on the Modeling and Analysis of Concerns in Software Concern Management for Constructing Model Compilers -- Towards.
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Demeter Aspects Who We Are Aspectual Collaborations
Phil Bernstein Microsoft Corp.
Enterprise Service Bus (ESB) (Chapter 9)
Introduction To System Analysis and Design PART 2
ARCH-1: Application Architecture made Simple
Technology Landscape and Enterprise Objectives
JavaServer Faces: The Fundamentals
Automated Analysis and Code Generation for Domain-Specific Models
Basic OOP Concepts and Terms
AspectAda Aspect-Oriented Programming for Ada95
Social Abstractions for Information agents
Business Process Management and Semantic Technologies
Aspect Oriented Software Design
FRAMEWORKS AND REUSE What is “Framework”?
Software Architecture & Design
Presentation transcript:

Towards Effective Adaptive User Interfaces Design by Tomas Cerny*, Michael J. Donahoo# and Eunjee Song# *Czech Technical University #Baylor University, TX, USA ACM RACS 2013, Montreal, CA

Background User Interface design Adaptive UI features OOP 3-layer application Enterprise SW. Architecture Component-based UI Java EE Existing standards Data-driven appl. JPA Information systems Beans Validation ACM RACS 2013, Montreal, CA

Basic data presentation in UI Fig. UML Class diagram for data PersonInfo Fig. UI presentation of PersonInfo Implementation OO Class / Entity Domain specific language (DSL) ACM RACS 2013, Montreal, CA

Basic data presentation in UI What is the issue? Fig. UML Class diagram for data PersonInfo Fig. UI presentation of PersonInfo Implementation OO Class Domain specific language ACM RACS 2013, Montreal, CA

We decompose the form design into various concerns ACM RACS 2013, Montreal, CA

These concerns can be seen as individual ones ACM RACS 2013, Montreal, CA

But the implementation is in a single dimension ACM RACS 2013, Montreal, CA

UI Design Issues Domain-specific languages (DSL) for UI No type safety Information replication Data model -> Presentation Tedious and error-prone (manually) Cross-cutting concerns Lots of coding involved Research: 48% of total application code and 50% of time devoted to UIs. Hard maintenance Date model changes -> manual changes in UI part ACM RACS 2013, Montreal, CA

What is an Adaptive UI Basic UI Adaptive UI Provides a single UI for various users No matter their origin, context, capabilities, etc. Adaptive UI Takes into consideration specific users, runtime and application context Adapts to the end user Adapts to runtime conditions ACM RACS 2013, Montreal, CA

What is an Adaptive UI Basic UI Adaptive UI ACM RACS 2013, Montreal, CA

What is an Adaptive UI Basic UI Adaptive UI ACM RACS 2013, Montreal, CA

What is an Adaptive UI Basic UI Adaptive UI (Confused, Child and Elderly) ACM RACS 2013, Montreal, CA

What is an Adaptive UI Basic UI Adaptive UI (Confused, Child and Elderly) ACM RACS 2013, Montreal, CA

What is an Adaptive UI Basic UI Adaptive UI (Confused, Child and Elderly) ACM RACS 2013, Montreal, CA

What is an Adaptive UI Basic UI Adaptive UI (Confused, Child and Elderly) ACM RACS 2013, Montreal, CA

Related work evaluation criteria Runtime context Development & maintenance Adaptive UI Performance Cross-cutting concerns Adjustable output Information replication ACM RACS 2013, Montreal, CA

Model-driven development MDD Runtime context +/- Development & maintenance +/- & - Adaptive UI Performance - Cross-cutting concerns Adjustable output Information replication ACM RACS 2013, Montreal, CA

Domain specific languages DSL Runtime context +/- Development & maintenance +/- & - Adaptive UI Performance - Cross-cutting concerns Adjustable output Information replication ACM RACS 2013, Montreal, CA

Widget editors Runtime context - Development & maintenance +/- & - Adaptive UI Performance + Cross-cutting concerns Adjustable output +/- Information replication ACM RACS 2013, Montreal, CA

Code-inspection Runtime context + Development & maintenance Adaptive UI - Performance Cross-cutting concerns Adjustable output Information replication ACM RACS 2013, Montreal, CA

An Ideal? Runtime context + Development & maintenance Adaptive UI Performance Cross-cutting concerns Adjustable output Information replication ACM RACS 2013, Montreal, CA

General Design Approaches Model-driven development Issues with maintenance, runtime context, performance, binding to existing systems, information replication Generative programming Static, directly address cross-cutting concerns, information replication Aspect-oriented programming Applies in runtime, limited research in the UI, information replication ACM RACS 2013, Montreal, CA

Existing development approaches 3-layer architecture Enterprise software architecture Component-based UI Standards for persistence (ORM) and data validation Extension for Security and Presentation Annotation-based ACM RACS 2013, Montreal, CA

How to get to the ideal Lets combine Generative Programming Current standards, Aspect-oriented programming Generative Programming Model driven development Code-inspection ACM RACS 2013, Montreal, CA

Rich Entity Aspect/Audit Design Introducing READ Rich Entity Aspect/Audit Design ACM RACS 2013, Montreal, CA

READ Entity – the data class Rich Entity – extended with annotations/XML Central point of information Aspect/Audit – code-inspection and transportation ACM RACS 2013, Montreal, CA

READ Phases 1. Inspection 2. Transformation (Meta-model + Context) Code-Inspection -> Meta-model Context enforcement -> Context-aware meta-model 2. Transformation (Meta-model + Context) Presentation rules (Aspect-driven) DSL Template composition (Aspect-driven) DSL Layout composition (like as XSLT) DSL 3. Runtime code integration ACM RACS 2013, Montreal, CA

READ Phases ACM RACS 2013, Montreal, CA

READ formalization: Aspect concept model Join Point Model Static – the data structure Dynamic – the application context Pointcut Language Unified Expression Language to for queries Type eq ‘String’ and required and length > 255 Adaptation Mechanism UI Presentation and integration of various concerns ACM RACS 2013, Montreal, CA

READ Phases The Outcome 1. Inspection Meta-model + Context = Join Points (Static + Dynamic) 2. Transformation Presentation rules (Aspect-driven) For each data field Pointcut – a query to field properties and context (EL) Advice – a presentation template to use Presentation template composition (Aspect-driven) Gives Presentation Advice – aspect integration Layout template composition (like as XSLT) 3. Runtime code integration ACM RACS 2013, Montreal, CA

READ practical impact Runtime context + Devel. & maintenance Adaptive UI Performance Cross-cutting concerns Adjustable output Information replication ACM RACS 2013, Montreal, CA

READ evaluation Case study Java EE 7 data classes ACM RACS 2013, Montreal, CA

READ evaluation Case study Java EE 7 data classes ACM RACS 2013, Montreal, CA

READ evaluation Case study Java EE 7 data classes ACM RACS 2013, Montreal, CA

READ evaluation Case study Java EE 7 data classes ACM RACS 2013, Montreal, CA

READ evaluation Performance Java Server Faces ACM RACS 2013, Montreal, CA

READ Real Study ACM-ICPC ACM RACS 2013, Montreal, CA

READ Real Study 32% of the entire UI code is generated! ACM RACS 2013, Montreal, CA

READ Real Study 32% of the entire UI code is generated! ACM RACS 2013, Montreal, CA

Conclusion READ approach Reduced Devel. & Maintenance efforts Benefits of AOP, GP, MDD Runtime Approach Adaptive UI Integration of Existing standards OS Library AspectFaces for Java apps. ACM RACS 2013, Montreal, CA

Future Work Business rule integration Ontology-based criteria Platform-awareness Ongoing work on Android, PHP, etc. User interface protocol ACM RACS 2013, Montreal, CA

Q/A @inproceedings{cerny2013, Title = {Towards Effective Adaptive User Interfaces Design}, Author = {Tomas Cerny and Michael J. Donahoo and Eunjee Song}, Booktitle = {Proceedings of the 2013 Research in Applied Computation Symposium (RACS 2013)}, Isbn = {978-1-4503-2348-2}, Month = {October}, Year = {2013}, Keywords = {Aspect-driven design;Inspection-based approach; Adaptive user interfaces,;Reduced maintenance/development efforts}} ACM RACS 2013, Montreal, CA