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.

Slides:



Advertisements
Similar presentations
National Association for Regulatory Administration September 13, 2011 IT’s NOT Like Building a House Mark Parker (800)
Advertisements

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
Ch 3: Unified Process CSCI 4320: Software Engineering.
Ch2: Software Life Cycles Housekeeping  Feedback from Wednesday  Structured vs. Object Oriented Paradigm Structured: Data is an argument, functions separate,
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Object-Oriented Software Development CS 3331 Fall 2009.
Software Life-Cycle Models
Slide 2.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 2.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Slide 9.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
1 CMSC 132: Object-Oriented Programming II Software Development I Department of Computer Science University of Maryland, College Park.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
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.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
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 Engineering Management Lecture 1 The Software Process.
CSE 308 Software Engineering Software Engineering Strategies.
Slide 10.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
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.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
SOFTWARE LIFE-CYCLE MODELS
SOFTWARE LIFE-CYCLE MODELS CHAPTER 2
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
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Slide 2.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
It specifies the various phases/workflows of the software process, such as: the requirements, analysis (specification), design, implementation,
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
Slide 2.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. CHAPTER 2 SOFTWARE LIFE-CYCLE MODELS Derived from Dr. Stehpen R. Schach’s.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Workflows Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Slide 2.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
Introduction Requirements and the Software Lifecycle (3)
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Slide 10.1 CHAPTER 10 OVERVIEW OF THE PREVIOUS CHAPTERS.
Software Development - Methodologies
2. Software Life Cycle Models
TK2023 Object-Oriented Software Engineering
Software Development.
Methodologies and Algorithms
8.4 Management of Postdelivery Maintenance
CS 425/625 Software Engineering Software Processes
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach 1.
Chapter 2 SW Process Models
Software Life Cycle Models
Software Engineering Lecture 09 & 10.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
An Introduction to Object-Oriented Systems Analysis and Design with UML and the Unified Process McGraw-Hill, 2004 Stephen R. Schach
Lecture 2 Revision of Models of a Software Process
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Presentation transcript:

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 University & Stephen R. Schach, Vanderbilt University

Chapter 2A 2 Overview  Software development in theory  Winburg mini case study  Lessons of the Winburg mini case study  Teal tractors mini case study  Iteration and incrementation  Winburg mini case study revisited  Risks and other aspects of iteration and incrementation  Managing iteration and incrementation  Other life-cycle models  Comparison of life-cycle models

Chapter 2A Software Development in Theory  Ideally, software is developed as described in Chapter 1  Linear  Starting from scratch  Called the Linear Model Figure 2.1 Requirements Analysis Design Implementation

Chapter 2A 4 Winburg Case Study – The Real World Is Different  Episode 1: The first version is implemented  Episode 2: A fault is found  The product is too slow because of an implementation fault  Changes to the implementation are begun  Episode 3: The requirements change  A faster algorithm is used  Episode 4: A new design is adopted  Development is complete  Epilogue: A few years later, these problems recur

Chapter 2A 5 Evolution-Tree Model  Winburg Mini Case Study Figure 2.2 Requirements Analysis Design Implementation Requirements Analysis Design Implementation Design Implementation Maintenance Development

Chapter 2A 6 Waterfall Model  The linear life cycle model with feedback loops  The waterfall model cannot show the order of events Figure 2.3 Requirements Analysis Design Implementation Maintenance Development

Chapter 2A Teal Tractors Mini Case Study  While the Teal Tractors software product is being constructed, the requirements change  The company is expanding into Canada  Changes needed include:  Additional sales regions must be added  The product must be able to handle Canadian taxes and other business aspects that are handled differently  Third, the product must be extended to handle two different currencies, USD and CAD  These changes may be  Great for the company; but  Disastrous for the software product  A change in the requirements while the software product is being developed

Chapter 2A 8 Moving Target Problem (contd)  Even if the reasons for the change are good, the software product can be adversely impacted  Dependencies will be induced  Any change made to a software product can potentially cause a regression fault  A fault in an apparently unrelated part of the software  If there are too many changes  The entire product may have to be redesigned and re-implemented  Change is inevitable  Growing companies are always going to change  If the individual calling for changes has sufficient clout, nothing can be done about it  There is no solution to the moving target problem

Chapter 2A Iteration and Incrementation  In real life, we cannot speak about “the analysis phase”  Instead, the operations of the analysis phase are spread out over the life cycle  The basic software development process is iterative  Each successive version is intended to be closer to its target than its predecessor

