02 Usdp
02 Usdp
• Use-case driven
The USDP is: • Architecture-centric
• Iterative and incremental
Use-case driven
• Use cases are at the centre of the entire development process
– The requirements capture focuses on use cases
– The analysis process begins to add detail to the use cases
– The design process proposes a solution to satisfy the use
cases and analysis model
– The implementation builds the proposed solution
– The testing process verifies that the implementation satisfies
the use cases
Architecture-centric
A software architecture answers the question, “What form
does the system take?”
Analysis
• Refine and structure requirements
Design
• Derive models of the solution
Implementation
• Write the application software; derived from the design
Testing
• Verify that the implementation meets requirements
Phases &
workflows
Jacobson et al (1999), p.11
Requiremen
ts workflow
Jacobson et al (1999), p.118
Requirements capture…
• …is difficult because:
– Customers don’t always know exactly what they want
– Customers don’t always understand the problem to be solved
– The problem domain is always changing
– Big systems are very complex
– Analysts cannot always be 100% perfectly accurate, precise, consistent
– Each software project is unique (i.e. no exact precedent)
– Customers and developers do not always speak the same technical
language
Other considerations on requirement, capture
This is a natural
Usually, each user
way for the user to
will have multiple
think about system
use cases
requirements
Requirements workflow
01 02 03 04
Find actors Describe use Prototype the Structure the
and use cases cases in detail user interface use case
• Using activity • Sketches, and model
diagrams prototype
software
Analysis workflow
• Jacobson et al (1999),
p.179
Purpose of analysis
• According to Jacobson et al (1999:173, 177-8), two of the
purposes of the analysis workflow are:
Non-functional
requirements Structure and type
Methods are left
become special of attributes are left
until the design
requirements of the until design
class
Analysis classes
• Relationships are shown in the analysis model
– More conceptual than in class diagrams for the design
e.g. navigability is not a worry for analysis, but essential for design
– Entity
– Control
Analysis classes: Boundary
e.g. windows, forms, sensors, etc.
Model interaction between the
No need to be very detailed about
system and its actors structure (i.e. buttons, panels, etc.)
1 2 3
Model information Model individuals, Not just data;
that persists over objects or events in include behaviour
time within the the real world that as well
system are of interest • Remember: behaviour
within the system is represented as
responsibilities
Analysis classes: Control
• Model control within the system
– Coordination of operations
– Sequencing of events
– Control of other objects
– Complex business logic than involves several other
objects
– Delegation of tasks to other objects
Example analysis model
• Jacobson et al (1999),
p.187
Example analysis model
Jacobson et al (1999), p.188
Workflow for each iteration
Analyse a use case Analysis a class
Interaction
diagrams • Sequence diagrams
describe use-
case behaviour
Implement
ation
workflow
Jacobson et al (1999), p.268
Purpose of implementation
• According to Jacobson et al (1999:267) the purposes of the
implementation workflow are:
– Encode the design by increments
– Unit test the implementation to ensure compliance with
use-case requirements
Implementation workflow
Implement a subsystem
• Write code for the classes in the subsystem
• Follow the class design precisely
(or update the design to keep it in step with the code)
• Unit test the classes using black-box tests
Package Use
Diagram Design & Case
Design
Implementation Diagram State
Class Activity Machine
Diagram Diagram Diagram
Component
Diagram
Object Interaction Diagrams
Diagram Deploymen Sequence Communicati
t Diagram Diagram on Diagram