SOFTWARE DEVELOPMENT LIFE CYCLE For Moodle
SOFTWARE DEVELOPMENT LIFE CYCLE For Moodle
Waterfall Model
Prototyping Model
Spiral Model
Incremental model
Rapid Application Development(RAD) Model
Waterfall Model
Also known as linear sequential model, is a systematic sequential approach to software development that
begins at system level and progresses through analysis, design, implementation, testing and deployment.
Waterfall Strengths
• Easy to understand, easy to use
Waterfall Deficiencies
• All requirements must be known upfront
• Deliverables created for each phase are considered frozen – inhibits flexibility
• Little opportunity for customer to preview the system (until it may be too late)
When to use the Waterfall Model
• Requirements are very well known
• Technology is understood
Prototype Model
A prototype is a toy implementation of the system. A prototype usually exhibits limited functional capabilities,
low reliability, and inefficient performance compared to the actual software. A prototype is usually built using
several shortcuts. The shortcuts might involve using inefficient, inaccurate, or dummy functions. A prototype
usually turns out to be a very crude version of the actual system.
Applicable: When your customer has a legitimate need but it clueless about the details, develop a prototype
as a first step. The prototype can serve as “The first system”
Many researchers and engineers advocate that if you want to develop a good product you must plan to throw
away the first version. The experience gained in developing the prototype can be used to develop the final
product.
Requirements
Quick design
of the requirements
Customer’s
Evaluation
Accepted not accepted
Actual design
Actual
Actual implementation
Development
Testing
Deployment
Strengths
• Customers can “see” the system requirements as they are being gathered
• Developers learn from customers
• A more accurate end product
• Unexpected requirements accommodated
• Allows for flexible design and development
• Steady, visible signs of progress produced
• Interaction with the prototype stimulates awareness of additional needed functionality
Weaknesses
The Spiral model of software development is shown in fig. The diagrammatic representation of this model
appears like a spiral with many loops. The exact number of loops in the spiral is not fixed. Each loop of the spiral
represents a phase of the software process. For example, the innermost loop might be concerned with feasibility
study, the next loop with requirements specification, the next one with design, and so on. Each phase in this
model is split into four sectors (or quadrants) as shown in figure. The following activities are carried out during
each phase of a spiral model.
Spiral Quadrant
1. Determine objectives, alternatives and constraints
• Develop and validate the next level of the product after resolving the identified risks.
• Typical activites:
– Create a design
– Review design
– Develop code
– Inspect code
– Test product
• Review the results achieved so far with the customer and plan the next iteration around the spiral.
• Progressively more complete version of the software gets built with each iteration around the spiral.
• Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive
Incremental model
Incremental model is an evolution of waterfall model.The product is designed, implemented, integrated and
tested as a series of incremental builds. It is a popular model software evolution used many commercial
software companies and system vendor.
When an incremental model is used, the first increment is often a core product. The core product is used by
the customer or undergoes a detailed review. As a result of use and/or evaluation a plan is developed for the
next increment. The plan addresses the modification to the core product to better meet the needs of the
customer and delivery of additional features and functionality. Software is constructed in a step-by-step
manner. While a software product is being developed, each step adds to what has already been completed.
• Risk, funding, schedule, program complexity, or need for early realization of benefits.
• Most of the requirements are known up-front but are expected to evolve over time
• A need to get basic functionality to the market early
• On projects which have lengthy development schedules
• On a project with new technology