Software Processes. Chapter 2. CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville.

Similar documents
Software Processes 1

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

SWE 211 Software Processes

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

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

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

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

The software process

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Agile Manifesto & XP

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

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

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

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

The Systems Development Lifecycle

SDLC Models- A Survey

Course Organization. Lecture 1/Part 1

Software Engineering

CMPT 275 Software Engineering

Chapter 8 : Informatics Practices. Software engineering- Process activities and Agile methods. Class XII ( As per CBSE Board) New Syllabus

Software Engineering. M Umair.

CMSC 435: Software Engineering Section Back to Software. Important: Team Work. More Resources

03. Perspective Process Models

Software Design COSC 4353/6353 D R. R A J S I N G H

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

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Requirements engineering

Explore Comparative Analysis Software Development Life Cycle Models

Introduction to Software Engineering

CONTENTS. Introduction to Software Engineering. Software Process and Life Cycle Models. Software Life-Cycle Model-2. Chapter 1. Chapter 2.

What is Software Engineering?

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

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

Chapter 3 Prescriptive Process Models

Reducing Business Risk

SDLC Submitted in partial fulfillment of the requirement for the award of Degree of Computer Science

Chapter 9 Software Evolution and Maintenance. Chapter 9 Software evolution

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

Rapid software development

Software Engineering Part 2

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

DS L3: Software Design

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Agile Test Plan How to Construct an Agile Test Plan

Lecture 8 Agile Software Development

Software Engineering COMP 201

Chapter 6: Software Evolution and Reengineering

CS 5704: Software Engineering

Software Engineering in the Agile World. Table of contents

3. Comparison of Above Described SDLC Models

The Software Life Cycle

The Top Thrill Dragster

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

2068 I. Attempt any ten questions. (10x6=60)

Joined-up Requirements: Business Goals to System Tests

Watson Internet of Things. Agile Development Why requirements matter

The tension between agile and architecture

Agile Software Development

Chapter 3 Agile Software Development

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

A New Divide & Conquer Software Process Model

Software Engineering QUESTION BANK

Chapter 3 Software Process Model

Software Engineering Chap.3 - Agile Software Development

Lecture 5. Software Processes CSC 4700 Software Engineering. Software Development Processes. The software process

Research Article / Paper / Case Study Available online at: Analysis of Strengths and Weakness of SDLC Models Shikha Verma Delhi India

Scrum. an Agile Process

Business Analysis Essentials

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

Agile BI: how it works & how to do it. Tom Breur IRM DW & BI Conference Europe London, 6 November 2012

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

Introduction to Agile/Extreme Programming

Agile Thinking. Petri Heiramo. Agile Coach, CST

A Review Paper on Software Testing

Software Engineering Lecture 5 Agile Software Development

Software Estimation Is the problem solved? Sanathanan Rajagopal CAAS

Owning An Agile Project: PO Training Day 2

Foundations of software engineering

Scrum an Agile Process

PMINJ Chapter 02 May Symposium Hybrid Agile The Best of Both Worlds

Service Validation, Incremental and Iterative Development

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

Business Analyst. Purpose of the position. Organisational position / Virtual Team. Reporting to: Direct Reports: 0. Date Created: July 2018

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

Agile BI & Data Virtualization. Tom Breur BI & IM Symposium Bussum, 26 November 2012

Chapter 3 Agile Software Development. Part 1b

V&V = the Verification and Validation of Deliverables

Software Processes. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University

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

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

[control] [data] [process] [strategy] [partners] [testing] [validation]

Requirements Engineering

Managing in the Global Environment

Agile Development Processes. CSCE Lecture 3-08/31/2017

Agile Essentials Track: Business Services

Software development processes: from the waterfall to the Unified Process

Software Engineering

Systems Engineering for Software Intensive Projects Using Agile Methods

The Product Creation Process

Transcription:

Software Processes Chapter 2 CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville. 18-05-15 Slides #4 1

Topics 1) What activities are part of software development 2) What are software process models? 18-05-15 2

Process Activities 18-05-15 3

The software process Software Process: All software processes involve: Specification what will the system do? Design & implementation how will it do this?.. Validation does it do what the customer wants? Evolution change system to meet customer's changing needs. A software process model is.. 18-05-15 4

