Brad Myers Advanced User Interface Software Spring, 2017

Slides:



Advertisements
Similar presentations
implementation support
Advertisements

Database System Concepts and Architecture
Brad Myers Advanced User Interface Software
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
1 Lecture 9: Software Organization: Lexical-Syntax- Semantics, Seeheim Model, MVC, Object-Oriented Programming for UIs Brad Myers Advanced User.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Lecture 23: Software Architectures
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.
Course Instructor: Aisha Azeem
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Human Computer Interaction Implementation Support.
1 Lecture 9: Deep Dive: Selecting and Creating Objects across Different Kinds of Views Brad Myers A/05-499A: Interaction Techniques Spring, 2014.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
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.
Editors And Debugging Systems Other System Software Text Editors Interactive Debugging Systems UNIT 5 S.Sharmili Priyadarsini.
1 Lecture 11: Formal Models and Design Spaces for Interaction Techniques Brad Myers A/05-499A: Interaction Techniques Spring, 2014 © Brad.
Introduction (Continued) Design Patterns (I) Lecture Two.
CS223: Software Engineering
Software Architecture for Multimodal Interactive Systems : Voice-enabled Graphical Notebook.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Databases and DBMSs Todd S. Bacastow January 2005.
Visual Basic.NET Windows Programming
Software architecture
Software Design Refinement Using Design Patterns
CompSci 280 S Introduction to Software Development
Support for the Development of Interactive Systems
Working in the Forms Developer Environment
Lecture 10: Formal Models and Design Spaces for Interaction Techniques
Image by MIT OpenCourseWare Troughput (bps) Error rate (%) Mouse Trackball Joystick Touchpad.
Introduction to Visual Basic 2008 Programming
IS301 – Software Engineering Dept of Computer Information Systems
Physical Data Model – step-by-step instructions and template
SOFTWARE DESIGN AND ARCHITECTURE
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Course: Introduction to Computers
Introduction to Operating System (OS)
Understand Windows Forms Applications and Console-based Applications
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Data, Databases, and DBMSs
Chapter 6 System and Application Software
Model-View-Controller Patterns and Frameworks
Lecture 1: Multi-tier Architecture Overview
Layered Style Examples
Software Architecture
implementation support
Chapter 6 – Architectural Design
GRAPHICAL USER INTERFACE
Starting Design: Logical Architecture and UML Package Diagrams
CSE310 Human-Computer Interaction
An Introduction to Software Architecture
Implementation support
implementation support
implementation support
Chapter 5 Architectural Design.
Chapter 6 System and Application Software
Chapter 6 System and Application Software
Brad Myers : Interaction Techniques Spring, 2019
Chapter 6 System and Application Software
Chapter 6 – Architectural Design
Implementation support
Lecture 17: Formal Models and Design Spaces for Interaction Techniques
Presentation transcript:

Brad Myers 05-830 Advanced User Interface Software Spring, 2017 Lecture 9: Software Organizations: Lexical-Syntax-Semantics, Seeheim Model, MVC Brad Myers 05-830 Advanced User Interface Software Spring, 2017 © 2017 - Brad Myers

Homework 2 Demo of Toby Li’s implementation Redo by next Tuesday © 2017 - Brad Myers

Software Organizations Ways to organize code, rather than tools. "Models" Helps think about modularization and organization. Goal: separation of UI and rest of software = “semantics” © 2017 - Brad Myers

Conceptual-Semantic-Syntactic-Lexical-Pragmatic Derived from compiler theory and language work. Mostly relevant to older, non-DM interfaces Pragmatic  (as subdivided by Buxton) How the physical input devices work required "gestures" to make the input. Ergonomics skilled performance: "muscle memory" press down and hold, vs. click-click © 2017 - Brad Myers

Conceptual-Semantic-Syntactic-Lexical-Pragmatic, cont. Lexical (as subdivided by Buxton) spelling and composition of tokens “add” vs. “append” vs. “^a” vs. Where items are placed on the display “Key-stroke” level analysis For input, is the design of the interaction techniques: how mouse and keyboard combined into menu, button, string, pick, etc. © 2017 - Brad Myers

Conceptual-Semantic-Syntactic-Lexical-Pragmatic, cont. sequence of inputs and outputs. For input, the sequence may be represented as a grammar: rules for combining tokens into a legal sentence For output, includes spatial and temporal factors Example: prefix vs. postfix © 2017 - Brad Myers

Conceptual-Semantic-Syntactic-Lexical-Pragmatic, cont. functionality of the system; what can be expressed What information is needed for each operation on object What errors can occur Semantic vs. UI is key issue in UI tools but "semantic" is different than meaning in compilers "Semantic Feedback“ Depends on meaning of items Example: only appropriate items highlight during drag © 2017 - Brad Myers

