You are on page 1of 13

❖ Basic System Development Life Cycle

An effective System Development Life Cycle (SDLC) should result in a high


quality system that meets customer expectations, reaches completion within time
and cost evaluations, and works effectively and efficiently in the current and
planned Information Technology infrastructure.
System Development Life Cycle (SDLC) is a conceptual model which includes
policies and procedures for developing or altering systems throughout their life
cycles.
SDLC is used by analysts to develop an information system. SDLC includes the
following activities -
▪ requirements
▪ design
▪ implementation
▪ testing
▪ deployment
▪ operations
▪ maintenance
Feasibility Study or Planning
➢ Define the problem and scope of existing system.
➢ Overview the new system and determine its objectives.
➢ Confirm project feasibility and produce the project Schedule.
➢ During this phase, threats, constraints, integration and security of system
are also considered.
➢ A feasibility report for the entire project is created at the end of this phase.
Analysis and Specification
➢ Gather, analyze, and validate the information.
➢ Define the requirements and prototypes for new system.
➢ Evaluate the alternatives and prioritize the requirements .
➢ Examine the information needs of end-user and enhances the system goal.
➢ A Software Requirement Specification (SRS) document, which specifies
the software, hardware, functional, and network requirements of the system
is prepared at the end of this phase.
System Design
➢ Includes the design of application, network, databases, user interfaces, and
system interfaces.
Prof. Aishwarya Pardeshi
➢ Transform the SRS document into logical structure, which contains
detailed and complete set of specifications that can be implemented in a
programming language.
➢ Create a contingency, training, maintenance, and operation plan.
➢ Review the proposed design. Ensure that the final design must meet the
requirements stated in SRS document.
➢ Finally, prepare a design document which will be used during next phases.
Implementation
➢ Implement the design into source code through coding.
➢ Combine all the modules together into training environment that detects
errors and defects.
➢ A test report which contains errors is prepared through test plan that
includes test related tasks such as test case generation, testing criteria, and
resource allocation for testing.
➢ Integrate the information system into its environment and install the new
system.

Maintenance/Support
➢ Include all the activities such as phone support or physical on-site support
for users that is required once the system is installing.
➢ Implement the changes that software might undergo over a period of time,
or implement any new requirements after the software is deployed at the
customer location.
➢ It also includes handling the residual errors and resolve any issues that may
exist in the system even after the testing phase.

❖ Different Approaches and Models


There are so many different SDLC models in software engineering, and choosing
the best one for your project is half the battle on the way to creating a successful
product. People have already developed frameworks for efficient project
management called software development methodologies. In the article, we’ll
look at the most common ones, see what steps they include, and discuss how to
choose the most suitable option according to the requirements.

Prof. Aishwarya Pardeshi


❖ Waterfall Model
➢ The waterfall model is a linear, sequential approach to the software
development lifecycle (SDLC) that is popular in software engineering and
product development.
➢ 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.

➢ Feasibility Study :The main goal of this phase is to determine whether it


would be financially and technically feasible to develop the software.
➢ Requirements Gathering and Analysis: The first phase involves
gathering requirements from customer and analyzing them to understand
the scope and objectives of the project
➢ Design: Once the requirements are understood, the design phase begins.
This involves creating a detailed design document that outlines the
software architecture, user interface, and system components.
➢ Coding and Testing: The implementation phase involves coding the
software based on the design specifications. This phase also includes unit
testing to ensure that each component of the software is working as
expected. In the testing phase, the software is tested as a whole to ensure
that it meets the requirements and is free from defects.
➢ Integration and System Testing: in this phase, the modules are tested for
their interactions with each other and with the system. This phase is highly
crucial as the quality of the end product is determined by the effectiveness

Prof. Aishwarya Pardeshi


of the testing carried out. The better output will lead to satisfied customers,
lower maintenance costs, and accurate results
➢ Maintenance − There are some issues which come up in the client
environment. To fix those issues, patches are released. Also to enhance the
product some better versions are released. Maintenance is done to deliver
these changes in the customer environment.

Advantages of Waterfall Model

• Easy to Understand: Classical Waterfall Model is very simple and


easy to understand.
• Individual Processing: Phases in the Classical Waterfall model are
processed one at a time.
• Properly Defined: In the classical waterfall model, each stage in the
model is clearly defined.
• Clear Milestones: Classical Waterfall model has very clear and
well-understood milestones.
• Properly Documented: Processes, actions, and results are very well
documented.
• Working: Classical Waterfall Model works well for smaller projects
and projects where requirements are well understood.

Disadvantages of Waterfall Model


