Support for the Development of Interactive Systems

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

implementation support
An Overview Of Virtual Machine Architectures Ross Rosemark.
Fall 2002CS/PSY User Interface Software Look under the hood Agenda Styles of tools  Design tools  UI toolkits  GUI builder tools.
Lecture 12 implementation support. Today’s Lecture programming tools  levels of services for programmers windowing systems  core support for separate.
Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.
Human Computer Interaction Implementation Support.
MVC pattern and implementation in java
Software Construction Lecture 10 Frameworks
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
11.10 Human Computer Interface www. ICT-Teacher.com.
Lecture 5: Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 711,  ex 2271 
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Implementation support z programming tools y levels of services for programmers z windowing systems y core support for separate and simultaneous user-system.
1 Implementation support chapter 8 programming tools –levels of services for programmers windowing systems –core support for separate and simultaneous.
3461 Model-View Controller Advanced GUI concepts.
1 Lecture 2: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
Model View Controller MVC Web Software Architecture.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
Department of CSE, KLU 1 Chapter 8 Implementation support.
Software Architecture for Multimodal Interactive Systems : Voice-enabled Graphical Notebook.
12-Jun-16 Event loops. 2 Programming in prehistoric times Earliest programs were all “batch” processing There was no interaction with the user Input Output.
Progress Apama Fundamentals
Dive Into® Visual Basic 2010 Express
Tesina/Project Interactive Talk
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
Overview of Standards and Guidelines
CompSci 230 S Software Construction
IT323 - Software Engineering 2
GUI Design and Coding PPT By :Dr. R. Mall.
Chapter Topics 15.1 Graphical User Interfaces
11.10 Human Computer Interface
Event loops 16-Jun-18.
System Design Ashima Wadhwa.
Java Look-and-Feel Design Guidelines
MVC and other n-tier Architectures
Unit 2 User Interface Design.
Introduction to Operating System (OS)
Understand Windows Forms Applications and Console-based Applications
Prepared by: Ms. Amira al-Ghanem Prepared for: Ms. Omarine
Chap 7. Building Java Graphical User Interfaces
Software engineering USER INTERFACE DESIGN.
Graphical User Interfaces -- Introduction
User Interface Software Look under the hood
Human Computer Interface
Model-View-Controller Patterns and Frameworks
Chapter 2: System Structures
Human Computer Interface
Event loops.
Patterns.
implementation support
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
Human Computer Interface
Human Computer Interface
CSE310 Human-Computer Interaction
Event loops 17-Jan-19.
Event loops 17-Jan-19.
Chapter 15: GUI Applications & Event-Driven Programming
Event loops 8-Apr-19.
Implementation support
implementation support
implementation support
Model, View, Controller design pattern
Event loops.
ACM programming contest
Event loops.
Event loops 19-Aug-19.
Implementation support
TA: Nouf Al-Harbi NoufNaief.net :::
Presentation transcript:

Support for the Development of Interactive Systems HCI Support for the Development of Interactive Systems Presenter Kimani, Stephen Universita' di Roma "La Sapienza" DIS Via Salaria 113 Piano 2, Stanza 233 00198 Roma Italy Phone: +39 06 49918548 Web: http://www.dis.uniroma1.it/~kimani E-mail: kimani@dis.uniroma1.it Tutorial Resources: http://www.dis.uniroma1.it/~kimani/teaching.html Opening Slide

Support for the Development of Interactive Systems HCI Support for the Development of Interactive Systems Roadmap Abstraction levels Windowing Systems UI Toolkits UIMS Other high level tools Some conventions in these slides: + stands for advantage - stands for disadvantage Opening Slide

HCI Development Support Abstraction Levels Level Support Tools/Environments High level --- GUI Builders (e.g., Flash, Visual C++, Visual Basic, Visual Age, JBuilder), UIMS (e.g., UIDE), Seeheim- based, MVC-based, PAC-based --- UI Toolkits e.g., XViewer, Java AWT, OSF/Motif, Macintosh Toolbox, Software Development Toolkit for Microsoft Windows Low level --- Windowing Systems e.g., MS Windows 98/NT/2000/ME/XP, X Window system, Apple Macintosh OS Introduction

HCI Development Support Windowing Systems Introduction A windowing system manages shared hardware resources and multiple applications/contexts e.g., by separating them into different parts of the screen. It appropriately channels input from the input devices (e.g., keyboard and mouse) and manages output operations on the display. Examples of events Window events (e.g., window resize, window move, window maximize, window close, etc), keyboard events (e.g., key press, key release, etc), mouse events (e.g., button press, mouse move). Introduction

HCI Development Support Windowing Systems Level Support Tools/Environments High level --- GUI Builders (e.g., Flash, Visual C++, Visual Basic, Visual Age, JBuilder), UIMS (e.g., UIDE), Seeheim- based, MVC-based, PAC-based --- UI Toolkits e.g., XViewer, Java AWT, OSF/Motif, Macintosh Toolbox, Software Development Toolkit for Microsoft Windows Low level --- Windowing Systems e.g., MS Windows 98/NT/2000/ME/XP, X Window system, Apple Macintosh OS Introduction

HCI Development Support Windowing Systems Important features of windowing systems Independence from the specifics of (/having to program) hardware devices The programmer writes commands to an abstract terminal. An abstract terminal understands a more generic language and can be translated to the language of many other specific hardware devices. A particular windowing system has a fixed generic language for the abstract terminal. The generic language is called (the abstract terminal’s) an imaging model. Examples of imaging models: PostScript, Pixels, GKS, PHIGS. Managing multiple applications/tasks Windowing systems share the resources (/devices) of a single hardware configuration with several copies of an abstract terminal. Each abstract terminal behaves as an independent process and the windowing system coordinates the concurrent processes. Introduction

