Sei sulla pagina 1di 50

1

INTRODUCTION TO SDLC
SDLC is a process followed for a software project, within
a software organization. It consists of a detailed plan
describing how to develop, maintain, replace and alter
or enhance specific software. The life cycle defines a
methodology for improving the quality of software and
the overall development process.
The systems development life cycle, also referred to as
the application development life-cycle, is a term used in
systems engineering, information systems and software
engineering to describe a process for planning, creating,
testing, and deploying an information system.

2
1. Software Development Life Cycle (SDLC) is a process
used by the software industry to design, develop and
test high quality softwares. The SDLC aims to produce a
high-quality software that meets or exceeds customer
expectations, reaches completion within times and cost
estimates.
2. SDLC is the acronym of Software Development Life
Cycle.
3. It is also called as Software Development Process.
4. SDLC is a framework defining tasks performed at each
step in the software development process.
5. ISO/IEC 12207 is an international standard for software
life-cycle processes. It aims to be the standard that
defines all the tasks required for developing and
maintaining software. 3
WHY SDLC ?
Here, are prime reasons why SDLC is important for
developing a software system.
1. It offers a basis for project planning, scheduling, and
estimating
2. Provides a framework for a standard set of activities
and deliverables
3. It is a mechanism for project tracking and control
4. Increases visibility of project planning to all involved
stakeholders of the development process
5. Increased and enhance development speed
6. Improved client relations
7. Helps you to decrease project risk and project
management plan overhead 4
The following figure is a graphical representation of the
various stages of a typical SDLC.

5
SDLC PHASES
The entire SDLC process divided into the following stages:

1. Phase 1: Requirement collection and analysis


2. Phase 2: Feasibility study
3. Phase 3: Design
4. Phase 4: Coding
5. Phase 5: Testing
6. Phase 6: Installation/Deployment
7. Phase 7: Maintenance

6
Phase 1: Requirement collection and
analysis
1. The requirement is the first stage in the SDLC process. It
is conducted by the senior team members with inputs
from all the stakeholders and domain experts in the
industry. Planning for the quality assurance
requirements and recognization of the risks involved is
also done at this stage.
2. This stage gives a clearer picture of the scope of the
entire project and the anticipated issues, opportunities,
and directives which triggered the project.
3. Requirements Gathering stage need teams to get
detailed and precise requirements. This helps
companies to finalize the necessary timeline to finish
the work of that system. 7
Phase 2: Feasibility study
Once the requirement analysis phase is completed the next
step is to define and document software needs. This
process conducted with the help of 'Software Requirement
Specification' document also known as 'SRS' document. It
includes everything which should be designed and
developed during the project life cycle.
There are mainly five types of feasibilities checks:
1. Economic: Can we complete the project within the
budget or not?
2. Legal: Can we handle this project as cyber law and other
regulatory framework/compliances.
3. Operation feasibility: Can we create operations which is
expected by the client?
8
Phase 2: Feasibility study Contd…
4. Technical: Need to check whether the current
computer system can support the software.

5. Schedule: Decide that the project can be completed


within the given schedule or not.

9
Phase 3: Design
In this third phase, the system and software design
documents are prepared as per the requirement
specification document. This helps define overall system
architecture.
This design phase serves as input for the next phase of the
model.
There are two kinds of design documents developed in this
phase:
High-Level Design (HLD)
1. Brief description and name of each module.
2. An outline about the functionality of every module.
10
Phase 3: Design Contd…
3. Interface relationship and dependencies between
modules
4. Database tables identified along with their key
elements
5. Complete architecture diagrams along with
technology details

