Sdlc model
Sdlc model
ENTERPRISES
Sdlc model
1. Requirement Phase
This is the most crucial phase of the software development life cycle for the developing
team as well as for the project manager. During this phase, the client states
requirements, specifications, expectations, and any other special requirement related to
the product or software. All these are gathered by the business manager or project
manager or analyst of the service providing company.
The requirement includes how the product will be used and who will use the product to
determine the load of operations. All information gathered from this phase is critical to
developing the product as per the customer requirements.
2. Design Phase
The design phase includes a detailed analysis of new software according to the
requirement phase. This is the high priority phase in the development life cycle of a
system because the logical designing of the system is converted into physical designing.
The output of the requirement phase is a collection of things that are required, and the
design phase gives the way to accomplish these requirements. The decision of all
required essential tools such as programming language like Java, .NET, PHP,
a database like Oracle, MySQL, a combination of hardware and software to provide a
platform on which software can run without any problem is taken in this phase.
There are several techniques and tools, such as data flow diagrams, flowcharts, decision
tables, and decision trees, Data dictionary, and the structured dictionary are used for
describing the system design.
Front-end developers develop easy and attractive GUI and necessary interfaces to
interact with back-end operations and back-end developers do back-end coding
according to the required operations. All is done according to the procedure and
guidelines demonstrated by the project manager.
Since this is the coding phase, it takes the longest time and more focused approach for
the developer in the software development life cycle.
JAI
ENTERPRISES
4. Testing Phase
Testing is the last step of completing a software system. In this phase, after getting the
developed GUI and back-end combination, it is tested against the requirements stated in
the requirement phase. Testing determines whether the software is actually giving the
result as per the requirements addressed in the requirement phase or not. The
Development team makes a test plan to start the test. This test plan includes all types of
essential testing such as integration testing, unit testing, acceptance testing, and system
testing. Non-functional testing is also done in this phase.
If there are any defects in the software or it is not working as per expectations, then the
testing team gives information to the development team in detail about the issue. If it is
a valid defect or worth to sort out, it will be fixed, and the development team replaces it
with the new one, and it also needs to be verified.
As soon as customers receive the product, they are recommended first to do the beta
testing. In beta testing, customer can require any changes which are not present in the
software but mentioned in the requirement document or any other GUI changes to make
it more user-friendly. Besides this, if any type of defect is encountered while a customer
using the software; it will be informed to the development team of that particular
software to sort out the problem. If it is a severe issue, then the development team
solves it in a short time; otherwise, if it is less severe, then it will wait for the next
version.
After the solution of all types of bugs and changes, the software finally deployed to the
end-user.
6. Maintenance
The maintenance phase is the last and long-lasting phase of SDLC because it is the
process which continues until the software's life cycle comes to an end. When a customer
starts using software, then actual problems start to occur, and at that time there's a
need to solve these problems. This phase also includes making changes in hardware and
software to maintain its operational effectiveness like to improve its performance,
enhance security features and according to customer's requirements with upcoming
time. This process to take care of product time to time is called maintenance.
Waterfall model:
Application
Requirements are very well documented, clear and fixed.
Product definition is stable.
Technology is understood and is not dynamic.
There are no ambiguous requirements.
JAI
ENTERPRISES
Ample resources with required expertise are available to support the
product.
The project is short.
Advantages
Simple and easy to understand and use
Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well
understood.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well documented.
Disadvantages
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high
risk of changing. So, risk and uncertainty is high with this process model.
It is difficult to measure progress within stages.
Cannot accommodate changing requirements.
Spiral model
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.
This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the end of the spiral,
the product is deployed in the identified market.
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.
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.
Then in the subsequent spirals with higher clarity on requirements and design details a
working model of the software called build is produced with a version number. These
builds are sent to the customer for feedback.
Application
V model
System Design
JAI
ENTERPRISES
Once you have the clear and detailed product requirements, it is time to design the
complete system. The system design will have the understanding and detailing the
complete hardware and communication setup for the product under development. The
system test plan is developed based on the system design. Doing this at an earlier stage
leaves more time for the actual test execution later.
Architectural Design
Architectural specifications are understood and designed in this phase. Usually more
than one technical approach is proposed and based on the technical and financial
feasibility the final decision is taken. The system design is broken down further into
modules taking up different functionality. This is also referred to as High Level Design
(HLD).
The data transfer and communication between the internal modules and with the outside
world (other systems) is clearly understood and defined in this stage. With this
information, integration tests can be designed and documented during this stage.
Module Design
In this phase, the detailed internal design for all the system modules is specified,
referred to as Low Level Design (LLD). It is important that the design is compatible
with the other modules in the system architecture and the other external systems. The
unit tests are an essential part of any development process and helps eliminate the
maximum faults and errors at a very early stage. These unit tests can be designed at this
stage based on the internal module designs.
Coding Phase
The actual coding of the system modules designed in the design phase is taken up in the
Coding phase. The best suitable programming language is decided based on the system
and architectural requirements.
The coding is performed based on the coding guidelines and standards. The code goes
through numerous code reviews and is optimized for best performance before the final
build is checked into the repository.
Validation Phases
The different Validation Phases in a V-Model are explained in detail below.
Unit Testing
Unit tests designed in the module design phase are executed on the code during this
validation phase. Unit testing is the testing at code level and helps eliminate bugs at an
early stage, though all defects cannot be uncovered by unit testing.
Integration Testing
Integration testing is associated with the architectural design phase. Integration tests are
performed to test the coexistence and communication of the internal modules within the
system.
System Testing
System testing is directly associated with the system design phase. System tests check
the entire system functionality and the communication of the system under development
JAI
ENTERPRISES
with external systems. Most of the software and hardware compatibility issues can be
uncovered during this system test execution.
Acceptance Testing
Acceptance testing is associated with the business requirement analysis phase and
involves testing the product in user environment. Acceptance tests uncover the
compatibility issues with the other systems available in the user environment. It also
discovers the non-functional issues such as load and performance defects in the actual
user environment.
V- Model ─ Application
V- Model application is almost the same as the waterfall model, as both the models are of
sequential type. Requirements have to be very clear before the project starts, because it
is usually expensive to go back and make changes. This model is used in the medical
development field, as it is strictly a disciplined domain.
The following pointers are some of the most suitable scenarios to use the V-Model
application.
Requirements are well defined, clearly documented and fixed.
Product definition is stable.
Technology is not dynamic and is well understood by the project team.
There are no ambiguous or undefined requirements.
The project is short.
Iterative model
JAI
ENTERPRISES
Prototype model
Short point
Customer is not clear with idea
Throwaway model
Good for technical and requirement risk
Increase in cost of development
Evolutionary model
It is combination of iterative and incremental model of sdlc
Incremental model first implement a few basic features and deliver to the
customer. Then build next part and deliver it again repeat this step until the
desired system is fully released.
Iterative model - advantage is feedback process in every phase
Also known as “design a little ,build a little, test a little, deploy a little”
JAI
ENTERPRISES
STLC Phases
There are following six major phases in every Software Testing Life Cycle Model (STLC
Model):
1. Requirement Analysis
2. Test Planning
3. Test case development
4. Test Environment setup
5. Test Execution
6. Test Cycle closure
Each of these stages has a definite Entry and Exit criteria, Activities & Deliverables
associated with it.
You have Entry and Exit Criteria for all levels in the Software Testing Life Cycle (STLC)
In an Ideal world, you will not enter the next stage until the exit criteria for the previous
stage is met. But practically this is not always possible. So for this tutorial, we will focus on
activities and deliverables for the different stages in STLC life cycle. Let’s look into them in
detail.
RTM
Automation feasibility report. (if applicable)