Implementação. Interfaces Pessoa Máquina 2010/11. 2009-11 Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

Similar documents
Developing GUI Applications: Architectural Patterns Revisited

7 Implementing Interactive Systems

GUI and Web Programming

Tutorial Reference Manual. Java WireFusion 4.1

MiniDraw Introducing a framework... and a few patterns

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Extending Desktop Applications to the Web

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

Mensch-Maschine-Interaktion 1. Chapter 8 (June 21st, 2012, 9am-12pm): Implementing Interactive Systems

Model-View-Controller (MVC) Design Pattern

GUIs with Swing. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2012

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

The Design of a Graphical User Interface for a Network Management Protocol

UI software architectures & Modeling interaction

Building Applications With DUIM

STM32JAVA. Embedded Java Solutions for STM32

Assignment # 2: Design Patterns and GUIs

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Operating Systems 4 th Class

Source Code Translation

Java (12 Weeks) Introduction to Java Programming Language

Computing Concepts with Java Essentials

A Graphical User Interface Testing Methodology

How to Develop Accessible Linux Applications

OPERATING SYSTEM SERVICES

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

WinCC. Configuration Manual. Manual Volume 2

Operating Systems. and Windows

Guide to SAS/AF Applications Development

Introduction to Visual Basic

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES

Web Presentation Layer Architecture

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt

Mobile App Design and Development

TESTING FRAMEWORKS. Gayatri Ghanakota

Java the UML Way: Integrating Object-Oriented Design and Programming

CHAPTER 1: CLIENT/SERVER INTEGRATED DEVELOPMENT ENVIRONMENT (C/SIDE)

Using the TASKING Software Platform for AURIX

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë

View Controller Programming Guide for ios

Interacting with Users

Syllabus for CS 134 Java Programming

GUI Event-Driven Programming

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Software Application & Operating Systems Checklist

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

IndustrialIT System 800xA Engineering

Introduction to Automated Testing

Event processing in Java: what happens when you click?

CS3600 SYSTEMS AND NETWORKS

A Modular Approach to Teaching Mobile APPS Development

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Swing. A Quick Tutorial on Programming Swing Applications

Unified Monitoring Portal Online Help Topology

Paper Designing Web Applications: Lessons from SAS User Interface Analysts Todd Barlow, SAS Institute Inc., Cary, NC

Software Development Kit

OmniTouch 8440 Messaging Software Quick Reference Guide. Messaging Services Telephone User Interface

How To Develop An App For Ios (Windows)

CS420: Operating Systems OS Services & System Calls

Stress Testing Technologies for Citrix MetaFrame. Michael G. Norman, CEO December 5, 2001

Example of Standard API

Using the Query Analyzer

Scicos is a Scilab toolbox included in the Scilab package. The Scicos editor can be opened by the scicos command

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.

Automating the Development of Information Systems with the MOSKitt Open Source Tool

INTRODUCTION TO COMPUTER PROGRAMMING. Richard Pierse. Class 7: Object-Oriented Programming. Introduction

A Visual Language Based System for the Efficient Management of the Software Development Process.

Principles of Software Construction: Objects, Design and Concurrency. GUIs with Swing. toad Spring 2013

XHTML Forms. Form syntax. Selection widgets. Submission method. Submission action. Radio buttons

Java is commonly used for deploying applications across a network. Compiled Java code

CXQuotes Doors and Windows Quotation software. Cogitrix

ICECCS 08/Workshop «UML&AADL 2008», April, 2, 2008

Asset Track Getting Started Guide. An Introduction to Asset Track

Java Application Developer Certificate Program Competencies

A compositional model for the formal specification of user interface software. Panagiotis Markopoulos

Stock Trader System. Architecture Description

zen Platform technical white paper

Software Accessibility Checklist 1

MATLAB. Creating Graphical User Interfaces Version 6. The Language of Technical Computing. Computation. Visualization. Programming

MICROSOFT OFFICE ACCESS NEW FEATURES

Teaching Object-Oriented Software Design within the Context of Software Frameworks

Version 4.1 USER S MANUAL Technical Support (800)

THE CERN/SL XDATAVIEWER: AN INTERACTIVE GRAPHICAL TOOL FOR DATA VISUALIZATION AND EDITING

Lecture 1 Introduction to Android

DEMONSTRATION OF THE SOFTVISION SOFTWARE VISUALIZATION FRAMEWORK

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

Freescale Semiconductor, I

PICASSO: A User Interface Management System for Real-Time Applications

Dr. Pat Mirenda. Software Design Specification Document

Software documentation systems

Module 9. User Interface Design. Version 2 CSE IIT, Kharagpur

Operating System Structures

An Overview of Java. overview-1

SAS Guide to Applications Development

Lecture 25 Symbian OS

