47
Software Development Lifecycle Models Fall 2010

Lecture 22 Software Lifecycle Models

Embed Size (px)

Citation preview

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 1/47

Software Development Lifecycle

Models

Fall 2010

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 2/47

Question:� We know that we have to do some things in order 

to get a software product completed:

 ± gather requirements

 ± Design

 ± Implement

 ± Test

 ± «

� How do you order these activities so that you are

most productive?

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 3/47

One view

� Requirements Elicitation

� Requirements analysis

� Requirements specification

� Prototyping

� Architectural design

� Detailed design

� Implementation

� Unit testing� Integration testing

� System testing

� Delivery

� Maintenance

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 4/47

What is a lifecycle model?

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 5/47

Some Models� Code and fix

� Waterfall

� Prototyping� RAD

� Incremental/evolutionary

� Reusable components

� Automated synthesis� Spiral

� XP

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 6/47

0. Code and Fix (aka ³cowboy´)� Repeat

 ± write code

 ± fix it

� Until code is good enough or resources

exhausted

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 7/47

1. Waterfall (traditional)� First systematic approach, best studied.

 ± Winston Royce

� Some aerospace and government agenciesmandate some form of this model.

� Must be adapted to a particular situation or 

organization.

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 8/47

Waterfall

� Requirements Elicitation

� Requirements analysis

� Requirements specification

� Prototyping

� Architectural design

� Detailed design

� Implementation

� Unit testing� Integration testing

� System testing

� Delivery

� Maintenance

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 9/47

Waterfall Phases

Feasibility

Specify

Requirements

Design

Implement

Test

Deliver 

Maintain

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 10/47

Maintain (evolution?)Corrective: (fix bugs)

12% = ³emergency fixes´

9% = routine debuggingAdaptive: (secondary changes)17% = change data formats6% = hardware changes

Perfective (improve)5% = improvements in documentation4% = improvements in efficiency42% = change user requirements

Preventive (form of Perfective)

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 11/47

2. Rapid Prototypes� Gomaa and Scott (early 80s)

� Prototypes are throwaway.

 ± Build prototype,

 ± User feedback drives correction of 

requirements

 ± Toss the prototype

 ± Build system in traditional way

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 12/47

3. RAD

� Rapid application development:

 ± short development cycle based on components and

4GLs.

� Used for  ± Modeling: business, data, and process

 ± Application generation

 ± Testing/installation

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 13/47

3. RAD

� Difficult to scale to large projects.

� Works best when system can be modularized and

is well understood (eg business apps)

� Does not work well when technical risks are high,system cannot be modularized, or interfaces to

other systems are an issue.

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 14/47

4. Incremental/Evolutionary

� Recognized as desirable by government� Incremental:

 ± design is totally laid out first

 ± Functionality is provided in stages

� Evolutionary: prototype evolves into final version� Goal: get feedback earlier in process

repeat

give user something

evaluate/measure

adjust design and objectives

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 15/47

Iteration No.

Incremental Development

 Analyzerequirements

Test whole

 Implement 

 Design

Test units

 Integrate

1 2 3 867 868

Update SRS3

Update SDD2

Update source code

Update Test documentation

Update SPMP1

1 Software Project Mangement Plan (chapter 2);  2 Software Design Document (chapter 5); 3 Software Requirements Specification (chapter 3); 

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 16/47

5. Reusable software:� build it from parts,

� this is the goal of the Ada project.

� need to have parts, specs for parts, and tools

for accessing them.

� there are several methods of automating the

look u p of parts

� specify as pre and post conditions

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 17/47

6. Automated Synthesis

� Transformations: KIDS, SPECWARE,HATS

� Start with a formal specification

(mathematical) ± successively refine this (formally) until code

 ± may entail theorem proving

 ± may entail computer assisted software

engineering environment

� Pre and post conditions

� First order specifications, etc

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 18/47

6. Automated Synthesis

� Programmer can no longer fix the code

directly.

� Code is not result of coding, but of 

transforming.

 ± Change the specs and the code changes.

� Also correct by constr uction, proofs as

 programs

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 19/47

7. Spiral

� Barry Boehm (see  I  EEE Computer , vol 21, no5, may 1988, pp61-72.)

� meta-model

