Software Life-Cycle Management
Software Lifce-Cycle Management Models
©
Ing
o
A
rnold
Department Computer Science University of Basel
Agenda
Overview
Waterfall Models
Spiral Models
Iterative Models
Prototyping-based Models
Agile Models
Overview
Software Life-Cycle Management Models
A Software Life-Cycle Management Model describes an
organizational frame a SW-development endeavour
• Phases
• Activities
• Component products, versions
• Criterions for completion of the computer system
• Qualification of team members
• Responsibilities and project roles
Overview
Software Life-Cycle Management Models
Overview
Software Life-Cycle Management Models
LCM-models, utilized:
• Important aspect here is the model/method adoption, that helps to define the parts of the model, which need to be respected throughout a given engagement.
Generic Process Model Specific Process Model
Method Adoption
Overview
Software Life-Cycle Management Models
Overview
Software Life-Cycle Management Models
The simplest software development process
• Write Software
• Find bugs
Repeatability of the process and reduction of the failure
costs require more comprehensive and more complex
Overview
Software Life-Cycle Management Models
The Hacker knows only one activity ..
Overview
Software Life-Cycle Management Models
Overview
Software Life-Cycle Management Models
Let’s look at this equation:
Very roughly we talked about “Process” and “Technology”
so far – however, one of the most determining factor
always is “People” !
People Process Technology Service /
Product
Overview
Software Life-Cycle Management Models
A few selected process models
• Waterfall models. Arrange life-cycle process along a sequence of activities
• Spiral models. Arrange life-cycle process as cyclic, risk-oriented sequence of development steps
• Iterative and incremental models. Arrange life-cycle process along a set of increments (i.e. deliveries)
• Prototyping-based models. Utilized within other models. Main purpose is risk mitigation.
Agenda
Overview
Waterfall Models
Spiral Models
Iterative Models
Prototyping-based Models
Agile Models
Waterfall Models
Overview
Waterfall Models
Overview
Waterfall Models characteristics
• Oldest systematic process model
• Development is understood as sequence of development- and verification-steps
• All major activities constitute a phase (e.g. requirements)
• Phases are left as soon as verified and accepted result is available
Waterfall Models
Overview
Waterfall Models criticism
• Non-local iterations are not model compliant, which makes project management difficult.
Agenda
Overview
Waterfall Models
Spiral Models
Iterative Models
Prototyping-based Models
Agile Models
Spiral Models
Overview
Spiral Models
Overview
Spiral Models
• Evolution of waterfall models
• Designed for complex and risky Computer Systems
• Bi-cyclic waterfall model (develop / verify) is replaced by a four-cyclic model:
- Plan
- Objectives
- Evaluation, risks
Agenda
Overview
Waterfall Models
Spiral Models
Iterative Models
Prototyping-based Models
Agile Models
Iterative Models
Overview
Iterative Models
Overview
Iterative and incremental Models characteristics
• Approach: software-evolution
• Computer System is not (once) developed but instead grows steadily
• Synonyms: versions model, evolutionary model, incremental model
• Fundamental idea: organisation of software life-cycle process along a set of incrementally developed and ready-to-use elements of the final system.
• Overall process can be understood as a sequence of iterations
• Per iteration: a complete sub-set of overall solution is developed
Iterative Models
Overview
Iterative Models
Overview
Iterative and incremental Models advantage / disadvantage
+Model well the inherent “behaviour” of complex Computer Systems +Very well support Project Management
+Iterative progress and incremental builts
-Risk of diverging solution islands
-Risk of undermining natural structures and concepts due to
incremental evolution (e.g. natural structure = “Data Warehouse” cannot developed in one coherent go)
Iterative Models
Overview
Iterative and incremental Models should be used …
• If the Computer System is complex and huge
• If anticipated development effort is huge
• If the full set of functionality is not required immediately (no big bang)
• If the Computer System cannot fully be anticipated in advance
Agenda
Overview
Waterfall Models
Spiral Models
Iterative Models
Prototyping-based Models
Agile Models
Prototyping-based Models
Overview
Protyping-based Models
• More a technique than a model
• Very adequate means for early detection and solution of problems
• Prototyp: excecutable piece of a Computer System which implements critical aspects, sub-sets at an early stage in order to proof a targeted approach
• Synonym: proof of concept (PoC), hot spot
• Different types of prototyping are distinguished:
- Explorative and experimental - Evolutionary
Prototyping-based Models
Overview
Prototyping-based Models
Overview
Protyping-based Models – explorative and experimental
• Explorative and experimental prototyping is used to …
- Identify and detect requirements
- Demonstrate and communicate to stakeholders - Proof a selected concept (feasability)
- Evaluation of alternatives
• Explorative and experimental prototyping …
- May be undocumented
- May be based on ugly solutions from a software-engineering perspective - Requires the prototyp to be decommissioned, once its purpose is fullfilled
Prototyping-based Models
Overview
Protyping-based Models – evolutionary
• Characteristics of an evolutionary prototyping approach:
- Prototype is a pilot-system
- Prototype becomes kernel of to-be-developed Computer System
- Prototype is not thrown away – thus needs to comply with engineering best practices right from the beginning
Agenda
Overview
Waterfall Models
Spiral Models
Iterative Models
Prototyping-based Models
Agile Models
Agile Models
Overview
Agile Models
• Idea: to map the techniques for developing very small Computer Systems onto the development of complex Computer Systems, so that …
• the project is successful
Agile Models
Overview
Agile Models
• Fundamental principles:
• The smaller the sub-systems and the shorter re-cycles the better this is • The customer continuosly shapes the product. The customer is actively
involved in the project
• The more independent the developers can organize their work items, the better this is
• Quality is assured at the origin:
• Pair programming
Agenda
Overview
Waterfall Models
Spiral Models
Iterative Models
Prototyping-based Models
Agile Models
Agile Models
Overview
Agile Models do work well if …
• Stakeholders are available, competent and empowered to draw decisions
• Overall problem can be decomposted into a meaningful sub-set of smaller problems / solutions
• Development-team is small or can be segmented into multiple parallel development-teams
• Software-Architect is competent and experienced (holistic view)
• Continuous integration is possible with minor effort