Software Development Life Cycle (SDLC) is a process that defines the various stages involved in the development of software. It is a framework that defines activities that are performed during the software development process. It covers the detailed plan for building, deploying and maintaining the software.
It is a
systematic approach that generates a structure for the developer to design,
create and deliver high-quality software based on customer requirements and
needs. The primary goal of the SDLC process is to produce cost-efficient and
high-quality products. It aims to produce quality software that exceeds
customer expectations, meets deadlines and cost estimates.
The software development
life cycle (SDLC) is a process used for structuring the development of any
software system, from initiation through implementation. It defines the
complete cycle of development i.e. all the tasks involved in planning, designing,
testing, and deploying a Software Product.
The life cycle defines a methodology for
improving the quality of software and the overall development process. It enables the production of high-quality, low-cost software,
in the shortest possible production time.
The following figure is a graphical representation of the various stages of a SDLC:
Phases of SDLC (Software Development Life Cycle):
Project Planning:
The planning stage (also called the
feasibility stage) is the phase in which developers will plan for the project. Project
planning is a vital role in the software delivery lifecycle since this is the
part where the team estimates the cost and defines the requirements of the software.
This typically includes resource
allocation, capacity planning, and project scheduling and cost estimation.
During the planning phase, the development team
collects input from stakeholders involved in the project; customers, sales,
internal and external experts, and developers. This input is synthesized into a
detailed definition of the requirements for creating the desired software. The
team also determines what resources are required to satisfy the project
requirements, and then infers the associated cost.
The planning
phase will determine project goals and establish a high-level plan for the intended project. Planning
should clearly define the scope and purpose of the application.
Requirements Gathering & Analysis:
In this phase, all the
relevant information is collected from the customer to develop the product as
per their expectation. This is done to clearly understand the customer
requirements. Discuss each detail and specification of the product with the
customer.
Project Manager set up a
meeting with the customer to gather all the information like what the customer
wants to build, who will be the end-user, what is the purpose of the product.
Before building a product a core understanding or knowledge of the product is
very important.
Once the requirement
gathering is done, the development team will then analyze the
requirements. Requirement documentation is very important activity after
the requirement gathering and analysis. This is a way to represent requirements
in a consistent format.
During this activity, the
user requirements are systematically organized into a Software Requirement
Specification (SRS) documents. This
document should be thoroughly understood by the developers and also should be
reviewed by the customer for future reference.
Designing the Software:
Once the requirements are
understood, software architects and developers can begin to design the
software. The goal of design phase is to transform the requirements specified
in the SRS documents into a structure that is suitable for implementation in
some programming languages.
In this phase, we design the
architecture of the system using the SRS documents means we sketched a
blueprint of the project on a paper or on a computer.
In other words, Software
design is the process of designing the architecture, components, modules,
interfaces for a system to satisfy specified requirements.
This phase
includes Algorithms, Flowchart, Pseudo-code, Screen layouts and other necessary documentation. The
organization also creates user interaction
interfaces, data models, and entity relationship diagrams (ERDs) in this phase.
Coding or Implementation:
Coding or implementation starts once the developer gets the
Design document. The Software design is translated into source code. In this
stage, developers start builds the entire system by writing code using the
chosen programming language.
This is the actual writing of the program. A small project might be written by a single developer while a large project might be broken up and worked by several teams.
The system first developed in small programs called modules. In the coding phase, tasks are divided into units or modules and assigned to the various developers.
Testing:
Building software is not the end. Now it must be tested to make sure that there aren’t any bugs. Testing starts once the coding is complete and the modules are released for testing. Software testing involves examining and checking the software, through different testing process. The testing is done to ensure that the entire application works according to the customer requirements.
After the development of the
software, there can be many defects in the software or software may not work as
they are expected. Testing is carried out to verify the entire system. In this
phase, the developed software is tested thoroughly and any defects found are
assigned to developers to get them fixed. The aim of the testing is to find out
the gaps and defect within the system and also to check whether the system is
running according to the requirement of the customer.
Testing is an important part of the
project because it helps to improve the quality of the project. In this stage, all the pieces of
code are tested to verify and validate a software product. The testing team tests the functionality of the
entire system.
Deployment:
In the deployment phase, the
application is made available to the users. Once the testing is done, and the
product is ready for deployment, it is released for customers to use.
After successful testing product is delivered/ deployed to the customer
and even customer are trained on now to use the product.
Maintenance:
The maintenance phase is the last but
important phase of SDLC. The SDLC doesn’t end when software reaches the market.
Once the product has been delivered to
the customer, task of maintenance starts as when the customer will come up with
an error, the issue should be fixed from time to time.
Software maintenance is modification of a software
product after delivery to correct faults, to improve performance, or to adopt
the product to a modified environment. According
to the changing user end environment or technology, the software is updated
timely.
Maintenance is the backbone of the software success.
When software is developed, then software needs to be modified from
time-to-time to keep it up to date with environment changes and changing the
user requirements.
Furthermore, developers are responsible for
implementing any changes that the software might need after deployment.
Importance of SDLC (Why is the SDLC important?)
The software development life cycle adds value to software development in the following ways:
- It provides an effective framework and method to develop software applications.
- It helps in effectively planning before starting the actual development.
- SDLC allows developers to analyze the requirements.
- It enables developers to design and build high-quality software products. This is because they follow a systematic process
- It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process
- It increases the speed of development
- It improves client relations
- It decreases project risks
- It decreases project management expenses and the overall cost of production.
- It helps in reducing unnecessary costs during development. During the initial phases, developers can estimate the costs.
0 Comments
if you have any doubts plz let me know...