The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software.
2. The Software Development Lifecycle is a process of building a good
software and its Lifecycle stages provides Quality and Correctness of
good software. All the stages of Lifecycle are important in itself. One
Wrong step in Lifecycle can create a big mistake in the development of
Software.
Being an Owner or stakeholder of a Software Company you must know
the development life cycle of the Software. Even your buyer may also
aware of this Lifecycle. So, Everyone wants to know that how its
development begins, which are the development process, which is the
end portion of development life cycle.
Introduction
3. A framework that describes the activities performed at each stage of a
software development project.
It provides a fixed generic framework that can be tailored to a specific
project.
Project specific parameters will include: Size, (person-years), Budget,
Duration
project plan = lifecycle model + project parameters
Software Development Life Cycle
4. We have numerous types of SDLC models like Waterfall, Agile, Spiral etc.
All this SDLC model must follow this 6 steps for developing errorless
Software. Software Development Life cycle has totaled 6 Steps. All 6
steps are mentioned in below.
1. Requirement Gathering and Analysis
2. System Analysis
3. System Design
4. Development(Coding)
5. Testing
6. Implementation
Software Development Lifecycle Phases
5. Requirement gathering and analysis is the first stage and major stage of
any SDLC model. This phase is basically the brainstorming phase because
it has the many sub stages for like Feasibility Analysis Stages to check
how much idea can put into action for development.
In this Stages, communication taking place between stakeholders, end
users and the project team. So, all the person which are related to the
project and they gather information for software development.
Identify and capture stakeholder requirements using customer
interviews and surveys.
Build multiple use cases to describe each action that a user will
take on the new system.
In that a brand new software development takes place more
requirement gathering process for development and in other already
build software not need too much information and data gathering
process.
1. Requirement Gathering and Analysis
6. This is the second phase of SDLC where the entire system is defined in
detail. In fact, In this stage Developer get a detailed blueprint of the
various phases of the software that developed in the project.
At this stage the system is divided into smaller parts to make it easier
more manageable for the developers, designers, testers, project
managers and other professionals who are going to work on the
software in the latter stages.
2. System Analysis
7. In this phase the design of the system is designed. The Design is
developed by The analysts and designers. The System analyst design the
logical design for the designers and then designer get the basic idea of
designing the software design of Front end and back end both.
The system analyst and Designer work together in designing the
software design and Designer design the best software design under the
guidance of System Analyst.
3. System Design
8. It is the logical part of the development process. In this phase lots of
brains are working for coding and get the final successful result for the
software. In this A team of programmers is assigned by the company to
work on the software.
The work is subdivided under a sub-phase called Task Allocation, where
each task is assigned different coder. So, the development process is
working faster.
4. Coding
9. By process of coding, then the final process testing is proceeding. When
the software is ready it is sent to the testing department where Quality
Analysts test it thoroughly for different errors by forming various test
cases.
Once the testing department and Quality Analyst makes sure that the
software is error-free, then it goes to the next stage. So, the testing
process is complete when all the testing module is complete.
5. Testing
10. This is the final phase of the software development life cycle. In this
stage, if the software runs on various systems by users or buyers. If it
runs smoothly on these systems without any flaw, then it is considered
ready to be launched.
If it generates error then it goes to Testing Department for Testing and
many coders write a new code for developers errorless Software.
6. Implementation
11. To help understand and implement the SDLC phases various SDLC
models have been created by software development experts,
universities, and standards organizations.
Software Development Lifecycle Models
12. Provides basis for project planning, estimating & scheduling
Provides framework for standard set of terminologies, activities &
deliverables
Provides mechanism for project tracking & control
Increases visibility of project progress to all stakeholders
Reasons for Using SDLC Models
13. Increased development speed
Increased product quality
Improved tracking & control
Improved client relations
Decreased project risk
Decreased project management overhead
Advantages of Choosing an Appropriate SDLC
16. Oldest and most well-known SDLC model
Simple, Efficient and Easy to Manage.
Follows a sequential step-by-step process from requirements analysis
to maintenance.
Systems that have well-defined and understood requirements are a
good fit for the Waterfall Model
Waterfall Model
17. Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff, track)
Works well when quality is more important than cost or schedule
Waterfall Model Strengths
18. All requirements must be fully specified upfront
Deliverables created for each phase are considered frozen –inhibits
flexibility
Can give a false impression of progress
Does not reflect problem-solving nature of software development –
iterations of phases
Integration is one big bang at the end
Little opportunity for customer to preview the system (until it may be
too late)
Waterfall Model Weaknesses
19. Requirements are very well known
Product definition is stable
Technology is understood
New version of an existing product
Porting an existing product to a new platform.
When to use the Waterfall Model
21. Spiral Model is a “risk-driven” iterative model
Divides a project into iterations
Each iteration deals with 1 or more risks
Each iteration starts with small set of requirements and goes through
development phase (except Installation and Maintenance) for those
set of requirements.
Iterate until all major risks addressed and the application is ready for
the Installation and Maintenance phase (production)
Each of the iterations prior to the production version is a prototype of
the application.
Last iteration is a waterfall process
Spiral Model
22. Provides early indication of insurmountable risks, without much cost
Critical high-risk functions are developed first
The design does not have to be perfect
Users see the system early because of rapid prototyping tools
Users can be closely tied to all lifecycle steps
Early and frequent feedback from users
Cumulative costs assessed frequently
Spiral Model Strengths
23. Time spent for evaluating risks too large for small or low-risk projects
Time spent planning, resetting objectives, doing risk analysis and
prototyping may be excessive
The model is complex
Risk assessment expertise is required
Spiral may continue indefinitely
Developers must be reassigned during non-development phase
activities
May be hard to define objective, verifiable milestones that indicate
readiness to proceed through the next iteration
Spiral Model Weaknesses
24. When creation of a prototype is appropriate
When costs and risk evaluation is important
For medium to high-risk projects
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)
Long-term project commitment unwise because of potential changes
to economic priorities
When to use Spiral Model
26. Speed up or bypass one or more life cycle phases
Usually less formal and reduced scope
Used for time-critical applications
Used in organizations that employ disciplined methods
Agile Model
27. Rapid Application Development (RAD)
Scrum
Extreme Programming (XP)
Adaptive Software Development (ASD)
Feature Driven Development (FDD)
Crystal Clear
Dynamic Software Development Method (DSDM)
Rational Unify Process (RUP)
Some Agile Methods
28. Deliver a working product faster than conventional linear
development model
Customer feedback at every stage ensures that the end deliverable
satisfies their expectations
No guesswork between the development team and the customer, as
there is face to face communication and continuous inputs from the
client
Agile Model Strengths
29. For larger projects, it is difficult to judge the efforts and the time
required for the project in the SDLC.
Since the requirements are ever changing, there is hardly any
emphasis, which is laid on designing and documentation. Therefore,
chances of the project going off the track easily are much more.
Agile Model Weaknesses