Lifecycle
Lifecycle
structure imposed on the development of a software product. There are several models for such
processes, each describing approaches to a variety of tasks or activities that take place during the
process.
Software life cycle models describe phases of the software cycle and the order in which those
phases are executed. There are tons of models, and many companies adopt their own, but all have
very similar
patterns.
1. Analysis
2. Design
3. Coding
4. Testing
Waterfall Model
This is the most common and classic of life cycle models, 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 in its entirety before the next phase can begin. At the end of
each phase, a review takes place to determine if the project is on the right path and whether or
not to continue or discard the project. Unlike what I mentioned in the general model, phases
do not overlap in a waterfall model.
The waterfall model shows a process, where developers are to follow these phases in order:
Advantages
Disadvantages
Prototyping model:
It begins with requirements gathering. Developer and Customers meet and define the
overall objectives of the software, identify whatever requirements are known and identify the
areas which require further definition. In many instances the client only has a general view of
what is expected from the software product. In such a scenario where there is an absence of
detailed information regarding the input to the system, the processing needs and the output
requirements, the prototyping model may be employed. This model reflects an attempt to
increase the flexibility of the development process by allowing the client to interact and
experiment with a working representation of the product.
Advantages
• Feedback from customers are received periodically and the changes don’t come as a last
minute surprise.
Disadvantages
• Developer also could make the implementation compromises where he could make the
quick fixes to the prototype and make is as a working version.
• Often clients expect that a few minor changes to the prototype will more than suffice their
needs. They fail to realise that no consideration was given to the overall quality of the
software in the rush to develop the prototype.
Rapid Application Development (RAD) model :
RAD is incremental software development process model that allows usable systems to be
built in as little as 60-90 days, often with some compromises. The RAD model used for information
systems development.
Business modeling
Data modeling
Process modeling
Application generation
Advantages:
There are many advantages of using RAD and it can solve many concerns of the user as well as the
developers.
• Conventional software development methods take, on an average almost 20% more time than
the RAD procedure. Using RAD can enable quicker visualization of the end-design and hence
allow rapid software testing and rectifying steps. The customer is able to have a faster look at
the design to add valuable inputs, in order to make the design more user-friendly.
• The current competitive scenario demands frequently upgraded software in order to
effectively satisfy customers' requirements. RAD enables a faster and updated version to
reach the end user, by systematically eliminating redundant steps or using the prototype
methods.
• Cost overruns and meeting the time constraints are another advantage, though not a big
consideration in high-end uses.
• RAD makes the development process to be a more credible one by facilitating a scope for the
customer to actively provide inputs in the development process. This may also prove a
feasible study from the point of view of a developer.
• It protects the current project from the variations in the market.
Disadvantages
1. For Large (but scalable) projects, RAD requires sufficient resources to create the right
number of RAD teams.
2. Not all applications are compatible for RAD. If a system cannot be properly modularized,
building components for RAD will be problematic.
3. RAD not appropriate when technical risks are high. This normally occurs when a new
application makes heavy use of new technology or when the new software requires a high
degree of interoperability.
4. It requires equal commitment from both customers and developers. One sided commitment
can be disastrous.
However, neither the Linear Sequential Model nor the Prototype Model apply this
aspect to software production. The Linear Sequential Model was designed for straight-line
development. The Prototype Model was designed to assist the customer in understanding
requirements and is designed to produce a visualization of the final system.
But the Evolutionary Models take the concept of “evolution” into the engineering
paradigm. Therefore Evolutionary Models are iterative. They are built in a manner that
enables software engineers to develop increasingly more complex versions of the software.
The two most important models in this section are the incremental model and the spiral
model. The incremental model combines elements of the linear sequential model applied
repetitively with the iterative philosophy of the prototyping model. Each increment produces a
working version of a software product with increasing functionality. There is no throwaway code.
The spiral model also combines the iterative nature of prototyping with the systematic control
found in the linear sequential model. An essential component of the spiral model is that
assessment of both management and technical risks is performed as each incremental release is
completed.
Incremental Model
The incremental model is an intuitive approach to the waterfall model. Multiple
development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles
are divided up into smaller, more easily managed iterations. Each iteration passes through
the requirements, design, implementation and testing phases.
A working version of software is produced during the first iteration, so you have
working software early on during the software life cycle. Subsequent iterations build on the
initial software produced during the first iteration.
Advantages
• Generates working software quickly and early during the software life cycle.
• More flexible – less costly to change scope and requirements.
• Easier to test and debug during a smaller iteration.
• Easier to manage risk because risky pieces are identified and handled during its
iteration.
• Each iteration is an easily managed milestone.
Disadvantages
Spiral Model
The spiral model is similar to the incremental model, with more emphases placed on
risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations
(called Spirals in this model). The baseline spiral, starting in the planning phase,
requirements are gathered and risk is assessed. Each subsequent spirals builds on the
baseline spiral.
Requirements are gathered during the planning phase. In the risk analysis phase, a
process is undertaken to identify risk and alternate solutions. A prototype is produced at the
end of the risk analysis phase.
Software is produced in the engineering phase, along with testing at the end of the
phase. The evaluation phase allows the customer to evaluate the output of the project to date
before the project continues to the next spiral.
In the spiral model, the angular component represents progress, and the radius of the
spiral represents cost.
Advantages
Disadvantages
Component-Based Development