Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Bca C104 SM02

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

SDLC (Software Development Life Cycle) and its phases

Software development organisations utilise the Software Development Life Cycle (SDLC) as
a procedure to plan, design, create, test, deploy, and maintain software applications.
Every software development company uses the SDLC (Software Development Life Cycle)
model because it is the cornerstone of the development cycle. If that model did not exist,
then, firstly, no software could be built, and secondly, no matter how it was made, it would
fail and be useless due to lack of maintenance. Fortunately, the SDLC model does exist in the
tech world, but why do we actually need it?
When creating software applications, organisations employ the Software Development Life
Cycle (SDLC) for a number of reasons:
To offer a planned and structured method for developing software: A framework for
overseeing the software development process is provided by the SDLC, which helps to
guarantee that all necessary steps are done and that the finished result satisfies the
specifications.
1. To make sure the software is of a high quality: The SDLC includes testing and quality
assurance phases, which help to make sure the programme is error-free and complies
with the specifications.
2. To manage risks and costs: Costs can be reduced and the impact of any problems that
do exist can be lessened by using the SDLC to assist organisations identify and
manage risks early in the development process.
3. To enhance communication and collaboration: The SDLC aims to make sure that all
parties engaged in the development process—including clients, end users, and
developers—are involved and that their demands are taken into consideration.
4. To improve efficiency and productivity: To increase productivity and efficiency,
organisations can make better use of their resources by using the SDLC, which also
helps to streamline the development process.
5. To improve the likelihood that the project will succeed: Adhering to a clearly defined
SDLC process can significantly increase the project's chances of success because it
directs the team towards the desired outcome in a methodical and effective manner.

Overall, the SDLC is a useful tool for businesses to employ when creating software
applications since it ensures that the finished product is of a high calibre, complies
with specifications, and is delivered on schedule and on budget.

The SDLC typically includes the following phases:


1. Gathering and analysing requirements: In this stage, information regarding the
software needs is gathered from stakeholders, including clients, end users, and
business analysts.
2. Design: During this stage, the overall architecture, data structures, and user interfaces
of the software are created. There are two steps:

High-level design (HLD): Provides the software products' architecture.


Low-level design (LLD): Describes how each feature and component of the product
should function.

3. Coding or implementation: The design is next put into code, typically over the course
of multiple iterations. This stage is also known as development.

Important information regarding this phase:

 The SDLC model's longest phase is this one.


 The Front end, Middleware, and Back-end make up this phase.
 Front-end: Coding development and SEO settings are completed.
 They link the front end and the back end in middleware.
 A database is created in the back end.

4. Testing: The software is rigorously tested to make sure it complies with the
specifications and functions properly.

5. Deployment: Following successful testing, the programme is put into use by end
users by being put into a production environment.
6. Maintenance: This stage entails continuing assistance, software updates, and bug
repairs.
A database is created in the back end.

Organisations can implement the SDLC using a variety of techniques, including


Waterfall, Agile, Scrum, V-Model, and DevOps.

SDLC Models

The Software Development Life Cycle (SDLC) is a conceptual framework for project
management that outlines the steps of an information system development project, from the
first phase of a feasibility study to the ongoing support of the finished application.

In the software development phase, various software development life cycle models are
specified and designed. Another name for these models is "Software Development Process
Models." To ensure success in the software development step, each process model adheres to
a set of steps that are specific to its type.

Waterfall Model
The fundamental life cycle model for software development is the waterfall model. It is
straightforward but idealistic. This model was quite popular in the past but is no longer in
use. However, it is crucial since the conventional waterfall model serves as the foundation for
all other software development life cycle models.

Why Do We Use the Waterfall Model?


The waterfall model is a software development approach that is frequently employed in the
context of significant, intricate projects, usually in the information technology sector. It is
distinguished by a disciplined, sequential approach to software development and project
management.

The waterfall paradigm is effective when the project's requirements and objectives are both
clearly specified. It is frequently employed for lengthy, large-scale projects when there is
little margin for mistake and the stakeholders must have complete faith in the conclusion.

Features of the Waterfall Model


Sequential Approach: Software development is done in a sequential manner using the
waterfall paradigm, with each phase of the project being finished before moving on to the
next.

Document-Driven: Waterfall model is primarily dependent on documentation to make sure


the project is well-defined and the project team is working towards a certain set of objectives.

Quality Control: To make sure that the final product satisfies the needs and expectations of
the stakeholders, the waterfall approach places a strong emphasis on quality control and
testing at each stage of the project.
Rigorous Planning: The waterfall approach calls for a comprehensive definition and
monitoring of the project scope, timeframes, and deliverables throughout the project
lifecycle.

In general, the waterfall model is employed when a highly organised and systematic approach
to software development is required. Large, complicated projects can be effectively ensured
to be finished on schedule, under budget, with a high standard of quality, and with the
pleasure of the client.

Phases of Classical Waterfall Model


Winston W. Royce first introduced the Waterfall Model, a traditional approach to software
development, in 1970. It is a method for developing software that is linear and sequential and
involves numerous steps that must be finished in a certain order. The phases consist of:

1. Feasibility Study
Finding out if developing the programme is both technically and financially possible is the
key objective of this phase. Understanding the issue and identifying potential solutions are
the first steps in the feasibility study. The advantages and disadvantages of the various
solutions are considered, and the best option is selected. The next phases are then carried out
in accordance with this solution approach.

