software usability implications in requirements and design

40
Software Usability Implications in Requirements and Design Natalia Juristo Universidad Politécnica de Madrid Bolzano, April 12 2005

Upload: natalia-juristo

Post on 20-May-2015

358 views

Category:

Education


2 download

DESCRIPTION

There are so many software products and systems with immature usability that it is for sure that most people have enough frustrating experiences to acknowledge the low level of use that usability strategies, models and methods have in software construction. However, usability is not at all an extra but a basic for a software system: people productivity and comfort is directly related to the usability of the software they use (in their work or at home) and several quality attribute classifications agree on the importance of considering usability as a quality attribute the seminar will discuss and debunk three myths that stand in the way of the proper incorporation of usability features into software systems. These myths are: • usability problems can be fixed in the later development stages. • usability has implications only for the non-functional requirements. • the general statement of a usability feature (“The system must incorporate the undo feature”) is a sufficient specification. A pattern-oriented solution that support developers in incorporating usability features into their requirements and designs is presented

TRANSCRIPT

Page 1: Software Usability Implications in Requirements and Design

Software Usability Implications

in Requirements and Design

Natalia Juristo

Universidad Politécnica de Madrid

Bolzano, April 12 2005

Page 2: Software Usability Implications in Requirements and Design

Talk Contents

Introduction to Usability

Discussion and debunking of the myths

on usability in which developers believe

A pattern-oriented solution

Page 3: Software Usability Implications in Requirements and Design

Brief state of the practice

There are so many software products with

immature usability that we all

acknowledge the low level of use of

usability methods

Usability is not properly addressed in most

developments, on spite of its importance

Page 4: Software Usability Implications in Requirements and Design

Usability integration into

development: SE + HCI

Both the HCI and SE communities play a crucial role in the development of usable software

The HCI community has the knowledge about which features a software system must provide to be usable

The SE community has the knowledge about software systems development

Page 5: Software Usability Implications in Requirements and Design

Usability integration into

development: Difficulties

Different viewpoints between usability

people and software developers

Specialist skills required

Integration of usability into the software

development process is not easy and

obvious at all

Page 6: Software Usability Implications in Requirements and Design

Quality includes usability

Usability is a basic software system feature

Several software quality attribute

classifications agree on considering usability

as a quality attribute

Page 7: Software Usability Implications in Requirements and Design

Usability definition

Usability can be seen as Quality in Use

Usability reflects

Learnability

Efficiency of use

Reliability in use

Satisfaction

Page 8: Software Usability Implications in Requirements and Design

Usability and UI

are not synonymous

A system’s usability relates closely to the software’s overall functionality

UI vs. Interaction

UI = The visible part of the system

Interaction = The coordination of information exchange user-system

Page 9: Software Usability Implications in Requirements and Design

Misunderstandings

Three misunderstanding that prevent the

proper incorporation of usability features

into software development

Usability problems can be fixed in the later

development stages

Stating a usability feature is a sufficient

specification

Design usability features is easy

Page 10: Software Usability Implications in Requirements and Design

Misunderstanding

Usability can be dealt with

late in development

Page 11: Software Usability Implications in Requirements and Design

Can usability really wait?

If usability is relegated to the end of the development process, then there is no time left to make a difference

Interaction design can have major impact on the overall application

Page 12: Software Usability Implications in Requirements and Design

Usability features

with impact on design

Cancel

Undo

Show user system status

Provide feedback

Check for correctness

History Logging

Provide different access methods

Make different views accessible

Support personalization

Reuse information

Aggregate data

Aggregate commands

Provide good help (standard help, wizard, tour, context sensitive help)

Page 13: Software Usability Implications in Requirements and Design

Implications

of the impact on design

The changes to be made to a software system to add any of these features involve all the architecture components

The late incorporation of such usability issues calls for a lot of rework

These features should be addressed from the very start of the development process like any other functionality

Page 14: Software Usability Implications in Requirements and Design

Usability

as non-functional requirements

Establishing what usability values the

system should achieve

These are then used as a reference

standard at the subsequent product

evaluation stage

Page 15: Software Usability Implications in Requirements and Design

Usability

as functional requirement

Particular usability features represent

functionalities in a software system

Then, usability has implications for

software functionality

Therefore, it needs to be dealt with as

functional requirements

Page 16: Software Usability Implications in Requirements and Design

Misunderstanding

A usability feature statement is

a good enough functional

specification

Page 17: Software Usability Implications in Requirements and Design

Specifying functional usability

requirements (FUR)

An example of an HCI heuristic would be “Visibility of system status: The system should

always keep users informed about what is going on through appropriate feedback within reasonable time”

Is this a good enough specification for the system status feature?

Page 18: Software Usability Implications in Requirements and Design

Statement is not

a good enough specification

From a SE perspective, the above description provides very limited information

It is not enough to properly specify the system status functionality

The descriptions provided by HCI for functional usability features lead to ambiguous and incomplete requirements

Page 19: Software Usability Implications in Requirements and Design

More info is neccesary

More information needs to be elicited to completely and unambiguously specify each functional usability requirement

For the system status functionality Place where the system status information will be

presented to the user

Which status changes in the software will the user want to be notified of

How critical each of the above situations are

What kind of information needs to be displayed to the user in each case

etc

Page 20: Software Usability Implications in Requirements and Design

Reducing the ambiguity of

FURs: Difficulties

Users do not have the knowledge

Software engineers do not have the

necessary HCI knowledge either. They do

