Interface (API) Design

Size: px
Start display at page:

Download "Interface (API) Design"

Transcription

1 Interface (API) Design Architect s Perspective R. Kuehl/J. Scott Hawker p. 1

2 What is an API? Exposes the public facing functionality of a software component Operations, inputs, and outputs Exposes functionality independent of implementation Local libraries or public frameworks of routines or classes (e.g., vendor or program language libraries) Proxy for remote call invocation protocols (e.g., Java RMI, SOAP or REST) XML, JSON message encoding R. Kuehl/J. Scott Hawker p. 2

3 Why is API Design Important? Internal APIs enable successful development and support Successful public APIs capture customers Poor API s can become a liability Customers invest heavily: developing, learning, using Cost to stop using an API can be prohibitive Public APIs are forever - one chance to get it right The first version of an API is always easy R. Kuehl/J. Scott Hawker p. 3

4 Conway s Law Programmer Melvin Conway in 1968 organizations which design systems... are constrained to produce designs which are copies of the communication structures of these organizations For two software modules to interface properly, developers of each module must communicate Therefore a system s interface (architecture) structure will reflect its social organization R. Kuehl/J. Scott Hawker p. 4

5 The Cost of Poor APIs Longer development times Harder to understand during design Difficult to program, may require extra code Program size and efficiency Complex code implies more testing with greater bug risk Hierarchies of layered APIs compound the costs Defects in lower layers propagate upward with greater impact E.g., security holes in low level c library string manipulation APIs Adding wrappers hide but don t fix a bad API R. Kuehl/J. Scott Hawker p. 5

6 Why is API Design Important to an Architect? APIs are one of an architecture s most tangible and useful outcomes Every architecturally significant module will have an associated interface Good interface design helps realize architecture objectives during construction The architect should oversee (do) interface design The architect should dictate API style and policy e.g., naming Useful modules tend to get reused Good reusable modules are business assets frameworks R. Kuehl/J. Scott Hawker p. 6

7 API Quality Attributes Usability ( DevX ) Satisfies requirements (of course) Learnability Productivity - easy to use, even without documentation Understandability Hard to misuse Easy to read and maintain code that uses it Simple, consistent R. Kuehl/J. Scott Hawker p. 7

8 API Quality Attributes (cont) Expressiveness abstraction matches developer s mental model Extensibility - stable but easy to extend as necessary Evolvability create new versions Performance speed and resource consumption Robustness and security R. Kuehl/J. Scott Hawker p. 8

9 The Process Of API Design Preamble - system requirements and software architecture identify modules of interest For an API instance - write a short specification, prototype, evaluate, refine Write to the API early and often Expect defects and changes to evolve the API The client code artifacts live on as examples and unit tests R. Kuehl/J. Scott Hawker p. 9

10 API Evaluation Analogous to HCI Evaluation Experts using heuristics Users do cognitive walkthroughs User testing given tasks programmers write against the API s R. Kuehl/J. Scott Hawker p. 10

11 API Heuristic Evaluation Heuristic Visibility of status Match to real world User control and freedom Consistency Error prevention Recognition over recall Flexibility and efficiency of use Aesthetic and minimalist design Error recognition and recovery Help and documentation Measurement Check system state Meaningful naming Abort or reset operations E.g., Parameter order E.g., default parameters do the right thing Naming again Programmability Good naming Helpful error returns/exceptions Available and accurate R. Kuehl/J. Scott Hawker p. 11

12 Commercial API Examples Pick one of the following API s based on your project platform: Web App Mailchimp: Mobile App Android: Browse to form learnability first impressions Evaluate the details of a few specific API s from a coder s perspective Understandable? Simple to use? Limitations or other concerns? Cohesion/coupling? R. Kuehl/J. Scott Hawker p. 12

13 A Few API Design Guidelines - 1 API should do one thing only and do it well - cohesion Should follow from good architecture module definition Abstraction the API should not expose or be impacted by the implementation Maximize information hiding e.g., make class attributes and methods as private as possible Names matter API is a little language Names should be self explanatory, consistent, metaphoric Consider performance implications carefully Bad decisions can impact performance excessive memory allocation, unnecessary computation Don t manipulate the API design to fix performance problems R. Kuehl/J. Scott Hawker p. 13

14 A Few API Design Guidelines - 2 Interface signature surface area minimalism fewer types, functions, parameters; If in doubt, leave it out; you can always add but hard to remove E.g., adding a rarely used convenience function, or adding too many configuration parameters Maintaining backward compatibility accumulates crud ; it s a tradeoff problem Good ergonomics (the API feel ) consistent style for naming, parameter typing and order, error handling, calling order, etc. Follow platform conventions, establish a guide API Should Be As Small As Possible But No Smaller Ockham s Razor R. Kuehl/J. Scott Hawker p. 14

