Transcript Document

Methods for OO
Development
USDP and DSDM
Outline
Characteristics of OO development
USDP
UML and DSDM
2
Focus of OO Analysis & Design
Break system down
– Classes & Objects
– Communication
Class Models
– Structure & Behaviour
Use Case driven
– User’s perspective
3
OO: Technical Advantage
Components
– A coherent process, using
– Widely accepted concepts and terminology
Benefits
– Improved software quality
– Traceability
Beware exaggerated claims…
4
OO: Iterative & Incremental
Elaboration
– Analysis, Design & Implementation
A Process of Change
– Successive Iterations
– Incremental releases
Development by Elaboration
– Semantically rich - UML
5
Activity 1: Why use OO?
What are the main reasons for the shift
from the structured to object-oriented
development approach?
6
OO: Project Management
Development by Elaboration
– No clear boundaries
– Documentation evolves continuously
Object solutions
– More complex
Managing the process
– USDP to the rescue
7
Outline
Characteristics of OO development
USDP
– Unified Software Development Process
UML and DSDM
8
USDP to the rescue…
USDP – a generic process
– Tailored to produce specific methods
– E.g. RUP – IBM Rational Unified Process
The USDP is:
– Use Case Driven
– Architecture Centric
– Iterative and Incremental
– Component-Based (a later lecture!)
What does this all mean?
9
Use-Case Driven
In USDP the basic element is a single
interaction between user and system
Use cases are the start of modelling
Unit from which later models are derived
Each use case is a thread that links
requirements to implementation
Has practical significance for users
Constant reminder to systems developers
that only users’ requirements really matter
10
Architecture-Centric
In USDP, software architecture is a theme
from the earliest stages of a project
Reflected most obviously in:
– Stereotyping of boundary, control and entity
classes
– Use of packages to organize both models and
development activity
– Development of ‘architectural’ models – the
outlines of each USDP model – as a basis for
development.
11
Iterative & Incremental Delivery
Macro Process
Micro Process or mini-project
Iteration 1
Iteration n
12
Iterative Development
The USDP lifecycle is cyclic:
– Analyse a bit
– Design that bit
– Code the design
– Test the code
– Refine the analysis and repeat
13
Activity 2:
How does this help?
“plan a little, design a little, and code a
little”
– What are the benefits of this approach?
– What does it allow managers to do?
– How does this approach help in the
management of risk?
– What about implementation?
14
Phases
Workflows group Inception
activitiesIterations
logically
Workflows
1
2
Elaboration
3
4
In an iteration,
Construction Transition
you walk through
all workflows
5
6
7
8
Requirements
Analysis
Design
Implementation
Test
15
Models and Workflows
This
of
Eachshows
major dependencies
workflow
the
use case
model.
describes
how
to create and
maintain a particular model
Requirements
Workflow
Use-Case
Model
specified by
Analysis
Workflow
Design
Workflow
Analysis
Model
realized by distributed by
Design Deployment
Model
Model
implemented by
Implementation
Workflow
verified by
Implementation
Model
Test Workflow
Test
Model
Jacobson et al. (1999)
16
Risk Management
Identification of the risks
Iterative/Incremental Development
The prototype or pilot project
Early testing and deployment as opposed
to late testing in traditional methods
17
USDP Phases
Inception Phase
Elaboration Phase
Construction Phase
Transition Phase
18
Phases
Inception
Elaboration
Construction Transition
Iterations
Workflows
1
2
3
4
5
6
7
8
Requirements
Analysis
Design
Implementation
Test
19
Phases
Inception
Elaboration
Construction Transition
Iterations
Workflows
1
2
3
4
5
6
7
8
Requirements
Analysis
Design
Implementation
Test
20
Phases
Inception
Elaboration
Construction Transition
Iterations
Workflows
1
2
3
4
5
6
7
8
Requirements
Analysis
Design
Implementation
Test
21
Phases
Inception
Elaboration
Construction Transition
Iterations
Workflows
1
2
3
4
5
6
7
8
Requirements
Analysis
Design
Implementation
Test
22
RUP Approach – Best-Known USDP Variant
Process Workflows
Phases
Inception Elaboration
Construction
Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Project Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter. Iter.
#n+1 #n+2
Iter.
#m
Iter.
#m+1
Iterations
23
Activity 3
Inception
1
2
Elaboration
3
4
Construction Transition
5
6
7
8
Requirements
Analysis
Design
Implementation
Test
24
Activity 3:
A Typical Development?
What is the state of the project?
Are there any possible problem areas?
How they might have come about?
What actions you would take to better
manage this project?
25
Outline
Characteristics of OO development
– Focus
– Advantages
– Management problems
USDP
– Iterative approach
– Workflows
– Phases
UML and DSDM
26
Linking DSDM to other methods
Why look at DSDM in isolation ?
Why not take the “best” bits of DSDM and
combine with other methods ?
– We’ve already seen how it combines with XP
Why not use the robustness of more
formal methods to strengthen DSDM ?
Why should organisation be constrained
by one method ?
27
UML Products at Each DSDM Stage
Feasibility
Business Study
Agree Schedule
Create
Functional
Prototype
Functional
Model
Iteration
Implement
Identify
Functional
Prototype
Review
Business
Implementation
Train
Users
User Approval &
User Guidelines
Review Prototype
Identify
Design Prototype
Agree
Schedule
Design
& Build
Iteration
Review
Design
Prototype
Create
Design Prototype
28
Feasibility Stage
•
Output