• No Feedback Path: In the classical waterfall model evolution of
software from one phase to another phase is like a waterfall. It assumes
that no error is ever committed by developers during any phase.
Therefore, it does not incorporate any mechanism for error correction.
• Difficult to accommodate Change Requests: This model assumes
that all the customer requirements can be completely and correctly
defined at the beginning of the project, but actually customer’s
requirements keep on changing with time. It is difficult to
accommodate any change requests after the requirements specification
phase is complete.
• No Overlapping of Phases: This model recommends that a new
phase can start only after the completion of the previous phase. But in
real projects, this can’t be maintained. To increase efficiency and
reduce cost, phases may overlap.
• Limited Flexibility: The Waterfall Model is a rigid and linear
approach to software development, which means that it is not well-
suited for projects with changing or uncertain requirements. Once a

Prof. Aishwarya Pardeshi


phase has been completed, it is difficult to make changes or go back
to a previous phase.
• Late Defect Detection: In the Waterfall Model, testing is typically
done toward the end of the development process. This means that
defects may not be discovered until late in the development process,
which can be expensive and time-consuming to fix.
• Lengthy Development Cycle: The Waterfall Model can result in a
lengthy development cycle, as each phase must be completed before
moving on to the next. This can result in delays and increased costs if
requirements change or new issues arise.
• Not Suitable for Complex Projects: The Waterfall Model is not
well-suited for complex projects, as the linear and sequential nature of
the model can make it difficult to manage multiple dependencies and
interrelated components.

❖ Spiral Model
▪ The Spiral Model is one of the most important Software Development
Life Cycle models, which provides support for Risk Handling.
▪ The Spiral Model is a Software Development Life Cycle (SDLC) model
that provides a systematic and iterative approach to software
development.
▪ It is based on the idea of a spiral, with each iteration of the spiral
representing a complete software development cycle, from requirements
gathering and analysis to design, implementation, testing, and
maintenance.

Prof. Aishwarya Pardeshi


➢ Planning: The first phase of the Spiral Model is the planning phase,
where the scope of the project is determined and a plan is created for the
next iteration of the spiral.
➢ Risk Analysis: In the risk analysis phase, the risks associated with the
project are identified and evaluated.
➢ Engineering: In the engineering phase, the software is developed based
on the requirements gathered in the previous iteration.
➢ Evaluation: In the evaluation phase, the software is evaluated to
determine if it meets the customer’s requirements and if it is of high
quality.
➢ Planning: The next iteration of the spiral begins with a new planning
phase, based on the results of the evaluation.

Advantages of the Spiral Model


• Risk Handling: The projects with many unknown risks that occur as
the development proceeds, in that case, Spiral Model is the best
development model to follow due to the risk analysis and risk handling
at every phase.
• Good for large projects: It is recommended to use the Spiral Model
in large and complex projects.
• Flexibility in Requirements: Change requests in the Requirements
at a later phase can be incorporated accurately by using this model.
• Customer Satisfaction: Customers can see the development of the
product at the early phase of the software development and thus, they
habituated with the system by using it before completion of the total
product.
• Iterative and Incremental Approach: The Spiral Model provides
an iterative and incremental approach to software development,
allowing for flexibility and adaptability in response to changing
requirements or unexpected events.
• Emphasis on Risk Management: The Spiral Model places a strong
emphasis on risk management, which helps to minimize the impact of
uncertainty and risk on the software development process.
• Improved Communication: The Spiral Model provides for regular
evaluations and reviews, which can improve communication between
the customer and the development team.

Prof. Aishwarya Pardeshi


• Improved Quality: The Spiral Model allows for multiple iterations
of the software development process, which can result in improved
software quality and reliability.

Disadvantages of the Spiral Model


• Complex: The Spiral Model is much more complex than other
SDLC models.
• Expensive: Spiral Model is not suitable for small projects as it is
expensive.
• Too much dependability on Risk Analysis: The successful
completion of the project is very much dependent on Risk Analysis.
Without very highly experienced experts, it is going to be a failure to
develop a project using this model.
• Difficulty in time management: As the number of phases is
unknown at the start of the project, time estimation is very difficult.
• Complexity: The Spiral Model can be complex, as it involves
multiple iterations of the software development process.
• Time-Consuming: The Spiral Model can be time-consuming, as it
requires multiple evaluations and reviews.
• Resource Intensive: The Spiral Model can be resource-intensive, as
it requires a significant investment in planning, risk analysis, and
evaluations.

❖ Prototype Model
Prototyping Model is a software development model in which prototype is built,
tested, and reworked until an acceptable prototype is achieved. It also creates
base to produce the final system or software. It works best in scenarios where
the project’s requirements are not known in detail. It is an iterative, trial and
error method which takes place between developer and client.

Prof. Aishwarya Pardeshi


➢ Requirements gathering and analysis: A prototyping model starts with
requirement analysis. In this phase, the requirements of the system are
defined in detail. During the process, the users of the system are
interviewed to know what is their expectation from the system.
➢ Design: This is the second step in Prototyping Model. This model covers
the basic design of the requirement through which a quick overview can be
easily described.

➢ Prototyping: - In this phase, an actual prototype is designed based on the


information gathered from quick design. It is a small working model of the
required system.

➢ Customer Evaluation: This step describes the preliminary testing where