15 A Few API Design Guidelines - 3 General purpose APIs should be policy free ; special purpose APIs policy rich ; another API design tradeoff Policy - architect s anticipated use cases for the API APIs dictate policy the semantics and style of programming imposed on the caller The less known about usage context, the more flexibility desired The more known about usage context, the more policy should be imposed based on use cases Examples: A table lookup fails throw exception, return null, or zero? Java collections versus application collections R. Kuehl/J. Scott Hawker p. 15

16 A Few API Design Guidelines - 4 Design APIs from the client s perspective Provide sufficient functionality for the caller to complete their task (traceable to a use case) Keep testability in mind; E.g., provide a testing API extension to expose internal details Involve the users in design and review of the signature Don t surprise the caller with API behavior violate the principle of least astonishment R. Kuehl/J. Scott Hawker p. 16

17 A Few API Design Guidelines - 5 APIs should be documented document everything If done exclusively by the developer possible implementation bias So involve the user ideally before implementation Don t ignore exception handling, possible side effects Test drive the API and the documentation with new users; is the API self documenting? Unit tests help refine the API and documentation R. Kuehl/J. Scott Hawker p. 17

18 Documenting Interfaces: Interface Specification Template 1. Interface identity (name, version) 2. Responsibilities (services, functions) provided (*IDL option) Signature syntax (arguments, types, etc.) Semantics usage scenarios Pre/post conditions, return values Cross function coordination Usage restrictions (initialization, timing of use, ownership, etc.) 3. Data type definitions application specific 4. Exception definitions and handling *IDL Interface Description Language self descriptive, language independent, human and machine readable R. Kuehl/J. Scott Hawker p. 18

19 Documenting Interfaces: Interface Specification Template (cont) 5. Variability provided by the interface such as configuration, performance ranges, data capacity ranges 6. Quality attributes of the interface, e.g., performance considerations 7. Resource requirements (resources required, dependencies) 8. Rationale / design issues and resolution R. Kuehl/J. Scott Hawker p. 19

20 API Contracts Classes of a system communicate with one another on the basis of precisely defined benefits and obligations [Bertrand Meyer, CACM, Vol 36, No 9, 1993] Correctness - formal, precise and verifiable interface specifications the contract Pre-condition always True before an interface is invoked; client responsibility Post-condition always True once a component successfully completes it's assigned task; supplier responsibility Invariant - conditions held True following each successful completion (or exception contract not fulfilled); e.g., range of valid variable values Performance fast, usually fast, variable but predictable, variable and unpredictable The API Performance Contract, Sproull, Waldo, CACM, 3/14 R. Kuehl/J. Scott Hawker p. 20

21 Class Activity Individually, specify an API for one of the components in your project. It may be for a significant internal interface or an external interface at the system boundary. Use the interface specification template from the lecture (parts 1-4) Review the specification within your team for developer experience feedback Submit the specification to the Class Activity > API Design dropbox R. Kuehl/J. Scott Hawker p. 21

22 Example Interface Identity usercreate Responsibility usercreate(firstname, lastname, type, , password) {...} Data Type Definitions String firstname; String lastname; String type; // default = member, other = leader, admin String ; String password; int id = uniqid(); // a unique identification number Exception Definitions and Handling UserAlreadyExistsException - thrown when the system attempts to create a user that already has the specified firstname & lastname or . When thrown, the user is redirected to the Create User page. UserNotAuthorizedException - thrown when an unauthorized user tries to create a new user. When thrown, the user is redirected to the Create User page and an administrator is notified of this action. R. Kuehl/J. Scott Hawker p. 22

23 Example Interface Identity Responsibility Data Type Definitions Exception Definitions and Handling Shopping Cart Add Item to cart URL /account/additemtocart POST Input Item: JSON ItemObject Output The server adds the item to the user s cart A status message and code is returned back In JSON format: Name - Name of the object Rating - Rating of the object Description - Description of the object Array of {Vendor, Price, Link} - Vendor - A vendor selling the object; Price - The price for the vendor; Link - A link to the vendors store with the object The server will return back JSON output with an error code as well as a message describing what the issue was R. Kuehl/J. Scott Hawker p. 23

24 References How to Design a Good API and Why it Matters, Joshua Bloch, Google API Design Matters Michi Henning, CACM May 2009 Practical API Design: Confessions of a Java Framework Architect, Jaroslav Tulach, Books 24x7 Improving API Usability, Myers Stylos, CACM May 2016 R. Kuehl/J. Scott Hawker p. 24

