SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Similar documents
Incremental development A.Y. 2018/2019

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

SE420 - Software Quality Assurance

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Introduction to Software Engineering

Lecture 7: Software Processes. Refresher: Software Always Evolves

CMSC 435: Software Engineering Section 0201

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

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

Introduction to Extreme Programming

System Development Life Cycle Methods/Approaches/Models

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

defined. defined. defined. defined. defined. defined. defined. defined. defined.

Dilbert Scott Adams. CSc 233 Spring 2012

Chapter 1: Introduction to Systems Analysis

Objectives. Connecting with Computer Science 2

Adopting Agile Practices

Software Engineering Lifecycles. Controlling Complexity

SOFTWARE LIFE-CYCLE MODELS 2.1

Final Exam CISC 475/675 Fall 2004

Introduction to Software Engineering (ESE : Einführung in SE)

VO Software Engineering

Software Process. Software Process

CSC Advanced Object Oriented Programming, Spring Overview

Software Development Process Models

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

The requirements engineering process

Systems Analysis & Design

Introduction to Software Engineering

Requirements and Design Overview

((MARKS)) (1/2/3...) ((QUESTIO N)) ((OPTION_ A)) What is Software?

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

OO Project Management

The software lifecycle and its documents

Software Engineering

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Software Development Methodologies

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

Ch 4: Requirements Engineering. What are requirements?

TDDD04 Software Testing

HCI in the software process

HCI in the software. chapter 6. HCI in the software process. The waterfall model. the software lifecycle

Human Computer Interaction Lecture 14. HCI in Software Process. HCI in the software process

CS487 Midterm Exam Summer 2005

Testing in Agile Software Development

18-642: Software Development Processes

Software Prototyping Animating and demonstrating system requirements. Uses of System Prototypes. Prototyping Benefits

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

Software Engineering with Objects and Components Open Issues and Course Summary

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

Best Practices for Collecting User Requirements

Systems Analysis and Design in a Changing World, Fourth Edition

Incremental Programming

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams

The Process of Interaction Design

Chapter 1: Principles of Programming and Software Engineering

Software processes. Objectives. Contents

DESIGN. (Chapter 04)

Systems Analysis and Design

CS3500: Object-Oriented Design Fall 2013

Software specification and modelling. Requirements engineering

A Sophisticated Study on Best Practices of Agile Software Testing

Specifying and Prototyping

User-Centered Development

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Human Error Taxonomy

Chapter 4 Objectives

Testing in the Agile World

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

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

Human Computer Interaction Lecture 06 [ HCI in Software Process ] HCI in the software process

Agile Development

Executive Summary. Round Trip Engineering of Space Systems. Change Log. Executive Summary. Visas

Gradational conception in Cleanroom Software Development

Topics. CS5714 Usability Engineering. Typical Software Engineering LC. An Iterative, Evaluation- Centered Life Cycle For Interaction Development

The Process of Interaction Design DECO1200

Test Driven Development TDD

CMSC 447: Software Engineering I

Process of Interaction Design and Design Languages

Software Engineering

Basics : the Requirements Engineering Process

SharePoint 2013 Site Owner

Software Engineering I (02161)

Chapter 1: Programming Principles

Lecture 34 SDLC Phases and UML Diagrams

1: Software Development and.net. An approach to building software

No SVN checkout today. Object-Oriented Design

Requirements. CxOne Standard

Prototyping is the Short hand of Design Tom Kelly Prototyping. Prototyping is the short hand of Design Tom Kelly IDEO

Requirement Analysis

CS3724 Human-computer Interaction

Chapter 5. The Database Life Cycle. Class 04: Topic 3.1: The Database Life Cycle

Outline of Unified Process

Extreme programming XP 6

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

Certified Tester Foundation Level(CTFL)

ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow

CS3205: Task Analysis and Techniques

Transcription:

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming Slide 1 Lesson Objectives Understand major activities of software projects Understand the place of these in different lifecycle models Understand the pros and cons of different lifecycle models Know enough about the incremental delivery and extreme programming to use relevant parts Slide 2

Software life-cycle phases Requirements capture and analysis Specification Validation and verification Installation Maintenance Slide 3 Requirements Capture and Analysis Identify and agree general functional and nonfunctional requirements Prioritise requirements where possible Determine risk factors, cost analysis, development schedule Identify how customer might test completed system Identify likely changes and how to accommodate them Slide 4