Low-Level Design(LLD)
1. Functional logic of the modules
2. Database tables, which include type and size
3. Complete detail of the interface
4. Addresses all types of dependency issues
5. Listing of error messages
6. Complete input and outputs for every module
11
Phase 4: Coding
Once the system design phase is over, the next phase is
coding. In this phase, developers start build the entire
system by writing code using the chosen programming
language. In the coding phase, tasks are divided into units
or modules and assigned to the various developers. It is the
longest phase of the Software Development Life Cycle
process.
In this phase, Developer needs to follow certain predefined
coding guidelines. They also need to use programming tools
like compiler, interpreters, debugger to generate and
implement the code.
12
Phase 5: Testing
Once the software is complete, and it is deployed in the
testing environment. The testing team starts testing the
functionality of the entire system. This is done to verify
that the entire application works according to the
customer requirement.
During this phase, QA and testing team may find some
bugs/defects which they communicate to developers.
The development team fixes the bug and send back to
QA for a re-test. This process continues until the
software is bug-free, stable, and working according to
the business needs of that system.
13
Phase 6: Installation/Deployment
Once the software testing phase is over and no
bugs or errors left in the system then the final
deployment process starts. Based on the
feedback given by the project manager, the final
software is released and checked for
deployment issues if any.

14
Phase 7: Maintenance
Once the system is deployed, and customers start using the
developed system, following 3 activities occur:

1. Bug fixing - bugs are reported because of some


scenarios which are not tested at all
2. Upgrade - Upgrading the application to the newer
versions of the Software
3. Enhancement - Adding some new features into the
existing software
The main focus of this SDLC phase is to ensure that needs
continue to be met and that the system continues to
perform as per the specification mentioned in the first
phase.

15
SDLC Models
There are various software development life cycle
models defined and designed which are followed
during the software development process. These
models are also referred as Software Development
Process Models". Each process model follows a Series
of steps unique to its type to ensure success in the
process of software development.

16
SDLC Models Contd…
Following are the most important and popular
SDLC models followed in the industry −
1. Waterfall Model
2. Prototype
3. Spiral Model
4. Win-Win Spiral
5. Incremental
6. Agile Model

17
Waterfall Model
•The waterfall is a widely accepted SDLC model. In this
approach, the whole process of the software
development is divided into various phases. In this
SDLC model, the outcome of one phase acts as the
input for the next phase.

•This SDLC model is documentation-intensive, with


earlier phases documenting what need be performed in
the subsequent phases.

18
Waterfall Model Contd…

19
Waterfall Model - Application
1. Every software developed is different and requires a
suitable SDLC approach to be followed based on the
internal and external factors. Some situations where the
use of Waterfall model is most appropriate are −
2. Requirements are very well documented, clear and
fixed.
3. Product definition is stable.
4. Technology is understood and is not dynamic.
5. There are no ambiguous requirements.
6. Ample resources with required expertise are available
to support the product.
7. The project is short. 20
Waterfall Model - Advantages
The advantages of waterfall development are that it
allows for departmentalization and control. A schedule
can be set with deadlines for each stage of
development and a product can proceed through the
development process model phases one by one.
• Some of the major advantages of the Waterfall
Model are as follows −
• Simple and easy to understand and use
• Phases are processed and completed one at a time.
• Clearly defined stages.
• Process and results are well documented.
21
Waterfall Model - Disadvantages
The disadvantage of waterfall development is that it
does not allow much reflection or revision. Once an
application is in the testing stage, it is very difficult to
go back and change something that was not well-
documented or thought upon in the concept stage.
Some of the major disadvantages are:
• No working software is produced until late during
the life cycle.
• High amounts of risk and uncertainty.
• Poor model for long and ongoing projects.
• It is difficult to measure progress within stages.
• Cannot accommodate changing requirements. 22
Prototype Model
The Prototyping Model is a systems
development method (SDM) in which
a prototype (an early approximation of a final
system or product) is built, tested, and then
reworked as necessary until an
acceptable prototype is finally achieved from
which the complete system or product can now
be developed.

23
Prototype Model contd…
Software prototyping is becoming very popular as a
software development model, as it enables to
understand customer requirements at an early stage of
development. It helps get valuable feedback from the
customer and helps software designers and developers
understand about what exactly is expected from the
product under development.

