Top Banner
The software production process Projectmanagement or software proces models?
53

Software Process Models

Jan 17, 2015

Download

Software

Rody Middelkoop

Lecture notes about picking the right (combination) of software process models.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Process Models

The software production process

Projectmanagement or software proces models?

Page 2: Software Process Models

Goal

• Choose the best process (or combination of processes) for your project.

Page 3: Software Process Models

What is Project Management?

• Project management encompasses all the activities needed to plan and execute a project: – Deciding what needs to be done – Estimating costs – Ensuring there are suitable people to undertake the project– Defining responsibilities – Scheduling – Making arrangements for the work – Describe and handle risks– continued ...

Page 4: Software Process Models

Software Process Models

• Software process models are general approaches for organizing a project into activities. – Helps to decide:• What work should be done;• In what sequence to perform the work.

– The models should be seen as aids to thinking, not rigid prescriptions of the way to do things.

– Each project ends up with its own unique plan.

Page 5: Software Process Models
Page 6: Software Process Models

Analysis 2%

Specification5%

Module Testing7%

Integration8%

Maintenance67%

Cost of making software?

Module Coding5%

Design 6%

[Schach]

Page 7: Software Process Models

Life cycle

• The life cycle of a software product– from inception of an idea for a product through• requirements gathering and analysis• architecture design and specification• coding and testing• delivery and deployment• maintenance and evolution• retirement

Page 8: Software Process Models

Software process model

• Attempt to organize the software life cycle by• defining activities involved in software production• order of activities and their relationships

• Goals of a software process– standardization, predictability, productivity, high

product quality, ability to plan time and budget requirements

Page 9: Software Process Models

Level 1 – Ad Hoc

Page 10: Software Process Models

Code&Fix

• The earliest approach • Write code• Fix it to eliminate any errors that have been detected,

to enhance existing functionality, or to add new features

• Source of difficulties and deficiencies– impossible to predict– impossible to manage

• JBF

Page 11: Software Process Models

Models are needed

• Symptoms of inadequacy: the software crisis– scheduled time and cost exceeded– user expectations not met– poor quality

• The size and economic value of software applications required appropriate "process models"

Page 12: Software Process Models

Models are needed

Page 13: Software Process Models

Process model goals (B. Boehm 1988)

“Determine the order of stages involved in software development and evolution, and to establish the transition criteria for progressing from one stage to the next. …. Thus a process model addresses the following software project questions:– What shall we do next?– How long shall we continue to do it?"

Page 14: Software Process Models

Process as a "black box"

Product

Process

Informal Requirements

Page 15: Software Process Models

Process as a "white box"

Product

Process

Informal Requirements

feedback

Page 16: Software Process Models

Overview of software process models

Page 17: Software Process Models

Level 2 - Repeatable

Page 18: Software Process Models

Waterfall models (1)

• Invented in the late 1950s for large air defense systems, popularized in the 1970s

• They organize activities in a sequential flow• Exist in many variants, all sharing sequential

flow style

Page 19: Software Process Models
Page 20: Software Process Models

Waterfall models (2)

• Organizations adopting them standardize the outputs of the various phases (deliverables)

• May also prescribe methods to follow in each phase– organization of methods in frameworks often

called methodology• Example: Military Standard (MIL-STD-2167)

“If the computer program in question is being developed for the first time, arrange matters so

that the version finally delivered to the customer is actually the second version.”

Page 21: Software Process Models

Critical evaluation of the waterfall model

+ software process subject to discipline, planning, and management

+ postpone implementation to after understanding objectives

– linear, rigid, monolithic– no feedback– no parallelism– a single delivery date

Page 22: Software Process Models

Problems with waterfall

• Estimates made when limited knowledge available

• Difficult to gather all requirements once and for all– users may not know what they want– requirements cannot be frozen

Page 23: Software Process Models

Waterfall?

Page 24: Software Process Models

Example of list of documentation in a waterfall project (DeGrace and Stahl)

• Original Problem Statement• Options Analysis Document• Cost-Benefit Analysis

Document• Requirements document• Preliminary Program Plan:• Alternatives Analysis

Document• Functional Specification

Document• Preliminary Design Document• User's Guide

• Programmer's Guide• User Test Plan• User Training Plan• Test Plan Outlines• Test Reports• Installation Plan• ….