Initial, High level Use Case Diagrams

Feasibility


What Is A Use Case?

Actors (user roles)
Use Case names; no description
Activity Diagrams
Classes
A business process
Series of transactions between user (Actor) and system
Where Do Use Cases Come From?
BPM
Facilitated Workshops
Who Produces the model?
Users
Business Analysts
Specialist Modellers
29
Business Study Stage
Feasibility

Output

Use Case Descriptions
Sequence/Collaboration Diagrams For Each Use
Case


Business Study


Business Static Structure Diagram



Who?




Users
Business Analysts
Specialist Modellers
Ignore Interface; find Business Objects
More Use Cases; Primary/Secondary
Initial
Inheritance/Aggregation/Composition/Association
MoSCoW list of Use Cases for increments (PRL)
Initial Package/Component/Deployment Diagrams for
System Architecture Definition
How?

Facilitated Workshops
30
Functional Model Iteration
Agree Plan
Create
Functional
Prototype
Functional Identify
Functional
Model
Iteration Prototype
Review Prototype
Output
More detail on:
– Selected Use Case Sequence/Collaboration Diagrams
Business Exceptions/Alternate Courses
– Class Diagram for Classes used by selected Use
Cases
•
•
Operations from Sequence/Collaboration Diagrams
Attributes from required domain data
Initial Statechart Diagrams for “dynamic” objects

Who?





Users
Prototypers
Business Analysts
Specialist Modellers
How?
 Facilitated Workshops
 Regular (daily) team
reviews
– Business rules for objects which must behave
differently to messages at different times during the
process
31
Design and Build Iteration
Identify
Design Prototype
Design
& Build
Iteration
Agree
Plan
Output
Review
Design
Prototype
Create
Design Prototype

Who?







– Reusable classes/components added to model
Previous projects/iterations
– Language specifics added to all diagrams
– Application Control objects added to
Sequence/Collaboration Diagrams
– Architecture Diagrams
•
Package, Component, Implementation
Users
Prototypers
Application Designers
Language specialists
Architecture Designers
Specialist Modellers
How?
 Facilitated Workshops
 Regular (daily) team
reviews
32
Activity 4
What do USDP and DSDM have in
common?
33
An Excellent Reference
Jacobson, I., Booch, G. & and Rumbaugh, J.
(1999), The Unified Software
Development Process, Addison-Wesley.
ISBN – 0-201-57169-2
The authority on USDP.
34
Suggested Reading
Bennett, McRobb & Farmer (2005), Object-Oriented
Systems Analysis and Design using UML, McGrawHill, ch.21.
DSDM Consortium (2003), “DSDM and UML”, version
2, DSDM Consortium.
Best Practices for Software Development Teams,
Rational Unified Process, A Rational Software
Corporation White Paper http://www128.ibm.com/developerworks/rational/library/253.html
35
SOLUTIONS
36
Why use OO?
Advances in hardware and software
– which have enabled the widespread application of
object solutions
– GUIs demand event-driven programming which is
best served by object technology
– Popularity of OO languages, e.g. Java
Essential for large systems that are difficult to
maintain and even more difficult to re-engineer
into modern solutions.
– Object Wrapping
Desire for reuse and a component-based
approach
37
How does this help?
Mini-Projects
– Promotes early risk mitigation
Plan, design & code a little
– Encourages participation
– Allowing for correction sooner
– Allows software to evolve
– Exposes problems earlier
Management of Risk
38
What do USDP and DSDM have in
common?
Iterative
Incremental
Prototyping
Can use UML
Testing throughout the lifecycle
Controlling risk
Definition of roles
– Though USDP doesn’t have user roles
39