HCI Development Support Windowing Systems Possible architectures Implement and replicate the management of the multiple processes/tasks within each of the separate applications. Each application has to resolve the difficult issues of synchronization conflicts with the shared hardware devices/resources. Also reduces the portability of individual applications. Implement the management of the multiple processes/tasks within the kernel of the operating system (centralized). Frees individual applications from the management role. Applications must still be developed with the specifics of the particular operating system in mind. Implement the management of the multiple processes/tasks as a separate application in its own right. An interface to other applications that is generic across all operating systems (i.e. client-server architecture). e.g., X Window system. Introduction

HCI Development Support Windowing Systems Client-Server architecture Two basic ways to specify the flow of control within an application: Read-evaluation loop The flow of control is in the application itself e.g., programming on the Macintosh. Notification based The main control loop does not reside in the application itself e.g., a C program with XViewer notifier. Introduction

HCI Development Support Client-Server Architecture Read-Evaluation Loop Programmer must program such control over every possible event that the application will receive. Introduction

HCI Development Support Client-Server Architecture Notification based Programmer free from the disadvantage above. Difficult to incorporate some control features. Introduction

HCI Development Support Toolkits Level Support Tools/Environments High level --- GUI Builders (e.g., Flash, Visual C++, Visual Basic, Visual Age, JBuilder), UIMS (e.g., UIDE), Seeheim- based, MVC-based, PAC-based. --- UI Toolkits e.g., XViewer, Java AWT, OSF/Motif, Macintosh Toolbox, Software Development Toolkit for Microsoft Windows Low level --- Windowing Systems e.g., MS Windows 98/NT/2000/ME/XP, X Window system, Apple Macintosh OS Introduction

HCI Development Support Toolkits Toolkit It provides a set/library of ready-made interaction objects/widgets/gadgets. The programmer can use those objects to develop application programs. Little or no programming effort is required e.g., the objects come with a predefined behavior. Examples of interaction objects: text box, menu, message box, radio button, list box, etc. Interaction objects are usually flexible (can be tailored). Interaction objects are amenable to instantiation and inheritance cf oo p. toolkits can enforce consistency in user interface design. programmer can exploit oo benefits e.g., build complex objects from simple ones. Toolkits provide a limited range of interaction objects, thus limiting the types of interactive behavior allowed. Toolkits are expensive to create and still difficult to use. ?Most toolkits are oo structured, is the actual application program oo? Introduction

HCI Development Support User Interface Management Systems (UIMS) Level Support Tools/Environments High level --- GUI Builders (e.g., Flash, Visual C++, Visual Basic, Visual Age, JBuilder), UIMS (e.g., UIDE), Seeheim- based, MVC-based, PAC-based. --- UI Toolkits e.g., XViewer, Java AWT, OSF/Motif, Macintosh Toolbox, Software Development Toolkit for Microsoft Windows Low level --- Windowing Systems e.g., MS Windows 98/NT/2000/ME/XP, X Window system, Apple Macintosh OS Introduction

HCI Development Support UIMS User Interface Management Systems (UIMS) Also referred to as User Interface Development Systems (UIDS). Our notion of UIMS entails: Architecture: a conceptual architecture for the structure of an interactive system with a separation between application semantics and presentation. Implementation: techniques for implementing an application separated from the presentation and supporting communication between them. Follow-up: techniques for managing, implementing and evaluating a run-time interactive environment. ?Why do you think some people prefer referring to UIMS as UIDS? ?Why separate the application semantics from the presentation? Introduction

HCI Development Support UIMS User Interface Management Systems (UIMS) Three components of an interactive system: presentation application dialog control (for handling/regulating communication between the application and the presentation) Recall the two basic ways to program the flow of control within an application in a client-server architecture: a) Read-evaluation loop. b) Notification based. Note that in b) the dialog control is external to the application. Since UIMS often promote the separation between the application and the presentation, most of them fall into b). They do not, however, all use callbacks (see client-server architecture). Introduction

HCI Development Support Main UIMS Conceptual Architectures Seeheim Model Presentation (for the appearance of the user interface – handles both input and output for the user). Application interface (the view of the application semantics). Dialog control (for communication between the above two). Introduction

HCI Development Support Main UIMS Conceptual Architectures Seeheim Model Some concerns with the Seeheim model: It did not provide any real directions for how future UIMS should be built. The upper component (bypasser) was intended to show that for efficiency reasons, an explicit dialog control could be bypassed. The bypasser has to do with implementation concerns and thus should not appear in the conceptual architecture (i.e. the figure). It cannot readily take advantage of an oo (architectural) approach. Introduction

HCI Development Support Main UIMS Conceptual Architectures The Main UIMS Models Seeheim Model: Presentation (has both input and output). Application interface (the view of the application semantics). Dialog control (for communication between the above two). Model-View-Controller (MVC) framework (e.g. within Smalltalk, Java Swing) Controller handles input. View handles output. Model represents application semantics. Presentation-Abstraction-Control (PAC) model: Abstraction represents application semantics. Control handles communication and maintains consistency between Presentation and Abstraction. Introduction

HCI Development Support Main UIMS Conceptual Architectures The Main UIMS Models Introduction

HCI Development Support Other High-Level Tools GUI Builders (e.g., Flash, Visual C++, Visual Basic, Visual Age, JBuilder) Some identify themselves as the designer's Studio, Environment, Desk, Workbench, etc. Common trade-off with high-level tools Ease of use versus Power. ?Similarities and Differences between MVC and PAC models. Introduction