2. Requirements Analysis and Specification


Understanding the precise needs of the client and effectively capturing them are the goals of
the requirement analysis and specification phase. There are two distinct activities in this era.

Requirement gathering and analysis: All of the software requirements are first collected from the
customer, after which the collected needs are examined. The purpose of the analysis portion is to
eliminate contradictions and incomplete requirements (an incomplete requirement is one in which
some elements of the actual requirements have been left out).
Requirement specification: A software requirement specification (SRS) document contains these
analysed requirements. Between the development team and clients, the SRS document acts as a
contract. The SRS document can be used to resolve any future disputes between clients and
developers.

3. Design
This phase's objective is to transform the SRS requirements into a form that can be
programmed in a computer language. It encompasses the general software architecture as
well as high-level and detailed design. All of this work is recorded in a software design
document (SDD).

4. Coding and Unit Testing


During the coding step, any appropriate programming language is used to convert the
software design into source code. Each designed module is therefore coded. The goal of the
unit testing step is to determine whether or not each module is functioning correctly.

5. Integration and System testing


The process of integrating several modules begins as soon as they have completed unit testing
and coding. Over a number of steps, integration of various modules is done incrementally.
The system is tested after each integration phase, which involves adding previously designed
components to the partially integrated system. Finally, a fully functional system is obtained
and tested when all the modules have been successfully integrated and tested.

As listed below, there are three major categories of testing activities that make up system
testing.

Alpha testing: The system testing carried out by the development team is known as alpha
testing.

Beta testing is the system testing carried out by a welcoming group of users.

Acceptance testing: Following delivery of the software, the customer carried out acceptance
testing to decide whether to accept or reject it.

6. Maintenance
The maintenance stage of a software life cycle is the most crucial. Sixty percent of the time
and energy required to produce a complete piece of software is spent on maintenance.
Maintenance can be broadly divided into three categories.

Corrective maintenance is performed to fix faults that went undetected throughout the
product development process.

Perfective Maintenance: Based on the customer's request, this sort of maintenance is done to
improve the system's functionality.

Adaptive maintenance: is frequently necessary when transferring software to a new


environment, such as when using a new computer platform or operating system.
Advantages of Waterfall Model
 Simple and Easy to Understand: The classical waterfall model is a very
straightforward and simple model.
 Phase Processing Individually: The Classical Waterfall model processes each phase
separately.
 Clearly Defined: In the traditional waterfall approach, each stage is described in
detail.
 Milestones are highly clear and easy to understand in the classical waterfall approach.
 Processes, actions, and outcomes have been properly documented.
 Positive Habits are reinforced: The Classical Waterfall Model promotes positive
habits like define before design and design before code.
 Working: For smaller projects and projects where needs are clearly defined, the
traditional waterfall model is effective.

Disadvantages of Waterfall Model


No Feedback Path: The growth of software from one phase to another in the traditional
waterfall architecture resembles a waterfall. It is predicated on the idea that developers never
make mistakes at any stage. This means that it lacks any method for error correction.

No Feedback Path: The progression of software from one phase to another is similar to a
waterfall in the traditional waterfall model. It makes the supposition that developers never
make mistakes at any stage. It does not therefore provide any method for error correction.

No Phase Overlapping: According to this approach, a new phase should only begin after the
preceding one has ended. This, however, cannot be maintained in actual projects. Phases may
overlap for cost- and efficiency-saving reasons.

Limited Flexibility: The Waterfall Model is inflexible and linear in nature, making it
unsuitable for software development projects with varying or ambiguous needs. Once a phase
has been finished, it might be challenging to reverse course or return to an earlier phase.

Limited Stakeholder Involvement: Because the Waterfall Model is structured and sequential,
stakeholders are frequently involved in the project's early stages (requirements gathering and
analysis), but they might not be during the project's later stages (implementation, testing, and
deployment).

Late Defect Detection: Testing is often carried out towards the conclusion of the development
process in the waterfall model. This implies that flaws might not be found until late in the
development phase, making their correction costly and time-consuming.

Long development cycle: Because each phase must be finished before going on to the next,
the waterfall model can lead to a protracted development cycle. If needs alter or new
problems emerge, this may lead to delays and higher expenses.
Not Suitable for Complex Projects: The linear and sequential nature of the waterfall paradigm
can make it challenging to manage various dependencies and interrelated components,
making it unsuitable for complicated projects.

Applications of Waterfall Model:


Large-scale Software Development Projects: The Waterfall Model is frequently used for
large-scale software development projects since these projects require a disciplined and
sequential approach to ensure that they are finished on time and within budget.

Systems that must be safe: The Waterfall Model is frequently employed for creating systems
that must be safe, such as those in the aerospace or medical fields, where mistakes or flaws
could have disastrous results.

Government and defence projects: The Waterfall Model is also frequently employed in these
projects, where a strict and organised approach is required to guarantee that the project
satisfies all specifications and is delivered on schedule.

Projects with well-defined Requirements: The Waterfall Model is best suited for projects with
clearly specified needs because of its sequential nature, which necessitates an awareness of
the project's goals and parameters.

Projects with Stable Requirements: Because of its linear structure, which forbids changes
after a phase has been finished; the waterfall approach is also well suited for projects with
stable requirements.

You might also like