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



Similar documents
SOFTWARE PROCESS MODELS

Object-Oriented and Classical Software Engineering

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

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

Software Engineering. An Introduction. Fakhar Lodhi

Slide 2.1. Slide 2.3. Slide 2.5

Object-Oriented and Classical Software Engineering

CSE 435 Software Engineering. Sept 16, 2015

Advanced Software Engineering. Software Development Processes

COMP 354 Introduction to Software Engineering

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

CHAPTER 02 SOFTWARE LIFE-CYCLE MODELS

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Development Methodologies

Software Development Life Cycle (SDLC)

Exception Handling. development.

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

Lecture 21 March 7, 2013

The Agile Manifesto is based on 12 principles:

When is Agile the Best Project Management Method? Lana Tylka

Agile Software Development

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Agile and lean methods for managing application development process

Software Engineering

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

AGILE vs. WATERFALL METHODOLOGIES

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Unit I. Introduction

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

A Capability Maturity Model (CMM)

Software Development Process

Software Life Cycle Processes

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

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Testing in Agile methodologies easier or more difficult?

Agile Software Development Methodologies and Its Quality Assurance

An Agile Project Management Model

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

Introduction to Agile Software Development

Agile and Secure: Can We Be Both?

Software Requirements and Specification

Software Development Methodology Development Process Aress

Agile Projects 7. Agile Project Management 21

SECC Agile Foundation Certificate Examination Handbook

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

Introduction to Agile and Scrum

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Process Models and Metrics

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

Case Study on Critical Success Factors of Running Scrum *

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

How To Understand The Limitations Of An Agile Software Development

Introduction to Software Engineering: Overview and Methodologies

Agile and lean methods for managing application development process

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

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

Software Development Life Cycle

Software Development Process Models

Agile Processes and Methodologies: A Conceptual Study

Software Development Methodologies

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

Introduction to Agile Software Development. EECS 690 Agile Software Development

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

Agile Methodologies and Its Processes

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Agile Development with Agile Business Suite

Agile QA s Revolutionary Impact on Project Management

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

The Impacts Of Agile Development On The System Engineering Process

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations

Alternative Development Methodologies

Classical Software Life Cycle Models

Extreme Programming, an agile software development process

How to manage agile development? Rose Pruyne Jack Reed

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Introduction to Software Engineering: Project Management ( Highlights )

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

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

Accelerating software testing effectiveness using Agile methodologies..

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Introduction. Industries across the globe are burgeoning. Stiff

SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

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

CS4507 Advanced Software Engineering

Agile project management: A magic bullet?

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

What is a life cycle model?

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

Agile So)ware Development

The Spiral development model is a risk-driven process model generator. It

Agile Software Development compliant to Safety Standards?

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

A Comparison between Five Models of Software Engineering

Transcription:

Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013

Software Life Cycle The overall framework in which software is conceived, developed, and maintained. Life cycles are also referred to as models Phases: At its most basic, a life cycle includes: Design Development Maintenance Classic life cycle models: Waterfall model Incremental model Spiral model

Waterfall Model I From the GSAM Handbook

Waterfall Model II Characteristics First used on DoD projects in the 1970s Highly structured sequential development process Documentation-driven and document-intensive Initial phases document what must be done Later phases define how it should be done

Waterfall Model III Advantages System is well documented Corresponding development and management phases Relatively accurate cost and schedule estimates Disadvantages Risk dealt within a single cycle Local feedback between phase transitions only Working product available in the latter stages Progress and success hard to observe until later stages An early error may be discovered only after delivery Fixes must wait until maintenance

Incremental Model I Iteration: Essentially a series of waterfall models Generate release V 1, then revise and generate V 2, and so on. Each successive release V k is intended to be closer to its target than its predecessor Each release adds more functionality

Incremental Model II Advantages: Provides feedback from one cycle to the next Allows modification and addition of requirements More responsive to user needs Risk spread out over multiple cycles Testing may be easier on each iteration Disadvantages: Many requirements still need to be know early Interface between cycles must be well defined Operations may be impacted as each release is deployed

Incremental Workflow Model I The area under the curves indicate effort spent for each workflow over many increments.

Incremental Workflow Model II Characteristics five core workflows are performed over the entire life cycle At most times one workflow predominates Examples: At the beginning, the requirements workflow predominates At the end, the implementation and test workflows predominate Planning and documentation activities are (should be) performed throughout the life cycle

Spiral Model I

Spiral Model II Proposed by Boehm in 1988. Goal: minimizing risk Quadrants: Determine objectives, alternatives, and constraints Evaluate alternatives, identify, and resolve risks Develop, verify next-level product Plan the next phase If all risks cannot be mitigated, the project is immediately terminated

Spiral Model III Actions before each phase Analyze alternatives Risk analysis Actions after each phase Evaluation Planning of the next phase Radial dimension: cumulative cost to date Angular dimension: progress through development phases

Spiral Model IV Advantages Provides better risk management than other models Requirements are better defined System is more responsive to user needs Disadvantages More complex and harder to manage Usually increases development costs and schedule

Evolutionary or Prototyping Model I Characteristics Develops a product in multiple cycles Produces a more refined prototype system at each iteration Specification, development and testing occur concurrently Design decisions made to get prototype working General requirements must be know early

Evolutionary or Prototyping Model II Advantages Project can begin without fully understanding requirements Final requirements are evolved Risk spread over various iterations Emphasis on early operational capability Disadvantages Usually increased costs and schedule over waterfall Increased management Users can mistake a prototype for the final system Risk may be increased in various areas

Rapid Prototyping Model I

Rapid Prototyping Model II Characteristics Early development of a working rapid prototype Interaction with client/users with rapid prototype to validate the product, i.e. determine whether product is what client wanted.

Rapid Prototyping Model III Advantages Rapid prototype used to generate the specification document Design phase aided by existence of the prototype Reduced effect of regression faults in implementation Development feedback loops less likely to be needed Disadvantages Insufficient analysis can lead to improper solutions User confusion over prototype vs. final system Excessive development time of prototype Higher start up costs for building a development team

Agile Development Models I

Agile Development Models II Characteristics Based on iterative and incremental development Requirements and solutions evolve through self-organizing, cross-functional teams Defined in the Agile Manifesto published in 2001

Agile Development Models III

Agile Development Models IV Twelve Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements, even late in development Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Sustainable development, able to maintain a constant pace Close, daily co-operation between business people and developers Face-to-face conversation is the best form of communication (co-location) Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances

Extreme Programming I Characteristics Created by Ken Beck in the mid 1990s Focuses on features or stories the client wants Estimate duration and cost of each story Test-driven development: Test cases for a task are drawn up first Pair programming: two programmers implement a task, ensuring test cases work correctly Task integration: tasks continuously integrated into current version The design is modified while the product is built refactoring

Extreme Programming II Advantages XP successful with small-scale software development Responsive to user needs Less emphasis on documentation Disadvantages Lack of structure and necessary documentation May require major cultural shift to be adopted Scope creep due to lack of detailed requirements Non-functional quality attributes are not user stories SCRUM is an agile development framework, following many of the ideas in XP

Synchronize-and Stabilize Model - Microsoft I A version of the iterative and incremental model [Cusumano and Selby, 1997]. Characteristics: Requirements analysis: interview potential customers, extract key features of interest. Draw up specifications. Divide project into 3 or 4 builds by critical features Each build is developed by small teams working in parallel Synchronize at end of day: integrate partially completed components, test and debug Stabilize at end of the build: maintenance, fix faults. Build is freezed. Requirements can be modified during course of a build.