Conceptual-Semantic-Syntactic-Lexical-Pragmatic, cont. Conceptual (definition from Foley & Van Dam text, 1st edition) key application concepts that must be understood by user User model Objects and classes of objects Relationships among them Operations on them Example: text editor objects = characters, files, paragraphs relationships = files contain paragraphs contain chars operations = insert, delete, etc. © 2017 - Brad Myers

Seeheim Model Resulted from the 1st UI software tools workshop which took place in Seeheim, Germany. Nov 1-3, 1983. Logical model of a UIMS UIMS = User Interface Management System (old name for user interface software) All UI software must support these components, but are they separated? How interface? © 2017 - Brad Myers

Seeheim Model Presentation Component Dialog Control External presentation of the user interface Generates the images Receives physical input events Lexical parsing Dialog Control Parsing of tokens into syntax Must maintain state to deal with parsing; modes. Application Interface Model defines interface between UIMS and the rest of the software "Semantic feedback" for checking validity of inputs Not explicit in UIMSs; fuzzy concept. Roughly like today's call-backs. © 2017 - Brad Myers

Card, Mackinlay, Robertson model Input device is a six-tuple: (M, In, S, R, Out, W) M is a manipulation operator (slide, rotary, force, distance) In is the input domain, S is the current state of the device, R is a resolution function that maps from the input domain set to the output domain set, Out is the output domain set, and W is a general purpose set of device properties that describe additional aspects of how a device works (perhaps using production systems). Composition operators – how inputs connected (x and y of mouse, buttons, output of one to input of another) © 2017 - Brad Myers

Card, Mackinlay, Robertson Model, cont. © 2017 - Brad Myers

Model-View-Controller Invented in Smalltalk, about 1980 Idea: separate out presentation (View), user input handling (Controller) and "semantics" (Model) which does the work Fairly straightforward in principal, hard to carry through Never adequately explained (one article, hard to find) Goals program a new model, and then re-use existing views and controllers multiple, different kinds of views on same model © 2017 - Brad Myers

MVC © 2017 - Brad Myers

MVC Views closely associated with controllers. Each VC has one M; one M can have many VCs. VCs know about their model explicitly, but M doesn't know about views Changes in models broadcast to all "dependents" of a model using a standard protocol. © 2017 - Brad Myers

MVC Model Views Controller Simple as an integer for a counter; string for an editor Complex as a molecular simulator Views Everything graphical Layout, subviews, composites Controller Schedule interactions with other VCs A menu is a controller © 2017 - Brad Myers

MVC Standard interaction cycle: Problems: User operates input device, controller notifies model to change, model broadcasts change notification to its dependent views, views update the screen. Views can query the model Problems: Views and controllers tightly coupled What is in each part? Complexities with views with parts, controllers with sub-controllers, models with sub-models... © 2017 - Brad Myers

Model-View Since hard to separate view and controller Used by Andrew, InterViews Primary goal: support multiple views of same data. Simply switch views and see data differently Put into Model "part that needs to be saved to a file" but really need to save parts of the view © 2017 - Brad Myers

Later Models of Software Organization “Arch” model Bass, R. Faneuf, R. Little, N. Mayer, B. Pellegrino, S. Reed, R. Seacord, S. Sheppard, and M. Szczur, 1992. “A metamodel for the runtime architecture of an interactive system: the UIMS tool developers workshop”, ACM SIGCHI Bulletin. 24 (1), 32–37. Jan, 1992 http://doi.acm.org/10.1145/142394.142401 Adds abstract interface for the functional core Logical interaction layer: widget libraries and user interface toolkits such as Motif or MFC. © 2017 - Brad Myers

Later Models of Software Organization PAC-Amodeus Nigay, L. and Coutaz, J., 1991. Building User Interfaces: Organizing Software Agents. In: ESPRIT'91, Project Nr. 3066: AMODEUS (Assimilating Models of DEsigners, Users and Systems), pp. 707–719. http://citeseer.nj.nec.com/nigay91building.html, or http://iihm.imag.fr/publs/1991/ Tries to integrate MVC with Arch © 2017 - Brad Myers

Document Model Provided first by Smalltalk, MacApp Also MacOS, Windows, etc. Provide generic (empty) top-level classes that you subclass to implement the specific kind of application UI Frameworks Note: different from Web document object model (DOM) © 2017 - Brad Myers

Other Models Producer – Consumer Client – Server Peer to peer Like Unix pipes Client – Server X server Peer to peer Networking or OS multi-layer models Service Oriented Architecture (All of the “Design Patterns” in the “gang of four” book) “Domain-Driven Design” book Model-driven design (different use of “model”) Fitt’s law – model for evaluation © 2017 - Brad Myers