Software Development Life: Cycle (SDLC)

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 34

SDLC

• Software Development Life


Cycle (SDLC) is a popular
practice that is followed by
different organizations for
designing and developing high-
quality software applications.  It
acts as a framework that holds
some specific tasks to be
achieved at every phase during
the software development
progression.
Planning
The phase of gathering requirements from
customers is critical in the software development
process. Business analysts collect this
information from target customers and use it to
create a Business Requirement Specification
(BRS) for the development of the product. The
team, including designers and business analysts,
will work together to identify all necessary
requirements and plan accordingly for the new
system being developed. The focus of this phase
is to understand the needs of the end-users and
what data the product should output.
Definition or Feasibility

This phase is when the design specification is

organized from the prerequisite document when

the project is approved to go further. This phase

contributes to the next phase for development.

This phase portrays a blueprint of the product,

which helps to specify the hardware and

requirements of your system as well as assist in

crafting a significant architecture of your system.


Designing
This phase is when the design specification is organized

from the prerequisite document when the project is

approved to go further. This phase contributes to the

next phase for development. This phase portrays a

blueprint of the product, which helps to specify the

hardware and requirements of your system as well as

assist in crafting a significant architecture of your

system.
Coding
As you are preparing with the design document, this

phase deals with the developers to start writing the

code or prepare for the engineering so that a

prototype of the product can be created using some

specific tools and techniques. This is considered the

longest phase of SDLC.


Testing
As your product is prepared for deployment, it needs a prior

testing environment by the test engineers to check for bugs

and run-time errors, and they check in this phase whether

the functionality of the product is working as per the

requirement or not.
Deployment
Once your prototype or product is

developed, tested, and completely in working

form as per the requirement, and then it is

installed or deployed in the customer's

workplace or system for their use.


Maintenance
This is an additional phase, and in many

cases, this phase does not come under the

count of SDLC, when your customer(s) begin

using your product and encounter with some

issues which they want us (as developers) to

fix from time to time. The developer fixes the

issue, and software testers test the product

and hand it over the back to the customer.


Spiral Model
In Spiral model the project manager dynamically

decides the number of phases and hence play a

significant role in the development of a product

using the spiral model. The radius in spiral usually

shows the expenses or cost needed for project

development. The angular dimension shows the

development done to date during the recent

phase.
Phases of Spiral model
Planning objectives or identify alternative solutions: In this stage, requirements
are collected from customers and then the aims are recognized, elaborated as well
as analyzed at the beginning of developing the project

Risk analysis and resolving: As the process goes to the second quadrant, all likely
solutions are sketched, and then the best solution among them gets select. Then
the different types of risks linked with the chosen solution are recognized and
resolved through the best possible approach. As the spiral goes to the end of this
quadrant, a project prototype is put up for the most excellent and likely solution.

Develop the next level of product: As the development progress goes to the third
quadrant, the well-known and mostly required features are developed as well as
verified with the testing methodologies. As this stage proceeds to the end of this
third quadrant, new software or the next version of existing software is ready to
deliver.

Plan the next Phase: As the development process proceeds in the fourth quadrant,
the customers appraise the developed version of the project and reports if any
further changes are required. At last, planning for the subsequent phase is initiated.
Merits of Spiral Model
1. Suitable for large projects: Can be used for complex and

bulky projects because they don’t have many stages of

development.

2. Risk Handling: All possible risks are handled

3. Customer Satisfaction: Customers get to witness the

development of the entire project so the are satisfied

because their views are considered

4. Requirements flexibility: All the specific requirements

needed at later stages can be included precisely if the

development is done using this model.


Demerits of spiral model
Complexity: The Spiral model involves multiple iterations and
evaluations, which can make it more complex and difficult to
manage than other models.
Time-consuming: Because of the multiple evaluations and
iterations, the Spiral model can be time-consuming, which can lead
to delays in the project and increased costs.
Risk management: Risk management is a key component of the
Spiral model, but it can be difficult to accurately assess and manage
risks in a complex project.
Requires skilled personnel: The Spiral model requires a highly
skilled and experienced team to manage the complex process,
which can make it difficult to implement in organizations with
limited resources.
Difficulty in budgeting and schedule: The spiral model allows for
the flexibility of changing requirements and adding features, which
can make it difficult to budget for and schedule the project.
Dependence on the experience and knowledge of the
development team: The success of the spiral model depends
largely on the experience and knowledge of the development team.
If the team lacks the necessary skills or experience, the model may
not be effective.
Prototyping
Phases of Prototyping
• Requirements gathering and analysis :
A requirement analysis is the first step in developing a prototyping model. During this phase, the system’s desires are
precisely defined. During the method, system users are interviewed to determine what they expect from the system.
• Quick design :
The second phase could consist of a preliminary design or a quick design. During this stage, the system’s basic design
is formed. However, it is not a complete design. It provides the user with a quick overview of the system. The rapid
design aids in the development of the prototype.
• Build a Prototype :
During this stage, an actual prototype is intended to support the knowledge gained from quick design. It is a small
low-level working model of the desired system.
• Initial user evaluation :
The proposed system is presented to the client for preliminary testing at this stage. It is beneficial to investigate the
performance model’s strengths and weaknesses. Customer feedback and suggestions are gathered and forwarded to
the developer.
• Refining prototype :
If the user is dissatisfied with the current model, you may want to improve the type that responds to user feedback
and suggestions. When the user is satisfied with the upgraded model, a final system based on the approved final type
is created.
• Implement Product and Maintain :
The final system was fully tested and distributed to production after it was developed to support the original version.
To reduce downtime and prevent major failures, the programmer is run on a regular basis.
Merits of prototyping
1. It is possible for customers to acquire or witness the

