CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.

Slides:



Advertisements
Similar presentations
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Advertisements

Software Life-Cycle Models
Software Development Life-Cycle Models
Ch2: Software Life Cycles Housekeeping  Feedback from Wednesday  Structured vs. Object Oriented Paradigm Structured: Data is an argument, functions separate,
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
SW LIFE -CYCLE MODELS.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Processes Modified by Randy K. Smith
Software Life-Cycle Models
1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Alternate Software Development Methodologies
Introduction to Software Engineering Lecture 3 André van der Hoek.
Introduction to Software Engineering Lecture 4 André van der Hoek.
Gu & Maher University of Sydney, October 2004 DECO2005 Monitoring Team Process.
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
Software Engineering 3156 Fall 2001 Section 1 17-Sep-01 Class #3: Life Cycles, XML, and Tools Phil Gross.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Software Engineering.
Object-oriented Analysis and Design
Chapter 2A 1 Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS by Farhad Mavaddat CS430 Notes Modified from the notes of Jerry Breecher of Clark.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Incremental Model Requirements phase Verify Specification phase Verify
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
2. Software Life Cycle Models. Software Engineering Overview Software development in theory Iteration and incrementation Risks and other aspects of iteration.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
CST 316 Process. Junior Project Process Provide necessary points of communication for individual effort. Allow a controllable division of labor. Divide.
1 CMPT 275 Software Engineering Software life cycle.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Software Engineering Management Lecture 1 The Software Process.
CSE 308 Software Engineering Software Engineering Strategies.
Prescriptive Process Models Jon Walker. Prescription? What does prescriptive mean?
1 SWE Introduction to Software Engineering Lecture 4.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Software Engineering process models
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
SOFTWARE LIFE-CYCLE MODELS
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
SOFTWARE LIFE-CYCLE MODELS
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Engineering Zhang Shuang
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Systems Development Life Cycle
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Software Development - Methodologies
Methodologies and Algorithms
Appendix B Agile Methodologies
Chapter 3 Prescriptive Process Models
V-Shaped SDLC Model Lecture-6.
Software development life cycle models
Models of Software Development Life Cycle (SDLC)
Chapter 2 SW Process Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering Lecture 09 & 10.
Software Engineering Lecture 18.
Software life cycle models
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS
Extreme Programming.
Software Engineering Lecture 17.
Presentation transcript:

CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS

Overview Build-and-fix model Waterfall model Rapid prototyping model Incremental model Extreme programming Synchronize-and-stabilize model Spiral model Object-oriented life-cycle models Comparison of life-cycle models

Software Life-Cycle Models The steps through which the product progresses Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement

Build and Fix Model Problems No specifications No design Totally unsatisfactory for any reasonable size software Need life-cycle model “Game plan” Phases Milestones

Waterfall Model The only widely-used model until the early 80’s Characterized by Feedback loops Documentation-driven Each phase needs to be approved by SQA Advantages Enforced disciplined approach Documentation Maintenance easier Disadvantages Specifications not easily understood by clients Example stories (read textbook) Joe and Jane Johnson (house) Mark Marberry (suit)

Rapid Prototyping Model Rapid prototype – a working model functionally equivalent to a subset of the product Determine what the client needs When developed, the client and users try using it When they are satisfied, the process moves to the next phase Linear model Specifications are drawn from the rapid prototype Feedback loops are not used “Rapid” is the key

Three Key Points Do not turn a rapid prototype into product Rapid prototyping may replace specification phase—never the design phase Comparison: Waterfall model—try to get it right first time Rapid prototyping—frequent changes until the client is satisfied, then discard

Integrating Waterfall and Rapid Prototyping Models Waterfall model Many successes Client needs may not be met Rapid prototyping model Some success but not really proven Has own problems Solution Rapid prototyping for requirements phase Waterfall for rest of life cycle

Incremental Model The product is designed, implemented, integrated and tested as a series of builds A build consists of code pieces from various modules interacting to provide a specific functionality Too few builds can lead to build-and-fix model Too many builds can lead to inefficient development

Incremental Model (contd) Waterfall, rapid prototyping models Operational quality complete product at end Incremental model Operational quality portion of product within weeks Less traumatic Smaller capital outlay, rapid return on investment Needs open architecture—maintenance implications

Concurrent Incremental Model More risky version—pieces may not fit CABTAB (code a bit and test a bit) and its dangers

Extreme Programming Somewhat controversial new approach based on the incremental model Development team determines stories (features client wants) Estimate duration and cost of each story Select stories for next build Each build is divided into tasks Test cases for task are drawn up first Pair programming Continuous integration of tasks

Unusual Features of XP Computers are put in center of a large room lined with cubicles Client representative is always present Cannot work overtime for 2 successive weeks No specialization All members of the team work on specification, design, coding and testing Refactoring No overall design The design is modified while the product is being developed

Evaluating XP XP has had some successes Good when requirements are vague or changing Too soon to evaluate XP

Synchronize and Stabilize Model Microsoft’s life-cycle model Also based on the incremental model Requirements analysis—interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel

Synchronize and Stabilize Model (contd) At the end of the day—synchronize (test and debug) At the end of each build—stabilize (freeze build) Components always work together Get early insights into operation of product

Spiral Model Simplified Waterfall model plus risk analysis Uses rapid prototypes Precede each phase by Alternatives Risk analysis Follow each phase by Evaluation Planning of next phase

Simplified Spiral Model If risks cannot be resolved, project is immediately terminated Potential risks Timing constraints Lack of personnel Competence of team Dependency on hardware delivery

Full Spiral Model Radial dimension: cumulative cost to date Angular dimension: progress through the spiral

Analysis of Spiral Model Strengths Easy to judge how much to test No distinction between development, maintenance Weaknesses For large-scale software only For internal (in-house) software only

Object-Oriented Life-Cycle Models Need for iteration within and between phases Fountain model [Henderson-Sellers and Edwards, 1990] Recursive/parallel life cycle [Berard, 1993] Unified software development process [Jacobson, Booch, and Rumbaugh, 1999] All incorporate some form of Iteration Parallelism Incremental development Danger CABTAB (undisciplined approach of s/w development, pg. 84)

Fountain Model Circles (phases) Overlap (parallelism) Arrows (iteration) Smaller maintenance circle

Conclusions Different life-cycle models Each with own strengths Each with own weaknesses Criteria for deciding on a model include The organization Its management Skills of the employees The nature of the product Best suggestion “Mix-and-match” life-cycle model