� 4 stages in each cycle

 ± identify objectives and alternatives

 ± evaluate alternatives, identify risk, deal withrisks

 ± develop, verify, prototype, use any model 

 ± evaluate and plan next cycle

� starts with hypothesis that something can beimproved

� ends with product

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 20/47

Spiral Model1. O bjective setting: for 

each phase--identify

constraints, risk,

management plan

2. Risk Assessment and

reduction

3. Develop and Validate

4. Planning: review project

and decide whether to

continue f urther in loop.

Rapid prototype

SpecificationPlanningDesignImplementationIntegration

VerifyTest

RiskAnalysis

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 21/47

Spiral Model� Focus on eliminating errors early

� Look at level of effort

� Accommodates growth and change(evolution)

� Restrictions

 ± In-house development (not contracted) ± Good for large-scale systems

 ± Requires training in risk analysis and resolution

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 22/47

Driving Forces� waterfall: documentation driven

� evolutionary: increment driven

� transformational: specification driven

� spiral: risk driven

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 23/47

ElaborationInception Construction Transition

Requirements

Analysis

Iter.

#1

Iter.

#n

Iter.

#n+1

Iter.

#m

Iter.

#m+1

Iter.

#k «.. «..Prelim.

iterations

USDP vs. Standard Terminology (Booch, Jacobson &

R umbaugh)

Design

Implementation

Test

US  DP calls these³core workflows´ 

(Classically called ³phases´)

Classification of iterations

 Individual iteration

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 24/47

Requirements

Analysis

USDP vs. Standard Terminology 2 of 2

Design

Implementation

Test

Requirements analysis

Implementation

USDP

Terminology

Classical

Terminology

Integration

Design

Test

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 25/47

Elaboration

Unified Process Matrix

Inception Construction Transition

Requirements

Analysis

Jacobson et al : USDP

Prelim.

iterations

Iter.

#1

Iter.

#n

Iter.

#n+1

Iter.

#m

Iter.

#m+1

Iter.

#k «.. «..

Design

Implementation

Test

..

 Amount of effort expended

on the requirements phaseduring the first Construction

iteration

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 26/47

Agile(1) moving quickly and lightly;

(2) mentally quick; "an agile mind";

(3) Refers to the speed of operations within an

organization and speed in responding to

customers (reduced cycle times).

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 27/47

Agile MethodsAgile is an iterative and incremental

(evolutionary) approach to software

development which [sic] is performed in ahighly collaborative manner with "justenough" ceremony that produces highquality software which meets the

changing needs of its stakeholders.» http://www.agilemodeling.com/essays/agileSoftwar

eDevelopment.htm

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 28/47

Values of Agile� Individuals and interactions over processes and

tools

� Working software over comprehensive

documentation

� Customer collaboration over contract negotiation

� Responding to change over following a plan

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 29/47

Outline of Agile Methods

� Minimize risk by developing software in shortcycles ± Iterations

 ± typically last one to four weeks

� An iteration ± like a miniature software project

 ± includes planning, requirements analysis, design,

coding, testing, and documentation.� At the end of each iteration, the team re-evaluates

 project priorities

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 30/47

Communications� Emphasize real time communication

 ± face-to-face rather than written documents

� All team members are co-located

 ± Programmers, testers, techwriters

 ± managers

 ± "customers" who define the product

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 31/47

Software� Working software is the primary measure of 

 progress

� Very little written documentation relative to

other methods

� Criticism of agile methods: undisciplined

 ± May or may not be tr ue

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 32/47

History� Evolved in the mid 1990s

� Reaction against "heavyweight" methods such as waterfall

 ± Waterfall

� regimented and micromanaged� Bureaucratic, slow

� Contradicts way SEs actually perform effectivework 

 ± Agile is a return to practices seen early in software

development� Is this good? Bad?

� 2001 meeting at Snowbird adopted name ³agile´ over ³lightweight´

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 33/47

History� Extreme Programming (XP)

 ± Not first, but most popular 

 ± Established in 1966 by Kent Beck 

 ± Tried to save the Chrysler C3 project (butdidn¶t)

 ± 1999 Elements of Extreme Programming 

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 34/47

Different Agile Methods� Created prior to 2000

 ± Scr um

 ± Crystal Clear (1986)

 ± XP (1996)

 ± Adaptive Software Development

 ± Feature Driven Development

 ± DSDM (1885)

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 35/47