partial product at every stage of development and

enhancement.

2. New requirements can be smoothly added because of

the scope for enhancement in the system.

3. Malfunctions can be effortlessly figured out.

4. Detection of errors can be easily found out to improve

the quality of the software.


Limitations of prototyping
1. Time-consuming: Creating a prototype can take a significant
amount of time, which can delay the overall development
process.

2. Costly: Depending on the complexity of the prototype, it can be


costly to develop and maintain.

3. Not always representative: A prototype may not accurately


represent the final product, leading to confusion or
misunderstandings.

4. Not always transferable: If a prototype is developed using a


specific technology or platform, it may not be easily transferable
to other technologies or platforms.

5. Risk of over-reliance: Teams can become overly reliant on the


prototype, resulting in a lack of flexibility in the development
process.
Iterative model
The iterative development

model is an approach of

segmenting any large

software development

process into smaller

portions.
Phases of iterative model
• Requirements Phase: In the requirements phase of software development, the
system related information is gathered and analyzed. The collected requirements
are then planned accordingly for developing the system.
• Design Phase: In the Design phase, the software solution is prepared to meet the
necessities for the design. The system design may be a new one or the extension
of a previous build one.
• Implementation and Test: In the implementation as well as a test phase, the
system is developed by coding and building the user interface and modules
which is then incorporated and tested.
• Review Phase: The review phase is where the software is estimated and checked
as per the current requirement. Then, further requirements are reviewed
discussed and reviewed to propose for an update in the next iteration.
Merits of iterative model
1. Produces working system rapidly and

before time throughout the software

development life cycle

2. Provides more and more flexible and

enhance based on requirements.

3. Simple to test as well as repair as small

iteration.
Limitations of iterative model
1. Time-consuming: Iterations can take a significant amount
of time, which can delay the overall development
process.

2. Costly: Depending on the complexity of the product, it


can be costly to develop and maintain multiple
iterations.
3. Limited testing: Testing each iteration may not provide a
complete understanding of how the final product will
perform.

4. Limited feedback: Iterations may not provide enough


feedback to accurately guide the development process.

5. Risk of stagnation: Iterative model can lead to stagnation,


where the same features and changes are being made in
each iteration and no real progress is made.
V-Model
The V-model of SDLC carries out its

execution in a sequential manner. The

structure it follows takes the shape of

the letter V. This model is also

popularly termed as a Verification and

Validation model. Here, each phase

has to be finished before beginning

the next phase. A sequential design

progression is followed like that of the

waterfall model.
Verification and Validation
• Verification: In the concept of verification in the V-Model, static analysis
technique is carried out without executing the code. This evaluation
procedure is carried out at the time of development to check whether specific
requirements will meet or not.

• Validation: This concept of V-Model comprises of dynamic analysis practice