the investigation of the performance model occurs, as the customer will tell
the strength and weaknesses of the design, which was sent to the developer.

➢ Review and update: - If any feedback is given by the user, then


improving the client’s response to feedback and suggestions, the final
system is approved.This phase will not over until all the requirements
specified by the user are met. Once the user is satisfied with the developed
prototype, a final system is developed based on the approved final
prototype.

Prof. Aishwarya Pardeshi


➢ Coding : The implementation phase involves coding the software based on
the design specifications. This phase also includes unit testing to ensure
that each component of the software is working as expected.
➢ Testing: In the testing phase, the software is tested as a whole to ensure
that it meets the requirements and is free from defects.
➢ Maintenance − There are some issues which come up in the client
environment. To fix those issues, patches are released. Also, to enhance the
product some better versions are released. Maintenance is done to deliver
these changes in the customer environment.

Advantage of Prototype Model

1. Reduce the risk of incorrect user requirement


2. Good where requirement are changing/uncommitted
3. Regular visible process aids management
4. Support early product marketing
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system is made side by side.

Disadvantage of Prototype Model

1. An unstable/badly implemented prototype often becomes the final product.


2. Require extensive customer collaboration
o Costs customer money
o Needs committed customer
o Difficult to finish if customer withdraw
o May be too customer specific, no broad market
3. Difficult to know how long the project will last.
4. Easy to fall back into the code and fix without proper requirement analysis,
design, customer evaluation, and feedback.
5. Prototyping tools are expensive.
6. Special tools & techniques are required to build a prototype.
7. It is a time-consuming process.

Prof. Aishwarya Pardeshi


❖ RAD (Rapid Application Development) Model

➢ Business Modelling: The information flow among business functions is


defined by answering questions like what data drives the business process,
what data is generated, who generates it, where does the information go
etc.
➢ Data Modelling: The data collected from business modeling is refined into
a set of data objects that are needed to support the business. The attributes
are identified, and the relation between these data objects is defined.
➢ Process Modelling: The information object defined in the data modeling
phase are transformed to achieve the data flow necessary to implement a
business function. Processing descriptions are created for adding,
modifying, deleting, or retrieving a data object.
➢ Application Generation: Automated tools are used to facilitate
construction of the software; even they use the 4th GL techniques.
➢ Testing & Turnover: Many of the programming components have already
been tested since RAD emphasis reuse. This reduces the overall testing
time. But the new part must be tested, and all interfaces must be fully
exercised.

Prof. Aishwarya Pardeshi


Advantages of RAD

• The use of reusable components helps to reduce the cycle time of the
project.
• Feedback from the customer is available at the initial stages.
• Reduced costs as fewer developers are required.
• The use of powerful development tools results in better quality
products in comparatively shorter time spans.
• The progress and development of the project can be measured through
the various stages.
• It is easier to accommodate changing requirements due to the short
iteration time spans.
• Productivity may be quickly boosted with a lower number of
employees.

Disadvantages of RAD

• The use of powerful and efficient tools requires highly skilled


professionals.
• The absence of reusable components can lead to the failure of the
project.
• The team leader must work closely with the developers and customers
to close the project on time.
• The systems which cannot be modularized suitably cannot use this
model.
• Customer involvement is required throughout the life cycle.
• It is not meant for small-scale projects as in such cases, the cost of
using automated tools and techniques may exceed the entire budget of
the project.
• Not every application can be used with RAD.

❖ Rational Unified Process (RUP)


➢ Rational Unified Process (RUP) is a software development process for
object-oriented models. It is also known as the Unified Process Model.
➢ The specialty of the RUP is it reduces the unexpected development cost
and prevent wastage of resources
Prof. Aishwarya Pardeshi
➢ There are four major phases of RUP
1. Inception
2. Elaboration
3. Construction
4. Transition

1. Inception
➢ Communication and planning are the main ones.
➢ Identifies the scope of the project using a use-case model allowing
managers to estimate costs and time required.
➢ Customers’ requirements are identified and then it becomes easy to make
a plan for the project.
➢ The project plan, Project goal, risks, use-case model, and Project
description, are made.
2. Elaboration –
➢ Planning and modelling are the main ones.
➢ A detailed evaluation and development plan is carried out and diminishes
the risks.
➢ Revise or redefine the use-case model (approx. 80%), business case, and
risks.
➢ Again, checked against milestone criteria and if it couldn’t pass these
criteria then again project can be cancelled or redesigned.
➢ Executable architecture baseline.
3. Construction –
➢ The project is developed and completed.
➢ System or source code is created and then testing is done.
➢ Coding takes place.
4. Transition –
➢ The final project is released to the public.
➢ Transit the project from development into production.
➢ Update project documentation.
➢ Beta testing is conducted.
➢ Defects are removed from the project based on feedback from the public.

Prof. Aishwarya Pardeshi


Prof. Aishwarya Pardeshi

You might also like