Software Development Life Cycle Models - Process Models. Week 2, Session 1



Similar documents
Introduction to Agile Software Development

Software Development Life Cycle (SDLC)

A Capability Maturity Model (CMM)

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

CS4507 Advanced Software Engineering

CSE 435 Software Engineering. Sept 16, 2015

Software Development Methodologies

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

SOFTWARE PROCESS MODELS

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Plan-Driven Methodologies

Software Development with Agile Methods

How to manage agile development? Rose Pruyne Jack Reed

Software Development Process

Agile Development Overview

Introduction to Agile Software Development Process. Software Development Life Cycles

Unit 1 Learning Objectives

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL

Software Process and Models

Advanced Software Engineering. Software Development Processes

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Extreme Programming, an agile software development process

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

How To Understand The Limitations Of An Agile Software Development

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Agile and Secure: Can We Be Both?

Vragen. Software development model. Software development model. Software development model

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Copyright protected. Use is for Single Users only via a VHP Approved License. For information and printed versions please see

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Software processes that are:

A Contrast and Comparison of Modern Software Process Models

Lecture 3 Software Development Processes

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Agile and the role of the business analyst

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Introduction to Software Engineering: Project Management ( Highlights )

COMP 354 Introduction to Software Engineering

Agile Software Development. Mohsen Afsharchi

Sustainable Software Development in Agile and CMMI: Apply Lessons Learned today

Software Engineering. What is a system?

CMMI - The AGILE Way By Hitesh Sanghavi

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Unit I. Introduction

Agile Software Development Methodologies and Its Quality Assurance

Extreme Programming, an agile software development process

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

Akhil Kumar 1, Bindu Goel 2

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Software Development Risk Aspects and Success Frequency on Spiral and Agile Model

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson

Agile project management: A magic bullet?

How To Plan A Project

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Agile Processes and Methodologies: A Conceptual Study

IT3205: Fundamentals of Software Engineering (Compulsory)

Introduction to Agile Software Development. EECS 690 Agile Software Development

The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary

A STUDY ON SOTWARE PRODUCT DEVELOPMENT APPROACHES IN THE SRI LANKAN SOFTWARE INDUSTRY

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Comparing Agile Software Processes Based on the Software Development Project Requirements

History of Agile Methods

Quality Assurance Software Development Processes

Agile Software Development

Future of CMM and Quality Improvement. Roy Ko Hong Kong Productivity Council

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

The most suitable system methodology for the proposed system is drawn out.

ITSM Agile Intro Feb 5, 2015

Large Scale Systems Design G52LSS

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Processes in Software Development. Presented by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008

Agile Projects 7. Agile Project Management 21

Agile Scrum Training. Nice to meet you. Erik Philippus. Erik Philippus (1951)

Hamid Faridani March 2011

Transcription:

Software Development Life Cycle Models - Process Models Week 2, Session 1

PROCESS MODELS Many life cycle models have been proposed } Traditional Models (plan-driven) } Classical waterfall model } Iterative waterfall } Evolutionary } Prototyping } Spiral model } Rational Unified Process (RUP) } Agile Models } extreme Programming (XP) } Scrum } Crystal } Feature-Driven Development (FDD)

The Process Methodology Spectrum More Agile Less Agile Scrum Crystal Lean XP Feature Driven Design DSDM Plan Driven Methodologies Hackers Agile Methodologies RUP PSP Inch- Pebble TSP SW- CMM Cleanroom from Balancing Agility & Discipline (Boehm & Turner)

CLASSICAL WATERFALL MODEL Feasibility Study Req. analysis & spec Design Coding Testing Maintenance

CLASSICAL WATERFALL MODEL (CONT.) } The guidelines and methodologies of an organization: } called the organization's software development methodology. } Software development organizations: } expect fresh engineers to master the organization's software development methodology.

Problems with Classical Waterfall Model } Classical waterfall model is idealistic: } assumes that no defect is introduced during any development activity. } in practice: } defects do get introduced in almost every phase of the life cycle. } Defects usually get detected much later in the life cycle: } For example, a design defect might go unnoticed till the coding or testing phase

PROTOTYPING MODEL } Before starting actual development, } a working prototype of the system should first be built. } A prototype is a toy implementation of a system: } limited functional capabilities, } low reliability, } inefficient performance. WHY PROTOTYPE?

PROTOTYPING MODEL (CONT.) Build Prototype Requirements Gathering Quick Design Customer Evaluation of Prototype Customer satisfied Design Refine Requirements Implement Test Maintain

EVOLUTIONARY MODEL } Evolutionary model (aka successive versions or incremental model): } The system is broken down into several modules which can be incrementally implemented and delivered. } First develop the core modules of the system. } The initial product skeleton is refined into increasing levels of capability: } by adding new functionalities in successive versions.

C o m m u n i c a t i o n INCREMENTAL MODEL A increment # n C o m m u n i c a t i o n P l a n n i n g M o d e l i n g analys is des ign C o n s t r u c t i o n code t es t D e p l o y m e n t d e l i v e r y f e e d b a c k A B increment # 1 increment # 2 C o m m u n i c a t i o n P l a n n i n g M o d e l i n g analys is des ign C o n s t r u c t i o n code t es t D e p l o y m e n t d e l i v e r y f e e d b a c k delivery of 2nd increment delivery of nth increment P l a n n i n g M o d e l i n g analys is des ign C o n s t r u c t i o n code t es t D e p l o y m e n t d e l i v e r y f e e d b a c k delivery of 1st increment C project calendar time A B