Chapter 2A 10 Miller’s Law  At any one time, we can concentrate on only approximately seven chunks (units of information)  To handle larger amounts of information, use stepwise refinement  Concentrate on the aspects that are currently the most important  Postpone aspects that are currently less critical  Every aspect is eventually handled, but in order of current importance  This is an incremental process

Chapter 2A Iteration and Incrementation  Iteration and incrementation are used in conjunction with one another  There is no single “requirements phase” or “design phase”  Instead, there are multiple instances of each phase Work Quantity In Each Increment Increment AIncrement BIncrement CIncrement D Requirements Workflow HighMediumLowNone Analysis Workflow MediumHighLow Design Workflow LowHigh Low Implementation Workflow LowMediumHighLow Test WorkflowLow MediumHigh

Chapter 2A 12 Iteration and Incrementation (contd)  Iteration and incrementation are used in conjunction with one another  There is no single “requirements phase” or “design phase”  Instead, there are multiple instances of each phase  The number of increments will vary—it does not have to be four Requirements Analysis Design Implementation Requirements Analysis Design Implementation Design Implementation Maintenance Development

Chapter 2A 13 Workflows  All five core workflows are performed over the entire life cycle  However, at most times one workflow predominates  Examples:  At the beginning of the life cycle The requirements workflow predominates  At the end of the life cycle The implementation and test workflows predominate  Planning and documentation activities are performed throughout the life cycle

Chapter 2A Managing Iteration and Incrementation  The iterative-and-incremental life-cycle model is as regimented as the waterfall model …  … because the iterative-and-incremental life-cycle model is the waterfall model, applied successively  Each increment is a waterfall mini project

Chapter 2A Other Life-Cycle Models  The following life-cycle models are presented and compared:  Code-and-fix life-cycle model  Waterfall life-cycle model  Rapid prototyping life-cycle model  Extreme programming and agile processes  Synchronize-and-stabilize life-cycle model  Spiral life-cycle model

Chapter 2A Code-and-Fix Model  No design  No specifications  Maintenance nightmare  The easiest way to develop software  The most expensive way  Typically used by a start-up. Figure 2.7 Implement the 1 st Version Modify until client is satisfied Postdelivery Maintenance Maintenance Development

Chapter 2A Waterfall Model Figure 2.8  Characterized by  Feedback loops  Documentation-driven  Advantages  Documentation  Maintenance is easier  Disadvantages  Specification document Joe and Jane Johnson Mark Marberry

Chapter 2A Rapid Prototyping Model  Linear model  “Rapid” Figure 2.9

Chapter 2A Extreme Programming and Agile Processes  Somewhat controversial new approach  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 a task are drawn up first  Pair programming  Continuous integration of tasks Unusual Features of XP  The computers are put in the center of a large room lined with cubicles  A client representative is always present  Software professionals cannot work overtime for 2 successive weeks  No specialization  Refactoring (design modification)

Chapter 2A 20 Agile Processes  A collection of new paradigms characterized by  Less emphasis on analysis and design  Earlier implementation (working software is considered more important than documentation)  Responsiveness to change  Close collaboration with the client  XP has had some successes with small-scale software development  However, medium- and large-scale software development is very different

Chapter 2A 21 Evaluating Agile Processes and XP (contd)  The key decider: the impact of agile processes on post-delivery maintenance  Refactoring is an essential component of agile processes  Refactoring continues during maintenance  Will refactoring increase the cost of post-delivery maintenance, as indicated by preliminary research?  Agile processes are good when requirements are vague or changing  It is too soon to evaluate agile processes  There are not enough data yet  Even if agile processes prove to be disappointing  Some features (such as pair programming) may be adopted as mainstream software engineering practices

Chapter 2A Comparison of Life-Cycle Models  Different life-cycle models have been presented  Each with its own strengths and weaknesses  Criteria for deciding on a model include:  The organization  Its management  The skills of the employees  The nature of the product  Best suggestion  “Mix-and-match” life-cycle model

Chapter 2A 23 Comparison of Models (According to Schach) Life-Cycle ModelStrengthsWeaknesses Evolution tree model Closely models real-world software production. Equivalent to the iterative and increment model. Iterative and incremental model Closely models real-world software production. Underlies the unified process. Code and fix model Fine for short programs that require no maintenance. Unsatisfactory for nontrivial programs. Waterfall model Disciplined approach – document driven. Product may not meet client’s needs. Rapid Prototyping model Ensures delivered product meets the client’s need. Not yet proven beyond all doubt. Extreme programming model Works well when the requirements are vague. Appears to work on only small scale projects.