Software Development Life Cycles Models:
- 2.1 Build and fix model
- 2.2 The waterfall model
- 2.3 Prototyping model
- 2.4 Iterative enhancement model
- 2.5 Spiral model
- 2.6 Rapid application development model (RAD)
- 2.7 Selection criteria of a lifecycle model
SDLC is a process that defines the various stages involved
in the development of software for delivering a high quality product. SDLC stages cover the complete life
cycle of a software i.e. from inception to retirement of
the product.
SDLC Cycle
SDLC Cycle represents the process of developing
software.
SDLC Phases
Given below are the various phases:
- Requirement gathering and analysis
- Design
- Implementation or coding
- Testing
- Deployment
- Maintenance
1) Requirement Gathering and Analysis :-
During this phase, all the relevant information is collected from the
customer to develop a product as per their expectation. Any
ambiguities must be resolved in this phase only.
2) Design :-
In this phase, the requirement gathered in the SRS document is used
as an input and software architecture that is used for implementing
system development is derived.
3) Implementation or Coding :-
Implementation/Coding starts once the developer gets the Design
document. The Software design is translated into source code. All
the components of the software are implemented in this phase.
4) Testing :-
Testing starts once the coding is complete and the
modules are released for testing. In this phase, the
developed software is tested thoroughly and any defects
found are assigned to developers to get them fixed.
5) Deployment :-
Once the product is tested, it is deployed in the
production environment or first UAT (User Acceptance
testing) is done depending on the customer expectation.
6) Maintenance :-
After the deployment of a product on the production
environment, maintenance of the product i.e. if any issue
comes up and needs to be fixed or any enhancement is to
be done is taken care by the developers.
Software Development Life Cycle Models
A software life cycle model is a descriptive representation of the software development cycle. SDLC models might have a different approach but the basic phases and activity remain the same for all the models.
Build and fix model
In the build and fix model (also referred to as an ad
hoc model), the software is developed without any
specification or design. An initial product is built, which is
then repeatedly modified until it (software) satisfies the
user. That is, the software is developed and delivered to
the user. The user checks whether the desired functions
‘are present. If not, then the software is changed
according to the needs by adding, modifying or deleting
functions. This process goes on until the user feels that
the software can be used productively. However, the lack
of design requirements and repeated modifications result
in loss of acceptability of software. Thus, software
engineers are strongly discouraged from using this development approach.
- This model includes the following two phases.
- Build: In this phase, the software code is developed and passed on to the next phase.
- Fix: In this phase, the code developed in the build phase is made error free. Also, in addition to the corrections to the code, the code is modified according to the user’s requirements.
Advantages and Disadvantages of Build and Fix Model
Waterfall Model
- Waterfall model is the very first model that is used in SDLC. It is also known as the linear sequential model.
- In this model, the outcome of one phase is the input for the next phase. Development of the next phase starts only when the previous phase is complete.
- First, Requirement gathering and analysis is done. Once the requirement is freeze then only the System Design can start. Herein, the SRS document created is the output for the Requirement phase and it acts as an input for the System Design.
- In System Design Software architecture and Design, documents which act as an input for the next phase are created i.e. Implementation and coding.
- In the Implementation phase, coding is done and the software developed is the input for the next phase i.e. testing.
- In the testing phase, the developed code is tested thoroughly to detect the defects in the software. Defects are logged into the defect tracking tool and are retested once fixed. Bug logging, Retest, Regression testing goes on until the time the software is in go-live state.
- In the Deployment phase, the developed code is moved into production after the sign off is given by the customer.
- Any issues in the production environment are resolved by the developers which come under maintenance.
Advantages of the Waterfall Model:
- Waterfall model is the simple model which can be easily understood and is the one in which all the phases are done step by step.
- Deliverables of each phase are well defined, and this leads to no complexity and makes the project easily manageable.
Disadvantages of Waterfall model:
- Waterfall model is time-consuming & cannot be used in the short duration projects as in this model a new phase cannot be started until the ongoing phase is completed.
- Waterfall model cannot be used for the projects which have uncertain requirement or wherein the requirement keeps on changing as this model expects the requirement to be clear in the requirement gathering and analysis phase itself and any change in the later stages would lead to cost higher as the changes would be required in all the phases.
Prototype Model
- The prototype model is a model in which the prototype is developed prior to the actual software.
- Prototype models have limited functional capabilities and inefficient performance when compared to the actual software. Dummy functions are used to create prototypes. This is a valuable mechanism for understanding the customers’ needs.
- Software prototypes are built prior to the actual software to get valuable feedback from the customer. Feedbacks are implemented and the prototype is again reviewed by the customer for any change. This process goes on until the model is accepted by the customer.
- Once the requirement gathering is done, the quick design is created and the prototype which is presented to the customer for evaluation is built.
- Customer feedback and the refined requirement is used to modify the prototype and is again presented to the customer for evaluation. Once the customer approves the prototype, it is used as a requirement for building the actual software. The actual software is build using the Waterfall model approach.
Advantages of Prototype Model:
Prototype model reduces the cost and time of development as
the defects are found much earlier.
Missing feature or functionality or a change in requirement can
be identified in the evaluation phase and can be implemented
in the refined prototype.
Involvement of a customer from the initial stage reduces any
confusion in the requirement or understanding of any
functionality.
Disadvantages of Prototype Model:
Since the customer is involved in every phase, the customer
can change the requirement of the end product which
increases the complexity of the scope and may increase the
delivery time of the product.
Spiral Model
- The Spiral Model includes iterative and prototype approach.
- Spiral model phases are followed in the iterations. The loops in the model represent the phase of the SDLC process i.e. the innermost loop is of requirement gathering & analysis which follows the Planning, Risk analysis, development, and evaluation. Next loop is Designing followed by Implementation & then testing.
Spiral Model has four phases:
- Planning
- Risk Analysis
- Engineering
- Evaluation
i) Planning:
The planning phase includes requirement gathering
wherein all the required information is gathered from the
customer and is documented. Software requirement
specification document is created for the next phase.
(ii) Risk Analysis: In this phase, the best solution is selected for the risks
involved and analysis is done by building the prototype.
For Example, the risk involved in accessing the data
from a remote database can be that the data access rate
might be too slow. The risk can be resolved by building a
prototype of the data access subsystem.
(iii) Engineering: Once the risk analysis is done, coding and testing are
done.
(iv) Evaluation:
Customer evaluates the developed system and plans for
the next iteration.
Advantages of Spiral Model:
- Risk Analysis is done extensively using the prototype models.
- Any enhancement or change in the functionality can be done in the next iteration.
Disadvantages of Spiral Model:
- The spiral model is best suited for large projects only.
- The cost can be high as it might take a large number of iterations which can lead to high time to reach the final product.
Iterative Incremental Model
The iterative incremental model divides the product into small
chunks.
For Example, Feature to be developed in the iteration is
decided and implemented. Each iteration goes through the
phases namely Requirement Analysis, Designing, Coding, and
Testing. Detailed planning is not required in iterations.
Once the iteration is completed, a product is verified and is
delivered to the customer for their evaluation and feedback.
Customer’s feedback is implemented in the next iteration
along with the newly added feature.
Hence, the product increments in terms of features and once
the iterations are completed the final build holds all the
features of the product.
Phases of Iterative & Incremental Development
Model:
- Inception phase
- Elaboration Phase
- Construction Phase
- Transition Phase
(i) Inception Phase: Inception phase includes the requirement and scope of the Project.
(ii) Elaboration Phase: In the elaboration phase, the working architecture of a product is
delivered which covers the risk identified in the inception phase and
also fulfills the non-functional requirements.
(iii) Construction Phase: In the Construction phase, the architecture is filled in with the code
which is ready to be deployed and is created through analysis,
designing, implementation, and testing of the functional requirement.
(iv) Transition Phase: In the Transition Phase, the product is deployed in the Production
environment.
Advantages of Iterative & Incremental Model:
- Any change in the requirement can be easily done and would not cost as there is a scope of incorporating the new requirement in the next iteration.
- Risk is analyzed & identified in the iterations.
- Defects are detected at an early stage.
- As the product is divided into smaller chunks it is easy to manage the product.
Disadvantages of Iterative & Incremental Model:
- Complete requirement and understanding of a product are required to break down and build incrementally.
Rapid application development model
(RAD)
The rapid application development model emphasizes on
delivering projects in small pieces. If the project is large, it
is divided into a series of smaller projects. Each of these
smaller projects is planned and delivered individually. Thus,
with a series of smaller projects, the final project is
delivered quickly and in a less structured manner. The
major characteristic of the RAD model is that it focuses
on the reuse of code, processes, templates, and tools.
The phases of RAD model are listed below.
Planning: In this phase, the tasks and activities are
planned. The derivable produced from this phase are
project definition, project management procedures, and a
work plan. Project definition determines and describes
the project to be developed. Project management
procedure describes processes for managing issues,
scope, risk, communication, quality, and so on. Work
plan describes the activities required for completing the
project.
Analysis: The requirements are gathered at a high level
instead of at the precise set of detailed requirements
level. Incase the user changes the requirements, RAD
allows changing these requirements over a period of time.
This phase determines plans for testing, training and
implementation processes. Generally, the RAD projects
are small in size, due to which high-level strategy
documents are avoided.
Prototyping: The requirements defined in the analysis
phase are used to develop a prototype of the application.
A final system is then developed with the help of the
prototype. For this, it is essential to make decisions
regarding technology and the tools required to develop
the final system.
Repeat analysis and prototyping as
necessary: When the prototype is developed, it is sent
to the user for evaluating its functioning. After the
modified requirements are available, the prototype is
updated according to the new set of requirements and is
again sent to the user for analysis.
Conclusion of prototyping: As a prototype is an
iterative process, the project manager and user agree on
a fixed number of processes. Ideally, three iterations are
considered. After the third iteration, additional tasks for
developing the software are performed and then tested.
Last of all, the tested software is implemented.
Implementation: The developed software, which is fully
functioning, is deployed at the user’s end.
Advantage and Disadvantage of RAD model
Selection criteria of a lifecycle model
Selecting the right SDLC is a process in itself that the organization can implement internally or consult for. There are some steps to get the right selection.
STEP 1: Learn the about SDLC Models
SDLCs are the same in their usage. In order to select
the right SDLC, you should have enough experience and
be familiar with the SDLCs that will be chosen and
understand them correctly.
STEP 2: Assess the needs of Stakeholders
We must study the business domain, stakeholders
concerns and requirements, business priorities, our
technical capability and ability, and technology constraints
to be able to choose the right SDLC against their
selection criteria.
STEP 3: Define the criteria
Some of the selection criteria or arguments that you may use to select an
SDLC are:
- Is the SDLC suitable for the size of our team and their skills?
- Is the SDLC suitable for the selected technology we use for implementing the solution?
- Is the SDLC suitable for client and stakeholders concerns and priorities?
- Is the SDLC suitable for the geographical situation (distributed team)?
- Is the SDLC suitable for the size and complexity of our software?
- Is the SDLC suitable for the type of projects we do?
- Is the SDLC suitable for our software engineering capability?
- Is the SDLC suitable for the project risk and quality insurance?
STEP 4: Decide
When you define the criteria and the arguments you need to
discuss with the team, you will need to have a decision
matrix and give each criterion a defined weight and score for
each option. After analyzing the results, you should document
this decision in the project artifacts and share it with the
related stakeholders.
STEP 5: Optimize
You can always optimize the SDLC during the project
execution, you may notice upcoming changes do not fit with
the selected SDLC, it is okay to align and cope with the
changes. You can even make your own SDLC model which
optimum for your organization or the type of projects you are
involved in.
<<<< Chapter End >>>>
Tags:
Software_Engineering