Additional reading for this lecture: Heuristic Evaluation by Jakob Nielsen. Read the first four bulleted articles, starting with How to conduct a

Additional reading for this lecture: Heuristic Evaluation by Jakob Nielsen. Read the first four bulleted articles, starting with How to conduct a Additional reading for this lecture: Heuristic Evaluation by Jakob Nielsen. Read the first four bulleted articles, starting with How to conduct a heuristic evaluation and ending with How to rate severity.

More information

User Interface Evaluation

User Interface Evaluation User Interface Evaluation Heuristic Evaluation Lecture #17 Agenda Evaluation through Expert Analysis Cognitive walkthrough Heuristic evaluation Model-based evaluation Cognitive dimension of notations 2

More information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 307: Software Engineering. Lecture 10: Software Design and Architecture CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office

More information

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an

More information

HCI and Design SPRING 2016

HCI and Design SPRING 2016 HCI and Design SPRING 2016 Topics for today Heuristic Evaluation 10 usability heuristics How to do heuristic evaluation Project planning and proposals Usability Testing Formal usability testing in a lab

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

More information

Lecture 14: Heuristic Evaluation. Fall UI Design and Implementation 1

Lecture 14: Heuristic Evaluation. Fall UI Design and Implementation 1 Lecture 14: Heuristic Evaluation Fall 2006 6.831 UI Design and Implementation 1 1 UI Hall of Fame or Shame? Fall 2006 6.831 UI Design and Implementation 2 The next version of Microsoft Office (Office 2007)

More information

Lecture 22: Heuristic Evaluation. UI Hall of Fame or Shame? Spring User Interface Design and Implementation 1

Lecture 22: Heuristic Evaluation. UI Hall of Fame or Shame? Spring User Interface Design and Implementation 1 Lecture 22: Heuristic Evaluation Spring 2008 6.831 User Interface Design and Implementation 1 UI Hall of Fame or Shame? From Shauni Deshmukh: Kayak.com is a website that allows people to search for flights.

More information

User Interface Design. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

User Interface Design. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Chapter 11 User Interface Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit

More information

Writing usable APIs in practice. ACCU 2012 Conference, Oxford, UK Giovanni

Writing usable APIs in practice. ACCU 2012 Conference, Oxford, UK Giovanni Writing usable APIs in practice ACCU 2012 Conference, Oxford, UK Giovanni Asproni gasproni@asprotunity.com @gasproni 1 Summary API definition Two assumptions Why bother with usability Some techniques to

More information

SWEN 444 Human Centered Requirements and Design Project Breakdown

SWEN 444 Human Centered Requirements and Design Project Breakdown SWEN 444 Human Centered Requirements and Design Project Breakdown Team Status Reports: (starting in Week 2) Your team will report weekly project status to your instructor, and as you wish, capture other

More information

SWEN 444 Human Centered Requirements and Design Project Breakdown

SWEN 444 Human Centered Requirements and Design Project Breakdown SWEN 444 Human Centered Requirements and Design Project Breakdown Team Status Reports: (starting in Week 2) Your team will report bi-weekly project status to your instructor, and as you wish, capture other

More information

The Software Design Process. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

The Software Design Process. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed The Software Design Process CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed Outline Challenges in Design Design Concepts Heuristics Practices Challenges in Design A problem that can only be defined

More information

IPM 10/11 T1.6 Discount Evaluation Methods

IPM 10/11 T1.6 Discount Evaluation Methods IPM 10/11 T1.6 Discount Evaluation Methods Licenciatura em Ciência de Computadores Miguel Tavares Coimbra Acknowledgements: Most of this course is based on the excellent course offered by Prof. Kellogg

More information

User-Centered Design. Jeff Bos, Design Insights BlackBerry

User-Centered Design. Jeff Bos, Design Insights BlackBerry User-Centered Design Jeff Bos, Design Insights BlackBerry Overview Real World Design Challenges UX Design Principles Cognitive Demand Techniques for reducing workload Discount Usability Techniques Best

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

Lecture 10 Usability

Lecture 10 Usability Lecture 10 Usability Mark Woehrer CS 3053 - Human-Computer Interaction Computer Science Department Oklahoma University Spring 2007 [Taken from Stanford CS147 with permission] Learning Goals Understand

More information

Human-Computer Interaction: An Overview. CS2190 Spring 2010

Human-Computer Interaction: An Overview. CS2190 Spring 2010 Human-Computer Interaction: An Overview CS2190 Spring 2010 There must be a problem because What is HCI? Human-Computer interface Where people meet or come together with machines or computer-based systems

