SDLC
SDLC
SDLC
SEMINAR REPORT
On
Submitted in
Session: 2019-20
DEPARTMENT OF IT & CA
Table Of Contents
Chapter 1)Software Development Life Cycle Process ..................................... 4
Chapter 2)SDLC Cycle .................................................................................... 5
Chapter 3)SDLC Phases .................................................................................. 5
3.1) Requirement Gathering and Analysis .................................................. 7
3.2) Design ................................................................................................... 8
3.3) Implementation And Coding .............................................................. 11
3.4) Testing ................................................................................................ 14
3.5) Deployment ......................................................................................... 20
3.6) Maintenance ....................................................................................... 22
Chapter 4)Software Development Life Cycle Models ................................... 25
4.1) Waterfall Model .................................................................................. 26
4.2) V-Shaped Model ................................................................................. 28
4.3) Prototype Model ................................................................................. 32
4.4) Spiral Model ....................................................................................... 35
4.5) Iterative Incremental Model ............................................................... 37
4.6) Big Bang Model .................................................................................. 40
4.7) Agile Model ......................................................................................... 45
Chapter 5) Conclusion ……………………...………………………………………………………. 48
Chapter 6) References ……………………..………………………………………………………. 49
3|SDLC
List of Figures
1.) Phases of SDLC………………………………………………………………………………………… 5
Purpose:
Purpose of SDLC is to deliver a high-quality product which is as per the
customer’s requirement.
SDLC has defined its phases as, Requirement gathering, Designing, Coding,
Testing, and Maintenance. It is important to adhere to the phases to provide the
Product in a systematic manner.
decides to design first whereas the other decides to code first and the other on the
documentation part.
This will lead to project failure because of which it is necessary to have a good
knowledge and understanding among the team members to deliver an expected
product.
SDLC Cycle
SDLC Cycle represents the process of developing software.
SDLC Phases
Software life cycle models describe phases of the software cycle and the order in
which those phases are executed. Each phase produces deliverables required by the
next phase in the life cycle. Requirements are translated into design. Code is
produced according to the design which is called development phase. After coding
and development the testing verifies the deliverable of the implementation phase
against requirements. The testing team follows Software Testing Life Cycle
(STLC) which is similar to the development cycle followed by the development
team.
Business analyst and 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.
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.
An SRS describes the functionality the product needs to fulfill all stakeholders
(business, users) needs.
A purpose
An overall description
Specific requirements
The best SRS documents define how the software will interact when embedded in
hardware — or when connected to other software. Good SRS documents also
account for real-life users.
A software requirements specification is the basis for your entire project. It lays the
framework that every team involved in development will follow.
Using the SRS helps to ensure requirements are fulfilled. And it can also help you
make decisions about your product’s lifecycle — for instance, when to retire a
feature.
Writing an SRS can also minimize overall development time and costs. Embedded
development teams especially benefit from using an SRS.
Here are five steps you can follow to write an effective SRS document.
Your first step is to create an outline for your software requirements specification.
This may be something you create yourself. Or you may use an existing SRS
template.
10 | S D L C
If you’re creating this yourself, here’s what your outline might look like:
1. Introduction
1.1 Purpose
1.4 Scope
2. Overall Description
Once you have your basic outline, you’re ready to start filling it out.
11 | S D L C
After having the user acceptance of the new system developed, the implementation
phase begins. Implementation is the stage of a project during which theory is
turned into practice. The major steps involved in this phase are:
The hardware and the relevant software required for running the system must be
made fully operational before implementation. The conversion is also one of the
most critical and expensive activities in the system development life cycle. The
data from the old system needs to be converted to operate in the new format of the
new system. The database needs to be setup with security and recovery procedures
fully defined.
During this phase, all the programs of the system are loaded onto the user’s
computer. After loading the system, training of the user starts. Main topics of such
type of training are:
After the users are trained about the computerized system, working has to shift
from manual to computerized working. The process is called Changeover. The
following strategies are followed for changeover of the system.
Manual results can be compared with the results of the computerized system.
The operational work is doubled.
Failure of the computerised system at the early stage does not affect the
working of the organization, because the manual system continues to work, as it
used to do.
(iii) Pilot run: In this type of run, the new system is run with the data from one or
more of the previous periods for the whole or part of the system. The results are
compared with the old
system results. It is less expensive and risky than parallel run approach. This
strategy builds the confidence and the errors are traced easily without affecting the
operations.
The documentation of the system is also one of the most important activity in the
system development life cycle. This ensures the continuity of the system.
Generally following two types of documentations are prepared for any system.
13 | S D L C
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.
Retesting, regression testing is done until the point at which the software is as per
the customer’s expectation. Testers refer SRS document to make sure that the
software is as per the customer’s standard.
Before actually implementing the new system into operations, a test run of the
system is done removing all the bugs, if any. It is an important phase of a
successful system. After codifying the whole programs of the system, a test plan
should be developed and run on a given set of test data. The output of the test run
should match the expected results. Sometimes, system testing is considered as a
part of implementation process.
Using the test data following test run are carried out:
Program test
System test
Program Test: When the programs have been coded and compiled and brought
to working conditions, they must be individually tested with the prepared test data.
All verification and validation be checked and any undesirable happening must be
noted and debugged (error corrected).
System Test: After carrying out the program test for each of the programs of the
system and errors removed, then system test is done. At this stage the test is done
on actual data. The complete system is executed on the actual data. At each stage
15 | S D L C
of the execution, the results or output of the system is analyzed. During the result
analysis, it may be found that the outputs are not matching the expected output of
the system. In such case, the errors in the particular programs are identified and are
fixed and further tested for the expected output. All independent modules be
brought together and all the interfaces to be tested between multiple modules, the
whole set of software is tested to establish that all modules work together correctly
as an application or system or package.
When it is ensured that the system is running error-free, the users are called with
their own actual data so that the system could be shown running as per their
requirements.
Principles of Testing:-
The focus is on inputs and outputs ignoring the internal knowledge of the code.
Using black box testing, one can test operating systems like Windows, websites
like Google and even our own customized applications, as the core knowledge
about these operating systems are not required.
Equivalent Class Testing: It is used to reduce the number of possible test cases to
an ideal level to maintain a reasonable test coverage.
17 | S D L C
Advantages
Suitable for large code segments
Increased Efficiency
Prior knowledge of code is not required
Black box testing is all about enhancing the user experience even if they are from a
non-technical background. On the other hand, for technical support and precise
coding, White box testing is an excellent approach for organizations to employ.
18 | S D L C
The tester has the knowledge of the internals of a system and knows how the
system is implemented. The tester uses this knowledge to develop test cases that
will examine the control flow, information flow, data flow, exception and error
handling as well as coding practices of the system.
1. The first step for the tester is to understand the source code.
2. White Box testing then involves testing of internal functions of the application,
so knowledge of source code is crucial.
3. The tester should be aware of the secure coding practices as security is the most
important factor in testing.
4. Tester can then write code for testing the application or can prepare certain test
cases with suitable inputs.
Code Coverage Analysis: It eliminates gaps in test case suite by identifying the
program which cannot be examined by test cases. In addition, you can create test
cases for untested part of the program which improves the quality of the software.
19 | S D L C
Statement Coverage: This technique checks every statement of the code at least
once during the test cycle.
Branch Coverage: This technique tests every possible path in the code like If-else
loops and other conditional loops of the software.
Advantages
It optimizes the code as it tests every statement of the code.
Automated testing is supported.
Tests and test scripts can be reused.
Testing is supported at early development stages.
Software testing is the most important part for maintaining the quality of the
software. Manual and automated testing both are required to test the software
thoroughly.
Taking up the black box and white box testing using an automated testing tool such
as Testing Whiz is highly recommended. Automated testing allows the tester to
focus more on the high priority issues plaguing on the deployment of the software
instead of the repetitive mundane tasks that testing needs. This helps save time,
increase productivity and efficiency of the testers along with boosting employee
morale. Moreover, testers from all backgrounds can use it seamlessly.
20 | S D L C
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.
In the case of UAT, a replica of the production environment is created and the
customer along with the developers does the testing. If the customer finds the
application as expected, then sign off is provided by the customer to go live.
The phase is initiated after the system has been tested and accepted by the user.
Regardless of the type of system, all aspects of the deployment phase should be
followed. This will ensure the smoothest possible transition to the organization’s
desired goal.
Tasks and activities in the deployment phase are associated with certain
deliverables described in section 4. Tasks and activities actually performed depend
on the nature of the project.
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.
Routine changes are not as complex as major modifications and can usually be
implemented in the normal course of business. Routine change controls should
23 | S D L C
One of the basic notions of the software development process is SDLC models
which stands for Software Development Life Cycle models. SDLC – is a
continuous process, which starts from the moment, when it’s made a decision to
launch the project, and it ends at the moment of its full remove from the
exploitation. There is no one single SDLC model. They are divided into main
groups, each with its features and weaknesses.
Evolving from the first and oldest “waterfall” SDLC model, their variety
significantly expanded. The SDLC models diversity is predetermined by the wide
number of product types – starting with a web application development to a
complex medical software. And if you take one of the SDLC models mentioned
below as the basis – in any case, it should be adjusted to the features of the
product, project, and company.
26 | S D L C
1) 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.
2) V-Shaped Model
The V-model is a type of SDLC model where process executes in a sequential
manner in V-shape. It is also known as Verification and Validation model. It is
based on the association of a testing phase for each corresponding development
stage. Development of each step directly associated with the testing phase. The
next phase starts only after completion of the previous phase i.e. for each
development activity, there is a testing activity corresponding to it.
Design Phase:
Testing Phases:
Unit Testing: Unit Test Plans are developed during module design phase.
These Unit Test Plans are executed to eliminate bugs at code or unit level.
Integration testing: After completion of unit testing Integration testing is
performed. In integration testing, the modules are integrated and the system is
tested. Integration testing is performed on the Architecture design phase. This
test verifies the communication of modules among themselves.
System Testing: System testing test the complete application with its
functionality, inter dependency, and communication .It tests the functional and
non-functional requirements of the developed application.
User Acceptance Testing (UAT): UAT is performed in a user environment
that resembles the production environment. UAT verifies that the delivered
system meets user’s requirement and system is ready for use in real world.
Why preferred?
It is easy to manage due to the rigidity of the model. Each phase of V-Model
has specific deliverables and a review process.
Proactive defect tracking – that is defects are found at early stage.
When to use?
Where requirements are clearly defined and fixed.
The V-Model is used when ample technical resources are available with
technical expertise.
31 | S D L C
Advantages:
This is a highly disciplined model and Phases are completed one at a time.
V-Model is used for small projects where project requirements are clear.
Simple and easy to understand and use.
This model focuses on verification and validation activities early in the life
cycle thereby enhancing the probability of building an error-free and good
quality product.
It enables project management to track progress accurately.
Disadvantages:
High risk and uncertainty.
It is not a good for complex and object-oriented projects.
It is not suitable for projects where requirements are not clear and contains
high risk of changing.
This model does not support iteration of phases.
It does not easily handle concurrent events.
32 | S D L C
3) Prototype Model
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. Prototype models have limited functional capabilities
and inefficient performance when compared to the actual software. Dummy
functions are used to create prototypes.
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.
prototype from scratch for every iteration of the process can sometimes be
very frustrating for the developers.
Advantages
The customers get to see the partial product early in the life cycle. This
ensures a greater level of customer satisfaction and comfort.
New requirements can be easily accommodated as there is scope for
refinement.
34 | S D L C
Errors can be detected much earlier thereby saving a lot of effort and cost,
besides enhancing the quality of the software.
The developed prototype can be reused by the developer for more complicated
projects in the future.
Flexibility in design.
Disadvantages
There may be too much variation in requirements each time the prototype is
evaluated by the customer.
Poor Documentation due to continuously changing customer requirements.
It is very difficult for the developers to accommodate all the changes
demanded by the customer.
There is uncertainty in determining the number of iterations that would be
required before the prototype is finally accepted by the customer.
The customer might lose interest in the product if he/she is not satisfied with
the initial prototype.
Use
The Prototyping Model should be used when the requirements of the product are
not clearly understood or are unstable. It can also be used if requirements are
changing quickly. This model can be successfully used for developing user
interfaces, high technology software-intensive systems, and systems with complex
algorithms and interfaces. It is also a very good choice to demonstrate the technical
feasibility of the product.
35 | S D L C
4) 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.
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.
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.
The iterative incremental model divides the product into small chunks.
More flexible.
Big Bang Model does not have any defined process. Money and efforts are put
together as the input and output come as a developed product which might be or
might not be the same as what the customer needs.
Big Bang Model does not require much planning and scheduling. The developer
does the requirement analysis & coding and develops the product as per his
understanding. This model is used for small projects only. There is no testing team
and no formal testing is done, and this could be a cause for the failure of the
project.
Unlike nearly all other popular SDLC models, the Big Bang model is unique in
that it requires virtually no planning, organization, best practices, or typical
procedures. Instead, the Big Bang model is fundamentally about simply starting the
project right now, at this instant, with no formal development structure or
organization. It is typical that very few if any team members, let alone the
customer, are completely familiar with what the requirements are for the project,
nor what is necessary to meet those goals, and thus every single aspect of the
project is developed and implemented on the fly.
Day-to-day development occurs at the whim of the team members and is loosely
based on the requirements that are generally known and accepted at that present
moment, without much regard for consequences or future requirements that may
arise. Everything about the project is completed with a laissez-faire attitude, with
41 | S D L C
little regard or care for what may come next, and instead simply enjoying the work
that is being performed at that very moment. In short, the Big Bang model is the
heavy metal of software development methodologies.
In such cases, the only logical solution is a deployment that occurs instantly, like
flipping a switch. This method is often referred to as big bang adoption, which
requires that all users of a system are moved to the new system at a specific date
and time.
It should come as no surprise that implementing any system via big bang
deployment — in particular a new software system — is fraught with numerous
risks. In many cases, unforeseen issues can cause quirks in the system or failures to
properly handle migrated information that may exist when coming from a previous
version of the system.
In the worst cases, such instantaneous deployment can lead to bugs in the code that
are so severe, the system virtually fails to function on all fronts. One such real-
world example of a big bang deployment that went terribly wrong was in 1992
with the Computer Aided Dispatch program for the London Ambulance Service.
The software was intended to facilitate the rapid allocation of responding
ambulances to emergency services calls.
Unfortunately, within just a few hours of the system going live, numerous
problems arose, such as the software sending multiple units to one location while
other locations were completely ignored. The application began producing such as
massive number of error messages on dispatchers’ terminals that incoming
emergency calls were completely lost. A mere eight days after the system was
launched, it was completely shut down in favor of the old, manual system.
43 | S D L C
Extremely Risky: Perhaps it goes without saying, but the use of the Big Bang
model for all but the simplest of projects comes with some very real and very
dangerous risks. Without proper planning, formal leadership, or even standard
coding practices and procedures, it is all too easy to run into a potentially serious
problem later down the line once deep into the project, which may require a
massive if not total rewrite of the entire code base up to that point.
Too Simple for Complex Projects: While the Big Bang model works fairly well
with smaller projects and tiny teams, on the flip side, it is categorically disastrous
for larger or long-term projects. Even in the best case for a lengthy project,
problems would be discovered frequently but relatively soon after they were
created, which would already require hours if not days of necessary refactoring and
alterations to existing components.
Potentially Expensive: While the Big Bang model is about as inexpensive a model
as it gets when the project first gets out of the gates, it also comes with some risks,
which can cause it to unintentionally become one of the most
expensive SDLC models in the long run. While initial funds and budget will be
spent on a whim for whatever is necessary to get the ball rolling, such lack of
planning can quickly spiral out of control when requirements of the project
dramatically change without notice.
45 | S D L C
7) Agile Model
Agile Model is a combination of the Iterative and incremental model. This model
focuses more on flexibility while developing a product rather than on the
requirement.
In agile iterations are termed as sprints. Each sprint lasts for2-4 weeks. At the end
of each sprint, the product owner verifies the product and after his approval, it is
delivered to the customer.
Customer feedback is taken for improvement and his suggestions and enhancement
are worked on in the next sprint. Testing is done in each sprint to minimize the risk
of any failures.
Up to date, Agile SDLC is one of the most popular software development models.
The year 2001 is considered to be the beginning of Agile methodologies.
Seventeen software developers published the Agile Manifesto that described the
underlying principles of Agile best practices.
Provided flexibility is the first and foremost benefit of the Agile software
development life cycle. The model promotes the development of software in small,
quick steps. Agile practices are based on continuous iterations of software that
allow companies to release updates to users more frequently. Each new release
serves as a base for the next one.
46 | S D L C
A development team or company must complete a phase before moving to the next
one. This is the main differentiating factor from traditional software development
life cycle models.
An iterative approach means that you create new software through refinements.
You create an MVP and, later, refine the features and various tools. This approach
helps the development team simultaneously work on various parts of a product and
make changes easily.
47 | S D L C
Disadvantages:
Lack of documentation.
Agile needs experienced and highly skilled resources.
If a customer is not clear about how exactly they want the product to be,
then the project would fail.
48 | S D L C
Conclusion
Adherence to a suitable life cycle is very important, for the successful completion
of the Project. This, in turn, makes the management easier.
Different Software Development Life Cycle models have their own Pros and Cons.
The best model for any Project can be determined by the factors like Requirement
(whether it is clear or unclear), System Complexity, Size of the Project, Cost, Skill
limitation, etc.
Example, in case of an unclear requirement, Spiral and Agile models are best to be
used as the required change can be accommodated easily at any stage.
Waterfall model is a basic model and all the other SDLC models are based on that
only.
49 | S D L C
References
https://www.softwaretestinghelp.com/software-development-
life-cycle-sdlc
https://www.tutorialspoint.com/sdlc/sdlc_overview.html
http://softwaretestingfundamentals.com/software-
development-life-cycle/
https://mlsdev.com/blog/agile-sdlc
https://www.geeksforgeeks.org/software-engineering-sdlc-v-
model/
https://www.testingexcellence.com/software-development-life-
cycle-sdlc-phases/
https://blog.testlodge.com/software-development-life-cycle/