Chapter 7: Software production process Refers to the activities that are used for building,...

24
Chapter 7: Software production process Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from inception of an idea all the way to the delivery and final retirement of the system

Transcript of Chapter 7: Software production process Refers to the activities that are used for building,...

Page 1: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Chapter 7: Software production Chapter 7: Software production processprocess

Refers to the activities that are used for building,

delivering, deploying, and evolving a software product, from inception of an idea all the way to the delivery and

final retirement of the system

Page 2: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Life cycle Life cycle (Overview of different Activities)(Overview of different Activities)

The life cycle of a software product:The life cycle of a software product: from inception of an idea for a product from inception of an idea for a product

towards:towards: requirements gathering and analysisrequirements gathering and analysis architecture design and specificationarchitecture design and specification coding and testingcoding and testing delivery and deploymentdelivery and deployment maintenance and evolutionmaintenance and evolution retirementretirement

Page 3: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Software process modelSoftware process model

Attempt to organize the software life Attempt to organize the software life cycle bycycle by

defining activities involved in software defining activities involved in software productionproduction

order of activities and their relationshipsorder of activities and their relationships

GGoals of a software processoals of a software process standardization, predictability, standardization, predictability,

productivity, high product quality, productivity, high product quality, ability to plan time and budget ability to plan time and budget requirementsrequirements

Page 4: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Code & FixCode & Fix

The earliest approachThe earliest approach Write codeWrite code Fix it to Fix it to eliminate any errorseliminate any errors that have that have

been detected, to been detected, to enhance existing enhance existing functionalityfunctionality, or to , or to add new featuresadd new features

Source of difficulties and deficienciesSource of difficulties and deficiencies impossible to predictimpossible to predict impossible to manageimpossible to manage CMM initial phaseCMM initial phase

Page 5: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Models are neededModels are needed

Symptoms of inadequacy: the Symptoms of inadequacy: the software crisissoftware crisis scheduled time and cost exceededscheduled time and cost exceeded user expectations not metuser expectations not met poor qualitypoor quality

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