Some of the principles behind the

Agile Manifesto� Customer satisfaction by rapid (two weeks?), continuous

delivery of usef ul software

� Working software is the principal measure of progress.

� Late changes in requirements are welcomed.� Daily, face-to-face conversation is the best form of 

communication.

� Projects are built around motivated individuals, who should be tr usted

� Continuous attention to technical excellence and good design.� Simplicity

� Self-organizing teams

� Regular adaptation to changing circumstances

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 36/47

Adaptive vs Predictive Methods� Adaptive methods

 ± focus on adapting quickly to changing realities

 ± difficulty describing exactly what will happen in the f uture

 ± The f  urther away a date is, the more vague an adaptive method will be.

� Team can report what tasks will be complete next week 

� Team can report what features will be worked on next month

� Team cannot predict what features will be in the release 6 months out

� Predictive methods ± focus on planning the f uture in detail

 ± difficulty changing direction

 ± A predictive team can report exactly what features and tasks are

 planned for the entire length of the development process. ± The plan is typically optimized for the original destination and

changing direction can cause completed work to be thrown away anddone over differently.

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 37/47

Agile Contrasted with Iterative

� Iterative ± Build releasable software in short time periods

 ± Iterative time frames measured in months

� Agile

 ± Build releasable software in short time periods ± Time frame in weeks

 ± Time frame is strict

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 38/47

Agile Contrasted with Waterfall� Waterfall

 ± Most predictive of methods: sequence of steps is highly planned ± Document driven: progress is based on delivery of documents

after each stage

 ± Lengthy testing and integration phase at end of project

 ± Delivers f ully implemented software at the end of the project

 ± Some agile teams use the waterfall model on a small scale,repeating the entire waterfall cycle in every iteration

� Agile ± Least predictive methods

 ± Feature driven: progress based on delivery of features ± Testing is part of feature development: no significantintegration problems

 ± Delivers f ully developed features (but small su bset of them)each development cycle

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 39/47

Agile Contrasted with Cowboy

� "cowboy coding³ ± Cowboy coding is the absence of a defined method:

team members do whatever they feel is right

 ± Success depends on heroics

� Agile ± Agile may be conf used with cowboy

 ± Agile teams follow defined (and often verydisciplined and rigorous) processes

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 40/47

Suitability of Agile Methods� Organization must su pport negotiation

� People must be tr usted

� Requires higher competence

� Organizations must live with the decisions

developers make

� Organizations must su pport rapid communication

� Suitable for projects with small teams, with fewer than 20 to 40 people.

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 41/47

Agile vs Plan-drivenAgile

� Low criticality

� Senior developers

� Requirements change veryoften

� Small number of developers

� Culture that thrives on chaos

Plan-driven

� High criticality

� Junior developers

� Low requirements change� Large number of developers

� Culture that demands order 

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 42/47

Some of the well-known agile

software development methods:� Extreme Programming (XP)

� Scr  um

� Agile Modeling� Adaptive Software Development (ASD)

� Crystal Clear and Other Crystal Methodologies

� Dynamic Systems Development Method (DSDM)

� Feature Driven Development (FDD)� Lean software development

� Agile Unified Process (AUP)

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 43/47

XP� The main aim of XP is to reduce the cost of 

change.

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 44/47

XP�  Extreme Programming Explained describes

Extreme Programming as being:

� An attempt to reconcile humanity and productivity

� A mechanism for social change

� A path to improvement� A style of development

� A software development discipline

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 45/47

Five Valu

es of XP� Communication

� Simplicity

� Feedback 

� Courage

� Respect

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 46/47

Activities� Coding

� Testing

� Listening

� Designing

8/6/2019 Lecture 22 Software Lifecycle Models

http://slidepdf.com/reader/full/lecture-22-software-lifecycle-models 47/47

12 XP Practices

� Fine scale feedback  ± Pair programming

 ± Planning Game

 ± Test drive

development ± Whole team

� Continuous process

 ± Continuous

integration ± Design improvement

 ± Small releases

� Shared understanding ± Coding Standards

 ± Collective codeownership

 ± Simple design ± System metaphor 

� Programmer welfare

 ± Sustainable pace