sdlc - software development life cycle

9
Understanding on Software Development Life Cycle (SDLC) Presented by – Suresh Koujalagi

Upload: suresh-koujalagi

Post on 13-Apr-2017

157 views

Category:

Business


2 download

TRANSCRIPT

Page 1: SDLC - Software Development Life Cycle

Understanding on Software Development Life Cycle (SDLC)

Presented by – Suresh Koujalagi

Page 2: SDLC - Software Development Life Cycle

Definition and StagesIt is a process used by software (IT) industry to design, implement and test high quality software's and for Modify or replace specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.

The various Stages of SDLC. 1. Planning/ requirement gathering 2. Analysis3. Design 4. Coding/ Development5. Testing 6. Deployment

Deployment SDLC Design

Planning/ requirement gathering

Analysis

TestingCoding/

Development

Page 3: SDLC - Software Development Life Cycle

Preliminary Investigation:• What are the basic requirements & functions of the proposed system? Can we complete the proposed system be in time

to be useful? How much will it cost – do we have enough budgeted for it?

Requirements Definition:• What features are important? What do the users need it to do? What restrictions (site, environment, materials

availability) are there? What software do we need? What hardware do we need to run it? What connectivity do we need?

Design:• What do we need the system to output? What inputs do we have available? What processing do we need to do to turn

the input into the output? Is there an existing system we can leverage to do this? Can we buy a boxed product or make our own? Does the boxed product meet our requirements? If we need to build our own, what components will we need?

Construction:• Put all the objects gathered in the design phase. Redesign if the system does not work. Do we have sufficient training

material & documentation?

Deployment:• Are the users and support staff trained? What bugs are there? Does everyone agree that the system meets the

requirements?

Maintenance:• What new features are requested? What new regulations does it need to comply to? What training will new employees

need?

Obsolescence:• What safety hazards are there? Can we trade the hardware in or recycle it?

Description of each Stages

Page 4: SDLC - Software Development Life Cycle

6 Basic SDLC Methodologies1. Waterfall Model: Waterfall is the oldest and most straightforward of the structured SDLC methodologies — finish one phase, then move on to the next. No going back.

2. V-Shaped Model: Also known as the Verification and Validation model, the V-shaped model grew out of Waterfall and is characterized by a corresponding testing phase for each development stage. Like Waterfall, each stage begins only after the previous one has ended.

3. Iterative Model: The Iterative model is repetition incarnate. Instead of starting with fully known requirements, you implement a set of software requirements, then test, evaluate and pinpoint further requirements. A new version of the software is produced with each phase, or iteration. Rinse and repeat until the complete system is ready.

4. Spiral Model: One of the most flexible SDLC methodologies, the Spiral model takes a cue from the Iterative model and its repetition; the project passes through four phases over and over in a “spiral” until completed, allowing for multiple rounds of refinement.

5. Big Bang Model: A bit of an anomaly among SDLC methodologies, the Big Bang model follows no specific process, and very little time is spent on planning. The majority of resources are thrown toward development, and even the client may not have a solid grasp of the requirements.

6. Agile Model: By breaking the product into cycles, the Agile model quickly delivers a working product and is considered a very realistic development approach. The model produces ongoing releases, each with small, incremental changes from the previous release. At each iteration, the product is tested.

Page 5: SDLC - Software Development Life Cycle

Waterfall Model: The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use.

When to use the waterfall model: This model is used only when the requirements are very well known, clear and fixed. Product definition is stable. Technology is understood. There are no ambiguous requirements Ample resources with required expertise are available freely The project is short.

Requirement Analysis

Design

Implementation

Testing

Deployment

Maintenance

Page 6: SDLC - Software Development Life Cycle

V-Shaped Model: V- model means Verification and Validation model. Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes. Each phase must be completed before the next phase begins.

When to use the waterfall model: The V-shaped model should be used for small to medium sized projects where requirements are clearly

defined and fixed. The V-Shaped model should be chosen when ample technical resources are available with needed technical

expertise.

Code

Unit TestingCoding

Component TestingLLD (Low Level Design)

System Integration Testing

HLD (High Level Design)

System TestingSRS (System Req Specifications)

Acceptance TestingBRS (Business Req Specifications)

Developers Life Cycle (Verification Phases)

Testers Life Cycle (Verification Phases)

Page 7: SDLC - Software Development Life Cycle

Iterative Model: An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.

When to use the waterfall model: Requirements of the complete system are clearly defined and understood. When the project is big. Major requirements must be defined; however, some details can evolve with time.

Design 0

Implementation 0

Analysis 0

Design 0

Implementation 0

Analysis 0

Design 0

Implementation 0

Analysis 0

Page 8: SDLC - Software Development Life Cycle

Spiral Model: The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.

When to use the waterfall model: When costs and risk evaluation is important For medium to high-risk projects Long-term project commitment unwise because of potential changes to economic priorities Users are unsure of their needs Requirements are complex New product line Significant changes are expected (research and exploration)

Page 9: SDLC - Software Development Life Cycle

Agile Model: Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications. Extreme Programming (XP) is currently one of the most well known agile development life cycle model.

When to use the waterfall model: When new changes are needed to be implemented. The freedom agile gives to change is very important. New

changes can be implemented at very little cost because of the frequency of new increments that are produced. To implement a new feature the developers need to lose only the work of a few days, or even only hours, to

roll back and implement it. Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile

assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly effected or removed based on feedback. This effectively gives the customer the finished system they want or need.

Both system developers and stakeholders alike, find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue to move forward without fear of reaching a sudden standstill.