SDLC-Software Development Life Cycle fundamentals /basics
The Presentation provides fundamentals of SDLC . The intent is to provide the high level overview to the readers .Details on teh SDLC process , Frameworks are provided.
Feedback for improving the contents are always welcome !
2. WHAT IS PROJECT ?
• Project is a temporary endeavor undertaken to create a unique product, service or result.
• A project is temporary in that it has a defined beginning and end in time, and therefore defined scope and
resources.
• A Series of task that needs to be completed in order to reach a specific outcome ,to achieve a particular
goal.
3. PROJECT MANAGEMENT
Project management is the application of knowledge, skills, tools and techniques to project activities
to meet the project requirements.
4. THE SOFTWARE DEVELOPMENT LIFE CYCLE
SDLC or the Software Development Life Cycle is a
process that produces software with the
highest quality and
lowest cost in
the shortest time.
SDLC includes a detailed plan for how to develop,
alter, maintain, and replace a software system.
SDLC involves several distinct stages, including
planning, design, building, testing, and
deployment.
Popular SDLC models include the waterfall
model, spiral model, and Agile model.
5. BENEFITS OF SDLC
SDLC done right can allow the highest level of management control and
documentation.
Developers understand what they should build and why.
All parties agree on the goal up front and see a clear plan for arriving at that goal.
Everyone understands the costs and resources required.
The benefits of SDLC only exist if the plan is followed faithfully.
7. SDLC CYCLE
(PHASES)
SDLC has defined its phases, it is
important to adhere to the phases
to provide the Product in a
systematic manner.
Below are the phases :
1. Requirement gathering and analysis
2.Design
3.Implementation or coding
4.Testing
5.Deployment
6.Maintenance
8. PHASE 1: REQUIREMENT GATHERING AND ANALYSIS
All the relevant information is collected from
the customer to develop a product as per their
expectation
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.
Requirements
Functional
Non
Functional
Scope Timelines
SRS
(Software Requirement
Specifications)
9. PHASE 2:DESIGN
The requirement gathered in the SRS document is used as an input and software
architecture that is used for implementing system development is derived.
HLD :High Level Design
LLD :Low Level Design/Detailed Design
10. PHASE 3:IMPLEMENTATION OR CODING
Implementation/Coding starts once the developer gets the Design document.
The Software design is translated into source code. All the components of the
software are implemented in this phase.
Peer Review ( For Efficient Logic, Coding standards,Non Dead code,Un used
variables,Code coverage)
11. PHASE 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.
IntegrationTesting ,BugTracking
12. PHASE 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.
13. PHASE 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.
14. SOFTWARE DEVELOPMENT LIFE CYCLE
MODELS
Waterfall Model
V-Shaped Model
Prototype Model
Spiral Model
Iterative Incremental Model
Agile Model
15. WATERFALL MODEL
The Waterfall Model is a linear sequential flow. In which progress
is seen as flowing steadily downwards (like a waterfall) through the
phases of software implementation.
This means that any phase in the development process begins only
if the previous phase is complete.
The waterfall approach does not define the process to go back to
the previous phase to handle changes in requirement.
The waterfall approach is the earliest approach and most widely
known that was used for software development.
The usage
Projects which not focus on changing the requirements, for
example, projects initiated from a request for proposals (RFPs), the
customer has a very clear documented requirements
16. V-SHAPED MODEL
The V-model is an SDLC model where execution of
processes happens in a sequential manner in a V-
shape. It is also known as Verification and
Validation model.
It is an extension of the waterfall model, Instead of
moving down in a linear way, the process steps are
bent upwards after the implementation and coding
phase, to form the typical V shape. The major
difference between V-shaped model and waterfall
model is the early test planning in the V-shaped
model
The usage
1)Software requirements clearly defined and known
2)Software development technologies and tools are
well-known
17. PROTOTYPING MODEL
It refers to the activity of creating prototypes of software
applications.
It is an activity that can occur in software development.
It used to visualize some component of the software to limit the gap
of misunderstanding the customer requirements by the development
team.
This also will reduce the iterations may occur in waterfall approach
and hard to be implemented due to the inflexibility of the waterfall
approach. So, when the final prototype is developed, the requirement
is considered to be frozen.
The usage :This process can be used with any software developing
life cycle model. While this shall be chosen when you are developing
a system has user interactions.
18. PROTOTYPING MODEL…. CONTD
Throwaway prototyping: Prototypes that are eventually discarded rather than
becoming a part of the finally delivered software.
Evolutionary prototyping: prototypes that evolve into the final system through
an iterative incorporation of user feedback.
19. PROTOTYPING MODEL….CONTD
Incremental prototyping: The final product is built as separate prototypes. In the end, the separate prototypes
are merged in an overall design.
Extreme prototyping: used in web applications mainly. Basically, it breaks down web development into three
phases, each one based on the preceding one. The first phase is a static prototype that consists mainly of HTML
pages. In the second phase, the screens are programmed and fully functional using a simulated services layer.
In the third phase, the services are implemented
20. SPIRAL MODEL (SDM)
It is combining elements of both design and
prototyping-in-stages, in an effort to combine
advantages of top-down and bottom-up concepts.
This model of development combines the features of the
prototyping model and the waterfall model.
The spiral model is favored for large, expensive, and
complicated projects.
This model uses many of the same phases as the
waterfall model, in essentially the same order, separated
by planning, risk assessment, and the building of
prototypes and simulations.
The usage :It is used in the large applications and
systems which built-in small phases or segments.
21. ITERATIVE AND INCREMENTAL MODEL
It is developed to overcome the weaknesses of the waterfall
model.
It starts with an initial planning and ends with deployment with
the cyclic interactions in between.
The basic idea behind this method is to develop a system
through repeated cycles (iterative) and in smaller portions at a
time (incremental), allowing software developers to take
advantage of what was learned during the development of earlier
parts or versions of the system.
It can consist of mini waterfalls or mini V-Shaped model
The usage:It is used in shrink-wrap application and large system
which built-in small phases or segments.
Also, can be used in a system has separated components, for
example, ERP system. Which we can start with the budget
module as a first iteration and then we can start with inventory
module and so forth.
22. AGILE MODEL
It is based on iterative and incremental development, where requirements and solutions evolve through
collaboration between cross-functional teams.
The usage
It can be used with any type of the project, but it needs more engagement from the customer and to be
interactive. Also, it can be used when the customer needs to have some functional requirement ready in
less than three weeks and the requirements are not clear enough.
23. STATISTICS
Successful – A successful project was one
that met all three of the triple constraints:
schedule, cost, and scope.
Challenged – A challenged project would
have met two out of three constraints, for
example, delivered on time and on budget
but not with the desired scope.
Failed – A failed project is one that is
canceled before it is completed, or
completed but not used.