More information

Analytical evaluation

Analytical evaluation Chapter 15 Analytical evaluation 1 Aims: Describe the key concepts associated with inspection methods. Explain how to do heuristic evaluation and walkthroughs. Explain the role of analytics in evaluation.

More information

HEURISTIC EVALUATION WHY AND HOW

HEURISTIC EVALUATION WHY AND HOW HEURISTIC EVALUATION WHY AND HOW REF: Scott Klemmer Jacob Nielsen James Landay HEURISTIC EVALUATION Multiple ways to evaluate Empirical: Assess with real users trying s/w Formal: Models and formulas to

More information

User Interface Design. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

User Interface Design. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 15 User Interface Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger

More information

A Heuristic Evaluation of Ohiosci.org

A Heuristic Evaluation of Ohiosci.org A Heuristic Evaluation of Ohiosci.org Executive Summary Site evaluated: Goal: Method: The Ohio Academy of Science http://www.ohiosci.org/ The goal of this heuristic evaluation is to test the overall usability

More information

Interface Design Week 7

Interface Design Week 7 Interface Design Week 7 MSDN Account All the accounts are created. If students did not get an email then they already had an account. All you need to do is to give your students this URL http://msdn06.eacademy.com/elms/storefront/home.aspx?campus=csun_e_ceng

More information

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering? Q2a. What are the key challenges being faced by software engineering? Ans 2a. The key challenges facing software engineering are: 1. Coping with legacy systems, coping with increasing diversity and coping

More information

Foundation Level Syllabus Usability Tester Sample Exam

Foundation Level Syllabus Usability Tester Sample Exam Foundation Level Syllabus Usability Tester Sample Exam Version 2017 Provided by German Testing Board Copyright Notice This document may be copied in its entirety, or extracts made, if the source is acknowledged.

More information

Patterns Architectural Styles Archetypes

Patterns Architectural Styles Archetypes Patterns Architectural Styles Archetypes Patterns The purpose of a pattern is to share a proven, widely applicable solution to a particular problem in a standard form that allows it to be easily reused.

More information

Assignment 5 is posted! Heuristic evaluation and AB testing. Heuristic Evaluation. Thursday: AB Testing

Assignment 5 is posted! Heuristic evaluation and AB testing. Heuristic Evaluation. Thursday: AB Testing HCI and Design Topics for today Assignment 5 is posted! Heuristic evaluation and AB testing Today: Heuristic Evaluation Thursday: AB Testing Formal Usability Testing Formal usability testing in a lab:

More information

cs465 principles of user interface design, implementation and evaluation

cs465 principles of user interface design, implementation and evaluation cs465 principles of user interface design, implementation and evaluation Karrie G. Karahalios 24. September 2008 1. Heuristic Evaluation 2. Cognitive Walkthrough 3. Discuss Homework 3 4. Discuss Projects

More information

evaluation techniques goals of evaluation evaluation by experts cisc3650 human-computer interaction spring 2012 lecture # II.1

evaluation techniques goals of evaluation evaluation by experts cisc3650 human-computer interaction spring 2012 lecture # II.1 topics: evaluation techniques usability testing references: cisc3650 human-computer interaction spring 2012 lecture # II.1 evaluation techniques Human-Computer Interaction, by Alan Dix, Janet Finlay, Gregory

More information

USER INTERFACE DESIGN + PROTOTYPING + EVALUATION. Heuristic Evaluation. Prof. James A. Landay University of Washington CSE 440

USER INTERFACE DESIGN + PROTOTYPING + EVALUATION. Heuristic Evaluation. Prof. James A. Landay University of Washington CSE 440 USER INTERFACE DESIGN + PROTOTYPING + EVALUATION Heuristic Evaluation Prof. James A. Landay University of Washington CSE 440 February 19, 2013 Hall of Fame or Shame? Pocket By Read It Later Jan. 14-18,

More information

Heuristic Evaluation. Heuristic evaluation evaluates the interface to identify usability problems against recognized usability design heuristics.

Heuristic Evaluation. Heuristic evaluation evaluates the interface to identify usability problems against recognized usability design heuristics. Heuristic Evaluation Heuristic evaluation evaluates the interface to identify usability problems against recognized usability design heuristics. Usability heuristics are best practices developed and identified

More information

Use-Case Analysis. Architecture Oriented Analysis. R. Kuehl/J. Scott Hawker p. 1 R I T. Software Engineering