Page 25: Software Process Models

Alternatives – Sashimi

Page 26: Software Process Models

Alternatives – Staged Delivery

Page 27: Software Process Models

Level 3 - Defined

Page 28: Software Process Models

Evolutionary models

• Many variants available• Product development evolves through

increments– Evolutionary prototyping (McConnell)– Evolutionary process model (B. Boehm, 1988)

Page 29: Software Process Models

Spiral Model (Boehm)

Page 30: Software Process Models

Incremental development

• Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality

• User requirements are prioritised and the highest priority requirements are included in early increments

• Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve

Page 31: Software Process Models

Level 4 - Managed

Page 32: Software Process Models

Unified Process

• Development of an OO system• Uses the UML notation throughout the

process• Supports an iterative and incremental process• Decomposes a large process into controlled

iterations (mini projects)• Different flavours available: UP, RUP, AUP,

UPEDU, EUP

Page 33: Software Process Models

Increment?

• Increment refers to the quantifiable outcome of each iteration

• Increment has the obvious implication that there should be more of something at the end of an iteration than there was at the start.

• Incremental development is a staging and scheduling strategy ‘’in which the various parts of the system are developed at different times or rates, and integrated as they are completed.’’

Page 34: Software Process Models

Iteration?

• Iteration refers to the cyclic nature of a process in which activities are repeated in a structured manner.

• Iterative development is a rework scheduling strategy ‘’in which time is set aside to revise and improve parts of the system.’’

Page 35: Software Process Models

RUP

InceptionElaborationConstructionTransition

Page 36: Software Process Models

Iteration

Page 37: Software Process Models

Iterative and incremental

Product vs Process:• Incremental fundamentally

means add onto. Incremental development helps you improve your process.

• Iterative fundamentally means re-do. Iterative development helps you improve your product.

In Code:

while ( project.isRunning() ) {project.bugsFixed++;project.featuresComplete++;

}

Page 38: Software Process Models

Distribution of workflows over phases

Page 39: Software Process Models

Level 5 - Optimized

Page 40: Software Process Models

Remember waterfall?

Page 41: Software Process Models

Work together!

Page 42: Software Process Models

Agile methodologies

• A group of methodologies developed in the 90ties• Addresses changes in industry: SE processes to sluggish for

quickly developing business processes• Examples: Evo, Extreme Programming, Feature Driven

Development, Scrum, Smart• Common features:

– Avoid big upfront design, requirements will change anyway– Only address some priority features at a time– Automate standard routines, in particular build and deployment– Validate results automatically (automated testing)– Design evolves, tool supported refactoring is used

Page 43: Software Process Models

Scrum

• Focus on softwaredevelopment without defining phases and workproducts, only focus on increments through sprints

• “Getting things done”• Roles:– Scrum Master– Product Owner– Teammember

• Ceremonies• Especially useful for experienced developers

Page 44: Software Process Models

Scrum

Page 45: Software Process Models

Agile & UX

Page 46: Software Process Models

Agile & UX

Page 47: Software Process Models

Extreme programming

• Approach to development based on the development and delivery of very small increments of functionality

• Relies on constant code improvement, user involvement in the development team and pairwise programming

Page 48: Software Process Models

Extreme Programming

Page 49: Software Process Models

Extreme Programming

Page 50: Software Process Models

Smart

• Collection of lots of agile best practices– Stand-ups– Iterative and Incremental– Describes workproducts and phases– Planning poker– Smart use cases and smart estimation– On-site customer

Page 51: Software Process Models

Selection criteria for lifecycle models

Page 52: Software Process Models

Conclusion

Page 53: Software Process Models

Resources

• http://computerworld.nl/article/11491/wat-is-sdm.html• http://www.infoq.com/news/2010/02/flavors-of-unified-pro

cess• http://www.extremeprogramming.org/• http://www.scrumalliance.org/learn_about_scrum• http://www.accelerateddeliveryplatform.com/SmartIteratio

nCycle.ashx• http://alistair.cockburn.us/Incremental+versus+iterative+de

velopment

• http://www.slideshare.net/whafro/design-and-ux-in-an-agile-process-presentation

• McConnell, S. (1996). Rapid Development, Redmond: Microsoft Press. ISBN 1-55615-900-5