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).