Use-Case Analysis. Architecture Oriented Analysis. R. Kuehl/J. Scott Hawker p. 1 R I T. Software Engineering Use-Case Analysis Architecture Oriented Analysis R. Kuehl/J. Scott Hawker p. 1 Notes The slides are based on UML use-case analysis techniques This is an introduction detailed techniques and notation will

More information

Overview of Today s Lecture. Analytical Evaluation / Usability Testing. ex: find a book at Amazon.ca via search

Overview of Today s Lecture. Analytical Evaluation / Usability Testing. ex: find a book at Amazon.ca via search Overview of Today s Lecture Analytical Evaluation / Usability Testing November 17, 2017 Analytical Evaluation Inspections Recapping cognitive walkthrough Heuristic evaluation Performance modelling 1 2

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Chapter 15: Analytical evaluation

Chapter 15: Analytical evaluation Chapter 15: Analytical evaluation Aims: Describe inspection methods. Show how heuristic evaluation can be adapted to evaluate different products. Explain how to do doing heuristic evaluation and walkthroughs.

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Design Heuristics and Evaluation

Design Heuristics and Evaluation Design Heuristics and Evaluation Rapid Evaluation Selected material from The UX Book, Hartson & Pyla Heuristic Evaluation Another method for finding usability problems in a UI design Validation during

More information

CSE 440: Introduction to HCI User Interface Design, Prototyping, and Evaluation

CSE 440: Introduction to HCI User Interface Design, Prototyping, and Evaluation CSE 440: Introduction to HCI User Interface Design, Prototyping, and Evaluation Lecture 11: Inspection Tuesday / Thursday 12:00 to 1:20 James Fogarty Kailey Chan Dhruv Jain Nigini Oliveira Chris Seeds

More information

Chapter 8: Class and Method Design

Chapter 8: Class and Method Design Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined

More information

CS415 Human Computer Interaction

CS415 Human Computer Interaction CS415 Human Computer Interaction Lecture 7 Implementation and Testing Tools for HCIs October 4, 2015 Sam Siewert Coming Up Quiz on Wednesday for Part II Chapters 5,6,7,8,9 Review Next Week on Monday, 10/12

More information

Interfaces 3. Reynold Xin Aug 22, Databricks Retreat. Repurposed Jan 27, 2015 for Spark community

Interfaces 3. Reynold Xin Aug 22, Databricks Retreat. Repurposed Jan 27, 2015 for Spark community Interfaces 3 Reynold Xin Aug 22, 2014 @ Databricks Retreat Repurposed Jan 27, 2015 for Spark community Spark s two improvements over Hadoop MR Performance: 100X faster than Hadoop MR Programming model:

More information

Javadoc. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 7

Javadoc. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 7 Javadoc Computer Science and Engineering College of Engineering The Ohio State University Lecture 7 Motivation Over the lifetime of a project, it is easy for documentation and implementation to diverge

More information

Implementing Architectures

Implementing Architectures Implementing Architectures Software Architecture Lecture 15 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Formulate implementation as a mapping

More information

What is Software Architecture

What is Software Architecture What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements

More information

Heuristic evaluation is a usability inspection technique developed by Jakob Nielsen. The original set of heuristics was derived empirically from an

Heuristic evaluation is a usability inspection technique developed by Jakob Nielsen. The original set of heuristics was derived empirically from an Heuristic evaluation is a usability inspection technique developed by Jakob Nielsen. The original set of heuristics was derived empirically from an analysis of 249 usability problems (Nielsen, 1994). -Preece

More information

GUI Design Principles

GUI Design Principles GUI Design Principles User Interfaces Are Hard to Design You are not the user Most software engineering is about communicating with other programmers UI is about communicating with users The user is always

More information

Usability Inspection Methods. Overview. Usability Measures. SMD157 Human-Computer Interaction Fall 2003

Usability Inspection Methods. Overview. Usability Measures. SMD157 Human-Computer Interaction Fall 2003 INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Usability Inspection Methods SMD157 Human-Computer Interaction Fall 2003 Nov-20-03 SMD157, Usability Inspection Methods 1 L Overview Usability

More information

Analytical Evaluation

Analytical Evaluation Analytical Evaluation November 7, 2016 1 Questions? 2 Overview of Today s Lecture Analytical Evaluation Inspections Performance modelling 3 Analytical Evaluations Evaluations without involving users 4

More information

Usability I: Principles and Guidelines

Usability I: Principles and Guidelines Usability I: Principles and Guidelines Rob Procter Further Reading Dix et al., chapter 4, p. 162-177 Newman and Lamming, chapter 15, p. 373-85 10/26/01 CS4: HCI Lecture 6 1 Introduction Usability principles

More information

15/16 CSY2041 Quality and User-Centred Systems