Specification Says what the system does not how it does it Formal version of requirements specification, written by developer Developer identifies errors, omissions, or impracticalities in the requirements Crystalises precise functional and performance requirements Basis for formal contract, hence should contain sufficient explanation for customer to understand Should include detailed plan for acceptance test Slide 5 The problem with specification Stainless Steel Solid mahogany What product marketing specified group s initial design Pre-release version What the customer actually wanted What the salesman promised Architecture Group s modified design General release version Slide 6

We will focus on object-oriented design using UML Slide 7 Process of expressing the detailed design in a programming language so that it will run on the target computer Slide 8

Validation and Verification Verification: Are we building the product right? Validation: Are we building the right product? Verification Validation Req Analysis Req Analysis Spec Operation Spec Operation User User Feedback Slide 9 Unit tests Integration tests System and acceptance test Slide 10

Installation Create working version on target machine Make available all support files and manuals Coordinate with hardware Rerun acceptance test Training and on-line support Evaluation of project Slide 11 Maintenance and Support Corrective Adaptive Perfective Preventive Operation Common, but incorrect maintenance cycle Correct maintenance cycle Specification Slide 12

Software Documentation Documentation Slide 13 Life-Cycle Types Waterfall Rapid prototyping Evolutionary/incremental development Formal transformations model Spiral model Unified process (UP) Extreme programming (XP) Slide 14

Waterfall Model Requirements Capture Specification Operation Slide 15 How it often goes Slide 16

Formal Transformation Model Requirements Capture Formal specification Proof Proof Refinement 1 Refinement 2 Proof indicates formal process (in the mathematical sense) Refinement n (source code) Executable code Slide 17 Rapid Protoyping Requirements Capture Specification Prototype Operation Slide 18

Evolutionary/iterative Development Phase 1 Requirements Capture Specification Phase 2 Requirements Capture Phase n Requirements Capture Specification Specification Operation Operation Operation You should use iterative development only on projects that you want to succeed Martin Fowler, 2000 Slide 19 Spiral Model (Boehm) Deals with Iteration Identify risks Assign priorities to risks Develop a series of prototypes for the identified risks starting with the highest risk. Use a waterfall model for each prototype development ( cycle ) If a risk has successfully been resolved, evaluate the results of the cycle and plan the next round If a certain risk cannot be resolved, terminate the project immediately Slide 20

Spiral Model Slide 21 Unified Process (UP) Current state-of-the-art methodology Initially developed by designers of UML Structures project as a number of phases Each phase contains several iterations Different workflows (activities) are performed in each iteration Slide 22

Unified Process Outline The balance between workflows is different in different phases Slide 23 UML and the Unified Process UML is a language It defines diagrams which represent aspects of software systems UML s diagrams can be used in conjunction with many different processes (or even in the absence of a formal process) Because of their history, there is a close fit between UML and the UP Slide 24

Extreme Programming Principles Plan to release in small increments Test first Keep it simple Own it collectively Code to standards Integrate continuously Refactor Program in pairs Slide 25 Extreme Programming: Planning and Management Initial brief prototype phase Quickly determine scope of next release Put simple system into production quickly, then release new versions on a short cycle. Keep meetings short but frequent Involve the customer throughout Don t burn out Embrace change it will happen anyway Slide 26

Extreme Programming: Write unit tests for each method even before you start coding Tests provide a definition and documentation of the required behaviour Integrate and build the system every time a task is completed Slide 27 Extreme Programming: Keeping it simple System should be designed as simply as possible at any given moment Extra complexity is removed as soon as it is discovered Look for well known design patterns Refactor Slide 28

Extreme Programming: Coding All production code written by two programmers at one machine Anyone can change any code anywhere in the system at any time All code written to agreed standard that emphasizes communication throughout Slide 29...Real Software Life-Cycle? Requirements capture Coding Test and trial User documentation Architectural design Detailed design Functional specification Requirements definition Maintenance Lone genius has bright idea Friends drop by with more bright ideas Someone in accounts wants to play with it Someone in accounts can't remember how to drive it You must be joking '' '' 'Manager wants to know what you've been doing for the past year' 'Manager wants to know what xxxxx use it is' Impossible Slide 30

..Real Software Life-Cycle? Enthusiasm Disillusionment Panic Collapse Search for the guilty Punishment of the innocent Slide 31 Lesson Summary Some kind of defined life-cycle needed Classic waterfall is dead Different life-cycle models contain common key activities. Prototyping and evolutionary development approaches allow more user feedback Extreme programming is suitable for group project Slide 32