Lecture 8: Overview of UI Software and Tools Brad Myers 05-830 Advanced User Interface Software 1© 2013 - Brad Myers.

Slides:



Advertisements
Similar presentations
COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Advertisements

implementation support
Designing a Graphical User Interface (GUI) 10 IST – Topic 6.
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Software: Systems and Application Software
Automating Tasks With Macros
Past, Present and Future of User Interface Software Tools
User Interface Design. Overview The Developer’s Responsibilities Goals and Considerations of UI Design Common UI Methods A UI Design Process Guidelines.
© Prentice Hall CHAPTER 3 Computer Software.
Object-Oriented Analysis and Design
Chapter 14: Event-Driven Programming with Graphical User Interfaces
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.
Stanford hci group / cs376 research topics in human-computer interaction UI Software Tools Scott Klemmer 27 October 2005.
Objectives Machine language vs.. High-level language Procedure-oriented, object-oriented, and event- driven languages Background of Visual Basic VB Integrated.
1 Past, Present and Future of User Interface Software Tools Brad A. Myers, Scott E. Hudson, and Randy Pausch Human-Computer Interaction Institute School.
Human Computer Interaction Implementation Support.
1 Lecture 3: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
1 Past, Present and Future of User Interface Software Tools Brad A. Myers, Scott E. Hudson, and Randy Pausch Developed for HCIC’99 and TOCHI Updated 2009.
Computer for Health Sciences
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.
Software Construction Lecture 10 Frameworks
11.10 Human Computer Interface www. ICT-Teacher.com.
CHAPTER FOUR COMPUTER SOFTWARE.
Software Tools. Specification Methods Design requires a good notation to record and discuss alternate possibilities: –The default language for specifications.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
(c) University of Washington08-1 CSC 143 Models and Views Reading: Ch. 18.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
Java Programming: Advanced Topics 1 Common Elements of Graphical User Interfaces Chapter 6.
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.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
3461 Model-View Controller Advanced GUI concepts.
Lecture 10: Toolkits: Intrinsics, Callbacks, Resources, Widget hierarchies, Geometry management Brad Myers Advanced User Interface Software 1© 2013.
1 Lecture 2: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development.
Foundation year Lec.3: Computer SoftwareLec.3: Computer Software Lecturer: Dalia Mirghani Year: 2014/2015.
Java GUI building approaches Aleksandar Kartelj Faculty of Mathematics, Belgrade 11 th Workshop “Software Engineering Education and.
X-WindowsP.K.K.Thambi The X Window System Module 5.
The Abstract Window Toolkit (AWT) supports Graphical User Interface (GUI) programming. AWT features include: a rich set of user interface components; a.
CITA 342 Section 2 Visual Programming. Allows the use of visual expressions (such as graphics, drawings, or animation) in the process of programming.
Stanford hci group / cs376 u Jeffrey Heer · 26 May 2009 User Interface Toolkits.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Certificate in Accounting NOS 116, 118, 213, 222 Lecture 1: Introduction.
May 6, 1998CS102-02Lecture 6-2 Cross-Platform Programming CS Lecture 6-2 Making everyone happy.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Programming Logic and Design Seventh Edition Chapter 12 Event-Driven GUI Programming, Multithreading, and Animation.
Support for the Development of Interactive Systems
Lecture 8: Overview of UI Software and Tools
CompSci 230 S Software Construction
Past, Present and Future of User Interface Software Tools
11.10 Human Computer Interface
Java Look-and-Feel Design Guidelines
Introduction to Operating System (OS)
Computer Technology Notes #3
Chapter 2: Operating-System Structures
User Interface Software Look under the hood
Chapter 2: System Structures
implementation support
Implementation support
implementation support
Model, View, Controller design pattern
Implementation support
Presentation transcript:

Lecture 8: Overview of UI Software and Tools Brad Myers Advanced User Interface Software 1© Brad Myers

Happy Valentine’s Day © Brad Myers2

Happy Mardi Gras! (last Tuesday!) © Brad Myers3

4 Layers of UI Software Application Higher Level Tools Toolkit Windowing System Operating System © Brad Myers

Highly Successful Today’s tools are highly successful Window Managers, Toolkits, Interface Builders ubiquitous Most software built using them Are based on HCI research 5© Brad Myers

6 Historical Perspective Themes è Address the useful & important aspects of UIs Tools that succeeded helped (just) where needed è Threshold / Ceiling Threshold = How hard to get started Ceiling = how much can be achieved è Path of Least Resistance Tools influence user interfaces created è Predictability If not predictable, then not accepted by programmers è Moving Targets Changing user interface styles makes tools obsolete © Brad Myers