Software Specification Software specification: establishing what services are required and.. Is it technically and financially feasible to build the system? What do the system stakeholders require or expect? Use gathered information to write a requirements document. Check the validity of the requirements 18-05-15 5

Software design and implementation Process to convert system specification into an executable system. System Specification Software structure Executable system Design and implementation are closely related and.. Design Activity Description Architectural Design Identify overall structure of the system & principle components:.. UI design Component design Database design Layout initial ideas for user interface (UI). Design each system component Design the system's data structures and database 18-05-15 6

Software validation Validation checks the system conforms to its.. Involves testing Create test cases which ensure system behaves correctly for some component/feature. Best if using real-world data Can Involve Formal Verification.. Hard in practice; often restricted to critical components of life-critical components. 18-05-15 7

Testing Stages Individual functions or objects are.. May test coherent groupings of objects. Testing of system.. Testing of emergent properties is particularly important. Testing with.. to check that system meets customer s needs. 18-05-15 8

Software evolution Software is inherently flexible and can change. Software must change to meet new business needs Most of a project's time and cost associated with... Programming stereotype is: development is creative and interesting, but maintenance is dull. This is increasingly irrelevant as most.. Line between old and new is blurring. 18-05-15 9

So, what's the process to develop software? Software Processes 18-05-15 10

Software processes Describe each process by: such as designing how data is stored, or the user interface, etc All processes involve the four basic activities specification, development, validation and evolution. 2 Big Questions Done up front? Or as you go? Done at the end? Or multiple times? 18-05-15 11

(Planning) Paradigms Plan-driven processes: Also called Big Design Up Front (BDUF). Agile processes: Easier to change the process to reflect changing customer requirements. Most practical processes include elements of both plan-driven and agile approaches. 18-05-15 12

Delivery Single Delivery (at end) Software only delivered to customer.. Incremental Delivery Customer is given.. of the software throughout development. Single Delivery Incremental Delivery Time during development... 18-05-15 13

High-level View of Software Processes.... Plan Driven (BDUF) Single Delivery Incremental Delivery Plan Driven Incremental Model, Spiral Model Evolutionary Planning Describe what a course assignment would look like for each of these 4 possibilities... 18-05-15 14

Software process models The waterfall model Plan-driven model Separate and distinct phases of specification and development. Incremental development Specification, development and validation are.. Agile Lightweight process to adapt to changing requirements. Most large systems developed using a process that incorporates elements from multiple models. 18-05-15 15

Waterfall model phases 18-05-15 16

Waterfall model problems Must complete phase N before starting phase N+1. Waterfall model is (somewhat) appropriate when.. Few business systems have stable requirements. Plan-driven nature of the waterfall model helps.. However waterfall is so rigid it is virtually never used as a full methodology. Walking on water and developing software from a specification are easy if.. 18-05-15 17.. -- Edward Berard (1993)

Incremental development Waterfall model delivers full system to user.. Incremental development delivers.. Concurrent Activities Specification Outline description Development Released versions Validation 18-05-15 18

Incremental and its benefits Incremental development usable by either paradigm Plan Driven Models: Functionality of increments are.. Agile Models: Functionality of early increments are planned, later increments driven by... Reduced cost from changing customer requirements: Not as much.. Quick delivery of useful software. Easier to get customer feedback on working software rather than paper designs. Customer uses and gains value from the software earlier than with a single end delivery process. 18-05-15 19

Incremental development problems Code Rot: Incorporating code changes becomes increasingly difficult and costly. Time and money must be spent refactoring to improve the software. 18-05-15 20

Refactoring Refactoring Refactoring Examples rename a poorly named variable split huge function into smaller ones, improve OOD (object oriented design) fixing parts of the code which have.. 18-05-15 21

Agile Agile methodologies are lightweight: they try to.. Ex: Only as much documentation and planning as needed. Develop application in short iterations ~1-3 weeks long.. at start of each iteration... at end of each iteration. Very common in industry Whole slide-deck on it soon! 18-05-15 22

Summary Software processes are the activities involved in producing a software system. Requirements engineering: develop the specification. Design and implementation: transform requirements specification into an executable software system. Software validation: check the system conforms to its specification and meets the needs of its users. Software evolution: change existing software systems to meet new requirements. Process models describe a sequence of activities: waterfall model, incremental development, and agile development. 18-05-15 23