The Software Life Cycle
Software Engineering Andreas Zeller • Saarland University
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
The Software Life Cycle Elaboration Production Software - - PDF document
Inception Software Communication Planning Increment The Software Life Cycle Elaboration Production Software Engineering Deployment Modelling Andreas Zeller Saarland University Construction Transition Construction http:// Sign up!
Software Engineering Andreas Zeller • Saarland University
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Thursday, 18:00 – Monday, 12:00
Software Engineering Andreas Zeller • Saarland University
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
(1950–)
Build first version Modify until client is satisfied Operate Retirement
(1968)
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
Communication
project initiation requirements gathering
(1968)
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
Planning
estimating scheduling tracking
(1968)
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
Modeling
analysis design
(1968)
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
Construction
code test
(1968)
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
Deployment
delivery support feedback
(1968)
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
(1968)
Errors are most frequent during requirements and design activities and are the more expensive the later they are removed.
7.5 15.0 22.5 30.0 Coding Unit test Component test System test Field
Relative cost of problem per phase
Features Time
Communication
project initiation requirements gatheringPlanning
estimating scheduling trackingModeling
analysis designConstruction
code testDeployment
delivery support feedbackIncrement #1
Communication
project initiation requirements gatheringPlanning
estimating scheduling trackingModeling
analysis designConstruction
code testDeployment
delivery support feedbackIncrement #2
Communication
project initiation requirements gatheringPlanning
estimating scheduling trackingModeling
analysis designConstruction
code testDeployment
delivery support feedbackIncrement #3
“increment” to the software
more features added by later increments
Quick Plan Quick Design Prototype Construction Deployment and Feedback Communication
Bottom Layer Top Layer (GUI)
Bottom Layer Top Layer (GUI)
Bottom Layer Top Layer (GUI)
Bottom Layer Top Layer (GUI)
(typically the GUI) of the system
functionality across all layers
final result!
(1988)
Communication Planning Modeling Construction Test Deployment + Feedback
evolutionary releases
(1999)
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Planning Communication Inception
planning
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Planning Modelling Elaboration
preliminary use cases
and initial design model
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Modelling Construction Construction
software components according to architecture
unit tests, acceptance tests
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Construction Deployment Transition
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Deployment Software Increment Production
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Deployment Communication
iteration for next release
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
Planning Modelling Construction Deployment Communication Software Increment Inception Elaboration Construction Transition Production
process models
design
Manifesto for Agile Software Development (2001)
If a traditional process is like a battleship, protected against everything that might happen… an agile process is like a speedboat, being able to change direction very quickly
Uncontrolled fun? Programmer heaven?
quickly, appropriately, and effectively.
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
Features Time
Communication
project initiation requirements gatheringPlanning
estimating scheduling trackingModeling
analysis designConstruction
code testDeployment
delivery support feedbackIncrement #1
Communication
project initiation requirements gatheringPlanning
estimating scheduling trackingModeling
analysis designConstruction
code testDeployment
delivery support feedbackIncrement #2
Communication
project initiation requirements gatheringPlanning
estimating scheduling trackingModeling
analysis designConstruction
code testDeployment
delivery support feedbackIncrement #3
Time Scope
Analyse Design Implement Test Waterfall Iterative Agile Processes
Credits: Prof. Bodik
Agile
Plan-driven
persist or change in the future.
development are interleaved.
are not as predictable.
make the process adaptable...
(1999–)
Design Coding Test Planning Software Increment Design Coding Test Planning Software Increment
Planning
place by means of stories
essential behavior
Design Coding Test Planning Software Increment Design Coding Test Planning Software Increment
Design Design Coding Test Planning Software Increment
(keep it simple) principle
CRC cards (object sketches) and spike solutions (prototypes)
Design Coding Test Planning Software Increment Design Coding Test Planning Software Increment
Coding Design Coding Test Planning Software Increment
unit test that serves as specification
continuously refactored to have the design match the stories
Coding Design Coding Test Planning Software Increment
review, XP mandates pair programming
Design Coding Test Planning Software Increment Design Coding Test Planning Software Increment
Test Design Coding Test Planning Software Increment
Unit tests
functionality
Test Planning Software Increment Design Coding Test Planning Software Increment
prototypes result in new stories
Design Coding Test Planning Software Increment Design Coding Test Planning Software Increment
Communication
project initiation requirements gathering
Planning
estimating scheduling tracking
Modeling
analysis design
Construction
code test
Deployment
delivery support feedback
13 iterations total!