7 What Worked Window Managers and Toolkits Event Languages Graphical, Interactive Tools Component Architectures Scripting Languages Hypertext Object Oriented Programming Constraints © Brad Myers

8 Windows Manages and controls multiple contexts by separating them into different physical parts of the screen. Can be part of a program (Smalltalk), part of operating system (Windows), or a separate program (X) "Window System" – old X/11 terminology Programming interface Provides output graphics operations to draw clipped to a window = Output Model Channels input from mouse and keyboard to appropriate window = Input Model © Brad Myers

9 Windows, cont. "Window Manager" User interface to windows themselves Decorations on windows Mouse and keyboard commands to control windows. © Brad Myers

10 Windows, cont. Many systems combine WS+WM Macintosh, Windows, iPhone Others allow different WM on same WS X, NeWS Allows diversity and user preference Different WS on same hardware SunTools, X, NeWS on Suns Windows, MacOS on Macs Hack Linux onto many platforms (iPod) © Brad Myers

11 Window & Graphics Structure © Brad Myers

12 Windows System: Output Model Graphics commands that the programs can use All usually go through window manager so clipped Usually can only draw what WS provides Examples: Win32 API, Mac “Quickdraw” Older systems (SunTools, etc.) simple primitives Draw Rectangles, text "BitBlt" or "RasterOp": Move a rectangle of the screen (memory) + Easier to implement Newer (Macintosh, X, etc.) more sophisticated Filled polygons, splines, colors, clipping + Prettier images and easier for application © Brad Myers

13 Postscript Language invented by Adobe for sending pages to printers Is a complete, textual programming language Provides: arbitrary rotation and scaling (even fonts) Complete hardware independence (coordinates are floats) Used as an output model for some Window systems NeWS, Display Postscript: NeXT, DEC, etc. Java 2D model based on this, with similar features © Brad Myers

14 Other old graphics standards CORE (~1977), GKS (1985) PHIGS (1988) -- PEX (1991): PHIGS + 3-D for X Don't support "modern" graphical interfaces © Brad Myers

15 Window System: Input Model How input from user is handled. Most only support keyboard and mouse All systems use same model: Events generated and passed to applications Record (struct) containing type, (x,y) of mouse, time, etc. Asynchronously sent For key down/up, mouse button down/up, cursor enter/leave window, window refresh. Problems: Application must be almost always willing to accept events. Race conditions, since asynchronous Not device independent No abort © Brad Myers

16 Window System: Communication Window system often protected process So bad application won't kill whole machine (Isn't on MacOS to 9, PalmOS, and regular MS Windows 95,98,ME) Is on Unix, MacOS since 10 …, Windows since NT How do applications communicate with window system? Special system calls Kernel, OS calls SunTools, Macintosh, PalmOS Network protocol Send messages to the process X, NeWS + Processes can display on remote machines. + Different programming languages - Less efficient © Brad Myers

Window Manager: Window Layouts How the windows are arranged Tiled vs. Overlapping Whether windows can be on top of each other Don't see tiled much any more: Cedar, MS Windows 1. Overlapping was first, current Smalltalk (1976) X Multiple (tiled) windows in research systems of 1960’s: NLS, etc. Overlapping introduced in Alan Kay’s thesis (1969) Smalltalk, 1974 at Xerox PARC © Brad Myers17

Window Manager: Window Decorations Decorations: Window borders, titles Icons Screen background © Brad Myers18

19 Window Manager: Commands How the user can control the windows. Mouse and keyboard commands Menus, buttons, etc. Sometimes use a toolkit Listener or Focus ( “active” window) Only one keyboard and mouse How decide which window (process) to give it to? © Brad Myers

20 Window Managers Successful because multiple windows help users manage scarce resources: Screen space and input devices Attention of users Affordances for reminding and finding other work © Brad Myers

21 Toolkits A library of interaction techniques that can be called by application programs. An interaction technique is a graphical object which can be manipulated using a physical input device to input a certain type of value. Also called “widget” or “control” Toolkits contain procedures to do menus, scroll bars, buttons, dialog boxes. Used only by programmers, only procedural interface Examples: Macintosh Toolbox Windows Toolkit xtk for X (Motif and OpenLook) Interviews for C++ and X NeXTStep for NeXT tk part of tcl/tk Amulet Java Swing and awt and swt © Brad Myers

