Upload
anurag-tomar
View
248
Download
3
Embed Size (px)
Citation preview
Software Development Life Cycle
(SDLC) By: Rishu
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
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
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 Analysis2. System Analysis3. System Design4. Development(Coding)5. Testing6. Implementation
Software Development Lifecycle Phases
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
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
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
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
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
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
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
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
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
Waterfall
Spiral/Iterative
Agile
Common Life Cycle Models
Waterfall Model
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
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
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
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
Spiral Model
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
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
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
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
Agile Model
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
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
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
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
THANK YOU!!!