Software Development Cycle Models Life An Effective Software

  • Slides: 20
Download presentation
Software Development -Cycle Models Life

Software Development -Cycle Models Life

An Effective Software Development Process • Is written down • Is followed • Is

An Effective Software Development Process • Is written down • Is followed • Is actively managed – The process is dynamic – Its effectiveness is measured regularly – Measurement results are used to improve the process

The Waterfall Model Requirements Analysis Software Design Coding Testing Maintenance

The Waterfall Model Requirements Analysis Software Design Coding Testing Maintenance

Advantages of the Waterfall Model • Easy to understand • Widely used • Reinforces

Advantages of the Waterfall Model • Easy to understand • Widely used • Reinforces notions of “define before design” and “design before code” • Establishes milestones (when deliverables are produced and when reviews take place)

Disadvantages of the Waterfall Model • Not realistic (doesn’t match real projects) • Does

Disadvantages of the Waterfall Model • Not realistic (doesn’t match real projects) • Does not reflect the iterative nature of software • Complete set requirements seldom known at the beginning of a project • Working software not available until near end of project • Does not incorporate risk assessment

The Concurrent Development Model • Development and QA/Testing are performed concurrently • Similar to

The Concurrent Development Model • Development and QA/Testing are performed concurrently • Similar to the Synchronize and Stabilize model used by Microsoft • Multiple baselines are included as part of the process • SRS evolves over the course of the project • Ends with a formal validation phase with defined criteria for starting and stopping

Advantages of the Concurrent Development Model • It’s flexible – the number incremental releases

Advantages of the Concurrent Development Model • It’s flexible – the number incremental releases can be determined by the project team • Immediate feedback from testing • New features can be added late in the project • No surprises during formal validation because testing has been continuous

Disadvantages of the Concurrent Development Model • The SRS must be continually updated to

Disadvantages of the Concurrent Development Model • The SRS must be continually updated to reflect changes • It requires discipline to avoid adding too many new features too late in the project

The Rapid Prototyping Model • • • Requirements gathering Quick design Prototype building Prototype

The Rapid Prototyping Model • • • Requirements gathering Quick design Prototype building Prototype evaluation by customers Prototype may be refined Prototype thrown away and software developed using formal process

Advantages of the Rapid Prototyping Model • Users/customers own requirements • Instills customer confidence

Advantages of the Rapid Prototyping Model • Users/customers own requirements • Instills customer confidence that the “right” product is being built • Provides a good way to determine requirements when there is uncertainty about what is needed

Disadvantages of the Rapid Prototyping Model • Prototypes are not always thrown away –

Disadvantages of the Rapid Prototyping Model • Prototypes are not always thrown away – they often become the products or fundamental parts of the products • Requires lots of customer involvement which isn’t always possible • Validation may be difficult because the requirements may not be well documented

The Spiral Model • • Planning Risk Analysis Development Evaluation

The Spiral Model • • Planning Risk Analysis Development Evaluation

Advantages of the Spiral Model • Incorporates the iterative nature of software development •

Advantages of the Spiral Model • Incorporates the iterative nature of software development • Incorporates all the advantages of both the waterfall model and prototyping model

Disadvantages of the Spiral Model • Requires expertise in risk analysis • It is

Disadvantages of the Spiral Model • Requires expertise in risk analysis • It is somewhat complicated and not well understood

Hybrid Models • • Combined aspects of two or more models Added flexibility Not

Hybrid Models • • Combined aspects of two or more models Added flexibility Not usually well understood Have all advantages and disadvantages of the models encompassed

Object-Oriented Models • Requirements analysis and design tend to be blurred • Tend to

Object-Oriented Models • Requirements analysis and design tend to be blurred • Tend to be iterative in nature • Usually incorporate risk management • Incorporate requirements management and change control • Emphasize the use of visual models (e. g. UML diagrams)

Models Based on Agile Methods • • ASD – Adaptive Software Development Crystal TDD

Models Based on Agile Methods • • ASD – Adaptive Software Development Crystal TDD –Test-Driven Development DSDM – Dynamic Systems Development Method Lean Software Development Scrum XP – e. Xtreme Programming

Agile Methods Emphasize • Individuals and interactions over processes and tools • Working software

Agile Methods Emphasize • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan

“How to Solve It” In 1945 George Polya wrote a book outlining 4 basic

“How to Solve It” In 1945 George Polya wrote a book outlining 4 basic steps in problem solving: – Understand the problem (requirements analysis) – Devise a plan (software design and project planning) – Carry out the plan (coding) – Look back (testing the solution)

Summary • Choosing the right life-cycle model can be difficult • But it is

Summary • Choosing the right life-cycle model can be difficult • But it is essential to have one • The life-cycle model covers more than just development – it must be appropriate for product support and maintenance