CSC 484 Lecture Notes Week 3, Part 2
Details of the ID Process
-
Relevant reading.
-
Textbook Chapters 10 and 11.
-
Continuing with the papers of the fortnight:
-
"Storyboarding: An Empirical Determination of Best Practices and Effective
Guidelines"
by Truong, Hayes, and Abowd, from the University of Toronto and Georgia Tech;
Proceedings of the 6th conference on Designing Interactive systems, 2006, ACM.
-
"Developing Use Cases and Scenarios in the Requirements Process", by
Maiden and Robertson, from the City University of London and the Atlantic
Systems Guild; Proceedings of the 27th international conference on Software
engineering (ICSE), 2005, ACM.
-
Overview of Book Chapters 10, 11.
-
These two chapters of the ID book cover territory that should be quite familiar
to the software engineer:
-
Requirements analysis.
-
User-level design.
-
Prototyping.
-
The goals ID are fully in line with those of SE:
-
understand what users need;
-
construct a prototype to engage users;
-
evolve the prototype into design & implementation;
-
iterate as necessary.
-
Figure 1 is a summary of the process steps covered in these chapters,
reorganized to reflect how we'll mostly do business in 484 projects:
Establish 1 Requirements
Storyboards
Scenarios
User-Level Model (optional)
Use Cases
Volere Shell
Objects/Operations
Design
Conceptual Design
Physical UI Design
Concrete Product Design (optional)
UML diagrams
Software APIs
Design of hardware, or other non-software components
Construct Prototype
Software
Hardware, or other non-software media
Figure 1: The CSC 484 Development Process.
-
Introduction to Requirements Analysis (Section 10.1).
-
Definition of user requirements.
-
Importance of gathering requirements.
-
Techniques to gather requirements.
-
Different requirements representations.
-
What, How, and Why? (Section 10.2).
-
Precisely the same goals as in SE:
-
Capture requirements sufficiently well to start design.
-
Don't let fluctuating requirements slow down the process.
-
Goals achieved in two ways:
-
Focus on requirements first, postponing time-consuming design
(traditional).
-
Focus on small requirements pieces, each with rapidly doable design
(agile).
-
The ultimate in agility ...
-
Be agile enough to know when to go traditional.
-
When integrated design/implementation impedes progress, focus on requirements
alone.
-
What are requirements? (Section 10.3).
-
More review of SE topics.
-
Bottom line definition of a requirement is a statement of
fact.
-
Different kinds of requirements (Section 10.3.1).
-
Functional -- what the artifact does.
-
Non-Functional -- characteristics of the artifact,
its development, its users.
-
The book's treatment is comparable to SE treatments, plus usability.
-
Specifically, enhance the SE process by adding usability goals and
user experience goals to the coverage of non-functional requirements.
-
Data gathering methods (Section 10.4).
-
Interviews.
-
Focus groups.
-
Questionnaires.
-
Direct and indirect observation.
-
Studying domain-specific documentation.
-
Researching similar products.
-
Contextual Inquiry, Other Guidelines.
-
Section 10.4.1 not particularly useful (IMO).
-
Section 10.4.2 repeats what's been said already.
-
Analysis, interpretation, presentation (Section 10.5).
-
This is a very cursory treatment of SE topics.
-
Volere shell is yet another requirements notation, and not a particularly
useful one at that (in my judgment).
-
Task description, analysis (Sections 10.6, 10.7).
-
Again, these are all well-known SE techniques.
-
Here are three important amendments to book's coverage:
-
Storyboards can come first, i.e., before scenarios.
-
Scenarios have both pictures and prose, not just prose alone.
-
Prototyping can commence without formal modeling, e.g., without UML
use cases.
-
Introduction to design, prototyping, and construction. (Chapter
11).
-
Again, this is very familiar territory in SE (EE, XE,
for X = aero, civil, mechanical, etc.).
-
The book's notion of conceptual design is pretty fluffy.
-
It presents some useful discussion of storyboarding and prototyping; the
current class readings provide additional detail.
-
However Chapter 11 essentially punts on concrete design and construction, i.e.,
it leaves the subjects to other discipline-specific books and readings.
-
Prototyping and construction (Section 11.2).
-
What is a prototype? (Section 11.2.1)
-
A reduced-functionality version of a product.
-
Allows user to interact with it.
-
Why Prototype? (Section 11.2.2)
-
Helps all stakeholders understand the product.
-
Helps achieve "full user engagement" during product design.
-
Low-fidelity prototyping (Section 11.2.3).
-
Doesn't look much like finished product.
-
Simple, cheap, and quick to produce.
-
Storyboards are considered by some to be a form of low-fidelity prototype.
-
However, storyboards do not typically afford the opportunity for significant
end user interaction.
-
Such interaction is considered by many to be a fundamental property of a
prototype.
-
Storyboarding activities include
-
Sketching -- embrace the wonders of clip art.
-
Index cards -- not my style, but use it if it works for your team.
-
Wizards of Oz -- humans sitting behind the scenes to simulate
prototypical behavior.
-
High-fidelity prototyping (Section 11.2.4).
-
Looks much like the finished product.
-
Recall the balancing act described in last week's notes --
-
Build a prototype as rapidly as possible.
-
Include as much of what the user cares about as possible
-
Leave out as much of the time-consuming implementation details as possible.
-
Compromises in prototyping (Section 11.2.5).
-
Horizontal prototyping -- wide range of functions with little detail.
-
Vertical prototyping -- much detail for only a few functions.
-
Construction: from design to implementation (Section 11.2.6).
-
The authors squeeze into one half page the subject of several courses in
Computer Science and Software Engineering, not to mention enumerable courses in
other areas of science and engineering.
-
Construction is clearly not the focus of this text.
-
Also, I believe the discussion in the "Dilemma" box on page 539 is off the
mark.
-
The distinction between throw-away and evolutionary prototypes is important.
-
However, the book fails to mention that truly evolutionary prototypes make
sense for very few types of artifact other than software.
-
Conceptual design (Section 11.3).
-
By the book's admission, there is no definitive characterization of a
conceptual model.
-
Neither is there a single specific artifact for the conceptual model.
-
Rather, elements of conceptual modeling are embodied in other concrete
artifacts of the process, including:
-
The general user requirements, where stakeholders wants and needs are
described
-
Non-functional requirements, which are formulated by understanding and
empathising with stakeholders
-
Scenarios, story boards, and prototypes, where operational concepts
are embodied
-
Concrete design and implementation, where concepts are concretely
realized
-
In my opinion, much of the book's discussion about conceptual design and
metaphor can be summed up in the following simple observations:
-
Present ideas in ways that are understandable to the users.
-
Explore alternative forms of interaction, suitable for users' tasks.
-
Other chapters in the book present specific guidelines to help achieve these
ends, in particular chapters 3 and 6; we will cover these chapters in coming
weeks.
-
Concrete design (Section 11.4).
-
As with construction, the book punts on concrete design.
-
It notes that earlier chapters provide some specific guidance for the design
process, in the areas of interface types and human cognitive factors.
-
Otherwise, the book defers to others to provide specific theories and
techniques in the many disciplines involved in the design of interactive
products.
-
Scenarios in design (Section 11.5).
-
These are well-established ideas in software engineering.
-
To reiterate a point made earlier in these notes, scenarios should most
definitely include both pictures and prose.
-
Prototypes in design
-
Again, these are well-established ideas in SE.
-
Generating storyboards from scenarios (Section
11.6.1).
-
In my experience, it's mostly the other way around.
-
But do whatever works for your team.
-
Generating card-based prototypes (Section 11.6.2).
-
I my view, these are utterly anachronistic.
-
But again, do what works for your project team.
-
Prototyping physical design (Section 11.6.3).
-
This is what software engineers do all the time, particularly the agile ones.
-
I.e., they evolve the rough ideas into more concrete ideas.
-
E.g., evolve UI sketches, into UI screens, into working UI prototypes.
-
Tool support (Section 11.7).
-
There are plenty of code-level tools out there, in commercial and open-source
IDEs.
-
There are also some more purely prototyping tools, such as Flash.
-
DENIM, and more recent research tools like it, have some interesting ideas.
-
However at present, there is still no practically usable tool that has well
integrated functionality for storyboarding, prototyping, design, and
implementation.
index
|
lectures
|
assignments
|
projects
|
handouts
|
solutions
|
examples
|
documentation
|
bin
|
grades
Footnotes:
1 Effective
synonyms for "establish" in this context include: "gather",
"capture",
"elicit", "acquire", "identify", and "analyze". For choosing which
of
these terms to use, euphoneousness is really as good a criterion as any,
given that subtle distinctions in word connotation are not all that
enlightening (e.g., Section 10.2.4).