Human Computer Interaction Implementation Support.

Slides:



Advertisements
Similar presentations
implementation support
Advertisements

Fall 2002CS/PSY User Interface Software Look under the hood Agenda Styles of tools  Design tools  UI toolkits  GUI builder tools.
Component Oriented Programming 1 Chapter 2 Theory of Components.
A component- and message-based architectural style for GUI software
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Lecture 12 implementation support. Today’s Lecture programming tools  levels of services for programmers windowing systems  core support for separate.
Part 3: Design Days 15, 19, 21, 23 Chapter 8: Work Reengineering and Conceptual Design Chapter 9: Design Guidance and Design Rationale Chapter 10: Interaction.
6/11/20151 Multiple Windows Strategies CIS 577 Bruce R. Maxim UM-Dearborn.
Graphical User Interface (GUI) Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
The Task-Centered Design Process figure out who's going to use the system to do what choose representative tasks for task-centered design plagiarize rough.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.
Stanford hci group / cs376 research topics in human-computer interaction I/O Toolkits Scott Klemmer 29 November 2005.
Implementation support IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
System Architecture: Desing alternatives and methodologies.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Terminal Services Terminal Services is the modern equivalent of mainframe computing, in which servers perform most of the processing and clients are relatively.
1 Lecture 3: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
Introduction to Java Swing “We are the sultans of swing” – Mark Knopfler.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
MODEL VIEW CONTROLLER A Technical Seminar Report submitted to
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Architectural separation (MVC, arch model, Seeheim).
Software Tools.  It accomplishes an important task  (for better and for worse) You don’t have to make it yourself, and it abstracts a set of knowledge.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
An Introduction to Software Architecture
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Java Swing, Events and MVC Optional Readings: Eckel’s Thinking in Java: Chap 14 (
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
ISP666 MVC & Design Patterns. Outline Review Event Programming Model Model-View-Controller Revisit Simple Calculator Break Design Patterns Exercise.
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.
Swing and MVCS CompSci 230 Software Construction.
Building X Window GUIs with Motif The X Window System: Architecture Applications Sample code Review function (as time permits) … Introduce what it’s like.
Dale Roberts GUI Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer.
1 CSC 222: Object-Oriented Programming Spring 2012 netBeans & GUIBuilder  netBeans IDE create/edit/run a project  GUIBuilder JFrame, JButton, JTextField,
Processes Introduction to Operating Systems: Module 3.
1 Lecture 2: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
 GUI – Graphic User Interface  Up to now in the programs we have written all output has been sent to the standard output device i.e.: the DOS console.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Lecture # 6 Graphical User Interface(GUI). Introduction A graphical user interface (GUI) presents a user- friendly mechanism for interacting with an application.
Java Swing, Events Readings: Just Java 2: Chap 19 & 21, or Eckel’s Thinking in Java: Chap 14 Slide credits to CMPUT 301, Department of Computing Science.
Department of CSE, KLU 1 Chapter 8 Implementation support.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Papier-Mache: Toolkit Support for Tangible Input HCI Group University of California Scott R. Klemmer Jack Li James Lin DUB Group University of Washington.
CSC 222: Object-Oriented Programming
Support for the Development of Interactive Systems
Database Development (8 May 2017).
Lecture 27 Creating Custom GUIs
User Interface Software Look under the hood
Building Graphical User Interface with Swing a short introduction
Computer Fundamentals
implementation support
Software models - Software Architecture Design Patterns
CSE310 Human-Computer Interaction
An Introduction to Software Architecture
I/O Toolkits Scott Klemmer · 16 November 2006.
Implementation support
The Main Features of Operating Systems
implementation support
implementation support
Brad Myers Advanced User Interface Software Spring, 2017
Implementation support
Presentation transcript:

Human Computer Interaction Implementation Support

Implementation support  programming tools  levels of services for programmers  windowing systems  core support for separate and simultaneous user-system activity  programming the application and control of dialogue  interaction toolkits  bring programming closer to level of user perception  user interface management systems  controls relationship between presentation and functionality

Introduction  How does HCI affect of the programmer?  Advances in coding have elevated programming  hardware specific  interaction-technique specific  Layers of development tools  windowing systems  interaction toolkits  user interface management systems

Elements of windowing systems  Device independence  programming the abstract terminal device drivers  image models for output and (partially) input  pixels  PostScript (MacOS X, NextStep)  Graphical Kernel System (GKS)  Programmers' Hierarchical Interface to Graphics (PHIGS)  Resource sharing  achieving simultaneity of user tasks  window system supports independent processes  isolation of individual applications

roles of a windowing system

Architectures of windowing systems  three possible software architectures  all assume device driver is separate  differ in how multiple application management is implemented  1. each application manages all processes  everyone worries about synchronization  reduces portability of applications  2. management role within kernel of operating system  applications tied to operating system  3. management role as separate application maximum portability

The client-server architecture

X Windows architecture

X Windows architecture (ctd)  pixel imaging model with some pointing mechanism  X protocol defines server-client communication  separate window manager client enforces policies for input/output:  how to change input focus  tiled vs. overlapping windows  inter-client data transfer

Programming the application - 1 read-evaluation loop repeat read-event(myevent) case myevent.type type_1: do type_1 process type_2: do type_2 process... type_n: do type_n process end case end repeat

Programming the application - 1 notification-based void main(String[] args) { Menu menu = new Menu(); menu.setOption(“Save”); menu.setOption(“Quit”); menu.setAction(“Save”,mySave) menu.setAction(“Quit”,myQuit)... } int mySave(Event e) { // save the current file } int myQuit(Event e) { // close down }

Using toolkits  Interaction objects  input and output intrinsically linked  Toolkits provide this level of abstraction  programming with interaction objects (or techniques, widgets, gadgets)  promote consistency and generalizability through similar look and feel  amenable to object-oriented programming movepressreleasemove

Interfaces in Java  Java toolkit – AWT (abstract windowing toolkit)  Java classes for buttons, menus, etc.  Notification based;  AWT 1.0 – need to subclass basic widgets  AWT 1.1 and beyond -– callback objects  Swing toolkit  built on top of AWT – higher level features  uses MVC architecture (see later)

User Interface Management System  A UIMS (User Interface Management System) should be thought of as a software architecture "in which the implementation of an application's user interface is clearly separated from that of the application's underlying functionality" (Rosenberg 1988: p. 42)  Examples:  Model-View-Controller  The linguistic model (Foley 1990),  the Seeheim model (first introduced in Green 1985),  the Higgins UIMS (described in Hudson and King 1988),  and the Arch model (a specialisation of the Seeheim model; see Coutaz et al. 1995, Coutaz 1987, and Coutaz 1997).

User Interface Management Systems (UIMS)  UIMS add another level above toolkits  toolkits too difficult for non-programmers  concerns of UIMS  conceptual architecture  implementation techniques  support infrastructure  non-UIMS terms:  UI development system (UIDS)  UI development environment (UIDE)  e.g. Visual Basic

UIMS as conceptual architecture  Separation between application semantics and presentation  improves:  portability – runs on different systems  reusability – components reused cutting costs  multiple interfaces – accessing same functionality  customizability – by designer and user

Summary  Levels of programming support tools  Windowing systems  device independence  multiple tasks  Paradigms for programming the application  read-evaluation loop  notification-based  Toolkits  programming interaction objects  UIMS  conceptual architectures for separation  techniques for expressing dialogue