The Software Life Cycle

Similar documents
CMPT 275 Software Engineering

Processes and Life- Cycles. Kristian Sandahl

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Designing the Process. A Brief Introduction to Agile Programming

Introduction to Agile/Extreme Programming

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Chapter 3 Software Process Model

Introduction to Agile and Scrum

03. Perspective Process Models

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Agile Software Development

The Top Thrill Dragster

Oracle Unified Method (OUM) Using OUM with Agile Techniques. Jan Kettenis Oracle Global Methods Oracle Consulting Netherlands

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Introduction to Software Engineering

AGILE SOLUTIONS. Agile Basics

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

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Agile Methods. Background

Waterfall to Agile: Flipping the Switch Bhushan Gupta Nike Inc. October 9, 2012

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

SWE 211 Software Processes

software development lifecycle (sdlc) models & agile methods

Introduction to Systems Analysis and Design

Software Life Cycle. Main Topics. Introduction

Introduction to Agile (Scrum)

Chapter 3 Agile Software Development

Agile Software Development

A New Divide & Conquer Software Process Model

The software process

This course will explore how your projects can easily and successfully make the transition to an effective Agile environment.

Virtually Agile. Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Learning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping

BA25-Managing the Agile Product Development Life Cycle

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Rational Unified Process

18-642: Software Development Processes

Agile Delivery Framework (ADF)

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

AGILE SOFTWARE DEVELOPMENT. Keith Pine Kumeel Alsmail Parker Li Björn Davis

Reducing Business Risk

Harnessing the power of agile development

What is Continuous Integration. And how do I get there

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Certified Scrum Master

AGILE methodology- Scrum

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 10. * Construction, Installation and Operations * Agile Method Software Development

Scrum and Agile Processes. Dr.-Ing. Oliver Ciupke Haufe-Lexware GmbH & Co. KG 2011

Owning An Agile Project: PO Training Day 2

Improving Agile Execution in the Federal Government

Application of Agile Delivery Methodologies. Bryan Copeland Energy Corridor Brown Bag Event August 31, 2016

Presented by Only Agile. What is Agile?

Agile 101. Brent Hurley Chief Problem Solver Gira Solutions. Values, Principles

Scrum, Creating Great Products & Critical Systems

Change Agile. Ben Linders, André Heijstek. veranderproject.nl

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

The Software Development Process (SDLC)

Two Branches of Software Engineering

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum

Agile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Agile Scrum Process Checklist

Software Engineering Fall 2014

Scrum Requirements Engineering Practices and Challenges in Offshore Software Development

Scrum. Software Engineering and. The Waterfall model. The Waterfall model - some arguments. The Waterfall model - some arguments. Time.

Development Process Bennett, McRobb and Farmer 1

Software Engineering Lecture 5 Agile Software Development

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Chapter 1 Systems Development in an Organization Context

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

AN EMPIRICAL STUDY ON THE ROLE OF REQUIREMENT ENGINEERING IN AGILE METHOD AND ITS IMPACT ON QUALITY ANZIRA RAHMAN

Case Study: Applying Agile Software Practices to Systems Engineering

Requirement Engineering for Non-Functional Requirements

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Agile & Lean / Kanban

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

approach to successful project


What is Scrum: An Introduction to the Scrum Framework

Agile Acquisition. Peter Modigliani 10 Dec 12. Presented to: Mr. Koen Gijsbers. General Manager NATO Communications and Information Agency

Welcome! Function Point Analysis and Agile Methodology ~ Dan Horvath

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

PMI Agile Certified Practitioner (PMI-ACP) Duration: 48 Hours

Requirements Engineering

Agile at Scale -Beyond SAFe. John B Hudson, B.Sc., PMP, ACP, CSM, SPC

D25-4. How Intertech Uses Agile

A Hybrid Approach to the Use of Agile in Health IT. Session 147 March 7, 2018 Spencer Reeser-Stout, Senior Project Manager

Agile Quality Management

Architectural Practices and Challenges in Using Agile Software Development Approaches

Assessor-3 Release-1 Retrospective-ESI

Transcription:

Inception Software Increment Communication Planning Production The Software Life Cycle Software Engineering Deployment Andreas Zeller Saarland University Modelling Elaboration Transition Construction Construction

A Software Crisis

Code and Fix (1950 ) Build first version Modify until client is satisfied Operate Retirement

Code and Fix: Issues No process steps no specs, docs, tests No separation of concerns no teamwork No way to deal with complexity

Code and Fix

Communicatio Waterfall Model (1968) n project initiation Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback

Communication Communicatio n project initiation

Communicatio Waterfall Model (1968) n project initiation Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback

Planning estimating scheduling tracking Planning

Communicatio Waterfall Model (1968) n project initiation Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback

Waterfall Model (1968) Modeling analysis design

Communicatio Waterfall Model (1968) n project initiation Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback

Waterfall Model Construction code test

Communicatio Waterfall Model (1968) n project initiation Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback

Deployment Deployment delivery support feedback

Communicatio Waterfall Model (1968) n project initiation Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback

Waterfall Model Communicatio n Real projects rarely follow a sequential project initiation flowplanning estimating scheduling tracking (1968) Hard to state all requirements explicitly Modeling No maintenance or evolution involved analysis design Customer must have patience Construction code Any blunder can be disastrous test Deployment delivery support feedback

Boehm s first law Errors are most frequent during requirements and design activities and are the more expensive the later they are removed.

Problem Cost Relative cost of problem per phase 30,0 22,5 15,0 7,5 0,0 Coding Unit test Component test System test Field