(both functional as well as non-functional), and testing is done by code
execution. The validation of a product is done once the development is
complete for determining if the software meets up the customer hope needs.
Designing phase
• Requirement Analysis: In this stage of SDLC, a detailed conversation
with the customer is made to understand their requirements as well as
anticipation. Requirement gathering is another name of this phase.
• System Design or High-level Design: In this phase of SDLC, the system is
designed with the entire hardware & the setup is constructed for
product development.
• Architectural Design: The breakdown of system design to a more
detailed version, i.e., into modules which creates different
functionalities. Transferring of data and connection between internal
and external modules (i.e., the outside world) is evidently identified.
• Low-level design or Module Design: This particular phase breaks down
the entire product development into tiny modules where each intended
module is specified. So it is also termed as Low-Level Design (LLD).
Testing Phase
• Unit Testing: During the development of module design, unit testing
is carried out. This plan is executed for eliminating bugs that are
found in code at the development of your software.
• Integration Testing: Once the unit testing is done, the integration
testing is carried out where the integration of modules in the system
is hardened. This testing is done in the architecture design phase.
• System Testing: This ultimate test is done when the entire product is
completed in conjunction with the functionality, internal dependency
requirement and merging of different modules into a single unit.
• User Acceptance Testing: This type of testing is carried out in front of
the user or in a user environment where the product will ultimately
set up. The UAT particularly test whether the product is capable
enough to launch in the market or ready to work in the real world.
Merits of the V-Model
1. Clear and structured approach: The V-Model provides a clear and structured
approach to software development, allowing teams to easily identify and
address potential issues.
2. Facilitates communication: The V-Model facilitates communication between
different teams and departments, such as development and testing, which
helps ensure that everyone is on the same page.
3. Helps to identify defects early: The V-Model helps to identify defects early in
the development process, which can reduce the overall cost of the project.
4. Provides a clear plan: The V-Model provides a clear plan of the development
process, which helps keep the project on track and on schedule.
5. Provides a clear documentation: The V-Model provides a clear documentation
of the project, which can be useful for future reference.
Demerits of V-Model
• Inflexible: The V-Model is a linear, sequential process, which can make it
inflexible and difficult to adapt to changes or unexpected issues.
• Limited customer involvement: The V-Model can limit customer involvement
in the development process, which can lead to a final product that does not
meet their needs or expectations.
• High cost: The V-Model can be a high-cost methodology, particularly if there
are many iterations or changes made during the development process.
• High reliance on documentation: The V-Model relies heavily on
documentation, which can be a drawback if the documentation is not
accurate or up-to-date.
• Overly bureaucratic: The V-Model can be overly bureaucratic and require a
significant amount of documentation and paperwork, which can be time-
consuming and costly.
Agile Model
The Agile software
development model was
mainly intended for helping
developers build a project
which can adapt to
transforming requests
quickly.
So, the most important
endeavor for developing the
Agile model is to make easy
and rapid project
achievement. For attaining
this task, developers need to
preserve the agility during
development. Agility can be
achieved by correcting the
progression to the project
by eliminating activities
which may not be crucial for
that specific project.
Cont…
• Agile is a methodology for managing and completing software
development projects. It emphasizes flexibility, collaboration, and
customer satisfaction. Agile teams work in short sprints, typically 2-4
weeks long, during which they aim to complete a specific set of tasks
or deliverable. The team holds daily stand-up meetings (often called
"scrums") to discuss progress, identify any roadblocks, and plan for
the next day's work. There is also a regular review and planning
process, known as a "sprint review" and "sprint planning" where the
team demonstrates what they have completed during the sprint and
plans the next sprint. Agile development also encourages continuous
testing and integration, which helps to ensure that the final product
meets the customer's needs.
phases
1. Planning

2. Requirements Analysis

3. Design

4. Development

5. Unit Testing

6. Deployment
Merits of Agile
1. Involves pair programming which
reduces the number of errors in
the development or coding phase
and is better than a single
programmer doing all the hard
part.
2. This model trims down the entire
development time of any project.
3. After each iteration, customers
and stakeholders of the project
can get a fair idea the updated
software that is being developed
by the agile model. So, any change
in the system can be addressed at
any iteration.
Demerits of Agile
• Lack of clear requirements: Agile emphasizes flexibility and
adaptability, which can make it difficult to establish clear and specific
requirements up front.
• Limited documentation: Agile prioritizes working software over
comprehensive documentation, which can make it harder to maintain
or update the software later on.
• Dependence on a skilled and stable team: Agile relies heavily on the
skills and cooperation of the development team. If the team is not
skilled or stable, it can be difficult to make steady progress.
• Limited visibility: Because Agile focuses on small, incremental delivery,
it can be difficult to get a sense of the overall progress of the project or
when it will be completed.
Software requirement analysis and specification
• In a software engineering course, the requirement analysis and
specification phase is typically the first step in the software
development process. It involves the following activities:
• Elicitation: This is the process of gathering information about the
software system to be developed. This includes understanding the
problem domain, identifying the stakeholders, and gathering their
requirements.
• Analysis: This is the process of understanding the requirements and
identifying any inconsistencies or ambiguities. This may also include
creating a requirements document that clearly and accurately
describes the system to be developed.
Cont…
• Specification: This is the process of creating a detailed and precise
description of the software system. This includes creating a software
requirements specification (SRS) document which is a document that
captures all the requirements that are agreed upon by the stakeholders.
• Validation: This is the process of ensuring that the requirements are
complete, consistent, and correct. This may include reviewing the
requirements document with stakeholders, testing the requirements,
and obtaining feedback from users.
• Management: This is the process of maintaining and updating the
requirements as the project progresses. This includes tracking changes
to the requirements and ensuring that they are consistent with the
overall project plan.
Cont…
• During this phase, the software engineering team will use various techniques such
as interviews, questionnaires, and user workshops to identify the needs and
requirements of the stakeholders, to understand the problem domain and to create
a clear and precise software requirements specification that will be used as a basis
for the entire software development process.

• It's a critical phase as it serves as a foundation for the entire project, and if the
requirements are not well understood or not well captured, it can lead to delays,
increased costs, and ultimately, a product that does not meet the needs of the
stakeholders.

You might also like