Page 6: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Process model goals Process model goals (B. Boehm 1988)(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. These include completion criteria for the current stage plus choice criteria and entrance criteria for the next stage. Thus a process model addresses the following software project questions:

What shall we do next?How long shall we continue to do it?"

Page 7: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Process as a "black box"Process as a "black box"

Product

Process

Informal Requirements

Quality?Uncertain /Incomplete requirementIn the beginning

Page 8: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

ProblemsProblems

The assumption is that requirements The assumption is that requirements can be fully understood prior to can be fully understood prior to developmentdevelopment

Interaction with the customer occurs Interaction with the customer occurs only at the beginning (requirements) only at the beginning (requirements) and end (after delivery)and end (after delivery)

Unfortunately the assumption almost Unfortunately the assumption almost never holdsnever holds

Page 9: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Process as a "white box"Process as a "white box"

Product

Process

Informal Requirements

feedback

Page 10: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Waterfall Software Process Waterfall Software Process model (1)model (1)

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

They organize activities in a They organize activities in a sequential flowsequential flow

Exist in many variants, all sharing Exist in many variants, all sharing sequential flow stylesequential flow style

Page 11: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Feasibility study

Requirements

Design

Coding and module testing

Integration and system testing

Delivery, deployment, and maintenance

A waterfall model

Page 12: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Waterfall models (2)Waterfall models (2)

Organizations adopting them Organizations adopting them standardize the outputs of the standardize the outputs of the various phases (various phases (deliverablesdeliverables))

May also prescribe methods to May also prescribe methods to follow in each phasefollow in each phase organization of methods in organization of methods in

frameworks often called frameworks often called methodologymethodology Example: Military Standard (Example: Military Standard (MIL-MIL-

STD-2167STD-2167))

Page 13: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Critical evaluation of the Critical evaluation of the waterfall modelwaterfall model

Software process subject to Software process subject to discipline, planning, and discipline, planning, and management.management.

Postpone implementation to after Postpone implementation to after understanding objectives.understanding objectives.

Linear, rigid, monolithic:Linear, rigid, monolithic: No feedbackNo feedback No parallelismNo parallelism A single delivery dateA single delivery date

Page 14: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Feasibility study

Requirements

Design

Coding and module testing

Integration and system testing

Delivery, deployment, and maintenance

Waterfall with feedback

Page 15: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Problems with waterfallProblems with waterfall

Estimates made when limited Estimates made when limited knowledge availableknowledge available

Difficult to gather all requirements Difficult to gather all requirements once and for allonce and for all users may not know what they wantusers may not know what they want requirements cannot be frozenrequirements cannot be frozen

Page 16: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Evolutionary modelsEvolutionary models

Many variants availableMany variants available Product development evolves through Product development evolves through

incrementsincrements "do it twice" (F. Brooks, 1995)"do it twice" (F. Brooks, 1995) evolutionary prototypeevolutionary prototype

Evolutionary process model (B. Boehm, Evolutionary process model (B. Boehm, 1988)1988)""model whose stages consist of expanding model whose stages consist of expanding

increments of an operational software increments of an operational software product, with the direction of evolution being product, with the direction of evolution being determined by operational experiencedetermined by operational experience""

Page 17: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 17

Spiral modelB. Boehm, 1989

Spiral Model

Page 18: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 18

Unified Software Unified Software Development ProcessDevelopment Process

(UP)(UP)

Page 19: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 19

PrinciplesPrinciples

Industry standard process model, initiated by Industry standard process model, initiated by Ericsson, then Objectory and Rational Ericsson, then Objectory and Rational companiescompanies

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

process: process: Different views that are informal and not Different views that are informal and not

necessarily consistent.necessarily consistent. Supports an Supports an iterativeiterative and and incrementalincremental process process Decomposes a large process into controlled Decomposes a large process into controlled

iterations (iterations (mini projectsmini projects))

Page 20: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 20

UML ModelsUML Models

Page 21: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 21

Unified Process (UP)Unified Process (UP) Underlying model:Underlying model:

Any large software project should be broken into Any large software project should be broken into controlled iterationscontrolled iterations (mini-projects) that provide (mini-projects) that provide increments of the productincrements of the product

A UP life cycle can be depicted abstractly as a A UP life cycle can be depicted abstractly as a sequence of cycles from the project’s inception to its sequence of cycles from the project’s inception to its termination.termination.

Each cycle outputs a product release - (I.e., ready for Each cycle outputs a product release - (I.e., ready for delivery). delivery).

The output is complete and consistent set of artifacts, The output is complete and consistent set of artifacts, including the executable code and all the needed including the executable code and all the needed documents (requ, design, tests, ..), specified in UML.documents (requ, design, tests, ..), specified in UML.

Each cycle in turn is divided into a sequence of four Each cycle in turn is divided into a sequence of four phases, where each phase terminates with in a phases, where each phase terminates with in a milestone that is used for project control.milestone that is used for project control.

Page 22: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 22

Phases of a UP cyclePhases of a UP cycleimportantimportant

InceptionInception: roughly corresponds to feasibility study; that is : roughly corresponds to feasibility study; that is documenting a vision of the product and a business analysis to documenting a vision of the product and a business analysis to justify why this product should be developed. justify why this product should be developed.

ElaborationElaboration: defining use cases and software architecture for : defining use cases and software architecture for the current release, where the architecture will become a the current release, where the architecture will become a baseline baseline that must be agreed on and stakeholders must adhere that must be agreed on and stakeholders must adhere to it.to it.

ConstructionConstruction: building the product through enriching the : building the product through enriching the architecture’s architecture’s baseline baseline and developing and testing the code. and developing and testing the code. Milestone for this phase is quality control via validation Milestone for this phase is quality control via validation checking.checking.

TransitionTransition: corresponds to beta testing. A trusted set of early : corresponds to beta testing. A trusted set of early adopters tries the product and provides reports on possible adopters tries the product and provides reports on possible defects. Either fixed or deferred to next release. defects. Either fixed or deferred to next release.

Milestone: consists of delivering an intermediate set of artifacts Milestone: consists of delivering an intermediate set of artifacts that can be subject to quality control via reviews and inspections.that can be subject to quality control via reviews and inspections.

Page 23: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 23

Unified Process Cycles and phases of a cycleUnified Process Cycles and phases of a cycle

time

death

cycle1 ... cycle2 cycle n

product releases

milestone

product release Inception Elaboration Construction Transition

Intermediate set of artifacts for quality control

Page 24: Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.

Ch. 7 24

Distribution of workflows over phasesDistribution of workflows over phases

inception elaboration construction transition

Iter1 Iter2 ... ... ... ... ... ... ... ... Iter n

Requirements

Analysis

Design

Implementation

Testing

-Feasibility

- Use cases - Architecture- Base line

-Develop-Test-Quality check

-Beta test