How To Understand The Software Process



Similar documents
CS4507 Advanced Software Engineering

The most suitable system methodology for the proposed system is drawn out.

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

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

Classical Software Life Cycle Models

Advanced Software Engineering. Software Development Processes

Software Project Management using an Iterative Lifecycle Model

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

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

COMP 354 Introduction to Software Engineering

Introduction to OpenUP (Open Unified Process)

Unit 1 Learning Objectives

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

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

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

Chap 1. Introduction to Software Architecture

Supporting Workflow Overview. CSC532 Fall06

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

3C05: Unified Software Development Process

Agile Unified Process

Software Process and Models

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

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

SOFTWARE PROCESS MODELS

Software Development Methodologies

A Comparison between Five Models of Software Engineering

Basic Unified Process: A Process for Small and Agile Projects

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Design Models, Tools & Processes *

Software Development Process

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

The Unified Software Development Process

Software Development Methodologies

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

Practical Agile Requirements Engineering

Software Engineering

Lifecycle Models: Waterfall / Spiral / EVO

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

Sistemi ICT per il Business Networking

Software Lifecycles Models

Software Life Cycles and Configuration Management

Lecture 3 Software Development Processes

Unit I. Introduction

Surveying and evaluating tools for managing processes for software intensive systems

An Assessment between Software Development Life Cycle Models of Software Engineering

Software Development Life Cycle (SDLC)

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

RUP for Software Development Projects

Software Engineering Reference Framework

Redesigned Framework and Approach for IT Project Management

A Rational Development Process

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

CSE 435 Software Engineering. Sept 16, 2015

A Comparison Between Five Models Of Software Engineering

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Software development processes Life-cycle Models

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

When is Agile the Best Project Management Method? Lana Tylka

Abstract. 1 Introduction

A Capability Maturity Model (CMM)

Chapter 2 Software Processes

To introduce software process models To describe three generic process models and when they may be used

How To Model Software Development Life Cycle Models

CHAPTER. Software Process Models

Quality Assurance Software Development Processes

Ob j ect-oriented Project Management with UML

ASSESSMENT OF SOFTWARE PROCESS MODELS

REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS

Increasing Development Knowledge with EPFC

Software Development Methodologies

The Software Life Cycle. CSE 308: Software Engineering

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Introduction to Software Engineering: Project Management ( Highlights )

Foundations of software engineering

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

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

Development Methodologies

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

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

Software Life Cycle Processes

White Paper IT Methodology Overview & Context

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

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

Effort Reduction in RUP using CRM for Project Development: Mapping the Best Practices of CRM into RUP

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

Time Monitoring Tool Software Development Plan. Version <1.1>

Agile Development in the Federal IT Environment

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

Software Engineering

Transcription:

Ingegneria del Software Corso di Laurea in Informatica per il Management Software process model Davide Rossi Dipartimento di Informatica Università di Bologna

The task of the software development team is to engineer the illusion of simplicity [G. Booch]

Software process model Process: set of coordinated activities leading to a goal Software process: the goal is software production / deployment / evolution / maintenance

The goal Planning / organizing / running a software project within given constraints, such as cost time resources (e.g. people) optimizing (and assessing) progress, quality, risk (profit, customer satisfaction,...)

Usual software process activities (a.k.a. The software lifecycle) Specification Design Implementation Validation Evolution

Deliverables Software is intangible, we may have lack of visibility, we must produce additional artifacts: Design documents/prototypes Reports Project/status meetings Client surveys (e.g. satisfaction level)

The waterfall model The waterfall model applies concepts from other engineering domains (manufacturing, construction,...) to software production. It is essentially composed by rigidly sequential activities.

The waterfall model Systems requirements Software requirements Analysis Program design Coding Testing Operations

The waterfall model Systems requirements Software requirements Analysis Program design Coding Testing Operations

The waterfall model Systems requirements Software requirements Analysis Program design Coding Testing Operations

Waterfall: pros and cons Pros Cons Easy to understand Enforces good practices Identify deliverables and milestones Identify artifacts (mainly documentation) Unrealistic Late delivery Ineffective risk management Hard to cope with changes High overhead

Spiral model Risk-driven approach (phased reduction of risk) The major distinguishing feature of the Spiral Model is that it creates a risk-driven approach to the software process. [Boehm] Iterative model Formalized in 1986 but used internally before that [Boehm 86]

Spiral model

Spiral model Each cycle starts with Objectives Alternatives Constraints The next step is determined on the basis of the risks remaining Each cycle ends with a review from the stakeholders (mutual commitment)

Spiral: pros and cons Pros Cons Reflects the iterative nature of software development Good visibility Risk assessment Risk analysis is far from trivial Complicated model, risks priorities could lead to late delivery High overhead

Iterative incremental development Involves early programming and testing of a partial system, in repeating cycles. It also normally assumes development starts before all the requirements are defined in detail; feedback is used to clarify and improve the evolving specifications. Research demonstrates that iterative methods are associated with higher success and productivity rates, and lower defect levels.

The waterfall model Has it ever existed? The usual reference for the waterfall model [Royce 70] describes it as fundamentally sound but suggests to extend it to embrace iterations!

The waterfall model Yet it became a military standard (DOD-STD-2167A)

Unified Process The Unified Process (UP) is an iterative and incremental software development process framework. The UP combines commonly accepted best practices, such as an iterative lifecycle and riskdriven development, into a cohesive and welldocumented process description.

Unified Process Iterative and incremental Use case-driven Architecture-centric Risk focused

Unified Process The Unified Process divides the project into four phases Inception Elaboration Construction Transition

Unified Process

Phases and iterations Inception Elaboration Construction Transition Prelim Iteration... Arch Iteration... Dev Iteration Dev Iteration... Trans Iteration... Milestone Vision Release Milestone Baseline Architecture Release Release Milestone Initial Capability Release Milestone Product Release

UP: inception Goals Business case/scope Use cases Candidate architectures Risk identification Ends with Lifecycle Objective Milestone

UP: elaboration Goals Address risks Validate architecture En executable architecture baseline is implemented Ends with a plan for the construction phase (includes costs and times)

UP: construction Goal Implement system features Uses timeboxed iterations producing a release Incremental refinement

UP: transition Goals Deploy the system User engagement Collect feedback Also includes training

UP: most known implementations Rational Unified Process (RUP) Agile Unified Process Open Unified Process (OpenUP) Oracle Unified Method