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

Lec 6

The document discusses software prototyping and incremental development. It notes that change is inevitable in large software projects, and prototyping helps reduce costs associated with change. Prototypes allow exploring design options early and getting user feedback. They should be discarded after development and not used as the production system. Incremental development delivers functionality in increments, prioritizing highest priority requirements first. Each increment is evaluated before developing the next, allowing for continuous feedback.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views14 pages

Lec 6

The document discusses software prototyping and incremental development. It notes that change is inevitable in large software projects, and prototyping helps reduce costs associated with change. Prototypes allow exploring design options early and getting user feedback. They should be discarded after development and not used as the production system. Incremental development delivers functionality in increments, prioritizing highest priority requirements first. Each increment is evaluated before developing the next, allowing for continuous feedback.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Software Prototyping

Sixth Lecture

By
Dr. Ahmed Majid

1
Coping with change

 Change is inevitable in all large software projects.


 Business changes lead to new and changed system
requirements
 New technologies open up new possibilities for improving
implementations
 Changing platforms require application changes
 Change leads to rework so the costs of change include
both rework (e.g. re-analysing requirements) as well as
the costs of implementing new functionality

2
Reducing the costs of rework

 Change avoidance, where the software process includes


activities that can expect possible changes before
significant rework is required.
 For example, a prototype system may be developed to show
some key features of the system to customers.
 Change tolerance, where the process is designed so that
changes can be accommodated at relatively low cost.
 This normally involves some form of incremental development.
Proposed changes may be implemented in increments that have
not yet been developed. If this is impossible, then only a single
increment (a small part of the system) may have be altered to
incorporate the change.

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

4
Benefits of prototyping

 Improved system usability.


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

5
The process of prototype development

6
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

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

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

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

10
Incremental delivery

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

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

13
14

You might also like