conceptualmodelscoretogooddesign
conceptualmodelscoretogooddesign
SeriesISSN:
Series ISSN:1946-7680
ISSN: 1946-7680
1946-7680
JOHNSON
JOHNSON ••• HENDERSON
JOHNSON
SSYNTHESIS
YNTHESIS LLECTURES
C
ECTURES ON
&
YNTHESIS ECTURES ON
ON Mor
Mor gan&
Morgan
gan &Cl
Claypool
Cl aypool Publishers
aypool Publishers
Publishers
H UMAN-C
HUMAN-
UMAN- ENTERED IINFORMATICS
CENTERED
ENTERED NFORMATICS
NFORMATICS
HENDERSON
HENDERSON
Series
SeriesEditor:
Series Editor:John
Editor: JohnM.
John M.Carroll,
M. Carroll,Penn
Carroll, PennState
Penn StateUniversity
State University
University
Conceptual
Conceptual Models
Models Conceptual Models
Core
Core to
to Good
Good Design
Design
Jeff
JeffJohnson,
Jeff Johnson,UI
Johnson, UIWizards,
UI Wizards,Inc.
Wizards, Inc.
Inc.
Core
Core to
to Good
Good D
Deesign
sign
Austin
AustinHenderson,
Austin Henderson,Rivendel
Henderson, RivendelConsulting
Rivendel Consulting&
Consulting &Design
& Design
Design
People
Peoplemake
People makeuse
make useof
use ofsoftware
of softwareapplications
software applicationsin
applications intheir
in theiractivities,
their activities,applying
activities, applyingthem
applying themas
them astools
as toolsin
tools incarrying
in carryingout
carrying outtasks.
out tasks.That
tasks. That
That
this
thisuse
this useshould
use shouldbe
should begood
be goodfor
good forpeople
for people–––easy,
people easy,effective,
easy, effective,efficient,
effective, efficient,and
efficient, andenjoyable
and enjoyable–––isisisaaaprincipal
enjoyable principalgoal
principal goalof
goal ofdesign.
of design.In
design. In
In
this
thisbook,
this book,we
book, wepresent
we presentthe
present thenotion
the notionof
notion ofConceptual
of ConceptualModels,
Conceptual Models,and
Models, andargue
and arguethat
argue thatConceptual
that ConceptualModels
Conceptual Modelsare
Models arecore
are coreto
core toachieving
to achieving
achieving
CONCEPTUAL
CONCEPTUAL MODELS
CONCEPTUAL
good
gooddesign.
good design.From
design. Fromyears
From yearsof
years ofhelping
of helpingcompanies
helping companiescreate
companies createsoftware
create softwareapplications,
software applications,we
applications, wehave
we havecome
have cometo
come tobelieve
to believethat
believe that
that
building
buildingapplications
building applicationswithout
applications withoutConceptual
without ConceptualModels
Conceptual Modelsisisisjust
Models justasking
just askingfor
asking fordesigns
for designsthat
designs thatwill
that willbe
will beconfusing
be confusingand
confusing anddifficult
and difficult
difficult
totolearn,
to learn,remember,
learn, remember,and
remember, anduse.
and use.
use.
WeWeshow
We showhow
show howConceptual
how ConceptualModels
Conceptual Modelsare
Models arethe
are thecentral
the centrallink
central linkbetween
link betweenthe
between theelements
the elementsinvolved
elements involvedin
involved inapplication
in applicationuse:
application use:
use:
people’s
people’stasks
people’s tasks(task
tasks (taskdomains),
(task domains),the
domains), theuse
the useof
use oftools
of toolsto
tools toperform
to performthe
perform thetasks,
the tasks,the
tasks, theconceptual
the conceptualstructure
conceptual structureof
structure ofthose
of thosetools,
those tools,
tools,
MODELS
MODELS
the
thepresentation
the presentationof
presentation ofthe
of theconceptual
the conceptualmodel
conceptual model(i.e.,
model (i.e.,the
(i.e., theuser
the userinterface),
user interface),the
interface), thelanguage
the languageused
language usedto
used todescribe
to describeit,
describe it,its
it, its
its
implementation,
implementation,and
implementation, andthe
and thelearning
the learningthat
learning thatpeople
that peoplemust
people mustdo
must doto
do touse
to usethe
use theapplication.
the application.We
application. Wefurther
We furthershow
further showthat
show thatputting
that putting
putting
aaaConceptual
are
ConceptualModel
Conceptual
aresimpler
are simplerand
simpler
Modelat
Model
andmesh
and
atthe
at
meshbetter
mesh
thecenter
the centerof
center
betterwith
better
ofthe
of
withusers’
with
thedesign
the designand
design
users’tasks,
users’
anddevelopment
and
tasks,avoidance
tasks,
developmentprocess
development
avoidanceof
avoidance ofunnecessary
of
processcan
process
unnecessaryfeatures,
unnecessary
canpay
can payrich
pay richdividends:
rich
features,easier
features,
dividends:designs
dividends:
easierdocumentation,
easier
designsthat
designs
documentation,faster
documentation,
that
that
faster
faster Jeff
JeffJohnson
Johnson
development,
development,improved
development, improvedcustomer
improved customeruptake,
customer uptake,and
uptake, anddecreased
and decreasedneed
decreased needfor
need fortraining
for trainingand
training andcustomer
and customersupport.
customer support.
support.
Austin
AustinHenderson
Henderson
About
AboutSYNTHESIs
About SYNTHESIs
SYNTHESIs
This
Thisvolume
This volumeisisisaaaprinted
volume printedversion
printed versionof
version ofaaawork
of workthat
work thatappears
that appearsin
appears inthe
in theSynthesis
the Synthesis
Synthesis
Digital
DigitalLibrary
Digital Libraryof
Library ofEngineering
of Engineeringand
Engineering andComputer
and ComputerScience.
Computer Science. Synthesis
Science. SynthesisLectures
Synthesis Lectures
Lectures
Mor
Morgan
Mor
provide
provide concise,
provideconcise, original
concise,original presentations
originalpresentations
presentationsof of important
ofimportant research
importantresearch and
researchand development
anddevelopment
development
topics,
topics,published
topics, publishedquickly,
published quickly,in
quickly, indigital
in digitaland
digital andprint
and printformats.
print formats.For
formats. Formore
For moreinformation
more information
information
gan &Cl
gan
visit
visitwww.morganclaypool.com
visit www.morganclaypool.com
www.morganclaypool.com
SSYNTHESIS
YNTHESIS L
YNTHESIS LECTURES
ECTURES ON
ECTURES ON
ON
&Claypool
&Cl
Mor
Morgan
Mor gan
gan &
&
&Cl
Claypool
Cl aypool Publishers
aypool Publishers
Publishers
ISBN:
ISBN: 978-1-60845-749-6
ISBN: 978-1-60845-749-6
978-1-60845-749-6
90000
90000
90000 H UMAN-C
HUMAN-
UMAN- ENTERED IINFORMATICS
CENTERED
ENTERED NFORMATICS
NFORMATICS
aypool
aypool
w
www
www
ww...m
mooorrrgggaaannnccclllaaayyypppoooooolll...cccooom
m m
m
9
99781608
781608457496
781608 457496
457496
John
JohnM.
John M.Carroll,
M. Carroll,Series
Carroll, SeriesEditor
Series Editor
Editor
Conceptual Models
Core to Good Design
Synthesis Lectures on
Human-Centered Informatics
Editor
John M. Carroll, Penn State University
Human-Centered Informatics (HCI) is the intersection of the cultural, the social, the cognitive,
and the aesthetic with computing and information technology. It encompasses a huge range of
issues, theories, technologies, designs, tools, environments and human experiences in knowledge
work, recreation and leisure activity, teaching and learning, and the potpourri of everyday life. The
series will publish state-of-the-art syntheses, case studies, and tutorials in key areas. It will share
the focus of leading international conferences in HCI.
Designing and Evaluating Usable Technology in Industrial Research: Three Case Studies
Clare-Marie Karat and John Karat
2010
iii
Interacting with Information
Ann Blandford and Simon Attfield
2010
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means—electronic, mechanical, photocopy, recording, or any other except for brief quotations in
printed reviews, without the prior permission of the publisher.
DOI 10.2200/S00391ED1V01Y201111HCI012
Lecture #12
Series Editor: John M. Carroll, Penn State University
Series ISSN
Synthesis Lectures on Human-Centered Informatics
Print 1946-7680 Electronic 1946-7699
Conceptual Models
Core to Good Design
Jeff Johnson
UI Wizards, Inc.
Austin Henderson
Rivendel Consulting & Design
M
&C Morgan & cLaypool publishers
ABSTRACT
People make use of software applications in their activities, applying them as tools in carrying
out tasks. That this use should be good for people – easy, effective, efficient, and enjoyable – is
a principal goal of design. In this book, we present the notion of Conceptual Models, and argue
that Conceptual Models are core to achieving good design. From years of helping companies create
software applications, we have come to believe that building applications without Conceptual Models
is just asking for designs that will be confusing and difficult to learn, remember, and use.
We show how Conceptual Models are the central link between the elements involved in
application use: people’s tasks (task domains), the use of tools to perform the tasks, the conceptual
structure of those tools, the presentation of the conceptual model (i.e., the user interface), the language
used to describe it, its implementation, and the learning that people must do to use the application.
We further show that putting a Conceptual Model at the center of the design and development
process can pay rich dividends: designs that are simpler and mesh better with users’ tasks, avoidance
of unnecessary features, easier documentation, faster development, improved customer uptake, and
decreased need for training and customer support.
Supplemental Website, including figures:
http://sites.google.com/a/morganclaypool.com/conceptual-models
KEYWORDS
conceptual model, conceptual design, concepts, task-domain, tasks, tools, task-to-tool
mapping, object/operations analysis, interaction design, user interface design, applica-
tion design, software design, design, usability, software development method, software
development process
vii
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Using Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Task Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6 Task-to-tool Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Describing Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7.1 Task-Based Descriptions of Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7.2 Model-Based Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8 Seeing the Model Through the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.9 Implementation Architecture and Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.10 Mental Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.11 Conceptual Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 What a Conceptual Model Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 High-Level Description of an Application . . . . . . . . . . . . . . . . . . . . . . . . . . 17
viii
3.1.2 Basis for Users’ Understanding of the Application . . . . . . . . . . . . . . . . . . . . 18
3.1.3 Close Relative: Information Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.4 Summary: What a Conceptual Model Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 What a Conceptual Model Is Not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 Not Task-Level Scenarios or Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.2 Not Users’ Mental Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.3 Not a Design Metaphor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.4 Not the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.5 Not the Implementation Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.6 Not Product Designer’s “Concept Design” . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Design Goals for Conceptual Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.1 Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Task-Focused . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1 Purpose & High-Level Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Major Concepts and Vocabulary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Objects/Operations Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3.1 Declares Concepts that the Application will Expose . . . . . . . . . . . . . . . . . . 31
4.3.2 Introduces New Concepts, if Needed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.3 Hides Concepts that Once Were Necessary but No Longer Are . . . . . . . . 32
4.3.4 Shows Relationships Between Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4 Example of Objects/Operation Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5 Conceptual Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.6 Mapping from Task-Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1 Overall Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2 High-Level Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 Major Concepts and Vocabulary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4 Object-Operations Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4.1 Formatting Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4.2 Object-Operations Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.5 Mapping: Task Hierarchy Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.6 Resolved Conceptual Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.7 Open Conceptual Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
ix
6 Essential Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1 Basic Object/Operations Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1.1 Assign Operations and Attributes to Objects . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1.2 Assign Operations to the Appropriate Object(s) . . . . . . . . . . . . . . . . . . . . . 49
6.1.3 Decide How to Model Similar Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.1.4 Decide Whether to Include the Generic Object Type . . . . . . . . . . . . . . . . . 51
6.1.5 Decide What Type of Values an Attribute Has . . . . . . . . . . . . . . . . . . . . . . . 51
6.1.6 Decide How Detailed to be in Modeling Common Operations . . . . . . . . . 52
6.1.7 Include All Task-Relevant Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.1.8 Part-of and Containment Relationships Need Not Always be
Distinguished . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2 Supporting Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2.1 Metaphors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2.2 Progressive Disclosure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.2.3 Component Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.2.4 Surrounding Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.2.5 Object-Oriented vs. Task-Oriented User Interfaces . . . . . . . . . . . . . . . . . . . 56
6.3 Conceptual Model vs. User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.3.1 View vs. Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.3.2 Interactive Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.4 Object Identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.4.1 Containment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.4.2 Synchronizing Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.4.3 Inheriting Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.4.4 What Work is Saved, When? And Can I Reverse It? . . . . . . . . . . . . . . . . . . 60
7 Optional Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.1 Going Meta: Activity as Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.1.1 Managing Trouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.1.2 Anticipating Trouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.1.3 Macros: Capturing Work Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Evolving the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.2.1 Managed Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.2.2 Anticipated Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.2.3 Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.2.4 Unanticipated Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.2.5 Embedding in Social Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
x
8 Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.1 First Step of Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.2 Start with User Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.3 The Conceptual Model Needs a Place at the Project Table . . . . . . . . . . . . . . . . . . . 72
8.3.1 Coordination is Required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8.3.2 One Team-member Should Drive the Conceptual Design . . . . . . . . . . . . . 73
8.3.3 Include Developers, but Keep the Conceptual Model Focused on Tasks . . 74
8.4 Use the Conceptual Model to Coordinate Development . . . . . . . . . . . . . . . . . . . . . 74
8.5 Representing Conceptual Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.6 Iterate, Iterate, Iterate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.7 Including Conceptual Models in Agile Development . . . . . . . . . . . . . . . . . . . . . . . 77
8.8 Testing Conceptual Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9 Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.1 Produces a Vocabulary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.2 Facilitates Creation of High-Level Task Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.3 Facilitates Creation of User Documentation, Training, and Support . . . . . . . . . . . 85
9.4 Focuses the User Interface Design: Gives Designers a Clear Target . . . . . . . . . . . . 86
9.5 Jump-Starts and Focuses the Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.6 Saves Time and Money . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
10 Epilogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Authors’ Biographies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
xi
Preface
We have been interested in Conceptual Models for years. We both lived through the rough and
tumble days of inventing the future at Xerox and understand just how hard it has been for the
world to develop applications that work as well as they do. A continuing subject of discussion for all
concerned has been the “model of the system,” the view of the application that the designers hope
people will adopt when using the application.
Yet in all this time, there has been a lack of clarity about exactly what these models are. This is
not entirely surprising, seeing as there are so many different kinds of models, and modeling is such
an endemic effort in the development of systems.
For that reason, in 2002 we wrote an article for interactions magazine – a 2500 word attempt to
encourage designers to “begin by designing what to design”. In the intervening decade, we have re-
ceived sporadic reports that that article has been helpful to some designers and developers. However,
conceptual models do not seem to have become common in accepted practice.
We also noticed that our own interest in conceptual models continued to evolve. We realized
that there was much more to say than we said in the Interactions article. We felt that conceptual
models should be discussed more thoroughly and in a place that was readily available to all engaged
in developing applications or studying how to develop them.
This book is the result.
Acknowledgments
We thank Jack Carroll for offering to publish this in his “Human-Centered Informatics” series at
Morgan & Claypool. His encouragement has been supportive. We thank Diane Cerra for her help in
setting direction and managing the mechanics of this undertaking. We thank our colleagues Robin
Jeffries, Jon Meads, Susan Fowler, and Nigel Bevan for their helpful feedback on our first draft. We
also thank Jon Meads for allowing us to use two of his diagrams (Fig. 8.3 courtesy of Jon Meads,
copyright © 2011 Jon Meads). We thank those who helped edit and design this book.
Finally, we each have people we would like to acknowledge.
Austin Henderson: I want to acknowledge many people for conversations over the years that
have touched on conceptual models, particularly,Tom Moran, Stuart Card, John Rheinfrank, Shelley
Evenson, Don Norman, David Asano, Hugh Dubberly, Jed Harris and, of course, most centrally,
Jeff Johnson. I want to thank my wife Lynne for invaluable support and encouragement while this
work has been underway.
Jeff Johnson: I acknowledge the many insights I have gained as a result of discussions — and
arguments — about interaction design and conceptual models over the years with many colleagues
with whom I have worked: Robin Jeffries, Bonnie Nardi, Steve Whittaker, Terry Roberts, Chuck
Clanton, Stuart Card, and of course, Austin Henderson. I also acknowledge the support and patience
of my wife Karen Ande as this book was being written.
Introduction
This book presents and argues that a good Conceptual Model (CM) should be at the core of
the design of every artifact that people use to help them get their work done. This includes software
products, electronic appliances, and web services, but also products more generally and even human
services1 .
Those unfamiliar with interaction design often consider it to be designing the user interface
or “skin” of an application: the controls, displays, error messages, use of colors, layout, etc. However,
the interaction design for an application is more than just the controls, displays, etc. that comprise
its user interface. The interaction design goes deeper than the skin: it includes all concepts that the
application’s user interface exposes to users, and it includes the sequences of operations that users
execute to accomplish the application’s supported tasks. The interaction design has roots that extend
deep into an application’s architecture and implementation — including into any back-end services
the application uses. Thus, an interaction design consists of concepts, task-flow, and presentation.
A key part of interaction design is creating a conceptual model of an application. The purpose
of conceptual design — of creating a conceptual model — is to get the concepts and their rela-
tionships right, to enable the desired task-flow. Obviously, it makes sense to get the concepts and
their relationships right before designing how those concepts will be implemented or presented. In
other words, start by designing how the user would ideally think about the application and its use in
supporting tasks. Indeed, shape the whole development process around creating and delivering a
good conceptual model.
A FEW EXAMPLES
Let’s consider examples of conceptual models. Here are a number of possible pairs of alternative
conceptual models, any of which could be quite acceptable given different circumstances. However,
the designer must choose one of them (or invent yet another alternative) because these alternative
conceptual models are incompatible.
Assume you are designing the following:
1 For simplicity, this book uses the term “application” to cover all such technologies.
2 INTRODUCTION
• An application for creating newsletters. Is a newsletter:
a) a list of items, or
b) a set of pages, each with layout of items?
a) a list of days, or
b) a list of events?
• helps focus the design of the application by coupling the design to the tasks that the
user is doing;
• supports having a good process for developing that design into a product; and
Since the design, process, and experience of use are all informed by the conceptual model, these all
feed off each other and grow together.
ORGANIZATION
The book is organized as follows. (Please see the figure on page 3.)
Chapters 1 and 2 set the context within which conceptual models are important. Chapter 1
(Using Tools) reviews the role of tools in helping people to get work done. It introduces key concepts
and terms (e.g., task domain, task, application, mental model, conceptual model, user interface,
implementation). With the place of tools established, Chapter 2 (Start with the Conceptual Model)
provides sketches of several alternative ways that people carry out design, starting with the task, the
user interface, or the implementation; instead it is argued that the place to start is by designing the
conceptual model.
These initial two chapters are intended to provide those new to the design of tools with
sufficient background knowledge to understand the rest of the book. Those experienced in the
theory and/or practice of designing tools may want to skip Chapters 1 and 2 and start with Chapter 3.
However, first they may want to check how our terms align with those with which they are familiar.
INTRODUCTION 3
Chapters 1-2. Context of CMs: Designing
tools to help people get tasks done:
1. Using tools to do work; 1. 2.
Using Start with
2. Where to start design. tools the CM
of design: 6. 7. 8. 9.
6. Essential modeling issues; Essential Optional Process Value
Modeling Modeling
7. Optional modeling issues;
8. Recommended processes;
9. Value of CMs.
Chapters 3 – 5 explain what conceptual models are. Chapter 3 (Definition) introduces concep-
tual models and the purpose they serve. Chapter 4 (Structure) describes how they are structured (ob-
jects/attributes/operations) and some common ways of denoting them (e.g., UML, concept maps).
Both Chapters 3 and 4 are filled with parts of examples. Chapter 5 (Example) provides a much
more complete, and so larger, worked example. Most readers will want to focus on Chapter 4, with
Chapters 3 and 5 providing scaffolding.
Chapters 6 – 9 discuss building and using conceptual models. Chapter 6 (Essential Modeling)
describes how common configurations of concepts (e.g., types, specialization) can be expressed using
the objects/attributes/operations structure of conceptual models. Chapter 7 (Optional Modeling)
raises some advanced issues that designers may choose to address in their conceptual models. Chap-
ter 8 (Process) discusses how the conceptual model can and should play a continuing role in enabling
the many perspectives on a design to create and maintain alignment with each other throughout the
course of the development of tools. Chapter 9 (Value) discusses the benefits that conceptual models
can bring to the development of tools, and therefore to users in their work of getting their tasks
done.
Supplemental Website, including figures:
http://sites.google.com/a/morganclaypool.com/conceptual-models
5
CHAPTER 1
Using Tools
Before exploring the role and value of conceptual models (CMs) in tool development and use, it is
helpful to have a larger context within which to understand the use of tools. This chapter describes
a framework, illustrated in Figure 1.1, for the use of tools, as a context for the rest of the book.
1.1 ACTIVITY
In their work and their play, people are engaged in activities. For example:
• They send e-mails, write books, compose music, create personal history albums.
These activities are sometimes simple, but more often they are rich and complex. They evolve as time
passes. They can overlap each other, with one activity serving a number of purposes. They sometimes
finish; they often go on indefinitely. Sometimes we describe them; often we don’t.
1.2 TASKS
As part of their activity, people carry out tasks. A task is a well-defined chunk of activity that has a
goal that can be achieved with actions, some of which can be delegated to tools. For example:
• Jill buys the book Harry Potter and the Sorcerer’s Stone for Tim.
1.5 FUNCTION
An application is used as a tool to help with a user’s task because it adds value to their activity.
For example, a photocopier makes copies: it takes an “original” (a document) and produces “copies”
(more documents) with the same content, but possibly modified in some way (e.g., reduced in size,
stapled).
This valuable service — what the application does and the user employs in getting their work
done — is the function of the application. The function of a photocopier is that it makes copies.
CHAPTER 2
CHAPTER 3
Definition
Before we explain how to design conceptual models, we must make clear what they are (and are not).
• the concepts the application exposes to users, including the task-domain data-objects
that users create and manipulate, their user-visible names, their attributes (options and
settings), and the operations that can be performed on them;
As a rough and simple example, consider an alarm clock. A conceptual model for it might
state the following.
• The clock stores the current time of day, continually updating it to track the passage
of time.
Our example of a simple alarm clock allows only one alarm to be set at a time. It does not
include concepts of multiple alarms, possibly with different alarm-indicators (e.g., various sounds,
flashing lights, radio ON, start music-player) for each alarm. It could include such concepts if the
manufacturer wanted to offer a fancy alarm clock and could justify the extra complexity and cost.
However, if support for multiple alarms is not a functional requirement, such concepts would be better
left out of the conceptual model.
Similarly, the manufacturer might want the clock to indicate the current date and day of the
week as well as the time of day. If so, the conceptual model must include those concepts. However,
features should not be added lightly because they often increase the number of (and interactions
between) concepts in the conceptual model and hence its complexity, and hence the complexity of
the product.
The alarm clock could be made even simpler. Like mobile phones, it could obtain the time
from an external source, such as a cellular link, GPS, or wi-fi Internet. If the external connection and
querying of the time were totally automatic and error-free, the conceptual model for such an alarm
clock could be very simple indeed:
• When an alarm is set and the current time equals the set alarm time, the alarm is
triggered.
What if getting the time from an external source were not fully automatic and error-free? Any
exposure of that mechanism to users would make the clock immensely more complicated than an
ordinary alarm clock. In addition, an alarm clock that got the time from external sources would cost
more than an ordinary clock because it would need more electronic components. Sidebar 1 provides
an example of a more complex application.
• Concepts: e.g., item (with attributes: title, ISBN, status; with operations:
check-out, check-in, reserve), subtypes of item (e.g., book, periodical issue,
LP, video), user account (with attributes: name, items checked out), librarian
(with attributes: name, desk location, phone);
Ideally, users’ understanding of the application should match what the designers intended;
otherwise users will often be baffled by what it is doing. If the designers explicitly design a conceptual
model and then base the detailed user interface design on that, chances are greater that users’ and
designers’ understanding of the product will match.
• the structure of the application: the objects and their operations, attributes, and relation-
ships;
• an idealized view of the how the application works – the model designers hope users
will internalize;
• the mechanism by which users accomplish the tasks the application is intended to support.
• some computer operating systems use a “desktop” metaphor [Johnson et al., 1989];
• most computer calculation functions use a “pocket calculator” metaphor [Johnson, J.,
1985];
4They are more properly called “design analogies,” but the term “metaphor” has stuck, so we are stuck with it.
22 3. DEFINITION
• many Delete functions use a “trash can” or “recycle bin” metaphor.
Designing software based on analogies with familiar physical objects has disadvantages as well
as advantages, such as suggesting to users that all the laws and limits of the physical world apply to
the software as well, when in fact they usually don’t [Halasz and Moran, 1982, Johnson, J., 1987].
One or more design metaphors may be included in a conceptual model, but a conceptual model
includes much besides the design metaphor, as described above and in Chapter 4.
3.3.1 SIMPLE
A conceptual model should be as simple as possible while providing the required functionality. An
important guideline for designing a conceptual model is: “Less is more.”
For example, in a Web search function, do the intended users need boolean search capability,
or would they use it if provided? If not — if a simple keyword search function is enough — designers
shouldn’t complicate the conceptual model by adding boolean search capability.
Similarly, suppose a To-Do list application needs the ability to assign a priority to a To-Do
item. If user-research indicates that users want two priority levels (low and high), designers should
not complicate the conceptual model by generalizing the requirement to include more priority levels
(e.g., 1-10) [Beyer and Holtzblatt, 1997].
Beware: attaining simplicity is not simple! Much thinking, testing, and rethinking are often
required to find a conceptual model that is simple enough but not too simple to provide the required
functionality.
3.3.2 TASK-FOCUSED
Conceptual models should map as directly to the target task-domain as possible. This reduces users’
difficulty in translating concepts between those of their task and those of the application.
When the operations a tool provides don’t match the operations of the task-domain in which a
person is working, the person must figure out how to combine the tool’s operations so as to comprise
or approximate the task-domain operations. “Hmm. I want to accomplish X, but this tool only lets
me do A, B, and C. How can I put A, B, and C together to get X?”. This imposes on the person a
cognitively taxing problem-solving task in addition to the task they wanted to accomplish: they must
form a plan and then execute that plan. Norman and Draper [1986] call this difficulty of translating
between the tool and the task-domain “the gulf of execution”.
Contrast inexpensive photocopiers intended for use in homes and small businesses with large,
expensive, feature-laden copiers intended for intensive use in print-shops and large businesses. When
a person uses a simple copier to do a complex copying job that the copier doesn’t support as directly,
the person must first devise a more complex plan of operation — a sequence of steps using operations
the copier does support together with other operations provided by the person themselves or by other
tools. For example, if the goal is to make a double-sided copy from a single-sided original document,
the plan might be: a) separate the original into odd and even pages; b) copy the odd pages; c) put
the copies back into the paper-hopper; d) copy the original’s even pages; e) collate the original and
copies to put the pages in proper sequence. Then the person must execute that plan carefully. The
3.3. DESIGN GOALS FOR CONCEPTUAL MODELS 25
need to devise a plan to bridge between the desired goal and the tool’s available operations is the
gulf of execution. Using a larger, expensive copier doesn’t have that gulf; they provide most of the
higher-level operations that users need, directly.
As this example makes clear, there might be a very direct mapping from one task to the
conceptual model of an application, but the mapping from another task to the same conceptual
model might be more complex. The conceptual model determines how much of a task-domain can
be served by the application through a relatively direct mapping, and how much will require more
elaborate plans. Better conceptual models will map to large task-domains with simpler plans.
Sidebar 2 provides an example of applying the task-focus design goal in a conceptual model
for a complex application.
Biologists who were shown this prototype rejected it completely. A typical comment
was: “I don’t want to control this machine; I want to analyze protein interactions.”
The conceptual model was re-designed based on protein-interaction analysis concepts,
e.g., define and execute a protocol to interact ligand -X (3 concentrations ) with analyte -Y
(5 concentrations ).
27
CHAPTER 4
Structure
Having explained what conceptual models are (and are not), we now describe their main components
and structure. Sidebar 3 enumerates the main sources of information upon which conceptual models
are based.
The high-level purpose of the Management Console is to allow server system administration and
operation personnel to:
• operate servers;
• diagnose problems as they arise, and either fix them or communicate with personnel
who can fix the problems.
• Alarm: A notification that an event has occurred that triggered an Alarm Rule. Alarms
are persistent: they remain in effect until dismissed or the condition that triggered
them is no longer true.
• Alarm Rule: A rule specifying criteria for triggering an Alarm. Criteria can include
variables that exceed a threshold value, events that exceed a threshold frequency,
etc.
• Enterprise: Defines a boundary beyond which resources are not shared. An enter-
prise often corresponds to a company, as when a server-farm hosts servers for many
different customer companies and doesn’t want any resources or information to cross
company boundaries for legal or accounting purposes. Within a company, Enterprises
may also be used to separate resources for company divisions.
• Environment Probe: A sensor placed in a Server that measures — and thereby per-
mits monitoring of — a variable of possible interest to, e.g., temperature, humidity,
voltage.
• Event: Anything that is detected by the Service Processor. Events have a Severity
attribute that indicates the event’s importance: Normal, Warning, Problem. All events
are recorded in a log.
• Field Replaceable Unit (FRU): Hardware component that can be removed from the
server at a customer site and replaced (if necessary). Not all parts of a server are
FRUs; some parts can be replaced only at the factory.
• Log: A facility of the Management Console that records events and lists them for
review by users. The Console will maintain several logs for different purposes.
• Log Entry: A single item in a log, documenting one Event. Each log entry has a textual
description, a severity, a time, a source, and other pertinent data.
• Role: A specific administrative job-function for a user, with specific permissions at-
tached to it. In one Role, a given user will be allowed to perform certain functions but
not others. In another Role, the same person might have different permission.
• User: A person who uses the Management Console (i.e., any of its functions). Most
users will be web-server operators, system administrators, or hardware technicians,
but some will be managers of operators or administrators.
4.2. MAJOR CONCEPTS AND VOCABULARY 29
USER PROFILES
User profiles are brief descriptions of relevant characteristics of the intended users of
the application. An application will often have more than one type of user. For example,
users of a server management console might include junior system administrators,
senior ones, system architects, and IT managers.
A profile is created for each type of user, indicating duties, level of education, knowl-
edge of the task-domain (high, medium, low), experience with previous versions or
competitors of the application (high, medium, low), knowledge of computers in gen-
eral (high, medium, low), and any other relevant attributes. Some development teams
create comprehensive user profiles that include home-life details, back-stories, and
even fictional pictures and names; such profiles are called personas [Cooper, A., 2004].
TASK ANALYSIS
In addition to understanding the users, application designers need to understand the
tasks that the application is intended to support before constructing a conceptual
model. There are several ways to analyze tasks. Often it is useful to analyze tasks in
more than one way.
• Major tasks or goals (use cases). This is a list of all the high-level goals that users
can have in mind when they prepare to do some work. For example, in the
task-domain of business accounting, use cases could include:
Attributes: clock has a current time of day ; alarm has ON/OFF and alarm time
Operations: clock has view current time and set current time, alarm has turn ON/OFF
and set alarm time
In this simple clock’s conceptual model, no relationships between conceptual objects are
needed.
As stated above, an objects/operations analysis presents all concepts that an application exposes
to its users. Specifically, that means the following.
If it isn’t in the conceptual model, the application should not expose it.
In our alarm-clock example, the method by which the clock triggers the alarm at the appro-
priate time is of no concern to users — they care only that the clock triggers the alarm at the specified
time. Therefore, the alarm-triggering method is excluded from the conceptual model, and therefore
from the clock’s user interface.
• Most software-based calendars provide repeating events, in contrast with paper cal-
endars, which require people to record recurring events by writing the same event on
multiple dates.
• In a physical filing drawer, each hardcopy document can be filed in only one place,
whereas electronic documents in an computerized document system can be filed in
multiple folders simultaneously.
6 Users engage the application through its user interface (UI), so the UI is how the application’s conceptual model is exposed.
32 4. STRUCTURE
• Modern digital audio recorders allow recordings to be played back at different speeds
either just like an old-fashioned tape recorder — altering the pitch of the recording —
or in a way that keeps the original pitch of the recorded sounds.
• It potentially interacts with every other concept in the system. As concepts are added
to a system, the complexity of the system rises not linearly, but multiplicatively.
Therefore, additional concepts should be resisted, and admitted into the conceptual model only
when they meet functional requirements for the application and their extra cost can be minimized
through good user interface design. Remember: less is more!
• Whole/part: This is similar to containment, but not exactly the same. For example, a
bus contains passengers, but they aren’t part of the bus. The exhaust pipe, on the other
hand, is part of the bus. Sometimes, it is hard to see the difference, e.g., a chapter is both
contained in a book and part of it, and a paragraph is both contained in a document
and part of it. Thus, part/whole is similar enough to containment that some designers
model them as the same relationship (see also Chapter 6: Essential Modeling).
• Source/result: One object may be a source, e.g., a datafile used in an analysis, while
another is the corresponding result, e.g., the datafile coming out of the analysis. Links
and their referents can be considered related in this way, as can “raw” digital images and
the cropped and adjusted photographs that are made from them.
• Task/sub-task: One task may be a part of a larger task, e.g., opening a bank account
consists of several steps, each of which can be regarded as a task on its own. This
relationship is between operations, rather than between objects. This relationship often
“comes for free” when a designer lays out the type/sub-type and whole/part relationships
between objects.
Relative Importance
Finally, concepts in a conceptual model — objects, attributes, and operations — are related to
each other in importance. Some concepts are encountered by users more frequently than others.
For example, closing a checking account is an infrequent operation compared to, say, entering a
transaction into an account. The relative importance can be used to focus the design: it is more
important to make frequent operations easy, even at the expense of less-frequent ones. In contrast,
less frequent operations can involve more work, but should be easy to remember from one time to
the next.
• Attributes: It would make sense in a conceptual model for a calendar to have an owner
and a default focus (day, week, month). An event could have a name, description, date,
time, duration, and a location. A to-do item could have a name, description, deadline,
and priority. A person could have a name, a job-description, an office location, and phone
number. Events should not have something like a byte-size as a user-visible attribute,
because that is implementation-focused, not task-focused.
• Operations: Calendars could have operations like examine, print, create, change view,
add event, delete event. Events would have operations like examine, print, and edit. To-do
items would have more-or-less the same operations as events. Implementation-related
operations like loading databases, editing table rows, flushing buffers, and switching
modes would not be part of the conceptual model.
Resolved Issues
1. What is the scope of a log? Are logs global to the entire Management Console, or are they
specific to Enterprises? Resolution: In principle, logs are scoped by Enterprise, but since version
1 has only one Enterprise, version 1 can be regarded as having only one log, which is global.
Open Issues
1. The log will record huge numbers of events, so it will be hard for users to find and keep
track of important problem-events. One solution is to have separate logs for normal vs.
problem-events, and the ability for users to delete problem-events once handled. Another
possible solution is a filtering mechanism for the log, allowing users to view only small
subsets of interesting events.
CHAPTER 5
Example
To make the ideas presented in the previous chapters more concrete, this chapter presents an example
of a conceptual design built around a conceptual model. Previous chapters have provided examples
of parts of conceptual models, some of which are for hypothetical simple applications and some of
which are for real, more complex ones. In contrast, the example conceptual model presented here is
complete – with all its parts. In fact, it uses the same format as the conceptual design documents
that we prepare for client companies. Those documents and the rest of the chapter are structured as
follows:
• Overall purpose
• High-level functionality
• Major concepts and vocabulary
• Task hierarchy enumeration
• Objects-operations analysis
• Resolved conceptual design issues
• Open conceptual design issues
The conceptual design is for a high-end Web-Search service intended mainly for professional in-
formation workers. It is adapted from an actual design done several years ago, so the name of the
service has been changed and many details have been changed or omitted for the sake of brevity,
clarity, and intellectual property protection.
CONCEPTUAL MODEL:
DOCLIVINGSTONE SEARCH SERVICE
5.1 OVERALL PURPOSE
The purpose of the DocLivingstone service is to allow people, mainly professional information
workers (e.g., librarians, travel agents, patent attorneys) to search for information on the Web
in a more systematic, sustained, comprehensive, and flexible way than most search services
support. Search in DocLivingstone is systematic, sustained, and comprehensive because search
40 5. EXAMPLE
projects span multiple individual searches and even multiple usage sessions, retaining the in-
formation collected until it is no longer needed. Search in DocLivingstone is flexible because
DocLivingstone accepts as search input not only keywords, but also documents and web URLS.
• DocLivingstone users can create Search projects (called Explorations), which persist
across individual searches and use-sessions. Explorations can be started, worked on,
set aside, returned to, and resumed later. A user may have several Explorations at
any point in time, and may shift from working on one to another at will. Explorations
hold found information that the user wishes to retain. They can be deleted when no
longer needed.
• As input to a search, users can provide text (search terms or prose), webpage URLs,
textual documents, or a combination of these.
• Documents returned by searches (formerly called Search Result Items) can be orga-
nized in different ways, e.g., as an ordered list (table) of individual found documents
(like results in most search engines), or by common topics extracted from the docu-
ments.
• Users can refine searches by indicating that certain found documents are especially
relevant. DocLivingstone uses this to revise the search, thereby modifying the search
results.
• Specialized Explorations (e.g., business travel, patent search) are provided for certain
common use-cases. These guide users through the steps of conducting a search, and
provide results-displays and analyses customized for the type of exploration.
• DocLivingstone: The service itself. Needed because users need a way to refer to it.
• Search Input: Information the user supplies to an exploration to indicate what s/he
is looking for. Input to a search consists of text, which can be supplied in a variety of
different ways: typing search terms, typing full sentences or paragraphs, specifying
documents, indicating web-pages. Search Input may consist of one or more Search
Input Items.
• Search Input Item: A single piece of input to a search, provided in one of the several
possible ways: typed text, document, URL.
• Document: Formerly called “Search Result Item”. An item found by a search. Docu-
ments can be any of several media types: patent, patent application, advertisement,
magazine, journal, newspaper, book, website, blog. The subject of a Document is
separate from its media type.
• Media Type: The medium of a document by a search. Media types include: newspa-
pers, magazines, advertisements, journals, books, websites, blogs (a special type of
website), patents, and others. A document’s media type determines the attributes it
is assumed to have, e.g., blogs have contributors, dates, etc.; patents have classifi-
cations, assignees, etc.
• Content Category: Pre-defined categories into which all textual content is catego-
rized. The pre-defined categories are: technology, business, entertainment, sports,
science, medical.
• Relevance Feedback: Users can provide the service with feedback on the actual rel-
evance of a given document returned by a search. This information is used by the
service to revise the search criteria to give higher weightings to the attributes in found
items that the user marks as highly relevant, and then initiate a new search.
• Each object has “slots” for subtypes, attributes, and operations. In some objects, some
of these slots are empty, that is, some objects have no subtypes, or no attributes, or
no operations.
• Objects that are contained in other objects indicate their container object type in a
Container slot.
• Objects that have parent-types inherit attributes and operations from their parent
unless they redefine the attribute or operation.
• Some operations have sub-actions, or variations. They are listed below the main op-
eration.
– Subtypes
∗ none
– Attributes
∗ Name: text
∗ Description: text
∗ Create date: date & time
∗ Modify date: date & time
∗ Results: list of Documents
∗ Alert:
· Set: ON/OFF
· Checking Frequency: enum {hourly, daily, weekly, monthly}
· Alert Method: enum {markUserTask, email}
∗ Notes: text
∗ Operations: list of past operations in this Exploration, latest first
43
– Operations
∗ Search for Documents matching specified Search Input
∗ Review Search Results
∗ Refine Search
∗ Undo last operation
∗ Redo last undone operation
∗ Copy
∗ Delete
∗ Set Alert (to recheck periodically and notify user when something new is available)
· Turn ON/OFF
· Set Checking Frequency (freq)
· Set Alert method (method)
∗ View Alert
∗ Save (only for Explorations that have not yet been saved)
– Attributes
∗ Username: text < valid username >
– Operations
∗ Clear
∗ Expand Exploration
∗ Contract Exploration
• Search Input
– Attributes
∗ Items: List of Search Input Items
– Operations
∗ Submit
∗ View
– Subtypes
∗ typed text, file, web page
– Attributes
44 5. EXAMPLE
∗ Content: text
– Operations
∗ View
– Attributes
∗ TBD
– Operations
∗ View: display of text
– Attributes
∗ Filename: text
– Operations
∗ View: display of filename
– Attributes
∗ URL: text
– Operations
∗ View: display of URL
– Attributes
∗ Input Data: Search Input
∗ Description: text string
∗ Items: list of Documents
∗ Display controls:
· Category shown: enum {<subtypes of Documents >}
– Subtypes
∗ patent, advt, magazine, journal, newspaper, book, website, blog
– Attributes
∗ Name: text
∗ Datafields: [pertinent data differs by subtype]
∗ Content Category: enum {technology, business, entertainment, sports, science, medi-
cal}
∗ URL: url
∗ Date: date
– Operations
∗ Give relevance feedback
∗ Make input item
∗ View Attributes
– <details omitted>
– <details omitted>
– <details omitted>
– <details omitted>
– <details omitted>
– <details omitted>
46 5. EXAMPLE
• Website Document (subtype of Document)
– <details omitted>
– <details omitted>
• Topic
– Attributes
∗ Label: text (not user settable)
∗ Contents: list of Documents
– Operations
∗ View Content documents
• Start search
• Maintain Explorations
– save Exploration
– name/rename Exploration
– provide description
– delete Exploration(s)
2. Are patents and patent applications the same concept or different concepts? Resolu-
tion: Patents and patent applications will be treated as the same concept. The only difference
between them is that patent applications have null values for certain attributes, e.g., Grant
Date.
3. Within an Exploration, users can refine a search in several different ways. Each re-
finement produces a new set of results. Does the service keep the results of every
refinement, or does it keep only the results of the latest refinement? Can users get
back to the result of any Search they have done in a given Exploration? Resolution:
48 5. EXAMPLE
Only the results of the last search are kept in a given Exploration. Users refine the Search
by indicating relevance of items or by turning result-documents into Input Items. However,
actions taken in a Exploration are saved, so in principle, users can back out of them one at a
time, using something akin to UnDo.
2. In Search Results, if a user marks a resulting document as a good result, the service
uses that to adjust the weights of its selection and ranking criteria, so the Search
Results list may change. However, that does not alter the search input for the Explo-
ration. Thus, a given Exploration has state that is not reflected in its Search Input. Is
that state visible anywhere to users? If not, it may seem mysterious that two people
can provide the same Search Input, yet have different Search Results.
49
CHAPTER 6
Essential Modeling
Modeling a task-domain comprehensively and coherently is difficult. Modeling it comprehensively,
coherently, and simply is even harder. Modeling it comprehensively, coherently, simply, and in a way
that makes sense to people who want to do things in the task domain is very difficult. This chapter
provides advice on how to model task-domains in ways that meet all of these goals.
It begins with some Basic advice on performing object/operations analysis. Following the
basics, this chapter discusses common conceptual design issues that often cannot be resolved early
in design, but must be resolved before a conceptual model — and the application embodying it —
will make sense.
The next chapter (Chapter 7) covers additional issues that commonly arise during conceptual
design, but that are optional : designers can ignore them and still have a coherent conceptual model
and application.
Table 6.1: O/O analysis for an office calendar with different Event-types modeled as
subtypes.
all hands, manager-employee one-on-one, design team, etc. — then it is necessary to model the
types of event as object sub-types rather than as attribute values, so meeting can also be broken
down into its sub-types (either by sub-types or by attribute).
6.2.1 METAPHORS
As discussed in Chapters 3 and 4, a conceptual model can be designed to reflect or reference another
(presumably well-known) conceptual model. The referenced conceptual model is often called a
“metaphor.” For example, the personal computer desktop with its files and folders is a conceptual
model built using as a metaphor the conceptual model of a physical paper-based office with its
desktops and files and folders. (The electronic objects are said to be represented by icons, which is itself
a metaphor based on religious imagery.) E-mail is based on physical memos, with their subjects, dates,
to- and cc-addresses. Spreadsheets have arrays of cells, analogous to the cells of paper spreadsheet.
Letting one conceptual model stand on the shoulders of another is a powerful way to accelerate
learning and provide support for use.
However, analogies and metaphors are limited and inexact [Halasz and Moran, 1982,
Johnson, J., 1985, 1987]. Users may be misled into expectations that the application does not fulfill.
For example, the amount of material in a real-world physical folder is usefully indicated by the
folder’s size and weight. In contrast, the amount of material in an electronic folder is not indicated
by the size of the folder’s icon on the electronic desktop, and the icon has nothing analogous to
weight, e.g., dragging the folder doesn’t become more sluggish the more it contains.
Designers must take care in conceptual design to ensure that the objects, attributes, and
operations of the reference conceptual model (the metaphor) are carried over into the application’s
conceptual model. Where they aren’t, users must be made aware of the discrepancies.
54 6. ESSENTIAL MODELING
6.2.2 PROGRESSIVE DISCLOSURE
When an application is rich but many users will have make use of only a small subset of the supported
task-domain, designers often provide more than one user interface to the application. For example, on
some photocopiers, a few simple tasks are supported by a small subset of the conceptual model: make
one copy, make a small number of copies, make the copies two-sided. However, with a photocopier
that can shift images on pages, provide covers, staple, and bind, these extra capabilities are often
hidden until revealed by opening a covering panel. When the copier user interaction is on a display,
“Advanced features” buttons display more detailed controls.
This is called “progressive disclosure,” reflecting the notion that as the user’s tasks progressively
become more complex, the application discloses more of its conceptual model [Johnson et al., 1989,
Johnson, J., 2007]. However, a better way to think of this is that now there are two conceptual
models, with mechanisms for moving between them. In such cases, it is very important that the
simpler model be — and be exposed as — a clear and exact subset of the advanced model. So, objects
and operations from the advanced conceptual model should be sharply delimited so that they do not
leak into the simpler conceptual model. It is particular hard on users when the advanced conceptual
model requires that simple tasks be thought of differently than they are in the simple conceptual
model. When this happens, users can easily become confused about both conceptual models.
Time
Most computer systems represent time in a very technical way (e.g., the number of seconds since
midnight, Jan 1, 1900). However, an application would represent times-of-day in a more user-friendly
way. For instance, a calendar might indicate that a meeting starts at 10:00 am Pacific Daylight Time
on a particular day. The conceptual model would include something like:
• time-intervals (year, month, week, day, day-of-the-week, hour, minute, second) de-
pend on time-zones.
The application would have to integrate these time-related concepts with its other concepts.
For example, in a calendar, although a meeting starts at a moment in time, the time-labels for that
start-time will differ for participants in different time-zones; it may even be on different days, or
even years. Are users of the application only interested in what the time is in their time-zone, or do
they want to know how other participants see it? What time will that be in New York City? Is that
a holiday in Bangalore?
Files
Many applications borrow concepts from the operating systems on which they run. One of the most
common is files.
For example, in one company’s application for creating maps, a key concept in the conceptual
model was table, the aggregated data defining a map. Historically, the application had used spread-
sheet files to represent tables, so users could edit them with spreadsheet applications. Thus, the
map data files were modeled using both operating system concepts (files) and application concepts
(tables representing maps). The designers felt that because these data files were accessible via the
operating system, the application did not have to provide its own access to them. Users had to open
and edit spreadsheet files, with no support in the application for manipulating tables. Thus, the
application borrowed concepts from its environment.
Security
In applications that operate in the Internet (and few do not these days), access to objects must
be carefully managed. Sometimes applications run entirely within protected environments (e.g., a
secured machine), so security is not an issue for their conceptual model. More often however, Internet
applications allow users to access objects remotely. For example, events on a shared calendar may be
accessible by some and not others.
The computation platforms on which applications run provide powerful mechanisms for
limiting access, e.g., access control lists on files, encryption on passwords. However, the concepts
comprising these access-mechanisms are rarely the right ones for describing how security works in
the application’s task-domain. For example, access in a calendaring domain should reflect something
like:
• access is not given to login names or machines, but rather to projects and members.
• the possible access attribute-values are not read vs. write (as for files), but rather show-
existence-only, show-title-only, show-details (controlling how much others can see).
56 6. ESSENTIAL MODELING
The point of these three examples (time, files, security) is that the conceptual model of an application
can be made easier or harder to learn by borrowing concepts from the conceptual model(s) of the
platform on which it runs, depending on whether the users understand the platform’s model.
Object-oriented interaction
In many user interfaces for desktop software applications, the objects, attributes and operations of
the application’s conceptual model are exposed directly. For example, the titles on the menu bar (or
first layer in the phone tree) could be the major concepts of the application; the menu items (or
the second layer in the phone tree) could be the operations (see Fig. 6.1). Attributes could appear
in either place, modifying the objects or the operations. Users have a sense of direct access to the
objects and operations reflecting the conceptual model and can read and modify them “directly.”
Task-to-tool mapping is therefore directly supported.
Learning the conceptual model is constantly reinforced while using the program: it is imme-
diately available by looking through the labels on menus and menu items, and by reading pop-up
tooltip that are associated with the menus. Documentation is often organized around objects and
operations, thus further reinforcing the conceptual model.
Task-oriented interaction
An alternative way of organizing conceptual model and applications focuses on the tasks (i.e., op-
erations) that the application supports, rather than the conceptual objects. Some such application
designs define the steps for achieving each task and provide mechanisms (“wizards”) that guide users
through tasks to completion. Task-oriented applications are useful for walk-up-and-use situations,
6.2. SUPPORTING LEARNING 57
6.4.1 CONTAINMENT
A common but often blurred distinction in conceptual models occurs when objects are contained in
containers: can a single object be in multiple containers at once?
For example, in Apple’s e-mail client application, Mail, messages can only be in one folder at
a time. Operations on folders include move message to folder and delete message. In contrast, Apple’s
iPhoto application allows photos to be in many albums at once, and operations on albums include
add photo and remove photo. Importantly, removing a photo from an album does not remove it from
other albums in which it has been placed. iPhoto also has a library, which contains all the photos
and has its own deleting photo operation, which removes the photo from the library and all albums
that contained the photo.
A conceptual model in which objects can be in multiple containers at once is needed only
when objects can change. For example, if photos cannot change, then sharing can be implemented
by copying them. The copies will all be identical and will remain so, and therefore it doesn’t matter
whether they are identical or copies. However, in the iPhoto conceptual model, photos can change,
e.g., they can be annotated and adjusted. Conceptually, such changes are on the photo everywhere it
appears, not on the instance of a photo in an album.
When change and containment interact, designers should take care to ensure that the con-
ceptual model is clear.
CHAPTER 7
Optional Modeling
Chapter 6 (Essential Modeling) discussed some essential recurrent topics of modeling, topics that
developers always encounter when building conceptual models.This chapter discusses two additional
recurrent themes:
These themes are optional: they arise in most applications, but complete designs can usually
be devised without addressing them. Nonetheless, they are important: when they are addressed, the
resulting designs may be more usable, and may be applicable to larger task-domains.
Because these topics are optional, designers may be tempted to postpone considering them
until later in development, with the thought that they can be added later if desired. However, waiting
can make getting to a larger, better conceptual model much harder later. An attractive alternative is
to consider these topics early so as to ensure that a coherent future design can be made. A redeeming
grace is that concepts needed to support these topics need not be exposed to users in earlier conceptual
models. All that is required is a migration path to these anticipated futures if the application succeeds.
• Diagnose: Figure out what happened. The clearer the conceptual model, the easier this
conceptual work is.
• Repair: Determine how to repair the problem. Can a user just change things to the
intended state, or must they “back up” and then proceed, or do they have to abandon all
recent work and start over from the beginning? The provision (or lack thereof ) of “undo”
capability is important to note for operations in conceptual models [Abowd and Dix,
1992].
• Resume: Proceed, but with an awareness that trouble has occurred, forcing intervening
activity. For example, after undoing an operation, the history list may well show the last
command was undo. If they then invoke undo again, what will be undone, the undo or
the previous operation?
For example, when a person is laying out an electronic document, moving a shape around
in the document may produce unexpected results (e.g., nothing appeared). With work, the person
determines that the object is underneath another object. They undo the move, bring the object
forward, and move it again. They proceed, knowing that the application has undo, which can undo
an undo; step backward, which always goes back in time; and step forward. And what has the impact
of the all this activity been on resource usage? If operations cost money (as they do in a networked
world), did the user pay twice? Must they “clean up” (e.g., empty the trash)? The application’s
conceptual model should make such things clear.
These days, people expect applications to be designed with trouble in mind, i.e., to keep track
of actions, indicate status, and allow errors to be repaired. Conceptual design must model and address
this. Often these parts of the conceptual model are added very late, even after the application’s initial
release.
Sometimes adding concepts to handle trouble requires fundamental changes in how users will
have to think about their work. For example:
• Events: To manage trouble, people must change their focus of attention to the events
that have occurred in the application. This requires that the application has maintained
a record of the requests the user made, the resulting operations carried out, the objects
involved, the sequence in which this all occurred.
7.1. GOING META: ACTIVITY AS OBJECTS 63
The conceptual model must be enlarged to include concepts like invocation (attributes:
operation, arguments, results) and history-event (attributes: invocation, prior-event, next-
event, time).
The details of these concepts can be complex, but they are similar across applications.
One important design consideration is that the conceptual model for history should be
broken into two parts, one reflecting the conceptual model of the application without
history, and one reflecting the user interface through which the user is accessing it.
• Undo: A well thought-out, multi-event undo often requires answering difficult ques-
tions about the grain-size of the events that are undone. We expect a text editor to
respond to each key typed; each key-stroke is its own insert-character operation. Yet a
corresponding undo operation that undoes only one insert-character has been shown to
be much worse than developing some concept of a typing event that reflects chunks
of typing as people think of (actually, intuit) it, and providing an undo-typing event
operation [Washizaki and Fukazawa, 2002].
• graphic designers test filtering operations by first applying them to one image, then
selecting a subset of the filters to apply to many images;
• statistical analysis often requires multiple tests, winnowing of datasets, shaping of pre-
sentations, repeated over multiple datasets;
• text editors are used by writers for managing hierarchies of chapters and sections, each
with many versions.
A common mechanism for supporting repeated work is “macros”. Macros are user-accessible
languages that enable description of sequences of activity. For example, unix provides shell scripts,
MacOS provides AppleScript and Automator, and Excel provides Visual Basic.
A common mistake is to have the macro-language access applications using the details of an
application’s user interface. This limits the macro-language to work only with that user interface,
requiring different macros when the user interface is changed.
64 7. OPTIONAL MODELING
A better approach is for the objects and operations of the macro-language to be exactly the
objects and operations of the application’s conceptual model. For example, cells are a key object in
Excel’s conceptual model; and cells are accessible in Visual Basic within Excel. Ideally, the concepts
in Automator are exactly the concepts in the conceptual models of the MacOS applications.
• Construction sets: Some applications provide objects — often called “pieces” — that are
intended to be combined within the application to create composites pieces. Such ap-
plications are often called “construction sets”, reflecting construction provided in some
mechanical toys (e.g., Lego, Erector Sets, Tinker Toys, Lincoln Logs). For example,
applications for creating illustrations provide a set of primitive shapes and a group
operation for aggregating shapes to create composite shapes. Often composite pieces
may themselves be further combined as members of even larger composite pieces; this is
7.2. EVOLVING THE APPLICATION 65
often conceptualized as pieces with the attribute type (value: base/composite), with the
operations for making combinations working on pieces of all types. This is called “recur-
sive” or “injective” composition. For example, most applications supporting illustration
(e.g., Powerpoint, Illustrator, Omnigraffle, Pages) have injective composition.
• Platforms: People commonly use concepts in one application to represent concepts in
another. For example, the conceptual model of a spreadsheet application describes cells
and formulas; the task-domain is creating spreadsheets. However, a person can use a
spreadsheet to represent their monthly budgeting work. The concepts of budgeting
would be represented in the spreadsheet, say with columns for budgeting categories and
amounts. Further, they might copy last month’s budget (spreadsheet) to start this month’s.
Over time, they might come to know what parts of the spreadsheet change, and what
parts remain constant, month to month.
For them, the resulting spreadsheet is both a spreadsheet and a budget. When one
task-domain is used to represent another, we say that the application used to do the
representing is being used as a “platform.” Spreadsheets are intended to be used as
platforms. However, other programs that are not so intended are also used as platforms:
a text-editing application is used as a platform for invoicing; a calendar application is
used as a platform for scheduling; an e-mail application is used for fund-raising.
When designing an application that is intended to be used as a platform, the task-
domain is considered at two levels: the task-domain of doing representations (using
the application to represent other task-domains), and the space of task-domains that
can be represented. The concepts of platform are a surrounding model (see Surrounding
models in Chapter 6) for the concepts created using the platform. The conceptual model
of the application should include concepts that make the work of representing easier.
For example, spreadsheet programs have rows and columns; they also have a make-chart
operation that takes a data range, treats it as representational (data must be in a particular
form), and creates a chart.
• Extensibility: Applications can provide for concepts to be created, not at design time
by designers, but during use by users. For example, many text-processing applications
allow users to put headings of various types into documents. These built-in paragraph
styles reflect standard practices of typographers. Because these practices are not universal,
many text-processing applications also let users create their own styles to reflect their
typographical practices. Thus, the application is designed to be extended: the concept
of style is extensible.
The conceptual mechanisms for describing extensibility include making choices (e.g.,
selecting a value for an attribute), composition (e.g., aggregating choices in paragraph
styles), and specialization and customization (restricting an attribute’s range of val-
ues). The technical mechanisms for implementing extensibility, however, can include
66 7. OPTIONAL MODELING
things that are not within the conceptual model of the application at all. In particu-
lar, many applications permit extension through programming (e.g., scripting) in either
application-specific formalisms or general-purpose programming languages. For ex-
ample, in describing webpages, Javascript can be used to extend the behavior of the
foundational HTML forms.
7.2.3 VERSIONING
As applications change, new versions are made and released. These new versions may have new
conceptual models. So first and foremost, an application must somehow mark the objects that it
produces to indicate which version of the application produced them. The concepts associated with
later versions of the application and their conceptual models are often missing from earlier versions,
causing forward incompatibility.
As new versions become available, people may decide to start using them. Since people rarely
all upgrade at once, various versions of applications are often in use concurrently. Also, users share
their work, and expect their results to work together. This requires that applications and their
conceptual models take into account the fact that objects that are imported may come from older
versions of an application and reflect an older conceptual model. When this happens, not only must
the implementations be converted, but so must the concepts. For example, when Microsoft Office
moved to XML-based documents, some concepts changed, e.g., the whole model of embedded
graphics in documents. Old documents had “graphics frames” (aka “canvasses”) in which graphical
objects could be drawn, and graphical objects could not be drawn outside of graphics frames. New
documents have graphical objects that can be overlaid on anything, and the graphics frames are gone.
A user who understood the old model may not understand the new one.
What happens when an object being imported was created by someone using a newer version
of the application with a newer conceptual model? That is, the application is trying to handle
something that comes from its future. In this situation, some applications crash (bad); some refuse to
proceed (not great); some strip out what they do not understand (better); some preserve and protect
what they do not understand and pass it back out undamaged to others to use (good). In addition
an application can appeal to users for help. For example, in a calendaring application, when in a new
version meetings are differentiated by whether participants are in different timezones, users had to
be asked for help in marking meetings. existing in the older version for which that information had
not been required.
Supporting data-interchange between different versions of applications and their conceptual
models requires careful thought and planning. It must be addressed in the conceptual model. Specif-
ically, operations are needed to make the required conversions. The newer conceptual models may
need to include descriptions from the older ones, and versions of the concepts need to be named so
as to remove ambiguity. One solution is to tag concept labels with version numbers. This is not a
solved problem.
7.2. EVOLVING THE APPLICATION 67
7.2.4 UNANTICIPATED GROWTH
Despite all efforts to analyze the work in a task-domain, it is not possible to guarantee that the
concepts in an application will align well with the actual situations users encounter. Sometimes this
results from a lack of resources to see or consider every case in the domain. More often, the world
changes and the design does not reflect the shift.
For example, many years ago, a photocopier was on an ocean-going barge. When the customer
tried to order supplies, the order-entry clerk asked for an address to send them to, but the customer
could not supply a normal address — only a list of port-of-call when the barge would be there.
However, the form required a conventional street address, so the order could not be placed.
When the world (the task) and the application (the tool) cannot be made to align, what is the
poor user to do? Beyond that, what are designers supposed to do to address user needs in such cases?
How do we design for the unanticipated? How should the conceptual model reflect this inevitable
result of working in a dynamic world? Here are some possibilities:
• Backchannel : Make it possible for users to tell the designer about the difficulty. While
this will not solve the immediate problem, it may help in getting a fixed version released.
For example, when applications fail (crash!), the implementations often offer to send
a message to the implementers providing the technical details of the failure. Similarly,
when the design fails, some applications support the user in sending a message to the
designer giving the task circumstances. This “backchannel” is the means of getting a
message “back” to the designer. To do this, the conceptual model must include concepts
for communicating, addresses for designers, descriptions of task circumstances (e.g.,
open-ended text, photos).
• Tailoring: Make it possible for users to fix the application: to modify it to be as they
would like it to be. This throws users into the design process, continuing the design
in use. It is fraught with difficulty, because it requires that users be able to not only
understand and change the design, but also be able to implement it. The impact on
the conceptual model is to include all the concepts of designing and implementing.
(Extensibility, discussed above, is a special case.)
Even if all that is possible, the user may not want to switch to doing the application
developer’s work while in the middle of working on a task. Also, the timescale is probably
wrong, since development work usually takes much longer than application usage. For
example, when in the midst of writing something using a text-editing application, if a
paragraph style has the wrong “next paragraph” setting, a user is not likely to edit the
style at the expense of losing their writing flow.
• Appropriation: Find someone who has seen this problem before and has solved it, and
appropriate their solution. This is a great approach, as it leads toward workable, even
working, solutions. However, it requires that people be able to characterize their prob-
lem, know enough about other people’s activity to know about earlier difficulties, find
68 7. OPTIONAL MODELING
them, and get their help. Again, it usually cannot be done quickly enough to suit the cir-
cumstances. To support this approach, add users and completed-tasks to the conceptual
model.
• Work-arounds: Augment the objects and operations of the application with some user-
supplied objects and operations to create a solution that is partly inside the application
and partly outside. In practice, this is the route people usually follow. For example, the
Xerox order-entry clerk (see above) handled the “no available mailing address” problem
by writing a telephone number in the address field of the form, with the additional
instruction “Call Bob”. Business forms (the application) have margins on them; these
are the normal place for everything in the task that doesn’t fit the structure of the form
(the conceptual model of the application). To enable this solution, the conceptual model
is augmented with open-ended ways for recording exceptions of one type or another
(e.g., illegal values in fields, additional information, challenges to the assumptions of the
application), together with operations for setting them and searching them.
• Special handling: Provide a special way to deal with exceptional cases. This is a mindset
that covers all of the above solutions, and is most relevant in situations where currently
the only way of getting work done is through the application (e.g., all hiring must be
done through the HR++ application). For example, InterMountain Healthcare requires
that doctors treat patients either by following the established protocol (the usual case)
or by doing what they deem to be better and document it (the special case). The two
“lanes” are designed together: the protocol can be very clear (to achieve coherence); and
the protocol committee meets every day (to respond to new things). Adding special
handling to the conceptual model for an application requires concepts like type of case
(usual, special), special handling report, and status (for tracking that everything in the
end gets addressed). It also requires that both lanes be designed, and designed to work
together.
• User-created conceptual model and design: Ideally, of course, it would be great if a person
could engage and modify the application at the level of the conceptual model. (This can
be seen as the most extreme example of “Tailoring” above.) They would open up the
application, access the conceptual model which would be separately expressed, modify
the conceptual model to fit their new needs, and let the application adjust everything to
make the application reflect the modified conceptual model. This automatic adjustment
might require some help from the user on how they wanted the changes to be exposed
by the user interface; and it might require some help with aspects of the implementation
(e.g., how much file space is the user willing to devote to storing the new objects added).
As of this writing, concept-based application construction remains a research topic. User
Interface Management Systems (UIMS) focused on generating user interfaces. Content
7.2. EVOLVING THE APPLICATION 69
Management Systems and XForms cover forms-based applications. Model-based archi-
tectures, including UML, address object-oriented architectures. Missing are modeling
languages that can adequately express the semantics of the conceptual models, user in-
terface generation formalisms and mechanisms that take into account the technologies
which deliver both the application (e.g., often now running on multiple servers) and the
user interface (e.g., often running on a phone, tablet or other mobile device).
We therefore encourage the research community to revisit the (semi-)automatic gener-
ation of applications from conceptual models.
CHAPTER 8
Process
For any real-world application that embodies more than a handful of concepts, conceptual design
can be expected to take a development team at least two weeks of meetings, drafts, discussions, and
revisions. This chapter describes how to do this most efficiently and effectively.
• release
• support
Although the activities are listed here in a logical order, the listed order does not represent
the order in which these activities actually occur; elements of all of these activities occur and recur
through development, regardless of whether that is planned.
Building a conceptual model is the foundational, and therefore usually earliest, step in the
process that is considered part of design (in contrast to requirements gathering).
release leads to the application in use, with support supporting, which leads to better understand of
8.3. THE CONCEPTUAL MODEL NEEDS A PLACE AT THE PROJECT TABLE 73
user needs, and the beginning of the next round. Often, a number of versions are under consider-
ation at once, so choices can be made as to where to apply learning, improvements and extensions.
Sometimes this cycle is ponderous; sometimes it is agile. Sometimes these activities are sequential;
but more often they are concurrent.
Each activity in this on-going cycle has its own issues that it must confront and resolve:
support has to try to keep users happy, implementation has to create robust software, UI design has
to ensure usability, conceptual design has to ensure usefulness for supporting user tasks, release has
to ensure impact through well-timed delivery, and so on.
Changes to the conceptual model are team decisions. Unilateral addition of concepts to
the conceptual model by any team member is not allowed.
For example, if a programmer thinks a new concept needs to be added to the software and
exposed to users, she must first persuade the team to add the concept to the conceptual model; only
then can it appear in the software. Similarly, if a documenter discovers the need to introduce an
additional concept to explain how to use the application, that change must first be reflected in the
conceptual model, with the team’s buy-in; then it may appear in the documentation.
When a change is made unilaterally, it can seem relatively inexpensive to the person proposing
it. However, when all the impacts of a proposed design change are revealed by considering their impact
on the conceptual model and the resulting impact on everyone else, the full cost can be considered
before committing to the change or deciding against it.
Cat
Name: <text>
Sex: enum(M,F)
Weight: <weight>
Fur-color: <color>
Tail-length: <length>
Speed: <speed>
eat()
sleep()
purr()
hairball()
hunt-prey(<prey>)
Figure 8.2: Class diagram for types of cats, with attributes and operations.
Tools are available that convert UML code into application source code, so representing the
model in UML facilitates the development of application code underlying the conceptual model.
However, it may hinder understanding of the model by non-programmer members of a development
organization. It can also add pressure to include implementation concepts in the conceptual model
so they will be automatically generated, which could damage the user-task focus of the conceptual
model.
In our experience, when the model is shown to team-members to get their feedback, it usually
suffices to represent it as an outline, a spreadsheet, or an object-relationship diagram.
Notification
Authorizes
Submits Payment
For
Attending Provides
Vendor Associate with Services Receives Patient
Provider
Submits
Request
For
Referred
To
Payment Claim Referral Pre-
Made Primary Care
authorization Submits
To Provider
Listed
Decomposses In
Info
Major Objects
Encounter
Primary
Relationships
This view is at the root of many current-day software managers’ resistance to developing a
conceptual model. Today’s software managers often prefer to follow a development process that
includes iteration and refinement, and that does not rely on big up-front design efforts and specifi-
cation documents. This approach is based upon the idea that the initial conceptual model won’t be
completely right, so a user interface based on it will also be wrong.
It is true that first attempts at conceptual models are often not quite right. It is tough to get
it right the first — or even the fifth — time. However, it is not true that developing a conceptual
model rules out iterative design and development.
In fact, the process is rarely linear — even when organizations try to follow a “waterfall”
development process. As design proceeds from conceptual model to user interface to implementation,
it is likely that downstream design and implementation, not to mention user-testing, will expose
problems in the conceptual model, indicating the need for changes.
In Fig. 8.1 (above), feedback loops through the conceptual model provide places where new
understanding and evaluation findings can cause a return to a prior stage to revisit and revise that
8.7. INCLUDING CONCEPTUAL MODELS IN AGILE DEVELOPMENT 77
stage’s output. Early usability testing can, and should, be designed to accelerate this process: low
fidelity, quick prototypes can be focused on the important parts of, and questions in, the conceptual
model. Lightweight usability testing can thus evaluate the conceptual model as well as the UI design.
In particular, a conceptual model, once designed, can be tested on users or other task-domain
experts before further design work is done. Such testing may expose conceptual “holes” that can be
corrected by revising the model, or it may expose new requirements, thereby necessitating a return to
the user-needs (and prioritization) stage. Even after developers decide that the conceptual model is
stable enough to proceed, later design and evaluation work may expose problems in the conceptual
model, requiring revisions. Indeed, gaps, problems, and unnecessary concepts in a conceptual model
may be discovered in pre-release testing or even after release.
If testing exposes problems in the conceptual model, developers should go back and change
it. They should resist the temptation to treat the conceptual model as “dead” after an initial UI has
been designed from it. If developers don’t keep the conceptual model current as they “improve” the
UI design, they will regret it in the end, when they have no single coherent high-level description
on which to base the user interface, the user documentation, training, or later system enhancements.
Of course, changing the conceptual model can be painful: it affects the user interface, the
documentation (in all its languages), and possibly even the implementation. The entire team is
affected. But the conceptual model is the single most important part of your design. Therefore,
it pays to make it as simple and task-oriented as possible, then do whatever you need to do to
reconcile the rest of the design with it. Otherwise, the application’s users will have little chance of
understanding the user interface, because it will be based on a muddled conceptual model.
8 Sometimes these are actual users and sometimes they are proxies for users, e.g., developers familiar with the target task-domain
from having formerly done that job.
78 8. PROCESS
The argument that conceptual models don’t fit into Agile development can be countered in two
ways. First, Agile and related methods were initially developed by software engineering experts, not
interaction design experts, so early writings on Agile had blind spots concerning interaction design,
usability, user-centered design, and how they fit into the methods. According to Bangston, A. [2001]:
XP tends to promote a very tight focus; don’t worry about what’s coming, just code
the card you’re holding. … Unfortunately, … this approach can lead to disjointed,
awkward or unnecessarily complicated interfaces designed around back-end func-
tionality rather than the user’s end goals. Designing an efficient and elegant user
interface requires some conception of what steps comprise a given task, and how
tasks interrelate to create an application’s flow.
In other words, design-as-you-go methods might work for developing device drivers, operating
system kernels, compilers, or other software that has little or no user interface, but design-as-you-go
does not work for applications with significant user-interfaces, such as airline reservation websites,
air-traffic control systems, or even flight-simulation games.
In recent years, user experience experts and Agile/XP experts have attempted to “marry” their
methods. One result is that they acknowledge the need for some up-front design. For example:
• Scott Ambler, an Agile/XP guru, says that the overall architecture of an applica-
tion should be modeled in a “phase 0” before the normal code-test-revise cycles
start [Ambler, S., 2005]. That “phase 0” model would include a conceptual model.
• Jon Meads, a UI consultant, finds that user/task-centered design fits with Agile methods
if the design (including iterations of it) occurs mainly in the Inception and Elaboration
phases of a project, while the Agile code-test-revise cycles occur in the Construction
phase (Fig. 8.4). One way to regard this is that iterative refinement of the conceptual
design is no different than iterative refinement of the implementation code. Both are
necessary.
Second, as described above, it is simply false that conceptual design only fits into a linear
“waterfall” development process. User/task-centered design, of which conceptual design is one part,
shares Agile’s rejection of the “waterfall” model. It recognizes that customer requirements are un-
derstood better over time, and change even after they are understood. It acknowledges that designs
evolve, but advises against beginning implementation or even detailed user-interface design until
you have at least a preliminary version of a task-focused conceptual model.
8.8. TESTING CONCEPTUAL MODELS 79
Figure 8.4: How Conceptual Models fit into Agile development (Adapted from Jon Meads).
On the other hand, the conceptual model, once it exists, should not be considered carved in
stone. Quite the opposite, it should be tested on users and revised and improved before developers
invest time, money, and egos on implementation code. After implementation starts, the testing and
revision continue, and the design continues to evolve.
Designers should accelerate the discovery of problems in the conceptual model by actively
seeking feedback from users or other task-domain experts as early in the process as possible, before
the user interface is completely designed or even begun. Focus groups can consider the concepts of
the conceptual model — objects, attributes, operations„ and relationships, with their terminology
— and the task-flow that it implies more-or-less directly. Low fidelity, quick prototypes can be used
to test important parts of, and issues in, the conceptual model.
80 8. PROCESS
Thus, lightweight usability testing can evaluate the conceptual model as well as the UI design.
In general, the earlier developers test and evaluate their conceptual model, the less likely it is that
conceptual design problems will surface late in development or after release.
81
CHAPTER 9
Value
Software development managers often balk at including a conceptual design phase in development.
“How long will that take? Won’t it slow us down? I don’t like the idea of spending two or three weeks
developing a conceptual model — let’s just start designing the screens so our implementors can get
coding ASAP!”
Developing a task-focused conceptual model for an application that all major stakeholders
agree on does indeed take a few weeks. However, that investment usually pays off handsomely by
clarifying, focusing, and speeding later development steps. In other words, developing a conceptual
model is not simply an additional cost for a project; it produces outputs that are useful or even
necessary for later steps, and that therefore can save development time and cost.
In this chapter, we list the downstream benefits of developing a conceptual model at the start
of the design process.
Hey, Anoop, it’s Sergei. Got a minute? On your pages in our customer-service web-
site, you use the term “bug report”. But our agreed-upon term is “service request”,
remember? That’s what’s in the vocabulary. Where’s the vocabulary? At the project’s
wiki. Can you please change “bug report” to “service request” on all your pages? We’re
running usability tests on Thursday, so I’m hoping you can make these changes by
Wednesday. You will? Great, thanks.
Applications developed without a vocabulary often exhibit one or both of two common user
interface “bloopers” [Johnson, J., 2007]:
82 9. VALUE
1. non-task-relevant terms: terms for concepts not in the conceptual model, i.e., that
shouldn’t be exposed to users (see Fig. 9.1 and Sidebar 4),
Figure 9.1: iCasualties.org asks users to select a “Database,” which is an implementation concept, not a
task-related concept. “War” or “War-Zone” would be more task-relevant.
2. inconsistent terminology: which takes two forms: a) multiple terms for a single concept
(see Fig. 9.2), and b) the same term for multiple distinct concepts, i.e., overloaded terms
(see Fig. 9.3).
Figure 9.2: eVite.com labels the first field “Alias” but the error message calls it “Username.”
To ensure that all terms that users encounter are relevant to their tasks, only terms that corre-
spond to concepts in the conceptual model should be used in an application and its documentation.
Terminology that is not relevant to users’ tasks should be kept entirely out of software applications
and their documentation.
Furthermore, the terminology for concepts should be extremely consistent; otherwise users
— especially new ones — will be confused and will take longer to become proficient in using the
application. To ensure consistency, the design rule that application designers should follow is:
Figure 9.3: At WordPress.com, “Blogroll” means both a list of external links and a category setting on
the list.
To keep foreign concepts and terms out of the user interface, the vocabulary-manager should
check for concepts and terms in the interface, software or documentation that aren’t in the conceptual
model or the vocabulary, and resist them. For example:
Hey Sue, this screen refers to a “hyper-connector”, which isn’t in our conceptual
model or vocabulary. Is it just the wrong name for something we already have in our
conceptual model, or is it something new? If it’s something new, can we get rid of
it?
In these ways, designing a conceptual model for an application facilitates a development team’s
creation and use of a product vocabulary, which in turn results in an application that is easier for
people to learn and understand.
84 9. VALUE
The developers used “database” for shared templates because shared templates were
stored in a database. The developers used “local” for private templates on the users’
own PC because that’s what “local” meant to them. More task-relevant terminology
would be:
John checks his account balance. He then deposits a check into his checking account
and transfers funds there into his savings account.
9.3. FACILITATES CREATION OF USER DOCUMENTATION, TRAINING, AND SUPPORT 85
Note that this scenario refers to task-domain and conceptual model objects and actions only,
not to details of any user interface. The scenario does not indicate whether John is interacting with a
GUI on a personal computer or a voice-controlled interface over a telephone. However, it does specify
functionality that the application must have, as well as placing some constraints on the design. For a
more comprehensive conceptual task scenario, for a photo management application, see Sidebar 5.
Sally just returned from a two week vacation in San Francisco, and wants
to show her photos to her friends. She’s already deleted the truly bad pho-
tos from her camera, but now she needs to download the remaining ones
so she can see them in larger size and edit them down to a slideshow of
the best shots. She connects her camera to her computer, starts the photo
management application, and downloads the photos from the camera. Af-
ter the photos download, she browses through them. Some that looked OK
on her camera’s small screen are clearly out of focus, so she deletes them.
A few shots of people have the red-eye problem, so she fixes that. She cre-
ates an album and names it “SF 2012”, and puts the best 50 photos into
it. She moves some photos around in the show so it makes more sense,
then sets the slideshow to fade between photos. She views the slideshow
to make sure it flows well, then quits the application.
This scenario says almost nothing about the photo management application’s user
interface — only that it runs on a personal computer — but says a lot about the appli-
cation’s functionality.
John double-clicks on the icon for his account to open it. A separate window opens
showing the current balance. He clicks in the blank entry field below the last recorded
entry and types the name and amount of a check he recently received. ...
9.5. JUMP-STARTS AND FOCUSES THE IMPLEMENTATION 87
9.5 JUMP-STARTS AND FOCUSES THE IMPLEMENTATION
Readers who are programmers will have noticed the similarity between the objects/operations analy-
sis described here and the object-oriented analysis that is a common early step in software engineer-
ing. One big difference is that objects/operations analysis is restricted to concepts that are exposed
to users while object-oriented analysis includes all concepts that are part of the implementation.
Nonetheless, having performed an objects/operations analysis provides a development team
with a subset of the objects, object operations, and object attributes that must be implemented.
Therefore, after the conceptual model has stabilized and agreed upon, software developers can
begin implementing the internal structure of the required objects, operations, and attributes without
waiting for designers to design the detailed user interface.
Continuing with the example of a personal banking application: once the development team
knows what types of accounts the application offers and what the operations and attributes of each
type of account will be, programmers can begin coding those objects, without knowing yet how
accounts will be displayed, edited, or manipulated. They need not wait for the user interface design.
Thus, contrary to the fears of many development managers, developing a conceptual model
does not delay the start of user-interface coding. It may actually allow it to begin earlier.
CHAPTER 10
Epilogue
A good Conceptual Model (CM) should be at the core of the design of every artifact that people
use to help them get their work done.
This book argues that a conceptual model:
• helps focus the design of the application by coupling the design to the tasks that the
user is doing;
• supports having a good process for developing that design into a product;
As outlined in the Introduction, the book discusses the context of use of tools, and hence the
target of good design. It describes what a conceptual model is, and how it is structured. It looks at
recurrent issues — both essential and optional concerns in modeling, and concerns in design process.
It argues that resources invested in building conceptual models repay that effort.
Having a focused conceptual model as a part of application development is not sufficient
for designing a good tool for users. Good conceptual models must be joined by good work on
user interfaces, implementation, documentation, testing, and support, all coupled by good design
processes. All of these activities can meet and align through developing a good,conceptual model.
A clear, task-based, current, documented conceptual model can act as a meeting point for
all those engaged in building and maintaining an application. As a result, users will have a more
understandable application, and, more importantly, a more effective tool for getting their work done.
91
Bibliography
Abowd, G. and Dix, A. (1992) “Giving undo attention” Interact. Comput. 4, 3 (December 1992),
317–342. DOI: 10.1016/0953-5438(92)90021-7 Cited on page(s) 62
Ambler, S. (2005) “The Agile System Development Lifecycle”, Ambysoft online article, http://
www.ambysoft.com/essays/agileLifecycle.html Cited on page(s) 77, 78
Bangston, A. (2001) “Usability and User Interface Design in XP.”Online article: http://www.
ccpace.com/Resources/documents/UsabilityinXP.pdf Cited on page(s) 78
Beck, K. and Andres, C. (2004) Extreme Programming Explained: Embrace Change, 2nd Ed. Reading,
MA: Addison Wesley. Cited on page(s) 77
Beyer, H. and Holtzblatt, K. (1997) Contextual Design. Morgan Kaufmann. Cited on page(s) 24,
29, 30
Bittner, K. and Spence, I. (2003) Use Case Modeling. Addison-Wesley. p. xvi. Cited on page(s) 20
Buxton, B. (2007) Sketching User Experiences: Getting the Design Right and the Right Design. Morgan
Kaufmann. Cited on page(s) 23
Card, S. (1993) Discussant comments, at HCI Consortium, Boulder ,CO, Cited on page(s) 15
Card, S. (1996) “Pioneers and Settlers: Methods Used in Successful User Interface Design”, in M.
Rudisill, C. Lewis, P. Polson, T. McKay (eds.), Human-Computer Interface Design: Success Cases,
Emerging Methods, Real-World Context, Morgan Kaufmann. Cited on page(s) 15, 30
Constantine, L. (2002) “Process Agility and Software Usability: Toward Lightweight Usage-
Centered Design”, Information Age, Aug-Sep. Cited on page(s) 78
Cooper, A. (2004) The Inmates are Running the Asylum: Why High Tech Products Drive Us Crazy and
How to Restore the Sanity. Pierson/SAMS, Cited on page(s) 29
Authors’ Biographies
JEFF JOHNSON
Jeff Johnson is President and Principal Consultant at UI Wiz-
ards, Inc., a product usability consulting firm that offers UI de-
sign, usability reviews, usability testing, and training (http://
www.uiwizards.com). He also is co-founder of Wiser Usabil-
ity (http://WiserUsability.com), a consulting firm special-
izing in elder usability and accessibility. He has worked in the
field of Human-Computer Interaction since 1978. After earning
B.A. and Ph.D. degrees from Yale and Stanford Universities, he
worked as a user-interface designer and implementer, engineer
manager, usability tester, and researcher at Cromemco, Xerox,
US West, Hewlett-Packard Labs, and Sun Microsystems. He has
taught at Stanford University and Mills College, and in 2006 was an Erskine Teaching Fellow at the
University of Canterbury in Christchurch New Zealand. He has published numerous articles and
book chapters on a variety of topics in Human-Computer Interaction and the impact of technology
on society. He frequently gives talks and tutorials at conferences and companies on usability and
user-interface design. His previous books are: GUI Bloopers: Don’ts and Dos for Software Developers
and Web Designers (2000), Web Bloopers: 60 Common Design Mistakes and How to Avoid Them (2003),
GUI Bloopers 2.0: Common User Interface Design Don’ts and Dos (2007), and Designing with the Mind
in Mind: Simple Guide to Understanding User Interface Design Rules (2010).
96 AUTHORS’ BIOGRAPHIES
AUSTIN HENDERSON
Austin Henderson’s 45-year career in Human-Computer Inter-
action includes user interface research and architecture at MIT’s
Lincoln Laboratory, Bolt Beranek and Newman, Xerox Research
(both PARC and EuroPARC), Apple Computer, and Pitney
Bowes, as well as strategic industrial design with Fitch and his own
Rivendel Consulting & Design. Austin has built both commercial
and research applications in many domains including manufac-
turing, programming languages, air traffic control, electronic mail
(Hermes), user interface design tools (Trillium), workspace man-
agement (Rooms, Buttons), distributed collaboration (MediaS-
pace), and user-evolvable systems (Tailorable — “design contin-
ued in use,” Pliant — “designing for the unanticipated” and “scal-
able conversations”). These applications, and their development
with users, have grounded his analytical work, which has included the nature of computation-based
socio-technical systems, the interaction of people with the technology in those systems, and the
practices and tools of their development. The primary goal of his work has been to better meet user
needs, both by improving system development to better anticipate those needs, and by broadening
system capability to enable users themselves to better respond to unanticipated needs when they
arise in a rich and changing world.