You are on page 1of 15

Chapter 2 cont.


Coping with changing requirements

What to do when the user is not exactly sure of the requirements?

30/10/2014 Chapter 2 Software Processes 2


Coping with changing requirements

 System prototyping, where a version of the system or part of the system is


developed quickly to check the customer’s requirements and the feasibility of
design decisions. This approach supports change anticipation.
 Incremental delivery, where system increments are delivered to the customer
for comment and experimentation. This supports both change avoidance and
change tolerance.

30/10/2014 Chapter 2 Software Processes 3


Software prototyping

 A prototype is:
 an initial version of a system
 used to demonstrate concepts and
 Show design options.
 Find out about any possible requirements’ problems
 Predict their solutions
 A prototype can be used in anticipating changes in the process:
 Used to refine the requirements elicitation and validation phase;
 In design processes to explore options and develop a UI design;
 In the testing process to run back-to-back tests.

30/10/2014 Chapter 2 Software Processes 4


Benefits of prototyping

 Improved system usability. ~ predicts how well the system supports a no. of
users.
 A closer match to users’ real needs. ~ observe software strengths &
weaknesses and then tune its requirements.
 Improved design quality. ~
 Improved maintainability. ~ lesser maintenance needed because of minimal
chances in requirements’ falsification.
 Reduced development effort. ~ as lesser maintenance required.

30/10/2014 Chapter 2 Software Processes 5


The process of prototype development

30/10/2014 Chapter 2 Software Processes 6


Prototype development

 To reduce prototyping cost & accelerate the deployment schedule it’s


important to select what to involve in the prototype.
 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 requirements like core module implementation.
 Nonfunctional requirements like response time and memory utilization are ignored.

30/10/2014 Chapter 2 Software Processes 7


Prototype Development

Is it good to proceed further with a prototype?

30/10/2014 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; so, it is not good to
proceed further with the prototype.
 The prototype probably will not meet normal organizational quality standards.(as it may
have lesser response time, no error handling and all)

30/10/2014 Chapter 2 Software Processes 9


Incremental delivery

 Rather than deliver the system as a single delivery, the software


development and delivery is broken down into increments, with each
increment delivering part of the required functionality.
 User requirements are prioritized by user himself
 and the highest priority requirements are included in early increments.
 When an increment is under development then its requirements are
frozen.
 though requirements for later increments can continue to evolve.

30/10/2014 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 is done by user/customer.
 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.

30/10/2014 Chapter 2 Software Processes 11


Incremental delivery

30/10/2014 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.
As the first increment is a highly prioritized system that will be tested with
every later increment.

30/10/2014 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. ~ dependence
between increments
 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.

30/10/2014 Chapter 2 Software Processes 14


Case study

 let’s say, we have a very large system involving multiple


teams working on different modules and may be in
different areas. Will the incremental model be beneficial?

30/10/2014 Chapter 2 Software Processes 15

You might also like