software usability implications in requirements and design
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 presentedTRANSCRIPT
![Page 1: Software Usability Implications in Requirements and Design](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/1.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/2.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/3.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/4.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/5.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/6.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/7.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/8.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/9.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/10.jpg)
Misunderstanding
Usability can be dealt with
late in development
![Page 11: Software Usability Implications in Requirements and Design](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/11.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/12.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/13.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/14.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/15.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/16.jpg)
Misunderstanding
A usability feature statement is
a good enough functional
specification
![Page 17: Software Usability Implications in Requirements and Design](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/17.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/18.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/19.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/20.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/21.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/22.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/23.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/24.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/25.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/26.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/27.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/28.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/29.jpg)
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 31: Software Usability Implications in Requirements and Design](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/31.jpg)
Misunderstanding
Designing a specific usability
feature is easy
![Page 32: Software Usability Implications in Requirements and Design](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/32.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/33.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/34.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/35.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/36.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/37.jpg)
Design element of the pattern
Design solution allocates the
general responsibilities of the
software system to specific software
components with their responsibilities
![Page 39: Software Usability Implications in Requirements and Design](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/39.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052410/555c030cd8b42a5b448b53fd/html5/thumbnails/40.jpg)
Software Usability Implications
in Requirements and Design
Natalia Juristo
Universidad Politécnica de Madrid
Bolzano, April 12 2005