The Software Life Cycle

Similar documents
CMPT 275 Software Engineering

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

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?

Introduction to Agile/Extreme Programming

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

Agile Methods. Background

Introduction to Agile and Scrum

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

Agile Software Development

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

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

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

AGILE SOLUTIONS. Agile Basics

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

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

03. Perspective Process Models

Chapter 3 Agile Software Development

Chapter 3 Software Process Model

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

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

Introduction to Agile (Scrum)

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

Introduction to Software Engineering

18-642: Software Development Processes

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

The Top Thrill Dragster

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

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

SWE 211 Software Processes

Scrum, Creating Great Products & Critical Systems

Software Life Cycle. Main Topics. Introduction

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

Software Engineering Lecture 5 Agile Software Development

Improving Agile Execution in the Federal Government

Introduction to Systems Analysis and Design

software development lifecycle (sdlc) models & agile methods

Agile Delivery Framework (ADF)

WELCOME TO INTRO TO AGILE PROJECT MANAGEMENT AUBREY KAIGLER, PMP, ITIL. Please configure your audio: Meeting Audio Setup Wizard

Agile Project Management

Two Branches of Software Engineering

SCRUM - compact The agile software development methodology

The Product Creation Process

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

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

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

Development Process Bennett, McRobb and Farmer 1

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

What is Continuous Integration. And how do I get there

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

Requirements Engineering

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

The software process

Agile Software Development

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

What is Scrum: An Introduction to the Scrum Framework

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

Owning An Agile Project: PO Training Day 2

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

A New Divide & Conquer Software Process Model

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

BUSINESS INSIGHTS. Making the Transformational Shift to Scrum

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

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

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

BA25-Managing the Agile Product Development Life Cycle

Scrum Intro What s in it for me?

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

Agile Development Methodologies:

Management by Consensus

Agile Quality Management

Scrum Team Roles and Functions

approach to successful project

Presented by Only Agile. What is Agile?

Agile & Lean / Kanban

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

Software Engineering Fall 2014

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

The Software Development Process (SDLC)

Thriving in an Agile Environment. Kathryn Poe Rocky Mountain Chapter Feb 16, 2012

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

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Scrum Requirements Engineering Practices and Challenges in Offshore Software Development

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

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

Architectural Practices and Challenges in Using Agile Software Development Approaches

Reducing Business Risk

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Lecture 29: Agile Design and Extreme Programming

Chapter 1 Systems Development in an Organization Context

Why Agile, Why Now By David Schroeder, PMP, PSM

Harnessing the power of agile development

Harry J. Rosenblatt. (2014). Systems Analysis and Design, 10 th Edition, International Edition. Course Technology, Cengage Learning.

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

Requirement Engineering for Non-Functional Requirements

How to Prepare for and Implement a Project Using Scrum

AGILE methodology- Scrum

Systems Modernization Strategies August 2017

SDLC Models- A Survey

Transcription:

Production Inception The Life Cycle Engineering Modelling Andreas Zeller Saarland University Elaboration Transition A Crisis Denver International Airport (DIA) started in 1989 53 sq miles Planned: 1.7 bio USD costs, opening 1993

Build first version Code and Fix (1950 ) Modify until client is satisfied Operate Retirement Code and Fix: Issues No process steps no specs, docs, s No separation of concerns no teamwork No way to deal with complexity Code and Fix

Waterfall Model (1968) Waterfall Model (1968)

Waterfall Model (1968) Waterfall Model (1968)

Waterfall Model (1968) Waterfall Model Waterfall Model (1968)

Waterfall Model (1968) http:// geekandpoke.typep ad.com/ geekandpoke/ 2012/05/simplyexplained-wtf.html

http:// geekandpoke.typep ad.com/ geekandpoke/ 2012/05/simplyexplained-wtf.html http:// geekandpoke.typep ad.com/ geekandpoke/ 2012/05/simplyexplained-wtf.html Waterfall Model (1968) Real projects rarely follow a sequential flow Hard to state all requirements explicitly No maintenance or evolution involved Customer must have patience Any blunder can be disastrous

Boehm s first law Errors are most frequent during requirements and activities and are the more expensive the later they are removed. This and other laws are found in Endres/Rombach: Handbook of and Systems Engineering. Evidence: Several studies before 1974 Problem Cost Relative cost of problem per phase 30.0 22.5 15.0 7.5 0 Coding Unit Component System Field Features al Model #3 #1 #2 Time

al 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 Quick Plan and Feedback Quick Design Prototype 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 s a particular layer (typically the GUI) of the system A vertical prototype s a particular functionality across all layers Resist pressure to turn a prototype into a final result! Spiral Model (1988) + Feedback Test Spiral Model System is developed in series of evolutionary releases Milestones for each iteration of the spiral Process does not end with Reflects iterative nature of development

Unified Process (1999) Inception Production Elaboration Modelling Transition Inception Inception Production Encompasses communication with user + planning Results in a set of use cases Architecture is just a tentative outline Transition Modelling Elaboration Elaboration Inception Production Refines and expands preliminary use cases Provides architecture and initial model Elaboration Modelling Transition

Builds (or acquires) software components according to architecture Completes model Includes implementation, unit s, acceptance s Production Inception Elaboration Modelling Transition Transition given to end users for beta ing Feedback reports defects and changes Support information written Production Inception Elaboration Modelling Transition Production Production Inception is deployed Problems are monitored Elaboration Modelling Transition

Re-Iteration Inception Production Feedback results in new iteration for next release Modelling Elaboration Transition Unified Process Inception Production Elaboration Modelling Transition Unified Process Inception Draws on best features of conventional Production process models Emphasizes software architecture and Integrates with UML modeling techniques (more on this later) Modelling Elaboration Transition

If a traditional process is like a battleship, protected against everything that might happen an agile process is like a speedboat, being able to change direction very quickly Manifesto for Agile 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? Features al Model #3 #1 #2 Time

Agile Processes Time Waterfall Iterative Agile Processes Test Implement Design Analyse Scope Credits: Prof. Bodik 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, and development are interleaved. Analysis,, construction, and ing are not as predictable.

So, how to tackle unpredictability? make the process adaptable... Extreme Programming (1999 ) Design Test Coding Design In XP, planning takes place by means Test of stories Each story captures essential behavior Coding

Extreme Programming Design Test Coding Extreme Programming Design 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 Design Test Coding

Coding Each story becomes a unit that serves as specification The program is Test continuously refactored to have the match the stories Design Coding Coding To Design ensure continuous review, XP mandates pair programming Test Coding Extreme Programming Design Test Coding

Testing Test Design Unit s detect errors find Coding missing functionality measure progress Extreme Programming Design Test The resulting prototypes result in Coding new stories Extreme Programming Design Extreme Programming is fast with multiple deliverables per day! Test Coding

Spot the Difference So, aren t agile techniques just and fix in disguise? Why not? (Hint: Think about explicit requirements, and explicit quality assurance) Scrum Scrum = iterative and incremental agile software development method for managing software projects and product or application development. In rugby, a scrum refers to the manner of restarting the game after a minor infraction. 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 ing 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) 1. Core Use Case 2. Top Layer Bottom Layer 3. May-Haves http:// geekandpoke.typep ad.com/ geekandpoke/ 2012/05/ developmentcycle.html Summary