20
1 Software Engineering process models Hamza Mohammed Naji 120090117

1 Software Engineering process models Hamza Mohammed Naji 120090117

Embed Size (px)

Citation preview

Page 1: 1 Software Engineering process models Hamza Mohammed Naji 120090117

1

Software Engineering process models

Hamza Mohammed Naji120090117

Page 2: 1 Software Engineering process models Hamza Mohammed Naji 120090117

2

New or changed

requirements

New or changed

system

Software EngineeringProcess

What Is a Software Engineering Process?

A process defines Who is doing What, When and How in the development of a software system– Roles and workflows

– Work products

– Milestones

– Guideline

– …

Page 3: 1 Software Engineering process models Hamza Mohammed Naji 120090117

3

Process & Product

Processmodel

Project

Product

People

Tools

Template

Participants

Result

Automation

Page 4: 1 Software Engineering process models Hamza Mohammed Naji 120090117

4

An Effective Process ...

• Provides guidelines for efficient development of quality software

• Reduces risk and increases predictability • Captures and presents best practices

– Learn from other’s experiences– Mentor on your desktop– Extension of training material

• Promotes common vision and culture• Provides roadmap for applying tools• Delivers information on-line, at your finger tips

Page 5: 1 Software Engineering process models Hamza Mohammed Naji 120090117

5

Lightweight vs. Heavyweight Processes

Document drivenElaborate workflow definitionsMany different rolesMany checkpointsHigh management overheadHighly bureaucratic

Focus on working coderather than documentationFocus on direct communication(between developers andbetween developers and the customer)Low management overhead

Heavyweighte.g., V-Process

CustomizableFrameworke.g., RationalUnifiedProcess (RUP)

Agile (Lightweight)e.g., eXtremeProgramming (XP)

Page 6: 1 Software Engineering process models Hamza Mohammed Naji 120090117

6

• Process used should depend on type of product which is being developed– For large systems, management is usually the

principal problem so you need a strictly managed process. For smaller systems, more informality is possible.

• High costs may be incurred if you force an inappropriate process on a development team

Process choice

Page 7: 1 Software Engineering process models Hamza Mohammed Naji 120090117

7

Build and Fix Model

• Properties– No planning or analysis– The working program is the only

workproduct• Advantage

– Appropriate for small programs written by one person

• Disadvantage– Understandability and maintainability

decrease rapidly with increasing program size

– Totally unsatisfactory– Need a life-cycle model

• “Game plan” • Phases• Milestones

Page 8: 1 Software Engineering process models Hamza Mohammed Naji 120090117

8

Waterfall Model

• Characterized by– Sequential steps (phases)– Feedback loops (between two phases in

development)– Documentation-driven

• Advantages – Documentation– Maintenance easier

• Disadvantages– Complete and frozen specification document up-

front often not feasible in practice– Customer involvement in the first phase only– Sequential and complete execution of phases

often not desirable– Process difficult to control– The product becomes available very late in the

process

Page 9: 1 Software Engineering process models Hamza Mohammed Naji 120090117

9

Rapid Prototyping Model

• Rapid prototyping phase followed by waterfall– Do not turn the rapid prototype into the product– Rapid prototyping may replace the specification phase—never the design phase

• Comparison:– Waterfall model—try to get it right the first time– Rapid prototyping—frequent change, then discard

Page 10: 1 Software Engineering process models Hamza Mohammed Naji 120090117

10

Advantages and Disadvantages

• Advantages– Requirements better specified and validated– Early feasibility analysis– Strong involvement of the customer in the prototyping phase

• Disadvantage– Higher development effort– Danger that due to schedule slip, the prototype becomes part

of the product

Page 11: 1 Software Engineering process models Hamza Mohammed Naji 120090117

11

Incremental

Design Coding Test Deployment

Design Coding Test Deployment

Design Coding Test Deployment

Requirem

ents

Release 1

Release 2

Release 3

Page 12: 1 Software Engineering process models Hamza Mohammed Naji 120090117

12

Incremental Model (contd)

• Waterfall, rapid prototyping models– Operational quality complete product at end

• Incremental model– Operational quality portion of product within weeks

• Less traumatic• Smaller capital outlay, rapid return on investment

Page 13: 1 Software Engineering process models Hamza Mohammed Naji 120090117

13

Evolutionary

Design Coding Test DeploymentRequirements

Design Coding Test DeploymentRequirements

Design Coding Test DeploymentRequirements

Feedback

Version 1

Version 1

Version 1

Page 14: 1 Software Engineering process models Hamza Mohammed Naji 120090117

14

Evolutionary Model (contd)

• Advantages– Constant customer involvement and validation– Allows for good risk management

• Disadvantages– Build-and-fix danger– Contradiction in terms

Page 15: 1 Software Engineering process models Hamza Mohammed Naji 120090117

15

Spiral model

• Waterfall model plus risk analysis preceding each phase and evaluation following each phase

• Prototyping for high-risk specifications• Radial dimension: cumulative cost to date• Angular dimension: progress through the spiral• If all risks cannot be resolved, the project is

immediately terminated• Appropriate only for big projects (high

management overhead)

Page 16: 1 Software Engineering process models Hamza Mohammed Naji 120090117

16

Spiral model

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2Prototype 3

Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

CodeUnit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Evaluate alternativesidentify, resolve risks

Determine objectivesalternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

Page 17: 1 Software Engineering process models Hamza Mohammed Naji 120090117

17

Process model risk problems• Waterfall

– High risk for new systems because of specification and design problems

– Low risk for well-understood developments using familiar technology

• Prototyping– Low risk for new applications because specification

and program stay in step– High risk because of lack of process visibility

• Evolutionary and Spiral– Middle ground between waterfall and prototyping

Page 18: 1 Software Engineering process models Hamza Mohammed Naji 120090117

18

Hybrid process models• Large systems are usually made up of several

sub-systems• The same process model need not be used for

all subsystems• Prototyping for high-risk specifications• Waterfall model for well-understood

developments• Taylor the process to a problem

Page 19: 1 Software Engineering process models Hamza Mohammed Naji 120090117

19

Use of the Models in Practice

Page 20: 1 Software Engineering process models Hamza Mohammed Naji 120090117

20

• The fundamental problem with software– The software process is badly managed

• Understanding existing processes

• Introducing process changes to achieve organisational objectives which are usually focused on quality improvement, cost reduction and schedule acceleration

Process improvement