UML & Prototyping

advertisement
UML & Prototyping
What is a prototype?
A prototype is a small-scale model. It can be (among
other things):
• a series of screen sketches
• a storyboard, i.e. a cartoon-like series of
scenes
• a Powerpoint slide show
• a video simulating the use of a system
• a lump of wood (e.g. PalmPilot)
• a cardboard mock-up
• a piece of software with limited functionality
Why prototype?
Facilitates evaluation and feedback
• Stakeholders can see, hold, interact with a
prototype more easily than with a document
• Team members can communicate more
effectively
• You can test out ideas for yourself
• Encourages reflection
• Prototypes answer questions, and support
designers in choosing between alternatives
What to prototype?
• Work flow, task design
• Screen layouts and information
display
• Difficult, controversial, critical areas
Prototypes Vs. Design
Compromises in prototyping
• All prototypes involve compromises
• For software-based prototyping maybe there is a
slow response? Low-fidelity icons? limited
functionality?
• Two common types of compromise
• ‘horizontal’: provide a wide range of
functions, but with little detail
• ‘vertical’: provide a lot of detail for only a
few functions
Low-fidelity Prototyping
• Uses a medium which is unlike the final
medium, e.g. paper, cardboard
• Intentionally rough and unfinished
• Is quick, cheap and easily changed (?)
• Encourages “high-level” criticism;
problems with conceptual models and
fundamental usability/functionality
issues
Low-fidelity prototype
High-fidelity prototyping
• Prototype looks and behaves like (subset of) the
final system
• Commonly used tools: Macromedia Director,
Visual Basic, and Smalltalk.
• Users may think they have a full system
(problem!)
• Get at details of design (layout, icons, colors etc)
Low Fidelity to High Fidelity
Prototype and Evaluation
Early design
Rough out on paper
Low-fidelity (paper-based)
Cognitive walkthrough
Formative evaluation
Action analysis
Medium-fidelity
Heuristic evaluation
Functional prototype
High-fidelity (computer-based)
Empirical studies
Late design
What is UML?
• UML is a collection of OO design and
specification techniques with a standardized
notation
• Modeling is key, modeling helps structure and
analyze requirements
– Functional model
• Models system functionality (example: use case diagrams)
– Object Model
• Models structure of system (example: class diagrams)
– Dynamic Model
• Models internal behavior/interaction of system components
(example: Sequence diagrams, state machine diagrams)
The purpose of UML diagrams
• Models, and diagrams aimed at helping us think
through problems, and document design decisions
• UML offers a standardized set of diagrams, and a
standardized set of notations, making communication
more efficient
• UML has a set of tools associated with it which help you:
–
–
–
–
Diagram (Visio, Dia)
Model transformation (ATL)
Code generation (BOUML, Codegen)
Reverse engineering (AgileJ, CodeLogic, Describe)
UML Diagrams
In UML 2 there are 13 types of diagrams:
• Structure diagrams
–
–
–
–
–
–
•
Class diagram
Component diagram
Composite structure diagram
Deployment diagram
Object diagram
Package diagram
Behavior diagrams
– Activity diagram
– State machine diagram
– Use case diagram
•
Interaction diagrams
–
–
–
–
Communication diagram
Interaction overview diagram
Sequence diagram
UML timing diagram
http://www.agilemodeling.com/essays/umlDiagrams.htm
Use Case Diagrams
Used to organize use-cases
• Use cases. A use case describes
a sequence of actions that
provide something of measurable
value to an actor and is drawn as
a horizontal ellipse.
• Actors. An actor is a person,
organization, or external system
that plays a role in one or more
interactions with your system.
Actors are drawn as stick figures.
• Associations. Associations
between actors and use cases
are indicated in use case
diagrams by solid lines. An
association exists whenever an
actor is involved with an
interaction described by a use
case.
www.agilemodeling.com
Storyboards
•Often used with scenarios, bringing more detail,
and a chance to role play
•It is a series of sketches showing how a user
might progress through a task using the device
Activity diagram
Flow charts
modeling logic
of a single use
case
www.agilemodeling.com
Class diagrams
• A true classic – models domain & design
• Shows classes, their relations,
operations, and dependencies
www.agilemodeling.com
Sequence diagrams
• Aimed at modeling logic, or flow in your
system; who interacts with what, and when
• Different levels
– Actors
– Components
– Objects
• Time ↓
• Actors →
www.agilemodeling.com
State Machine diagrams
• Models possible states of objects as well
as the flow/interaction of the system
Download