You are on page 1of 20

CSCI624

Software Design and


Development
Week 3
1. Waterfall Model
• The Waterfall Model was the first Process
Model to be introduced. It is also referred to
as a linear-sequential life cycle model. It is
very simple to understand and use. In a
waterfall model, each phase must be
completed before the next phase can begin
and there is no overlapping in the phases..
Waterfall Model
Problems Faced Practically
• Real projects rarely follow sequence
• Difficult for customer to state all requirements
explicitly
• Customer must have patience.
• Used only when requirements are fixed
• Note: we should be careful and bear in mind
the above points.
2. The Prototyping Model
• Customer defines a set of general objectives for software
but does not identify detailed i/p, or o/p requirements.
• Also a developer may be unsure of the efficiency of an
algorithm, adaptability of an OS.
• So for such cases this model is best.
• It begins with the requirements gathering
• The developer and customer meet to define
overall objectives for the software, identify
whatever requirements are known and outline
areas where further definition is needed.
• A quick design is then made which focuses on
the parts of the software that are visible to the
customer/user.
• This leads to construction of a prototype.
• This is showed to the user to make further
changes if needed.
Prototyping
ACTIVITIES
• Communication : Define overoll objective
,identify requirements
• Modelling and Quick plan : representation of
aspects that is visible to end users
• Construction of prototype : prototype is
evaluated by stakeholders who provide
feedback and thus enhance the product
• Deployment and Delivery :
Problems
Excessive When the end user is asked to evaluate a prototype and provide
development time feedback there is a risk that they will be forever wanting to tweak
the system, thus leading to delays in development
User confusion Sometimes features appear in a prototype which are then removed
from the final system. Users can become confused or disappointed
with the final system if it differs greatly from the prototype.
Increased The end user might start to ask for features to be included which
development time were never in the original user requirements specification. This can
lead to increased development time and costs.
Too much focus When a lot of time is spent on a prototype of one specific part of
on one part of the the system, other parts of the system might end up being neglected
system
Expense of Building a prototype costs money in terms of development time
prototyping and possibly hardware. While the prototype is being worked on,
the real system is on hold.
3. RAD Model
 Rapid application development (RAD) is an
incremental software development process
model that emphasizes an extremely short
development cycle.
 The RAD model is a “high-speed”
adaptation of the linear sequential model in
which rapid development is achieved by
using component-based construction.
 Used when
 Requirements are clearly understood
 Project scope is constrained
 Creating a fully functional system in a short
span of time
 If requirements are well understood and
project scope is constrained, the RAD process
enables a development team to create a “fully
functional system” within very short time
periods (e.g., 60 to 90 days.
 Used primarily for information systems
applications, the RAD approach encompasses
the following phases
 Business Modeling
 Data Modeling
 Process Modeling
 Application Generation
 Testing and Turnaround
Evolutionary Software Process
Models:
 Linear Sequential Model is designed for straight
line development.
 The Prototyping model is designed to assist the
customer/developer in understanding
requirements.
 Evolutionary models are iterative, i.e. they help
software engineers to develop more complete
versions of the software.
 2 types of evolutionary software process models:
 Incremental Model
 Spiral Model
1. Incremental Model
 Incremental model combines Linear Sequential Model with
prototyping.
 Applies linear sequences and each sequence produces a
deliverable increment of the software.
 E.g. Word processing software developed using incremental
model might deliver:
 1st increment- basic file management, editing and document production
functions
 2nd increment- more sophisticated editing and document production functions
 3rd increment- spelling and grammar checking
 4th increment- advanced page layout capability
Incremental Model
 When the incremental model is used, the 1st
increment is the core product.
 Basic requirements are mentioned but additional
features are not added.
 The core product is used by the customer after
which a plan is developed for the next increment
which modifies the core product to meet the
needs of the customer.
 This process is repeated after delivery of each
increment until complete product is produced.
 Figure:
Spiral Model

 This also combines Linear Sequential Model with


prototyping.
 It provides potential for rapid development of incremental
versions of the software.
 Using spiral model, software is developed in series of
incremental releases.
 At first the 1st increment might be on paper model/prototype.
Later more complete versions will be made.
 Spiral model is divided into no. of framework activities called
task regions.
Spiral
planning
estimation
scheduling
risk analysis

communication

modeling
analysis
design
start

deployment
construction
delivery
code
feedback test
 There are mainly 6 task regions:
1. Customer communication: tasks required to establish effective
communication between developer and customer.
2. Planning: tasks required to define resources, timelines and
other project related information.
3. Risk Analysis: tasks required to assess both technical and
management risks.
4. Engineering: tasks required to build one or more
representations of the application.
5. Construction and release: tasks required to construct, test,
install and provide user support. (E.g. documentation and
training).
6. Customer evaluation: tasks required to obtain customer
feedback based on evaluation of the software representations.
Seat Work

 What is advantages and disadvatanges of


the waterfall model.
 When should we use the waterfall model to
develop the software?
 Define a spiral Model. What are the six
quadrants (divisions) in a spiral model?

****

You might also like