KEMBAR78
Agile and plan based development processes | PPTX
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 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 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 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

Agile and plan based development processes