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.

Slides:



Advertisements
Similar presentations
implementation support
Advertisements

1/7 ITApplications XML Module Session 8: Introduction to Programming with XML.
Programming Paradigms and languages
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 11 Designing for Usability I.
Web Applications Development Using Coldbox Platform Eddie Johnston.
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
Project 1 Introduction to HTML.
1 Lecture 7: Implementing a Prototype: Overview of Using PowerPoint, Flash Catalyst, html, Microsoft Sketchflow/Expression Blend, etc. Brad Myers
Ajax Dr Jim Briggs WEBP Ajax1. 2 Ajax Asynchronous JavaScript And XML Method of creating more interactive web applications Moves more of the application.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Russell Taylor Lecturer in Computing & Business Studies.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
1st Project Introduction to HTML.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Part or all of this lesson was adapted from the University of Washington’s “Web Design & Development I” Course materials.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Human Computer Interaction Implementation Support.
Web Design Basic Concepts.
Client/Server Architectures
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Hands-on Introduction to Visual Basic.NET Programming Right from the Start with Visual Basic.NET 1/e 6.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Chapter Lead Black Slide Powered by DeSiaMore Powered by DeSiaMore.
Dr. Azeddine Chikh IS444: Modern tools for applications development.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Microsoft Visual Basic 2005: Reloaded Second Edition
McGraw-Hill/Irwin © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Dynamic Action with Macromedia Dreamweaver MX Barry Sosinsky Valda Hilley.
1 SWE 513: Software Engineering Usability II. 2 Usability and Cost Good usability may be expensive in hardware or special software development User interface.
Software Construction Lecture 10 Frameworks
JavaScript II ECT 270 Robin Burke. Outline JavaScript review Processing Syntax Events and event handling Form validation.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
C H A P T E R T E N Event-Driven Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
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.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Lead Black Slide. © 2001 Business & Information Systems 2/e2 Chapter 5 Information System Software.
CHAPTER TWO INTRODUCTION TO VISUAL BASIC © Prepared By: Razif Razali 1.
Lection №5 Modern integrated development environment.
Frameworks CompSci 230 S Software Construction.
Chapter 4: Working with ASP.NET Server Controls OUTLINE  What ASP.NET Server Controls are  How the ASP.NET run time processes the server controls on.
Introduction to JavaScript CS101 Introduction to Computing.
Cs332a_chapt10.ppt CS332A Advanced HTML Programming DHTML Dynamic Hypertext Markup Language A term describing a series of technologies Not a stand-a-lone.
CITA 342 Section 2 Visual Programming. Allows the use of visual expressions (such as graphics, drawings, or animation) in the process of programming.
HTML Concepts and Techniques Fifth Edition Chapter 1 Introduction to HTML.
Introduction to JavaScript Fort Collins, CO Copyright © XTR Systems, LLC Introduction to JavaScript Programming Instructor: Joseph DiVerdi, Ph.D., MBA.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
Chapter 27 Getting “Web-ified” (Web Applications) Clearly Visual Basic: Programming with Visual Basic nd Edition.
COMPUTER III. Fundamental Concepts of Programming Control Structures Sequence Selection Iteration Flowchart Construction Introduction to Visual Basic.
Overview Web Technologies Computing Science Thompson Rivers University.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
Microsoft Visual Basic 2012: Reloaded Fifth Edition Chapter One An Introduction to Visual Basic 2012.
1 Visual Basic: An Object Oriented Approach 7 – The User interface.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
Support for the Development of Interactive Systems
Understand Windows Forms Applications and Console-based Applications
Hands-on Introduction to Visual Basic .NET
implementation support
Implementation support
implementation support
Implementation support
Presentation transcript:

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 out a design think about it create a mock-up or prototype test it with users iterate build it track it change it

How to build a good UI Software engineering principles –Object oriented programming Object hierarchies constitute modern GUIs –Event driven –Resources (separate UI from Code) –Rapid prototyping (Agile computing) User Interface Management Systems –IDE (Interactive Design Environments)

Object-Oriented Programming Important Concept for User Interface programming OBJECTS are blocks of code (on screen object are often these) Defined hierarchically, with each object being an INSTANCE of a CLASS of similar objects Objects INHERIT the behavior and characteristics defined higher in the hierarchy Object also has PRIVATE DATA that defines its own characteristics and maintains information about its current state

Object-Oriented Programming Objects communicate with each other by sending MESSAGES Object-oriented programming language, such as C++, Java Smalltalk provide excellent match to the needs of user-interface programming If you need to modify the program's behavior, the class hierarchies let you make sweeping changes consistently and easily, while the private data allows you to change the behavior of an individual object without fear of unexpected side-effects

OSF/Motif in X-Windows -- Toolboxes in the Trenches X-Windows - Server-Client system for computer networks Motif -- developed by the Open Software Foundation (OSF) as a standard graphical user interface substrate for X-Windows. Motif consists of a library of C language subroutines that define a toolbox of interface objects and techniques for combining them into a program. The toolbox allows a programmer to create programs that are event-driven, object-oriented, and adaptable through on external resource files Graphical objects in Motif are referred to as WIDGETS