Incremental Model Features Increment #3 Increment #1 Communication project initiation requirements gathering Planning estimating scheduling tracking Increment #2 Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Modeling analysis design Construction code test Deployment delivery support feedback Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Time

Incremental Model Each linear sequence produces a particular increment to the software First increment typically core product; more features added by later increments Allows flexible allocation of resources

Prototyping Communication Quick Plan Deployment and Feedback Quick Design Prototype Construction

Prototypes Top Layer (GUI) Bottom Layer

Horizontal Prototype Top Layer (GUI) Bottom Layer

Prototypes Top Layer (GUI) Bottom Layer

Vertical Prototype Top Layer (GUI) Bottom Layer

Prototypes A horizontal prototype tests a particular layer (typically the GUI) of the system A vertical prototype tests a particular functionality across all layers Resist pressure to turn a prototype into a final result!

Spiral Model (1988) Communication Planning Modeling Deployment + Feedback Test Construction

Spiral Model System is developed in series of evolutionary releases Milestones for each iteration of the spiral Process does not end with delivery Reflects iterative nature of development

Unified Process (1999) Inception Software Increment Communication Planning Production Elaboration Deployment Modelling Transition Construction Construction

Software Increment Inception Inception Communication Planning Production Encompasses communication with user + planning Deployment Modelling Results in a set of use cases Architecture is just a tentative outline Transition Construction Elaboration Construction

Software Increment Production Elaboration Communication Refines and expands preliminary use cases Inception Planning Elaboration Provides architecture and initial Deployment design Modelling model Transition Construction Construction

Construction Inception Software Increment Builds (or acquires) Communication software components Planning Production according to architecture Completes design model Includes Deployment implementation, unit tests, acceptance tests Modelling Elaboration Transition Construction Construction

Software Increment Transition Inception Software given to end users for beta Communication testing Planning Production Feedback reports defects and changes Elaboration Deployment Modelling Transition Construction Construction

Production Inception Software Increment Production Software is deployed Problems are monitored Communication Planning Elaboration Deployment Modelling Transition Construction Construction

Software Increment Re-Iteration Inception Communication Planning Production Feedback results in new iteration for next Elaboration Deployment Modelling Transition Construction Construction

Unified Process Inception Software Increment Communication Planning Production Elaboration Deployment Modelling Transition Construction Construction

Unified Process Software Communication Planning IncrementDraws on best features of conventional Production process models Deployment Inception Emphasizes software architecture and design Modelling Integrates with UML modeling techniques (more on this later) Elaboration Transition Construction Construction

Manifesto for Agile Software Development (2001) Individuals and activities over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan..

What is Agile Development? Fast development? Hacking? Prototyping? Uncontrolled fun? Programmer heaven? Agility = ability to react to changing situations quickly, appropriately, and effectively. notice changes early initiate action promptly create a feasible and effective alternative plan quickly reorient work and resources quickly and effectively

Agile? Communicatio n project initiation Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback

Incremental Model Features Increment #3 Increment #1 Communication project initiation requirements gathering Planning estimating scheduling tracking Increment #2 Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Modeling analysis design Construction code test Deployment delivery support feedback Communication project initiation requirements gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback Time

Credits: Prof. Bodik Agile Processes Time Waterfall Iterative Agile Processes Test Implement Design Analyse Scope

Agile vs. Plan-driven Agile Low criticality Senior developers Requirements change very often Small number of developers Culture that thrives on chaos Plan-driven High criticality Junior developers Requirements don't change too often Large number of developers Culture that demands order

What is an Agile Process? Difficult to predict which requirements will persist or change in the future. For many types of software, design and development are interleaved. Analysis, design, construction, and testing are not as predictable.

So, how to tackle unpredictability? make the process adaptable...

Extreme Programming (1999 ) Planning Design Test Coding Software Increment

Planning Planning Design In XP, planning takes place by Test means of stories Coding Each story captures essential behavior Software Increment

Extreme Programming Planning Design Test Coding Software Increment

Extreme Programming Planning Design Software Increment Design is made on the fly, using the KISS (keep it simple) principle Test Coding Virtually no notation besides CRC cards (object sketches) and spike solutions (prototypes)

Extreme Programming Planning Design Test Coding Software Increment

Coding Each Planning story becomes a unit test that Design serves as specification The program Test is continuously Coding Software Increment refactored to have the design match

Coding Planning To Design ensure continuous review, XP mandates pair Test Coding Software Increment

Extreme Programming Planning Design Test Coding Software Increment

Testing Planning Design Unit tests detect errors Test find Coding missing functionality measure progress Software Increment

Extreme Programming Planning Design Test The resulting prototypes result in Coding new stories Software Increment

Extreme Programming Planning Design Test Coding Software Increment

Spot the Difference

Scrum

Scrum An iterative and incremental agile software development method for managing software projects and product or application development. Small working teams to maximize communication, minimize overhead and maximize knowledge sharing. Adaptable to technical and business changes. Yields frequent software increments that can be inspected.

Scrum Development work and the people who perform it are partitioned into clean, low coupling partitions. Constant testing and documentation is performed. Ability to declare project done whenever required.

Scrum

Scrum Backlog: A prioritized list project requirements or features that provide business value. Sprints: Consists of work units that are required to achieve a defined backlog into a predefined time-box (usually 30 days). Scrum Meetings: Short 15 mins. meetings held daily by the scrum team. The Scrum master leads the meeting. Demos: Demonstrate software increment to the customer for evaluation.

Your Sprints Top Layer (GUI) 2. Top Layer 1. Core Use Case Bottom Layer 3. May-Haves

Summary