ADVANTAGES OF EVOLUTIONARY MODEL } Users get a chance to experiment with a partially developed system: } much before the full working version is released, } Helps finding exact user requirements: } much before fully working system is developed. } Core modules get tested thoroughly: } reduces chances of errors in final product.

DISADVANTAGES OF EVOLUTIONARY MODEL } Often, difficult to subdivide problems into functional units: } which can be incrementally implemented and delivered. } evolutionary model is useful for very large problems, } where it is easier to find modules for incremental implementation.

EVOLUTIONARY MODEL WITH ITERATION (Iterative Incremental Model) } Many organizations use a combination of iterative and incremental development: } a new release may include new functionality } existing functionality from the current release may also have been modified.

EVOLUTIONARY MODEL WITH ITERATION } Several advantages: } Training can start on an earlier release } customer feedback taken into account } Markets can be created: } for functionality that has never been offered. } Frequent releases allow developers to fix unanticipated problems quickly.

SPIRAL MODEL } Proposed by Boehm in 1988. } Each loop of the spiral represents a phase of the software process: } the innermost loop might be concerned with system feasibility, } the next loop with system requirements definition, } the next one with system design, and so on. } There are no fixed phases in this model, the phases shown in the figure are just examples.

SPIRAL MODEL (CONT.) Determine Objectives Identify & Resolve Risks Customer Evaluation of Prototype Develop Next Level of Product

OBJECTIVE SETTING (FIRST QUADRANT) } Identify objectives of the phase, } Examine the risks associated with these objectives. } Risk: } any adverse circumstance that might hamper successful completion of a software project. } Find alternate solutions possible.

RISK ASSESSMENT AND REDUCTION (SECOND QUADRANT) } For each identified project risk, } a detailed analysis is carried out. } Steps are taken to reduce the risk. } For example, if there is a risk that the requirements are inappropriate: } a prototype system may be developed.

SPIRAL MODEL (CONT.) } Development and Validation (Third quadrant): } develop and validate the next level of the product. } Review and Planning (Fourth quadrant): } review the results achieved so far with the customer and plan the next iteration around the spiral. } With each iteration around the spiral: } progressively more complete version of the software gets built.

SPIRAL MODEL AS A META MODEL } Subsumes all discussed models: } a single loop spiral represents waterfall model. } uses an evolutionary approach -- } iterations through the spiral are evolutionary levels. } enables understanding and reacting to risks during each iteration along the spiral. } uses: } prototyping as a risk reduction mechanism } retains the step-wise approach of the waterfall model.

COMPARISON OF DIFFERENT LIFE CYCLE MODELS } Iterative waterfall model } most widely used model. } But, suitable only for well-understood problems. } Prototype model is suitable for projects not well understood: } user requirements } technical aspects

COMPARISON OF DIFFERENT LIFE CYCLE MODELS (CONT.) } Evolutionary model is suitable for large problems: } can be decomposed into a set of modules that can be incrementally implemented, } incremental delivery of the system is acceptable to the customer. } The spiral model: } suitable for development of technically challenging software products that are subject to several kinds of risks.

Agile processes 23

Agile Manifesto } We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: } Individuals and interactions over processes and tools } Working software over comprehensive documentation } Customer collaboration over contract negotiation } Responding to change over following a plan } That is, while there is value in the items on the right, we value the items on the left more. 24

Some Agile Methods } ASD - Adaptive Software Development } Crystal } FDD - Feature Driven Development } DSDM - Dynamic Systems Development Method } Lean Software Development } Scrum } XP - extreme Programming 25

Four Values } Simplicity } create the simplest thing that could work } Communication } face-to-face, not document-to-face } Feedback } lots of tests } Aggressiveness 26

Four Basic Activities } Coding } cannot do without it } Testing } if it cannot be tested it doesn't exist } Listening } to those with domain knowledge } Designing } to keep the system from decaying 27

Twelve Practices 1. The Planning Game 2. Small releases 3. Metaphor 4. Simple design 5. Testing 6. Refactoring 7. Pair programming 8. Collective ownership 9. Continuous integration 10. 40-hour week 11. On-site customer 12. Coding standards 28

Process Assessment and Improvement Standard CMMI Assessment Method for Process Improvement (SCAMPI) provides a five step process assessment model that incorporates five phases: initiating, diagnosing, establishing, acting and learning. CMM-Based Appraisal for Internal Process Improvement (CBA IPI) provides a diagnostic technique for assessing the relative maturity of a software organization SPICE The SPICE (ISO/IEC15504) standard defines a set of requirements for software process assessment. ISO 9001:2000 for Software a generic standard that applies to any organization that wants to improve the overall quality of the products, systems, or services that it provides

SUMMARY } There are various process models: } Traditional (Plan-driven) Models } Agile Models Helps to do various development activities in a systematic and disciplined manner. Also makes it easier to manage a software development effort.