WIDGETS, which are defined as an object- oriented hierarchy. A typical class in the hierarchy is labels, which has buttons as a subclass, which in turn has individual buttons as instances Widgets within a program are also arranged hierarchically A Motif program is event-driven, controlled by an event loop that is supplied as part of the toolkit. When an event occurs in a widget, the system checks the translation table, a part of the widget's resource list that tells what action to take –example resource hello-world.controls.quitButton.XmNhighlightColor:blue hello-world.main*XmNhighlightColor:blue

Concrete To Abstract GUI toolkits abstract windowing system. –Commonly used objects. –Commonly used operations. Accessible through API (Application Programming Interface). API’s available in many programming languages.

window.document.image document.form.field. Document Object Model (DOM)

Widget Hierarchy GtK IE DOM

Java Swing Class Hierarchy

Event-Driven Programs Another major concept for usability Contrast to traditional sequential: the user starts the program and the program takes control, prompting the user for input as needed. –resulting programs are often very modal: an input mode, an edit mode, a print mode, etc. The programmer has to anticipate every sequence of actions the user might want to take, and modes restrict those sequences to a manageable set.

An event-driven paradigm Events are messages the user, or the system, sends to the program. The core of every event-driven program is a simple loop, which waits for an event to take place, responds appropriately to that event In a modern UIMS environment the programmer just needs to build objects (menus, windows, code, etc.) and specify how they send or respond to messages

Event loop example while (TRUE) { // loop forever while (empty(event.queue)); // wait for an event event = pop(event.queue); // get the event event.type(event.information); // send the event } // a mouseDown event handler public boolean mouseDown(Event event, int int x, int y) { // what to do on a mouse down } // a buttonDown event handler buttonDown(button b) { // what to do on a button down }

Resources Interface-specific information such as menu titles or button positions, which are stored so they can be easily changed without affecting the underlying program functionality Some systems you might change the resources by editing values in a text file; on others you might need to use a special resource editor But typically won't require recompiling the application itself, and it won't require access to the source code During prototyping, a few simple changes to resources might dramatically improve an interface, with no ``real'' programming When the system is ready to ship, resources can be changed so the product can be used in countries with a different language

User Interface Management Software tools are essential TOOLKITS- libraries of program subroutines that create and run the many on-screen objects of a graphical user interface, such as –windows, buttons, and menus

UIMS -a toolkit and a programming environment for using it visual environment range from simple to complex saves programming time survey show 40% of commercial programmers use UIMS and spend 40% of their time programming user interfaces Toolkit users spend 60% of their time on ui code helps maintain consistency within and between applications easier to rapidly iterate

Types of UIMSs User interface toolkits. –Macintosh Toolbox, Active X, Java Swing, etc….. –Libraries of interaction techniques User-interface development systems –Integrated set of tools to create and manage interface elements –Can be: Language based e.g. state diagrams, context free grammars Graphical based e.g. Interface builders. IDE - Integrated Development Environments –web link to tool listsweb link to tool lists

Graphical User Interface Toolkits

GUI Foundations Low level graphics. Windowing systems abstraction. –Microsoft Windows. –X11 (Unix). –Macintosh.

Current Toolkits Visual Studio. (Windows umbrella) Macintosh Programmer’s Workshop. Java. Qt. GTK. Tcl/Tk. FLTK. FLEX. Adobe Flash A comprehensive online list

Potential Advantages of UIMSs Better interfaces –rapid proto-typing –easy to change –multiple interfaces –re-usable code –consistent interfaces –designer need not be a programmer Better Code –more structured and modular –better reliability because it is generated from higher level language –hardware dependence can be isolated... more portable

Problems with UIMS Difficult to use they are large require training time Too little functionality Unavailable - not portable Do not support evaluation They can impair quality not being at the right level of abstraction It is difficult to separate the interface from the application.

What to Look for in a UIMS -- and Where Action Logging Big Program Support Code Generation Extensibility of the Interface Extensibility of the Program Operating-System Specific Techniques Prototype to Final Application Capability Stand-alone Application Generation Style Guide Support Vendor Support and Longevity Visual Programming With Structure

Web development tools and trends Dreamweaver (e.g.) (spry toolkit for ajax) Ajax (microsoft page)microsoft page AJAX uses a combination of: XHTML (or HTML) and CSS, for marking up and styling information.XHTMLHTMLCSS The DOM accessed with a client-side scripting language, especially ECMAScript implementations such as JavaScript and JScript, to dynamically display and interact with the information presented.DOMclient-sidescripting language ECMAScriptimplementationsJavaScriptJScript The XMLHttpRequest object is used to exchange data asynchronously with the web server. In some Ajax frameworks and in certain situations, an IFrame object is used instead of the XMLHttpRequest object to exchange data with the web server, and in other implementations, dynamically added tags may be used.XMLHttpRequestAjax frameworksIFramescript XML is sometimes used as the format for transferring data between the server and client, although any format will work, including preformatted HTML, plain text and JSON. These files may be created dynamically by some form of server-side scripting.formatJSONserver-side scripting