agile and plan based development processes

41
Agile and plan-based software processes Software Engineering 10

Upload: sommerville-videos

Post on 16-Jul-2015

176 views

Category:

Technology


0 download

TRANSCRIPT

Agile and plan-based software

processes

Software Engineering 10

Software process

A structured set of activities for

software development

Specification – defining what the software should do

Design– defining the organization and structure of the system

Implementation and testing –programming the system and checking that it does what the customer wants;

Evolution – changing the system in response to changing customer needs.

Implementation and testing–programming the system and checking that it does what the customer wants;

Plan-driven and agile processes

Plan-driven processes are processes

where all of the process activities are

planned in advance and progress is

measured against this plan.

In agile processes, planning is

incremental and it is easier to

change the plan and the software to

reflect changing customer

requirements.

In practice, most practical processes

include elements of both plan-driven

and agile approaches.

Different types of system need

different software processes

The waterfall model of software

processes

The waterfall model

Chapter 2 Software Processes

1230/10/2014

The waterfall model is used in

systems engineering projects where

a system is developed at several

sites.

The plan-driven nature of the

waterfall model helps coordinate the

work.

Inflexible partitioning of the project

into distinct stages makes it difficult

to respond to changing customer

requirements.

Inflexible partitioning of the project

into distinct stages makes it difficult

to respond to changing customer

requirements.

Waterfall processes are only

appropriate when the requirements

are well-understood and changes

limited during the design process.

Few business systems have stable

requirements..

Agile software processes.

Based on incremental development

where process activities are

interleaved

Short iterations (2-4 weeks)

.

Minimal documentation

Aim is to be responsive to change

and reduce the time required to

deliver useful functionality to users

.

Incremental development

Chapter 2 Software Processes

2030/10/2014

The cost of implementing changes to

customer requirements is reduced.

The amount of analysis and

documentation that has to be redone

is less than is required with the

waterfall model.

.

It is easier to get customer feedback

on the development work.

Customers can comment on

demonstrations of the software and

see how much has been

implemented.

.

Rapid delivery and deployment of

useful software to the customer is

possible.

Customers are able to use and gain

value from the software earlier than

is possible with a waterfall process.

.

Problems with incremental

development.

The process is not visible.

Documents help managers assess

progress but in agile processes

systems it is not cost-effective to

document every version of the

system.

.

System structure tends to degrade

as new increments are added.

Unless time and money is spent on

refactoring to improve the software,

regular change usually corrupts its

structure.

.

Integration and reuse

Systems are integrated from existing

components or application systems.

Reused elements may be configured

to adapt their behaviour and

functionality to user requirements

.

Systems are integrated from existing

components or application systems.

Reused elements may be configured

to adapt their behaviour and

functionality to user requirements

.

Types of reusable software

.

Stand-alone application systems that

are configured for use in a particular

environment.

.

Reusable components that are

integrated with other reusable and

specially written components

.

Web services that are developed

according to service standards and

which are available for remote

invocation.

.

Reuse-oriented software engineering

Chapter 2 Software Processes

3430/10/2014

Reuse based development is a mix of

plan-based and agile development

Requirements are planned in

advance but an iterative and agile

approach can be taken to design and

implementation

Requirements specification

Software discovery and evaluation

Requirements refinement

.

Plan-based

Long lifetime, critical and

embedded systems

.

Agile

Software products and apps

.

Plan-based/agile

Business systems

.

Download the slides used here from

http://www.slideshare.net/sommerville-videos