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! www.st.cs.uni- saarland.de/edu/ se/2012/ Sign up!
Select Projects Thursday, 18:00 – Monday, 12:00 Inception Software Communication Planning Increment The Software Life Cycle Elaboration Production Software Engineering Deployment Modelling Andreas Zeller • Saarland University Construction Transition Construction Denver A Software Crisis International Airport (DIA) Construction started in 1989 • 53 sq miles • Planned: 1.7 bio USD costs, opening 1993
Code and Fix (1950–) Build first version Modify until client is satisfied Operate Retirement Code and Fix: Issues • No process steps – no specs, docs, tests… • No separation of concerns – no teamwork • No way to deal with complexity Code and Fix
Waterfall Model (1968) Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Communication Communication project initiation requirements gathering Waterfall Model (1968) Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback
Planning Planning estimating scheduling tracking Waterfall Model (1968) Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Waterfall Model (1968) Modeling analysis design
Waterfall Model (1968) Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Waterfall Model Construction code test Waterfall Model (1968) Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback
Deployment Deployment delivery support feedback Waterfall Model (1968) Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Waterfall Model (1968) Communication project initiation • Real projects rarely follow a sequential flow requirements gathering Planning • Hard to state all requirements explicitly estimating scheduling tracking • No maintenance or evolution involved Modeling analysis • Customer must have patience design Construction • Any blunder can be disastrous code test Deployment delivery support feedback
This and other laws Boehm’s first law are found in Endres/Rombach: Handbook of Software and Errors are most frequent during requirements and design activities Systems and are the more expensive Engineering. the later they are removed. Evidence: Several studies before 1974 Problem Cost Relative cost of problem per phase 30.0 22.5 15.0 7.5 0 Coding Unit test Component test System test Field Incremental Model Features Increment #3 Communication project initiation requirements gathering Planning estimating scheduling Increment #2 tracking Modeling analysis design Construction Communication code project initiation test requirements gathering Deployment Planning delivery estimating Increment #1 support scheduling feedback tracking Modeling analysis Communication design Construction project initiation requirements gathering code Planning test Deployment estimating scheduling delivery tracking support Modeling feedback analysis design Construction code test Deployment delivery support Time feedback
Incremental Model • Each linear sequence produces a particular “increment” to the software • First increment typically core product; more features added by later increments • Allows flexible allocation of resources Prototyping Communication Quick Plan Deployment and Quick Design Feedback Prototype Construction Prototypes Top Layer (GUI) Bottom Layer
Horizontal Prototype Top Layer (GUI) Bottom Layer Prototypes Top Layer (GUI) Bottom Layer Vertical Prototype Top Layer (GUI) Bottom Layer
Prototypes • A horizontal prototype tests a particular layer (typically the GUI) of the system • A vertical prototype tests a particular functionality across all layers • Resist pressure to turn a prototype into a final result! Spiral Model (1988) Planning Modeling Communication Construction Deployment + Feedback Test Spiral Model • System is developed in series of evolutionary releases • Milestones for each iteration of the spiral • Process does not end with delivery • Reflects iterative nature of development
Unified Process (1999) Inception Software Communication Planning Increment Elaboration Production Deployment Modelling Construction Transition Construction Inception Inception Inception Software Communication Communication Planning Planning Increment Elaboration • Encompasses communication with user + Production planning Deployment Modelling • Results in a set of use cases • Architecture is just a tentative outline Construction Transition Construction Elaboration Inception Software Communication Planning Planning Increment • Refines and expands Elaboration Elaboration preliminary use cases Production • Provides architecture Deployment Modelling Modelling and initial design model Construction Transition Construction
Construction Inception • Builds (or acquires) Software Communication Planning software components Increment according to architecture Elaboration Production • Completes design model • Includes implementation, Deployment Modelling Modelling unit tests, acceptance tests Construction Construction Transition Construction Construction Transition Inception • Software given to end users for beta testing Software Communication Planning • Feedback reports defects and changes Increment • Support information written Elaboration Production Deployment Deployment Modelling Construction Construction Transition Transition Construction Production Inception • Software is deployed Software Software Communication Planning Increment Increment • Problems are monitored Elaboration Production Production Deployment Deployment Modelling Construction Transition Construction
Re-Iteration Inception Software Communication Communication Planning Increment • Feedback results in new Elaboration Production iteration for next release Deployment Deployment Modelling Construction Transition Construction Unified Process Inception Software Communication Planning Increment Elaboration Production Deployment Modelling Construction Transition Construction Unified Process Inception Software • Draws on best features of conventional Communication Planning Increment process models • Emphasizes software architecture and Elaboration Production design Deployment Modelling • Integrates with UML modeling techniques (more on this later) Construction Transition Construction
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 Manifesto for Agile Software Development (2001) • Individuals and activities over processes and tools. • Working software over comprehensive documentation. • Customer collaboration over contract negotiation. • Responding to change over following a plan..
What is Agile Development? • Fast development? Hacking? Prototyping? Uncontrolled fun? Programmer heaven? • Agility = ability to react to changing situations quickly, appropriately, and effectively. • notice changes early • initiate action promptly • create a feasible and effective alternative plan quickly • reorient work and resources quickly and effectively Agile? Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Incremental Model Features Increment #3 Communication project initiation requirements gathering Planning estimating scheduling Increment #2 tracking Modeling analysis design Construction Communication code project initiation test requirements gathering Deployment Planning delivery estimating Increment #1 support scheduling feedback tracking Modeling analysis Communication design Construction project initiation requirements gathering code Planning test Deployment estimating scheduling delivery tracking support Modeling feedback analysis design Construction code test Deployment delivery support Time feedback
Recommend
More recommend