24
Prototyping - Advantages
The advantages of Prototyping Model are as follows −
• Increased user involvement in the product even
before its implementation.
• Since a working model of the system is displayed, the
users get a better understanding of the system being
developed.
• Reduces time and cost as the defects can be
detected much earlier.
• Quicker user feedback is available leading to better
solutions.
• Missing functionality can be identified easily.
• Confusing or difficult functions can be identified.
25
Prototyping - Disadvantages
The Disadvantages of this Model are as follows −
• Risk of insufficient requirement analysis owing to too
much dependency on the prototype.
• Users may get confused in the prototypes and actual
systems.
• Practically, this methodology may increase the
complexity of the system as scope of the system may
expand beyond original plans.
• Developers may try to reuse the existing prototypes
to build the actual system, even when it is not
technically feasible.
• The effort invested in building prototypes may be too
26
much if it is not monitored properly.
Spiral Model
The spiral model combines the idea of iterative
development with the systematic, controlled aspects of
the waterfall model. It allows incremental releases of
the product or incremental refinement through each
iteration around the spiral.
The spiral model has four phases. A software project
repeatedly passes through these phases in iterations
called Spirals.
1. Identification
2. Design
3. Construct or Build
4. Evaluation and Risk Analysis
27
Spiral Model – Phases
Identification:
This phase starts with gathering the business
requirements in the baseline spiral. In the subsequent
spirals as the product matures, identification of system
requirements, subsystem requirements and unit
requirements are all done in this phase.

Design:
The Design phase starts with the conceptual design in
the baseline spiral and involves architectural design,
logical design of modules, physical product design and
the final design in the subsequent spirals.
28
Spiral Model – Phases contd…
Construct or Build:
The Construct phase refers to production of the actual
software product at every spiral. In the baseline spiral,
when the product is just thought of and the design is
being developed a POC (Proof of Concept) is developed
in this phase to get customer feedback.
Evaluation and Risk Analysis:
Risk Analysis includes identifying, estimating and
monitoring the technical feasibility and management
risks, such as schedule slippage and cost overrun. After
testing the build, at the end of first iteration, the
customer evaluates the software and provides
feedback. 29
The following illustration is a representation of the
Spiral Model, listing the activities in each phase.

30
Spiral Model - Advantages
The advantages of the Spiral Model are as follows :
1. Changing requirements can be accommodated.
2. Allows extensive use of prototypes.
3. Requirements can be captured more accurately.
4. Users see the system early.
5. Development can be divided into smaller parts and
the risky parts can be developed earlier which helps
in better risk management.
31
Spiral Model - Disadvantages
The disadvantages of the Spiral model are as follows −
1. End of the project may not be known early.
2. Not suitable for small or low risk projects and could
be expensive for small projects.
3. Process is complex.
4. Spiral may go on indefinitely.
5. Large number of intermediate stages requires
excessive documentation.

32
Win-Win Spiral Model
The Win-Win spiral model is an add-on to the spiral
model. The stages in this model are same as the stages
in the spiral approach. The only difference is that there
is a discussion and negotiations of the stakeholders’
win conditions on the requirements that need to be
included in the current iteration of the software takes
place between the development team and the
customer at the time of the identifying the
requirements.

33
Win-Win Spiral Model Contd…
The best negotiations strive for a “win-win” result. That
is, the customer wins by getting the system or product
that satisfies the majority of the customer’s needs and
the developer wins by working to realistic and
achievable budgets and deadlines.
Boehm’s WINWIN spiral model defines a set of
negotiation activities at the beginning of each pass
around the spiral. Rather than a single customer
communication activity, the following activities are
defined:
34
Win-Win Spiral Model Contd…
• 1. Identification of the system or subsystem’s key
“stakeholders.”
• 2. Determination of the stakeholders’ “win
conditions.”
• 3. Negotiation of the stakeholders’ win conditions to
reconcile them into a set of win-win conditions for all
concerned (including the software project team).
• Successful completion of these initial steps achieves
a win-win result, which becomes the key criterion for
proceeding to software and system definition.

35
Incremental Model
Incremental Model is a process of software
development where requirements are broken
down into multiple standalone modules of
software development cycle.
Once the core product is analyzed by the client,
there is plan development for the
next increment.
Incremental development is done in steps from
analysis design, implementation,
testing/verification, maintenance.
36
Incremental Model Contd…
Each iteration passes through the requirements,
design, coding and testing phases. And each
subsequent release of the system adds function to the
previous release until all designed functionality has
been implemented.

37
When to Use Incremental Model
Incremental model can be used when −
• Most of the requirements are known up-front but
are expected to evolve over time.
• The requirements are prioritized.
• There is a need to get the basic functionality
delivered fast.
• A project has lengthy development schedules.
• A project has new technology.
• The domain is new to the team.