22 Toolkits, cont. Important Consistent Look and Feel Re-use of code Can be hard to use: Very large libraries Very large manuals No help with when and how to call what Two layers: Intrinsics: How the widgets are implemented Widget set: Particular "look and feel“ © Brad Myers

23 Toolkits, Intrinsics Procedure-oriented: Library of procedures that can be called Macintosh Toolbox, SunTools library + Simple to implement Object-oriented Library defines standard classes Programmer can make sub-classes Need an OO language Xtk, Interviews, Garnet, Java AWT and Swing + Natural way to think about organization: widgets on screen "seem" like objects + Easier to make customizations - Requires special (single) programming language © Brad Myers

24 Toolkits, Widget Sets Collections of interaction techniques with a particular look-and-feel Can be copyrighted, patented © Brad Myers

25 Toolkits, Widget Sets, cont. Different look-and-feels on same intrinsics The same look-and-feel can be implemented on different intrinsics awtSwingswt Java graphics 2D Windows L&F Windows Windows L&F Java Swing

26 Toolkits, Widgets Sets, cont. Interface to applications: usually “call-back procedures” Application supplied Widget calls Listeners used in Swing are similar Problems - can be hundreds or thousands, - hard to deal with Undo, etc. - modularization compromised Amulet uses command objects instead © Brad Myers

27 Virtual Toolkits Other name: Cross-Platform Development Tools Thin layer above existing toolkits that hides the toolkit dependencies. Allows applications to be more easily ported to different toolkits As opposed to a toolkit that runs on different environments Problems: Toolkit-specific style features Drawing routines must also be provided Examples: XVT (eXtensible Virtual Toolkit), supported Motif, OpenLook, Windows, PM, Macintosh, and character displays Galaxy (from Visix Corp). Re-implemented the widgets Today: Java: AWT, SWT: use native widgets Swing: re-implements the widgets Qt, PhoneGap © Brad Myers

28 Toolkits Success Help maintain consistency among UIs Key insight of Macintosh toolbox è Path of least resistance translates into getting programmers to do the right thing Successful partially because address common, low-level features for all UIs è Address the useful & important aspects of UIs © Brad Myers

29 Event Languages Create programs by writing event handlers Many old tools used this style Univ. of Alberta (1985), Sassafras (1986), HyperCard, etc. Used by Visual Basic, Lingo, Java, etc. Toolkits with call-backs or action methods Advantages: Natural for GUIs since generate discrete events Flow of control in user’s hands rather than programmer’s Discourages moded UIs © Brad Myers

30 Constraints Declare a relationship and system maintains it Sketchpad (1963), ThingLab (1979), Higgens (85), Garnet (1990), Amulet (1997), SubArctic (1996) 1999: hadn’t caught on We thought would be mostly used for graphics Now: Flash data bindings Connect data to graphics è Address the useful & important aspects of UIs è Predictability Constraint networks can be hard to debug Especially in multi-way constraints è High threshold Programmer must specify (or deduce) solving order Constraints require thinking differently © Brad Myers

31 Higher-Level Tools Since toolkits are hard to use, need higher-level support. User Interface Development Environments Comprehensive support for UI Software Tradeoffs: Range of interfaces vs. amount of help (if narrow, can provide more support) Ease of use vs. power 2 Levels: “Foundation Classes” Interactive Tools © Brad Myers

32 Foundation Classes Object-oriented framework that helps you structure all the code Issue: how separate from “Toolkit” part? MacApp, MFC Parts of Swing, Amulet, etc. © Brad Myers

33 Component Architectures Create applications out of components which are separately developed and compiled In UI software, each component controls an area of the screen Example: drawing component handles picture inside a document Invented by Andrew research project at CMU (1988) 1999: OLE, OpenDoc, ActiveX, Java Beans Now: SOA è Address the useful & important aspects of UIs Just the “glue” to hold together components © Brad Myers

34 Interactive Tools Prototyping tools Quickly see how UI is going to look and act Interface Builders Lay out widgets Create menus, dialog boxes Other names: Resource Editors, Interactive Development Tools (IDTs) Evidence that interactive tools 10 to 50 times faster than coding with toolkits © Brad Myers

35 Graphical Interactive Tools Create parts of user interface by laying out widgets with a mouse Examples: Menulay (1983), Trillium (1986), Jean- Marie Hullot from INRIA to NeXT Now: Interface Builders, Visual Basic’s layout editor, resource editors, “constructors” Advantages: Graphical parts done in an appropriate, graphical way è Address the useful & important aspects of UIs Accessible to non-programmers è Low threshold © Brad Myers