how to prototype software product using agile methodologys

RajivMathew5 8 views 17 slides Sep 22, 2024
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

how to prototype software products


Slide Content

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1
Software Prototyping

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 2
System prototyping

Prototyping is the rapid development of a system

In the past, the prototype was normally thought of
as inferior in some way to the required system, so
further development was required.

Now, the boundary between prototyping and
normal system development is blurred and many
systems are developed using an evolutionary
approach.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 3
Uses of system prototypes

The principal use is to help customers and
developers understand the requirements for the
system
•Requirements elicitation. Users can experiment with a
prototype to see how the system supports their work
•Requirements validation. The prototype can reveal errors and
omissions in the requirements

Prototyping can be a risk reduction activity that
reduces requirements risks.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 4
Prototyping benefits

Misunderstandings between software users and
developers are exposed.

Missing services may be detected and confusing
services may be identified.

A working system is available early in the process.

The prototype may serve as a basis for deriving a
system specification.

The system can support user training and system
testing.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 5
Prototyping benefits

Improved system usability

Closer match to the system needed

Improved design quality

Improved maintainability

Reduced overall development effort (?)

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 6
Prototyping in the software process

Evolutionary prototyping
•An approach to system development where an initial prototype
is produced and refined through a number of stages to the final
system

Throw-away prototyping
•A prototype which is usually a practical implementation of the
system is produced to help discover requirements problems and
then discarded. The system is then developed using some other
development process.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 7
Prototyping objectives

The objective of evolutionary prototyping is to
deliver a working system to end-users. The
development starts with those requirements that
are best understood.

The objective of throw-away prototyping is to
validate or derive the system requirements. The
prototyping process starts with those
requirements that are poorly understood.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 8
Evolutionary prototyping

Good for systems where the specification cannot
be developed in advance; e.g., AI systems and
user interface systems

Based on techniques that allow rapid system
iterations

Verification is impossible as there is no
specification. Validation means demonstrating the
adequacy of the system.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 9
Evolutionary prototyping
Build prototype
system
Develop abstract
specification
Use prototype
system
Deliver
system
System
adequate?
YES
N

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 10
Evolutionary prototyping

Specification, design and implementation are
inter-twined.

The system is developed as a series of increments
that are delivered to the customer.

Techniques for rapid system development are
used such as CASE tools and 4GLs.

User interfaces are usually developed using a GUI
development toolkit.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 11
Evolutionary prototyping advantages

Accelerated delivery of the system
•Rapid delivery and deployment are sometimes more important
than functionality or long-term software maintainability

User engagement with the system
•Not only is the system more likely to meet user requirements,
they are more likely to commit to the use of the system

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 12
Evolutionary prototyping problems

Management problems
•Existing management processes assume a waterfall model of
development
•Specialist skills are required which may not be available in all
development teams

Maintenance problems
•Continual change tends to corrupt system structure so long-term
maintenance is expensive

Contractual problems

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 13
Prototypes as specifications

Some parts of the requirements (e.g., safety-
critical functions) may be impossible to prototype
and so don’t appear in the specification.

An implementation has no legal standing as a
contract.

Non-functional requirements cannot be
adequately tested in a system prototype.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 14
Incremental development

System is developed and delivered in increments
after establishing an overall architecture

Requirements and specifications for each increment
may be developed

Users may experiment with delivered increments
while others are being developed. Therefore, these
serve as a form of prototype system.

Intended to combine some of the advantages of
prototyping, but with a more manageable process
and better system structure

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 15
Throw-away prototyping

Used to reduce requirements risk

The prototype is developed from an initial
specification, delivered for experimentation, then
discarded.

The throw-away prototype should NOT be
considered as a final system
•Some system characteristics may have been left out
•There is no specification for long-term maintenance
•The system will be poorly structured and difficult to maintain

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 16
Prototype delivery

Developers may be pressured to deliver a throw-
away prototype as a final system.

This is not recommended
•It may be impossible to tune the prototype to meet non-
functional requirements.
•The prototype is inevitably undocumented.
•The system structure will be degraded through changes made
during development.
•Normal organizational quality standards may not have been
applied.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 17
Throw-away prototyping
advantages

Increase in speed of delivery of the prototype:
•No need to worry about documentation
•Can use rapid development tools that may not normally be used
for final product development
•Can use any tool that will meet the need (the prototype will be
discarded)

Developers can concentrate heavily on eliciting
requirements from the client rather than on actual
software development.
Tags