15/16 CSY2041 Quality and User-Centred Systems 15/16 CSY2041 Quality and User-Centred Systems INTERACTION DESIGN 1 Heuristic evaluation and walkthroughs 2 1 Aims: Describe the key concepts associated with inspection methods. Explain how to do heuristic

More information

Heuristic Evaluation. Hall of Fame or Shame? Hall of Fame or Shame? Hall of Fame! Heuristic Evaluation

Heuristic Evaluation. Hall of Fame or Shame? Hall of Fame or Shame? Hall of Fame! Heuristic Evaluation 1 USER INTERFACE DESIGN + PROTOTYPING + EVALUATION Hall of Fame or Shame? Heuristic Evaluation Prof. James A. Landay University of Washington Pocket By Read It Later 11/1/2012 2 Hall of Fame or Shame?

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 9 Date:

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

HUMAN COMPUTER INTERACTION

HUMAN COMPUTER INTERACTION HUMAN COMPUTER INTERACTION 3. USABILITY AND CONCEPTUAL MODEL I-Chen Lin, National Chiao Tung University, Taiwan "One most unfortunate product is the type of engineer who does not realize that in order

More information

CSE 440: Introduction to HCI User Interface Design, Prototyping, and Evaluation

CSE 440: Introduction to HCI User Interface Design, Prototyping, and Evaluation CSE 440: Introduction to HCI User Interface Design, Prototyping, and Evaluation Lecture 12: Inspection-Based Methods James Fogarty Daniel Epstein Brad Jacobson King Xia Tuesday/Thursday 10:30 to 11:50

More information

Usability. HCI - Human Computer Interaction

Usability. HCI - Human Computer Interaction Usability HCI - Human Computer Interaction Computer systems optimization for easy access and communication Definition design Basic principles Testing assessment implementation Quality Utility funcionality

More information

Getting Started with the Aloha Community Template for Salesforce Identity

Getting Started with the Aloha Community Template for Salesforce Identity Getting Started with the Aloha Community Template for Salesforce Identity Salesforce, Winter 18 @salesforcedocs Last updated: November 30, 2017 Copyright 2000 2017 salesforce.com, inc. All rights reserved.

More information

SYMFONY2 WEB FRAMEWORK

SYMFONY2 WEB FRAMEWORK 1 5828 Foundations of Software Engineering Spring 2012 SYMFONY2 WEB FRAMEWORK By Mazin Hakeem Khaled Alanezi 2 Agenda Introduction What is a Framework? Why Use a Framework? What is Symfony2? Symfony2 from

More information

Heuristic Evaluation! Hall of Fame or Shame?! Hall of Fame or Shame?! Hall of Fame or Shame?! Hall of Fame!!

Heuristic Evaluation! Hall of Fame or Shame?! Hall of Fame or Shame?! Hall of Fame or Shame?! Hall of Fame!! CS 147: HCI+D UI Design, Prototyping, and Evaluation, Autumn 2014 HCI+D: USER INTERFACE DESIGN + PROTOTYPING + EVALUATION Hall of Fame or Shame? Heuristic Evaluation Computer Science Department Autumn

More information

Objectives. Object-Oriented Analysis and Design with the Unified Process 2

Objectives. Object-Oriented Analysis and Design with the Unified Process 2 Objectives Understand the differences between user interfaces and system interfaces Explain why the user interface is the system to the users Discuss the importance of the three principles of user-centered

More information

RESTful API Design APIs your consumers will love

RESTful API Design APIs your consumers will love RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in

More information

Develop Mobile Front Ends Using Mobile Application Framework A - 2

Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4

More information

Steps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26.

Steps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26. git status Steps for project success Homework 1 submitted Homework 2 will be posted October 26 due November 16, 9AM Projects underway project status check-in meetings November 9 System-building project

More information

Software Design COSC 4353/6353 DR. RAJ SINGH

Software Design COSC 4353/6353 DR. RAJ SINGH Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...

More information

Design and Information Hiding

Design and Information Hiding Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,

More information

Northeastern University - Seattle. Computer and Information Sciences

Northeastern University - Seattle. Computer and Information Sciences Northeastern University - Seattle Computer and Information Sciences Ian Gorton College of Computer and Information Science Program Design Principles PDP CS5010 Week 1 Introduction to PDP Overview Aims

More information

EECS168 Exam 3 Review

EECS168 Exam 3 Review EECS168 Exam 3 Review Exam 3 Time: 2pm-2:50pm Monday Nov 5 Closed book, closed notes. Calculators or other electronic devices are not permitted or required. If you are unable to attend an exam for any