SIMATIC. WinCC V7.0. Getting started. Getting started. Welcome 2. Icons 3. Creating a project 4. Configure communication 5

Workshop on Android and Applications Development

The Mjølner BETA system

Transcription:

Implementação Interfaces Pessoa Máquina 2010/11 2009-11 baseado em material Alan Dix 1

Windowing systems Architecture Layers Higher level Tool UI Toolkit (Widgets) Window System OS Application Hardware 2

Windowing systems Allocation and management display areas for each application program Input devices -> application Is invoked by the application programs to: Create/close windows Manipulate windows (move, resize, hide,...) Receive the user s input via interaction devices 3

Windowing systems Sharing resources Simultaneous execution of different tasks Support independent processes (control coordination of concurrent processes) Isolation of individual applications Device independence Programmer wants to direct commands to an abstract terminal which understands a more generic language and can be translated to the language of many other specific devices (device driver) -> + portability. 4

Windowing systems 5

Client-server architecture 6

Programming paradigms Read-evaluation loop Internal to the application repeat read-event(myevent) case myevent.type type_1: do type_1 processing type_2: do type_2 processing... type_n : do type_n processing end case end repeat 7

Programming paradigms Notification or Callback 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 } 8

Toolkits Interaction objects From the user s perspective, input and output behaviours are intrinsically linked From the programmer s perspective, input and output are quite separate Ex: Mouse 9

Toolkits Provides a set of ready-made interaction objects or widgets (Window Gadget) with a predefined behaviour. Help to synchronize input and output. Promote consistency (similar look and feel ). Ex: Java AWT (Abstract Window Toolkit) - Java classes for buttons, menus,... - Notification based Ex: Java Swing - built on top of AWT higher level features - uses MVC architecture (see later) 10

Widgets Buttons (several types) Scroll bars and sliders Pulldown menus 11

Hierarchy Widgets Hierarchical organization with inheritance Primitive Text Label Button Scroll Bar Push Button Drawn Button Toggle Button 12

Widgets Visual appearance Attributes PushButton { Color BackGround; int MarginLeft; int MarginRight; int BorderWidth; Pixmap ArmPixmap; Boolean FillOnArm; CallbackList ActivateCallback; } Interactive behaviour 13

UIMS Toolkits provide only a limited range of interaction objects, limiting the kinds of interactive behaviour allowed between user and system. User Interface Management Systems Another level above the toolkit level - Toolkits are difficult to use by non-programmers - Separation between application semantics and presentation Provides assistance and automation in the interface building process. 14

Semantic/presentation separation Application Operations Data Interface Components Graphics I/O Users interact with the interface. User actions should be communicated to the application. The application should respond accordingly. 15

Semantic/presentation separation Separation between application semantics and presentation Improves Portability to allow the same application to be used on different systems. Reusability components reusability > cost reduction. Multiple interfaces several different interfaces can be developed to access the same functionality > + flexibility Customization interface can be customized by both the designer and the user to increase its effectiveness without having to alter the underlying application. 16

Seeheim model The logical components of a UIMS were identified as: Presentation the component responsible for the appearance of the interface, including what input and output is available to the user. Dialog control the component which regulates the communication between the presentation and the application. Application interface the view of the application semantics that is provided as the interface. 17

Seeheim model Lexical Syntactic Semantic USER Presentation Dialog Control Functionality (application interface) APPLICATION switch Does not address how to build large and complex interactive systems from smaller components. 18

Model - View - Controller Interactive applications architecture developed for Smalltalk Used by Java Swing UI widget library http://www.javaworld.com/javaworld/jw-04-1998/ jw-04-howto.html Model represents the application semantics; application state and behaviour. Model View Manages the graphical and/or textual output of the application (output). Controller controls and manages the input (user interaction). View Controller 19

Model - View - Controller Separates frontend concerns from backend concerns. Separates input from output Permits multiple views on the same application data Permits views/controllers to be reused for other models A single model can be associated with several MVC triads, so that the same piece of application semantics can be represented by different inputoutput techniques. Each view-controller pair is associated to only one model. 20

Model - View - Controller Example: button Model a boolean on or off View a image for each possible state Controller tells the model to change the state and tells the View to update the output. Application/Presentation Separation Modifications and maintenance are easier Different look: - change View, nothing else 21

Model - View - Controller Model Responsible for data - Maintains application state - Implements state changing behaviour - Notifies dependent views/controllers when changes occurs View Controller 22

Model - View - Controller Model View Responsible for output - Occupies screen (position, size) - Draws on the screen - Listens for changes to the model Controller 23

Model - View - Controller Model View Controller Responsible for input - Listens for keyboard and mouse events - Instructs the model or the view to change accordingly 24

Model - View - Controller View and controller are tightly coupled intense communication between them pairs view/controller Some architectures combine the two in just one class - Model-view - PAC (presentation-abstraction-control) 25