Evolutionary Development and Rapid Prototyping

advertisement
Evolutionary Development
and
Rapid Prototyping
By: Shelone Reid
Amanda Smith
OUTLINE OF OUR PRESENTATION
Evolutionary Development
Rapid Prototyping

Software Development is the set of activities that
ensures that the software produced meets the
specifications required (meets the customers needs).

A Software Process is a set of activities and
associated results which produce a software product.

A Software Process Model is an abstract
representation of a process, it is a structured set of
activities required to develop a software system.
DEFINITIONS

The following are fundamental activities :
◦ Specification – defining the functionality of the software
and the limitations on its operations.
◦ Development – ensure that the software produced meets
the specifications required.
◦ Validation – ensuring that the software is genuine in
order for the client to give his or her acceptance to the
software development.
◦ Evolution – the software must be able to evolve as the
client may decide to make minor or major changes or
further the existing specification to improve the software
being developed.
Important Activities

The waterfall model – This separate and
distinct phases of specification and
development.

Evolutionary development – This is when the
specification and development are infused.

Reuse-based development - The system is
assembled from existing components.
Types of Generic Software Process Models

Evolutionary development is an iterative and
incremental approach to software
development. Instead of creating a
comprehensive artifact, such as a
requirements specification, that you review
and accept before creating a comprehensive
design model, you instead evolve the critical
development artifacts over time in an
iterative manner. Instead of building and
then delivering your system in a single “big
bang” release you instead deliver it
incrementally over time.
Evolutionary Development
Evolutionary Development Model

Applicability

Problems
◦ For small or medium-size interactive systems
◦ For parts of large systems (e.g. the user interface)
◦ For short-lifetime systems
◦ Lack of process visibility
◦ Systems are often poorly structured
◦ Special skills (e.g. in languages for rapid prototyping) may
be required
Problems and Applicability
This model is useful in exploratory programming (such as
Artificial Intelligence applications) where it is difficult to frame the
specifications.
 In case major problems are foreseen, the developer can stop the
development after some iterations.
 This model is very appropriate for research projects. For example,
to develop software for automatic speech recognition, a small
vocabulary can be taken and the system is developed. After
achieving success, the vocabulary can be increased in stages.
This approach is better than starting development of an unlimited
vocabulary speech recognition system directly (and after two
years, realizing that it is very difficult!).

Advantages of evolutionary
development model:
Because the project is open-ended, no
time frame can be set.
 Project monitoring is difficult.
 Less visibility as compared to waterfall
model.

Disadvantages of evolutionary
development model:
BACK

Rapid Prototyping (RP) is a process used to quickly fabricate a
realistic model of a product’s user interface

Rapid Prototyping has also been referred to as solid freeform manufacturing, computer automated manufacturing, and
layered manufacturing.

Rapid Prototyping decreases development time by allowing
corrections to a product to be made early in the process. By
giving engineering, manufacturing, marketing, and purchasing
a look at the product early in the design process, mistakes can
be corrected and changes can be made while they are still
inexpensive.
But typically the RP material is not strong or accurate enough.
Rapid Prototyping

To decrease development time.

To decrease costly mistakes.

To minimize sustaining engineering changes.

To increase effective communication.

To extend product lifetime by adding necessary features
and eliminating redundant features early in the design.

To increase effective communication.

Rapid Prototyping improves product development by
enabling better communication in a concurrent engineering
environment.
Reasons for Rapid Prototyping
Process Comparisons

Saves time and money

Promotes consistency in user interface design

Allows early customer involvement

Shows progress to management in a concrete way
Seeing is believing. Instead of telling management

Allows marketers and planners to ensure that customer
needs are met
Advantages of Rapid Prototyping

User confusion of prototype and finished system

Excessive development time of the prototype

Usually does not produce reusable code

Slows development process if put under formal
configuration control

Lacks an obvious stopping point
Disadvantages of Rapid Prototyping

wgsrodney.yolasite.com

wikipedia.com

www.efunda.com/processes/rapid_prototyping/intro.cfm

Rob Abdul’s case study on Software Development Cycle

Trond Johansen (head of Project Management, FIRM) and Tom
Gib

Lawrence J. Naijar
Reference
THE END
Download