More information

Motivation. ! Stop reinventing the wheel, try to reuse code! ! How do you organize code reuse? History: " Copy & Paste. " Collect useful files

Motivation. ! Stop reinventing the wheel, try to reuse code! ! How do you organize code reuse? History:  Copy & Paste.  Collect useful files Motivation 08 - Object-Oriented Libraries and Extensions! When you several systems, you notice that much of their code is similar.! Stop reinventing the wheel, try to reuse code!! How do you organize code

More information

Object Oriented Analysis and Design - Part2(Design)

Object Oriented Analysis and Design - Part2(Design) Object Oriented Analysis and Design - Part2(Design) Exam A QUESTION 1 Which statement is true about elements within the subsystem and public visibility? A. Only the subset of elements that define the subsystems

More information

Marking Guidelines for MVK Projects. MVK12. Version 6.2 (PPD, URD, RURD, ADD and software demo)

Marking Guidelines for MVK Projects. MVK12. Version 6.2 (PPD, URD, RURD, ADD and software demo) Marking Guidelines for MVK Projects. MVK12 Version 6.2 (PPD, URD, RURD, ADD and software demo) 2013-02- 13 Final Grade formulas: MVK DD1365 Grade = 33% PPD + 66% URD. Bachelor s Thesis DD143X Grade = ADD

More information

Expert Reviews (1) Lecture 5-2: Usability Methods II. Usability Inspection Methods. Expert Reviews (2)

Expert Reviews (1) Lecture 5-2: Usability Methods II. Usability Inspection Methods. Expert Reviews (2) : Usability Methods II Heuristic Analysis Heuristics versus Testing Debate Some Common Heuristics Heuristic Evaluation Expert Reviews (1) Nielsen & Molich (1990) CHI Proceedings Based upon empirical article

More information

Monitoring Standards for the Producers of Web Services Alexander Quang Truong

Monitoring Standards for the Producers of Web Services Alexander Quang Truong Monitoring Standards for the Producers of Web Services 02-21-2017 Alexander Quang Truong Contents 1. Summary... 2 2. Metrics... 2 3. Benefits and Explanations of Metrics... 2 4. Tools for Monitoring...

More information

Site Design. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Site Design. SWE 432, Fall 2017 Design and Implementation of Software for the Web Site Design SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How do you help users understand if it is possible to do what they d like to do? How do you help users find what they

More information

CS415 Human Computer Interaction

CS415 Human Computer Interaction CS415 Human Computer Interaction Lecture 6, Part 2 Implementation and Testing Tools for HCIs October 1, 2018 Sam Siewert Minute Paper Summary - The Gurus Don Norman 1. make it fun (attributed to Fadell?)

More information

CPSC 427: Object-Oriented Programming

CPSC 427: Object-Oriented Programming CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 1 August 29, 2018 CPSC 427, Lecture 1, August 29, 2018 1/30 About This Course Topics to be Covered Kinds of Programming Why C++? C++ Programming

More information

This quiz is closed book, closed notes. You have 80 minutes to complete it. Your name:

This quiz is closed book, closed notes. You have 80 minutes to complete it. Your name: 6.831 User Interface Design & Implementation Fall 2004 Quiz 1 This quiz is closed book, closed notes. You have 80 minutes to complete it. Your name: 1. (3 points) Which of the following are measurable

More information

Interaction Design. Heuristic Evaluation & Cognitive Walkthrough

Interaction Design. Heuristic Evaluation & Cognitive Walkthrough Interaction Design Heuristic Evaluation & Cognitive Walkthrough Interaction Design Iterative user centered design and development Requirements gathering Quick design Build prototype Evaluate and refine

More information

Product Quality Engineering. RIT Software Engineering

Product Quality Engineering. RIT Software Engineering Product Quality Engineering Q vs q Quality includes many more attributes than just absence of defects Features Performance Availability Safety Security Reusability Extensibility Modifiability Portability

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2015/2016 Eddy Groen Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU Outline Chapter 4: Design Patterns

More information

System and Software Architecture Description (SSAD)

System and Software Architecture Description (SSAD) System and Software Architecture Description (SSAD) Perfecto Coffee Xpress Consistent Perfection Team 5 Chloe Good Yekaterina Glazko Edwards Hays Yucheng Hsieh Atreya Lahiri Jaimin Patel Yun Shen Andrew

More information

Architecture and Design Evolution

Architecture and Design Evolution Architecture and Design Evolution Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,

More information

Exceptions and assertions

Exceptions and assertions Exceptions and assertions CSE 331 University of Washington Michael Ernst Failure causes Partial failure is inevitable Goal: prevent complete failure Structure your code to be reliable and understandable

