Professional Documents
Culture Documents
2 AnalysisDesignDevelopment
2 AnalysisDesignDevelopment
Software Crisis
❍ declared in the late 60’s at the NATO Conferences “Software Engineering
Techniques”, Oct. 1968 and Oct. 1969
❍ expressed by delays and failures of major software projects that resulted in
unmaintable software and unpredictable costs
❍ was obviously driven by uncoordinated and unstructured programming
(“hacking”)
❍ lead to a new research and engineering discipline: Software Engineering
Software
SoftwareEngineering
Engineering
vs.
vs.
Methods
Methods
Models
Models
Tools
Toolsand
andconcepts
concepts
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.2
2.1
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
X3 An
AA An
Application
Application
Program
Program System
System
X3 X3
complexity
x9
AA An
An
X3
Program
Program Application
Application
Product
Product Systems
Systems
Product
Product
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.4
2.2
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
A Program
❍ developed by a single programmer
AA ❍ complete in itself
Program
Program
❍ one customer & one user: the author
An Application System
❍ contains many programs for different
tasks
An
An
Application
Application ❍ components coordinated in function
System
System
❍ programs disciplined in format
2.3
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
A Program Product
❍ developed by a developer team
AA
Program
Program ❍ thoroughly tested and well documented
Product
Product
❍ many single customers (= users)
Example: SAP
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.8
2.4
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
❍ For software there are no spare parts as there are for machinery etc.
❍ Software does not wear off and therefore it does not need maintenance in
the common sense.
2.5
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
❍❍Product
Productrelated:
related: ❍❍Analysis
Analysis
•• Usability
Usability ❍❍Design
Design
•• Productivity
Productivity ❍❍Implementation
Implementation
•• Quality
Quality ❍❍Test
Test
❍❍Process
Processrelated:
related: ❍❍Introduction
Introduction
•• Schedules
Schedulesand
andcosts
costs ❍❍Maintenance
Maintenance
Delivering
Deliveringaaproduct
Mission: •• in
intime
time
product
•• that
thatisisuseful
usefuland
andused
used
•• at
at the predictedcosts.
the predicted costs.
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.11
2.6
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
Actors
Customer
Customerand andUsers
Users
••Requirements
Requirements
••Using
Using
••Training
Training
System
Systemengineers
engineers
Communication Software
Softwareengineers
engineers
••Problem
Problemdefinition
definition
capability ••Software
Softwaredesign
design
••Solution
Solutionanalysis
analysis
& ••Coding
Coding
••Process
Processplanning
planning competence ••Unit
Unittesting
testing
••Process
Processcontrol
control ••Subsystem
Subsystemintegration
integration
••Product
Productevaluation
evaluation
Project
Projectmanagers
managers
••Planning
Planning
••Organizing
Organizing
••Staffing
Staffing
••Directing
Directing
••Controlling
Controlling
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.13
Methods
Methods&& Models
Models
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.14
2.7
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
Abstraction Levels
• requirements
Requirements Real-World Model
• domain knowledge
Analysis: System
Why? Model • goals
• abstractions
Design: • models
What? • structures
System Design
• architecture
• algorithms
Implementation: • generic services
How? System Implementation • platform-specific
services
System
Systemand
and
software
softwaredesign
design
Implementation
Implementation
and
andunit
unittesting
testing
Integration
Integrationand
and
system
systemtesting
testing
Operation
Operationand
and
maintenance
maintenance
[Ian Sommerville; Software Engineering, Addison Wesley, 1982]
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.16
2.8
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
System
Systemand
and
software
softwaredesign
design
Implementation
Implementation
and
andunit
unittesting
testing
Integration
Integrationand
and
system
systemtesting
testing
Operation
Operationand
and
maintenance
maintenance
[Ian Sommerville; Software Engineering, Addison Wesley, 1982]
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.17
Initial
Initial
Specification version
version
Outline
Outline Intermediate
Development Intermediate
description
description versions
versions
Validation Final
Final
version
version
2.9
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
2.10
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
Analysis
Analysis
Elaboration
Requirements
Design
Design
binding contracts
Transition Demonstration
Demonstration
Project
Integration
Integration
deliverables
Coding
Coding
Construction
Executable
Debugging
Debugging
modules
Do
Do we
wego
goahead
ahead with
withthe
theproject?
project?
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.22
2.11
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
What
Whatare
arethe
thethings
things that
thatcould
couldderail
derailyou?
you?
❍ The goal of analysis is to develop a model of what the system will do.
❍ The analysis should include information required to understand what is
meaningful from a real world system.
❍ The client of a system should understand the analysis model.
❍ The analysis phase delivers a base from which further details are derived in the
design phase.
❍ Analysis provides the requirements and the real-world environment in which the
software system will exist.
Object-oriented
Object-orientedanalysis
analysisforces
forcesaaseamless
seamlessdevelopment
developmentprocess
processwith
withno
no
discontinuities because of continuos refinement and progressing from
discontinuities because of continuos refinement and progressing from
analysis
analysisthrough
throughdesign
designto
toimplementation.
implementation.
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.24
2.12
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
Generate
Generate
Developers
Developers requests
requests
Managers Problem
Problem
Managers statement
statement
Users
Usersinterviews
interviews UML Diagrams
Use
UseCases
Cases
Build
Build Classes
Domain
Domainknowledge
knowledge Classes
models
models Interactions
Interactions
Packages
Packages
Real-world
Real-worldexperience
experience States
States
Activities
Activities
...
...
2.13
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
Elaboration: Planning
Schedule
Scheduleuse
usecases
casesto
tospecific
specificiterations
iterationsand
anddates
datesof
ofdelivery.
delivery.
❍ The users should indicate the level of priority for each use case.
• “I absolutely must have this function for any real system.”
• “I can live without this function for a short period.”
• “It is an important function, but I can survive without it for a while.”
❍ The developers should consider the architectural risk.
• Do not omit use cases which later cause you to do a lot of rework to
fit them in.
• Concentrate to the use cases which are technologically most challenging.
❍ The developers should be aware of the schedule risks.
• “I’m pretty sure I know how long it will take.”
• “I can estimate the time only to the nearest man-month.”
• “I have no idea.”
OOA&D © J.W. Schmidt, F. Matthes, TU Hamburg-Harburg 2.27
Planning: Estimate
❍ Once the use cases are assigned, the length of each iteration should be
estimated to the nearest person-week.
❍ In performing this estimate assume you need to do
• analyzing
• designing
• coding
• unit testing
• integration
• documentation
The
Theestimates
estimates should
should be
be done
doneby
bythe
the
developers, not by the managers.
developers, not by the managers.
2.14
Object-Oriented Analysis and Design
© J.W. Schmidt, F. Matthes, TU Hamburg-Harburg
Use case 5
Iteration 4
Use case 4 Iteration 3
Use case 3
Iteration 2
Use case 2
Construction: Iterations
❍ Finish the iteration with a demo to the user and perform system tests to confirm
that the use cases have been built correctly.
❍ Iterations within a construction are both, incremental and iterative.
• Iterations are incremental in function. Each iteration builds on the use cases
implemented in the previous iteration
• They are iterative in terms of the code base which will be rewritten
to make it more flexible.
❍ Do not underestimate the testing phase.
• Write test code.
• Separate the test into unit and test code.
• Unit tests should be written by the developers.
• Apply all tests after each iteration.
2.15