not know all the details that need to be

specified to properly incorporate such

features into a requirements specification

HCI experts do have this information

Page 21: Software Usability Implications in Requirements and Design

Incorporating HCI experts:

Difficulties

Difficulties in communication may arise.

Such difficulties can be a considerable

obstacle

The cost of this solution: many software

SMEs cannot afford to engage an HCI

expert

Page 22: Software Usability Implications in Requirements and Design

Our approach

We propose an alternative approach that

uses a pattern-based solution to support

information elicitation and specification for

usability functionalities

Page 23: Software Usability Implications in Requirements and Design

Elicitation patterns

We propose the use of elicitation patterns

that enable the reuse of usability

knowledge to support developers during

usability requirements elicitation

These patterns can be used to extract all

the information to completely and

unambiguously specify a usability feature

Page 24: Software Usability Implications in Requirements and Design

Features with elicitation patterns

Feature Usability Mechanism Goal

FEEDBACK System Status To inform users about the internal status of the system

Interaction To inform users that the system has registered a user interaction, that is, that the system

has heard users

Warning To inform users of any action with important consequences

Long Action Feedback To inform users that the system is processing an action that will take some time to

complete

UNDO/CANCEL

Global Undo To undo system actions at several levels

Object-Specific Undo To undo several actions on an object

Abort Operation To cancel the execution of a command or an application

Go Back to a Safe State To go back to a particular state in a command execution sequence

FORM/FIELD

VALIDATION

Structured Text Entry To help prevent the user from making data input errors

WIZARD Step-by-Step Execution To help do tasks that require different steps with user input

USER PROFILE

Preferences To record each user's options for working with the system at the functional level

Personal Object Space To record each user's options for working with the system at the interface level.

Favourites To record certain places of interest for the user

HELP

Multilevel Help To provide different help levels for different users

Page 25: Software Usability Implications in Requirements and Design

Elicitation Pattern Structure

Identification of the usability feature

addressed by the usability elicitation

pattern

The problem tackled

The context in which this pattern will be

useful

The solution to the problem

Page 26: Software Usability Implications in Requirements and Design

Elicitation Pattern Structure:

Identification

Identification of the usability feature

addressed by the usability elicitation

pattern

Name of the usability mechanism under

consideration

Family of usability features to which it belongs

Aliases by which this usability mechanism

may be known

Page 27: Software Usability Implications in Requirements and Design

Elicitation Pattern Structure:

Problem

The problem tackled:

“How to elicit and specify the

information needed to incorporate

the usability mechanism”

Page 28: Software Usability Implications in Requirements and Design

Elicitation Pattern Structure:

Context

The context in which this pattern

will be useful

Information related to the situation

that makes this mechanism useful for

the application under construction

Page 29: Software Usability Implications in Requirements and Design

Elicitation Pattern Structure:

Solution

The solution to the problem The usability mechanism elicitation guide

provides knowledge for eliciting and gathering

information to fully specify the usability

mechanism

The usability mechanism specification guide

provides a template to be instantiated for

each application

Page 30: Software Usability Implications in Requirements and Design

Example:

System Status Feedback

Page 31: Software Usability Implications in Requirements and Design

Misunderstanding

Designing a specific usability

feature is easy

Page 32: Software Usability Implications in Requirements and Design

Is specification enough?

Some usability features require the far

from straightforward creation of special-

purpose components with responsibilities

HCI literature pays no attention to the

design implications of incorporating

usability features into a system

Page 33: Software Usability Implications in Requirements and Design

For example...

Aspects of cancel

The software must free the resources allocated to the cancelled

command

The software must handle cancellation when the active command is

not responding

If the command being cancelled is not responding, the system must

be restored to the status it had prior to command execution or as

close as possible to that status

The software must gather information (status, resource usage,

actions, etc.) that can be used to return the system to its status prior

to the execution of the ongoing command

The software must estimate the time to cancel

The software must inform the user of cancellation progress

Page 34: Software Usability Implications in Requirements and Design

Need to provide design support:

Experiment

Experiment run under three different

circumstances

1) Just a detailed description of the cancel feature,

including the particular commands that could be

cancelled (with no design information at all)

2) Same information as the previous group, plus a list

of responsibilities that any software system with a

cancel feature should satisfy

3) The above information, plus a sample solution

Page 35: Software Usability Implications in Requirements and Design

Need to provide design support:

Experiment results

The solutions generated by students

under condition 1 (a statement of the

requirement only) performed

significantly worse (in terms of

malfunctioning errors and design time)

than the ones by students working in the

other two conditions

Page 36: Software Usability Implications in Requirements and Design

Our approach

Provide mechanisms that allow software

developers to examine various facets of

the software solution to guide through

the incorporation of such solutions

into their designs

Page 37: Software Usability Implications in Requirements and Design

Design element of the pattern

Design solution allocates the

general responsibilities of the

software system to specific software

components with their responsibilities

Page 38: Software Usability Implications in Requirements and Design

Design Solution

for System Status

Page 39: Software Usability Implications in Requirements and Design

Conclusions

We need getting a better understanding of

what implications usability has for software

development

It is necessary to provide developers with

support to satisfactorily deal with usability

features during the requirements and design

stages

We proposed a pattern-based solution for

describing usability features

Page 40: Software Usability Implications in Requirements and Design

Software Usability Implications

in Requirements and Design

Natalia Juristo

Universidad Politécnica de Madrid

Bolzano, April 12 2005