38
Incremental Model - Advantages
The advantages or strengths of Incremental model are −
• You can develop prioritized requirements first.
• Initial product delivery is faster.
• Customers gets important functionality early.
• Lowers initial delivery cost.
• Each release is a product increment, so that the
customer will have a working product at hand all the
time.
• Customer can provide feedback to each product
increment, thus avoiding surprises at the end of
development.
• Requirements changes can be easily accommodated.
39
Incremental Model - Disadvantages
The disadvantages of the Incremental model are −
• Requires effective planning of iterations.
• Requires efficient design to ensure inclusion of the
required functionality and provision for changes
later.
• Requires early definition of a complete and fully
functional system to allow the definition of
increments.
• Total cost of the complete system is not lower.

40
Agile Model
Agile SDLC model is a combination of iterative and
incremental process models with focus on process
adaptability and customer satisfaction by rapid delivery
of working software product.
Iterative approach is taken and working software build
is delivered after each iteration. Each build is
incremental in terms of features; the final build holds
all the features required by the customer.
Agile Methods break the product into small
incremental builds. These builds are provided in
iterations. Each iteration takes about 1 to 3 weeks.

41
Agile Model contd…
Every iteration involves cross functional teams working
simultaneously on various areas like −
1. Planning
2. Requirements Analysis
3. Design
4. Coding
5. Unit Testing and
6. Acceptance Testing
Agile model believes that every project needs to be
handled differently and the existing methods need to
be tailored to best suit the project requirements.
42
Here is a graphical illustration of this model:

43
Agile Model - Advantages
The advantages of the Agile Model are as follows −
1. Is a very realistic approach to software
development.
2. Promotes teamwork and cross training.
3. Functionality can be developed rapidly and
demonstrated.
4. Resource requirements are minimum.
5. Suitable for fixed or changing requirements
6. Delivers early partial working solutions.
7. Good model for environments that change steadily.
8. Little or no planning required and easy to manage.
9. Gives flexibility to developers. 44
Agile Model - Disadvantage
The disadvantages of the Agile Model are as follows −
1. Not suitable for handling complex dependencies.
2. More risk of sustainability, maintainability and
extensibility.
3. Depends heavily on customer interaction, so if
customer is not clear, team can be driven in the
wrong direction.
4. There is a very high individual dependency, since
there is minimum documentation generated.
5. Transfer of technology to new team members may
be quite challenging due to lack of documentation.
45
Software Requirements
Characteristics
A complete Software Requirement Specifications must
be:
1. Clear 6. Verifiable
2. Correct 7. Prioritized
3. Consistent 8. Unambiguous
4. Comprehensible 9. Traceable
5. Modifiable 10. Credible source

46
Software Quality
Quality is defined as meeting the customer’s
requirements and according to the standards.
Software Quality Characteristics: - A set of attributes
of a software product by which its quality is described
and evaluated. A software quality characteristic may be
refined into multiple levels of sub-characteristics.
• Functionality
• Reliability
• Usability
• Efficiency
• Maintainability
• Portability 47
Software Testing
Software testing is a process, to evaluate the
functionality of a software application with an intent to
find whether the developed software met the specified
requirements or not and to identify the defects to
ensure that the product is defect free in order to
produce the quality product.

Types of testing:
1. White Box Testing
2. Black Box Testing
3. Grey Box Testing
48
Types of Testing
White Box Testing: It is also called as Glass Box, Clear
Box, Structural Testing. White Box Testing is based on
applications internal code structure. In white-box
testing, an internal perspective of the system, as well as
programming skills, are used to design test cases. This
testing is usually done at the unit level.
Black Box Testing: It is also called as
Behavioral/Specification-Based/Input-Output Testing.
Black Box Testing is a software testing method in which
testers evaluate the functionality of the software under
test without looking at the internal code structure.
49
Types of testing contd…
Grey Box Testing: Grey box is the combination of both
White Box and Black Box Testing. The tester who works
on this type of testing needs to have access to design
documents. This helps to create better test cases in this
process.

50

Potrebbero piacerti anche