You are on page 1of 41

1

Software Engineering
LECTURE: TRADITIONAL MODELS
2
Traditional Models

u Waterfall
u Incremental Vs Iterative
u Prototyping
u Spiral
u RAD
3

Discussion

What does iterative and incremental


development mean to you?

Discuss
u Iterate 4
u to utter or do repeatedly
u iteration n. – iterative adj
u Increment n
u 1. amount of increase
u 2. a becoming greater or larger;
increase
Definitions u incremental adj
How does all this apply to a software
development project??
How does a project team work iteratively
while incrementally developing a
product?
5
What Is Incremental Development?

u In incremental development,
u You have all the requirements
u you design the complete product first. You only leave
out details that you can safely decide later.
u Then you slice it up into chunks and build each
separately.
u When you finish a chunk, aka module, you integrate it
with previously completed parts, so they work as a
whole.
6
What is Iterative Development

u Iterative development is a lot like inventing: discovering what


and how you need as you go.
u You start with a fair idea of what you want the product to
accomplish, and you use a process of successive approximation
to design and build it.
u You begin by designing, building, and testing the tiniest version
of what you have in mind. When you’re happy, you show it and
collect feedback from everybody with a stake in the product.
u If what you created was well received, you keep it and expand
on it in the next iteration. If what you created got the thumbs
down, you discard it and go back to the drawing board.
7
8
9

SOFTWARE
PROTOTYPING
u A prototype is an initial version of
a system used to demonstrate
concepts and try out design
options.
u A prototype can be used in:
Software u The requirements engineering
prototyping process to help with requirements
elicitation and validation;
u In design processes to explore
options and develop a UI design;
u In the testing process to run back to
back tests.

10
11
12

u Bottom-up approach
u Problem domain or requirements not well defined or understood.
u Create small implementations of requirements that are least understood.
u Requirements are “explored” before the product is fully developed.
u Developers gain experience when developing the “real” product.
13

Prototype Development Process Model


14
Improved system usability.

A closer match to users’ real needs.

Benefits of Improved design quality.


prototyping
Improved maintainability.

Reduced development effort.


u May be based on rapid prototyping
languages or tools
u May involve leaving out functionality
u Prototype should focus on areas of
Prototype the product that are not well
understood;
development u Error checking and recovery may
not be included in the prototype;
u Focus on functional rather than non
functional requirements such as
reliability and security

15
16
Examples
17
18
19

My own
prototypes
20
21
u Prototypes should be discarded after
development as they are not a good
basis for a production system:
u It may be impossible to tune the
system to meet non functional
requirements;
Throw away u Prototypes are normally
prototypes undocumented;
u The prototype structure is usually
degraded through rapid change;
u The prototype probably will not meet
normal organizational quality
standards.

22
23

Controlling
changes
with
prototyping
24
Advantages

u Client involvement and early feedback.


u Improves requirements and specifications.
u There is scope of refinement, it means new requirements can be easily
accommodated.
u It is ideal for online system.
u It helps developers and users both understand the system better.
u Integration requirements are very well understood and deployment channels
are decided at a very early stage.
u Reduces risk of developing the “wrong” product.
.
25
Disadvantages

u This model is costly.


u It has poor documentation because of continuously changing customer
requirements.
u There may be too much variation in requirements.
u Customers sometimes demand the actual product to be delivered soon
after seeing an early prototype.
u Customers may not be satisfied or interested in the product after seeing
the initial prototype.
u Focus may be too narrow (no thinking outside the box)
26
u Prototype model should be used when the
desired system needs to have a lot of
interaction with the end users.
u Typically, online systems, web interfaces
have a very high amount of interaction
with end users, are best suited for
Prototype model. It might take a while for
When to use a system to be built that allows ease of use
and needs minimal training for the end
prototyping user.
u Prototyping ensures that the end users
constantly work with the system and
provide a feedback which is incorporated
in the prototype to result in a useable
system. They are excellent for designing
good human computer interface systems.
27

SPIRAL MODEL
28

u Incremental/iterative model
(combines the waterfall
model and prototyping).
u Iterations called spirals.
u Activity centered:
○ Planning
○ Risk analysis
○ Engineering
○Evaluation
29
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 .
Boehm’s
No fixed phases such as specification or spiral model
design loops in the spiral are chosen
depending on what is required.

Risks are explicitly assessed and


resolved throughout the process.
30

u Objective setting
u Specific objectives for the phase are identified.
u Risk assessment and reduction
u Risks are assessed and activities put in place to
Spiral model reduce the key risks.
Development and validation
sectors
u

u A development model for the system is chosen


which can be any of the generic models.
u Planning
u The project is reviewed and the next phase of
the spiral is planned.
32

Boehm’s
spiral model
of the
software
process
33

u Spiral model has been very influential in


helping people think about iteration in
software processes and introducing the risk
driven approach to development.
Spiral model u In practice, however, the model is rarely
usage used:
u Can be a costly model to use
u Risk analysis requires highly specific expertise
u Doesn’t work well for smaller projects.
u When costs and risk evaluation is
important
u For medium to high risk projects
u Long term project commitment unwise
because of potential changes to
When to use economic priorities
Spiral Model u Users are unsure of their needs
u Requirements are complex
u New product line
u Significant changes are expected
(research and exploration)

34
Benefits Drawbacks
Allows the use prototyping Management is more
complex
Client can see the system
early on
Should not be used for
small projects
Benefits &
Changes in requirements This method requires a drawbacks:
can be made easily lot of documentation
36

Rapid Application
Development (RAD)
37

u Rapid application development (RAD) is a


linear sequential S/W development
process model that emphasizes on
extremely short development cycle.
u high speed RAD is achieved by using a
Benefits of component based project construction
approach.
RAD u If requirements are well understood and
project scope is constrained (i.e. goals/
are fixed / freezed )
u the RAD enables a development team to
create a “fully functional system” within very
short time (e.g. 60 - 90 days).
38

RAD
MODEL
u 1. Business Modeling (Business
Processes)
u What information is generated?
u Who generates it?
u Where does the information go?
u Who processes it?

RAD Phases u 2. Data Modeling


u The information flow is refined into a
set of data objects that are needed
to support the business
u Characteristics
u of each object are identified and
u Relationships between these objects
are defined

39
u 3. Process modeling
u The data object defined in the data
modeling phase are transformed to
achieve the information flow
necessary to implement a business
function (i e transformation of input
object to output object defines flow
of information in a process/function)
u Such processing descriptions are
RAD Phases (2) created for adding, modifying,
deleting, or retrieving a data object
u 4. Application Generation
u RAD process works to re use existing
components (when possible)
u Create re useable components
(when necessary) In all cases
automated tools are used to
facilitate construction of S/W
40
u 5. Testing and Turnover
New components must be tested and all
interfaces must be fully exercised.

u Drawbacks
For large scalable projects RAD
RAD Phases (3) u
requires sufficient human resources
to create right number of RAD teams
u RAD requires developers customers
committed to complete a system in
a short time frame, other wise if
commitment is lacking from either
side, RAD projects will fail

41
42

You might also like