More information

Interaction Design. Human-Computer. COGS120/CSE170 - Intro. HCI. Instructor: Philip Guo. Week 3 - Heuristic Evaluation ( )

Interaction Design. Human-Computer. COGS120/CSE170 - Intro. HCI. Instructor: Philip Guo. Week 3 - Heuristic Evaluation ( ) Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Week 3 - Heuristic Evaluation (2016-10-11) some slides adapted from Scott Klemmer s Intro. HCI course Learning Objective

More information

3 Evaluating Interactive Systems

3 Evaluating Interactive Systems 3 Evaluating Interactive Systems Viktoria Pammer-Schindler March 23, 2015 Evaluate 1 Android Sensing Tutorial Day on April 23 Save the Date!!! Evaluate 2 Days and Topics March 11 March 16 Intro Designing

More information

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture Nick Rozanski Andy Longshaw Eoin Woods Sold! How to Describe, Explain and Justify your Architecture Objectives of Today If you are an architect who has to produce an Architectural Description, then this

More information

Interaction Techniques. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Interaction Techniques. SWE 432, Fall 2017 Design and Implementation of Software for the Web Interaction Techniques SWE 432, Fall 2017 Design and Implementation of Software for the Web Today What principles guide the design of usable interaction techniques? How can interaction designs help support

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Other 1 2 3 4 Other Principle of Least Privilege Principle of Fail-Safe Defaults Principle of

More information

Design Principles. Overview. User-Center Design. SMD157 Human-Computer Interaction Fall User-center design Guidelines

Design Principles. Overview. User-Center Design. SMD157 Human-Computer Interaction Fall User-center design Guidelines INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Design Principles SMD157 Human-Computer Interaction Fall 2005 Nov-4-05 SMD157, Human-Computer Interaction 1 L Overview User-center design Guidelines

More information

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802 UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1

More information

Giving instructions, conversing, manipulating and navigating (direct manipulation), exploring and browsing, proactive computing

Giving instructions, conversing, manipulating and navigating (direct manipulation), exploring and browsing, proactive computing Looking Back Interaction styles Giving instructions, conversing, manipulating and navigating (direct manipulation), exploring and browsing, proactive computing Activity-based vs. object-oriented design

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Service-Oriented Programming (SOP) SOP A programming paradigm that

More information

Design Principles. Overview. User-Center Design. SMD157 Human-Computer Interaction Fall User-center design Guidelines

Design Principles. Overview. User-Center Design. SMD157 Human-Computer Interaction Fall User-center design Guidelines INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Design Principles SMD157 Human-Computer Interaction Fall 2003 Nov-6-03 SMD157, Human-Computer Interaction 1 L Overview User-center design Guidelines

More information

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6 Trying to deal with something big all at once is normally much harder than dealing with a series of smaller things Separate people can work on each part. An individual software engineer can specialize.

More information

IBM Software Group. Mastering Requirements Management with Use Cases Module 8: Refine the System Definition

IBM Software Group. Mastering Requirements Management with Use Cases Module 8: Refine the System Definition IBM Software Group Mastering Requirements Management with Use Cases Module 8: Refine the System Definition 1 Objectives Describe design constraints. Identify methods of specifying functional requirements.

More information

EVALUATION OF PROTOTYPES USABILITY TESTING

EVALUATION OF PROTOTYPES USABILITY TESTING EVALUATION OF PROTOTYPES USABILITY TESTING CPSC 544 FUNDAMENTALS IN DESIGNING INTERACTIVE COMPUTATION TECHNOLOGY FOR PEOPLE (HUMAN COMPUTER INTERACTION) WEEK 9 CLASS 17 Joanna McGrenere and Leila Aflatoony

More information

Hyper Mesh Code analyzer

Hyper Mesh Code analyzer Hyper Mesh Code analyzer ABSTRACT Hyper Mesh Code Analyzer (HMCA) is a text based programming environment, designed for programmers to write their source code in a more organized and manageable fashion.

More information

Designing Usable Apps

Designing Usable Apps This is a free sample excerpt from the book: Designing Usable Apps An agile approach to User Experience design Author: Kevin Matz 264 pages (softcover edition) Print edition ISBN: 978-0-9869109-0-6 E-book

More information

Existing Model Metrics and Relations to Model Quality

Existing Model Metrics and Relations to Model Quality Existing Model Metrics and Relations to Model Quality Parastoo Mohagheghi, Vegard Dehlen WoSQ 09 ICT 1 Background In SINTEF ICT, we do research on Model-Driven Engineering and develop methods and tools:

More information