0% found this document useful (0 votes)
33 views18 pages

Process Models: 1 Chapter 2 Software Processes

The document discusses several software development process models: - Incremental development breaks development into versions with user feedback between each version. This reduces costs and allows earlier delivery of useful software. Problems include lack of visibility and degrading system structure over time. - Prototyping creates initial versions to demonstrate concepts and design options. Prototypes should be discarded after development and not used as the production system. - Incremental delivery breaks delivery into increments of partial functionality based on priority. This delivers value earlier but identifying common facilities needed across increments can be difficult. - Boehm's spiral model represents the process as a spiral of phases focusing on risk assessment, rather than distinct sequential phases. Each loop assesses risks and reduces

Uploaded by

Qaiyum Azad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views18 pages

Process Models: 1 Chapter 2 Software Processes

The document discusses several software development process models: - Incremental development breaks development into versions with user feedback between each version. This reduces costs and allows earlier delivery of useful software. Problems include lack of visibility and degrading system structure over time. - Prototyping creates initial versions to demonstrate concepts and design options. Prototypes should be discarded after development and not used as the production system. - Incremental delivery breaks delivery into increments of partial functionality based on priority. This delivers value earlier but identifying common facilities needed across increments can be difficult. - Boehm's spiral model represents the process as a spiral of phases focusing on risk assessment, rather than distinct sequential phases. Each loop assesses risks and reduces

Uploaded by

Qaiyum Azad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Process

Models

Chapter 2 Software Processes 1


Incremental development

Chapter 2 Software Processes 2


Incremental development benefits
 Incremental development is based on the idea of developing an initial
implementation, exposing this to user comment and evolving it through
several versions until an adequate system has been developed.
Specification, development, and validation activities are interleaved rather
than separate, with rapid feedback across activities.
 The cost of accommodating changing customer requirements is reduced.
 The amount of analysis and documentation that has to be redone is
much less than is required with the waterfall model.
 It is easier to get customer feedback on the development work that has
been done.
 Customers can comment on demonstrations of the software and see
how much has been implemented.
 More 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.

Chapter 2 Software Processes 3


Incremental development problems

 The process is not visible.


 Managers need regular deliverables to measure progress. If
systems are developed quickly, it is not cost-effective to produce
documents that reflect 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 tends to corrupt its structure.
Incorporating further software changes becomes increasingly
difficult and costly.

Chapter 2 Software Processes 4


Software prototyping

 A prototype is an initial version of a system used


to demonstrate concepts and try out design
options.
 A prototype can be used in:
 The requirements engineering process to help with
requirements elicitation and validation;
 In design processes to explore options and develop a UI
design;
 In the testing process to run back-to-back tests.

Chapter 2 Software Processes 5


Benefits of prototyping

 Improved system usability.


 A closer match to users’ real needs.
 Improved design quality.
 Improved maintainability.
 Reduced development effort.

Chapter 2 Software Processes 6


The process of prototype development

Chapter 2 Software Processes 7


Prototype development

 May be based on rapid prototyping languages or tools


 May involve leaving out functionality
 Prototype should focus on areas of the product that are not well-
understood;
 Error checking and recovery may not be included in the
prototype;
 Focus on functional rather than non-functional requirements
such as reliability and security

Chapter 2 Software Processes 8


Throw-away prototypes

 Prototypes should be discarded after


development as they are not a good basis for a
production system:
 It may be impossible to tune the system to meet non-
functional requirements;
 Prototypes are normally undocumented;
 The prototype structure is usually degraded through
rapid change;
 The prototype probably will not meet normal
organisational quality standards.

Chapter 2 Software Processes 9


Incremental delivery

 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.

Chapter 2 Software Processes 10


Incremental development and delivery

 Incremental development
 Develop the system in increments and evaluate each increment
before proceeding to the development of the next increment;
 Normal approach used in agile methods;
 Evaluation done by user/customer proxy.
 Incremental delivery
 Deploy an increment for use by end-users;
 More realistic evaluation about practical use of software;
 Difficult to implement for replacement systems as increments
have less functionality than the system being replaced.

Chapter 2 Software Processes 11


Incremental delivery

Chapter 2 Software Processes 12


Incremental delivery advantages

 Customer value can be delivered with each


increment so system functionality is available
earlier.
 Early increments act as a prototype to help elicit
requirements for later increments.
 Lower risk of overall project failure.
 The highest priority system services tend to
receive the most testing.

Chapter 2 Software Processes 13


Incremental delivery problems

 Most systems require a set of basic facilities that are


used by different parts of the system.
 As requirements are not defined in detail until an increment is to
be implemented, it can be hard to identify common facilities that
are needed by all increments.
 The essence of iterative processes is that the
specification is developed in conjunction with the
software.
 However, this conflicts with the procurement model of many
organizations, where the complete system specification is part of
the system development contract.

Chapter 2 Software Processes 14


Boehm’s spiral model

 Process is represented as a spiral rather than as


a sequence of activities with backtracking.
 Each loop in the spiral represents a phase in the
process.
 No fixed phases such as specification or design -
loops in the spiral are chosen depending on what
is required.
 Risks are explicitly assessed and resolved
throughout the process.

Chapter 2 Software Processes 15


Boehm’s spiral model of the software process

Chapter 2 Software Processes 16


Spiral model sectors

 Objective setting
 Specific objectives for the phase are identified.
 Risk assessment and reduction
 Risks are assessed and activities put in place to reduce
the key risks.
 Development and validation
 A development model for the system is chosen which
can be any of the generic models.
 Planning
 The project is reviewed and the next phase of the spiral
is planned.

Chapter 2 Software Processes 17


Spiral model usage

 Spiral model has been very influential in helping people


think about iteration in software processes and
introducing the risk-driven approach to development.
 In practice, however, the model is rarely used as
published for practical software development.

Chapter 2 Software Processes 18

You might also like