+ All Categories
Home > Engineering > Software development life cycle (sdlc)

Software development life cycle (sdlc)

Date post: 07-Jan-2017
Category:
Upload: mohamed-sami-el-tahawy
View: 7,799 times
Download: 2 times
Share this document with a friend
27
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) MOHAMED SAMI
Transcript
Page 1: Software development life cycle (sdlc)

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

MOHAMED SAMI

Page 2: Software development life cycle (sdlc)

AGENDA

Software Development Life Cycle (SDLC) - Mohamed Sami 2

What is SDLC, and why we need them

How to select the right SDLC

Page 3: Software development life cycle (sdlc)

WHAT IS SDLC?

A framework that describes the activities performed at

each stage of a software development project.

SDLC is a splitting of software development work into

distinct phases (or stages) containing activities with the intent of better planning and

management

The SDLC aims to produce a high quality software that

meets or exceeds customer expectations, reaches

completion within times and cost estimates

Known as

Software development methodology

System development methodology

Software development

life cycle

Software development

process

Software process

Software Development Life Cycle (SDLC) - Mohamed Sami 3

Page 4: Software development life cycle (sdlc)

WHAT IS SDLC PROCESS MODELS?

• SDLC models have been created by software development experts, universities, and standards organizations to solve some repeated issue or to enhance other models.

• Each process model follows series of steps unique to its type, in order to ensure success in process of software development.

Software Development Life Cycle (SDLC) - Mohamed Sami 4

Page 5: Software development life cycle (sdlc)

WHY USING A PROCESS MODEL

Project PlanningWhat should be or shouldn’t be built

Define the terminologies, activities and deliverables

Proper documentation

Align project progress visibility with stakeholders

Software Development Life Cycle (SDLC) - Mohamed Sami 5

Page 6: Software development life cycle (sdlc)

THE RIGHT CHOICE

Improve customer alignment and relations

Development speed (time to market)

Increase projects success rate

Improve software qualityEliminating management

overheadDecrease

implementation risk

We need to choose the right SDLC based on project context

Software Development Life Cycle (SDLC) - Mohamed Sami 6

Page 7: Software development life cycle (sdlc)

PERSPECTIVES

Software Development Life Cycle (SDLC) - Mohamed Sami 7

Page 8: Software development life cycle (sdlc)

THE COST OF DEFECTS

Software Development Life Cycle (SDLC) - Mohamed Sami 8

Page 9: Software development life cycle (sdlc)

HOW TO SELECT THE RIGHT SDLC

• Selecting the right SDLC is a process in itself that organization can implement internally or consult for. There are some steps to get the right selection

Learn about SDLC Models

Assess the needs of

Stakeholders

Define the criteria

Software Development Life Cycle (SDLC) - Mohamed Sami 9

Page 10: Software development life cycle (sdlc)

MOST COMMON MODELS

Models

Waterfall

V-Shaped Model

Evolutionary Prototyping

Spiral Method (SDM)

Iterative and Incremental

Extreme programming

(Agile development)

Software Development Life Cycle (SDLC) - Mohamed Sami 10

Page 11: Software development life cycle (sdlc)

WATERFALL

• 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 that was used for software development

Operation and maintenance

Release and deployment

Testing

Implementation

Design

Requirements analysis

A linear sequential flow.

Oldest and most well-known -

1970

The usageProjects which not focus on changing requirements, for example, responses for request for proposals (RFPs)

Software Development Life Cycle (SDLC) - Mohamed Sami 11

Page 12: Software development life cycle (sdlc)

ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Easy to be explained inflexible, like the waterfall model

Stages and activities are well defined Adjusting scope is difficult and expensive

Milestones are well understood Model doesn't provide a clear path for problems found during testing phases

Each phase has specific deliverables Costly and required more time

Works well for smaller projects where requirements are very well understood.

Needs very proper and detailed planning

Process and results are well documented No continuous customer involvement to review the output

Software Development Life Cycle (SDLC) - Mohamed Sami 12

Page 13: Software development life cycle (sdlc)

V-SHAPED

• It is an extension for waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape.

• The major difference between v-shaped model and waterfall model is the early test planning in v-shaped model.

The usage· Software requirements clearly defined and known· Software development technologies and tools is well-known

Software Development Life Cycle (SDLC) - Mohamed Sami 13

Page 14: Software development life cycle (sdlc)

ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Verification and validation of the product in early stages of product development

Assumes that the requirements of a system can be frozen and known from beginning

Easy to use.Stages and activities are well defined

Does not easily handle dynamic changes in requirements

Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle

Inflexible and adjusting scope is difficult and expensive

Each phase has specific deliverables Costly and required more time

Works well for where requirements are easily understood

Needs very proper and detailed planning

No continuous customer involvement

Software Development Life Cycle (SDLC) - Mohamed Sami 14

Page 15: Software development life cycle (sdlc)

PROTOTYPING MODEL

• It refers to the activity of creating prototypes of software applications, for example, incomplete versions of the software program being developed.

• 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 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 focused with systems needs more user interactions.• So, the system do not have user interactions, such as, system does some

calculations shall not have prototypes.

Throwaway prototyping

Evolutionary prototyping

Incremental prototyping

Extreme prototyping

Software Development Life Cycle (SDLC) - Mohamed Sami 15

Page 17: Software development life cycle (sdlc)

ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Reduced time and costs Insufficient analysis, guess why?

this can be disadvantage if the developer loses time in developing the prototypes

User confusion of prototype and finished system

Improved user involvement Developer misunderstanding of user objectives·

Users give corrective feedback Excessive development time of the prototype

A more accurate end product Expense of implementing prototyping, this can be eliminated if it will be integrated with the final product. Process may continue forever (scope creep)

Software Development Life Cycle (SDLC) - Mohamed Sami 17

Page 18: Software development life cycle (sdlc)

SPIRAL (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 shrink-wrap large applications and systems which

built-in small phases or segments.

Software Development Life Cycle (SDLC) - Mohamed Sami 18

Page 19: Software development life cycle (sdlc)

ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Estimates (i.e. budget, schedule, etc.) become more realistic as work progresses

High cost and time to reach the final product

Changing requirements can be accommodated Needs special skills to evaluate the risks and assumptions

Development can be divided into smaller parts and more risky parts can be developed earlier which helps better risk management

Highly customized limiting re-usability

Users see the system early and give corrective feedback

Time spent planning, setting objectives, doing risk analysis and prototyping will be huge

A more accurate end product

Software Development Life Cycle (SDLC) - Mohamed Sami 19

Page 20: Software development life cycle (sdlc)

ITERATIVE AND INCREMENTAL

• 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 development of earlier parts or versions of the system.

The usage• It is used in shrink-wrap application and large system

which built-in small phases or segments• can be used in system has separated components, for

example, ERP system. Which we can start with budget module as first iteration and then we can start with inventory module and so forth.

Mini Waterfall 1

Mini Waterfall 2

Mini Waterfall n

Final Waterfall

Software Development Life Cycle (SDLC) - Mohamed Sami 20

Page 21: Software development life cycle (sdlc)

ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Produces business value early in the development life cycle(Do you know why)

Requires heavy documentation· Follows a defined set of processes

More customer involvement Partitioning the functions and features might be problematic

Better use of scarce resources through proper increment definition

Defines increments based on function and feature dependencies

Can accommodate some change requests between increments

Requires more customer involvement than the linear approaches (It is advantage as well)

More focused on customer value than the linear approaches

Integration between iteration can be an issue if this is not considered during the development

Problems can be detected earlier

Lowers initial delivery cost and initial product delivery is faster

Software Development Life Cycle (SDLC) - Mohamed Sami 21

Page 22: Software development life cycle (sdlc)

AGILE (XP - SCRUM)

• It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.

• Usually less formal and reduced scope

• Used for time-critical applications

The usage• It can be used with any type of the project• it can be used when the customer needs to have some functional requirement

ready in less than three weeks

Software Development Life Cycle (SDLC) - Mohamed Sami 22

Page 23: Software development life cycle (sdlc)

ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Decrease the time required to avail some system features Scalability

Face to face communication and continuous inputs from customer representative leaves no space for guesswork

Skill of the software developers

The end result is the high quality software in least possible time duration and satisfied customer

Ability of customer to express user needs

Produces business value early in the development life cycle (Do you know why)

Documentation is done at later stages

Reduce the usability of components

Needs special skills for the team

Software Development Life Cycle (SDLC) - Mohamed Sami 23

Page 24: Software development life cycle (sdlc)

THE CONTEXT

Business Priorities Skills

Technology Others

Software Development Life Cycle (SDLC) - Mohamed Sami 24

Page 25: Software development life cycle (sdlc)

THE CRITERIA

• Is the SDLC appropriate for the size of our team and their skills?

• Is the SDLC appropriate with the selected technology we use for implementing the solution?

• Is the SDLC appropriate with client and stakeholders need and priorities

• Is the SDLC appropriate for the geographical situation (co-located or geographically dispersed)?

• Is the SDLC appropriate for the size and complexity of our software?

• Is the SDLC appropriate for the type of projects we do?

• Is the SDLC appropriate for our engineering capability?

Software Development Life Cycle (SDLC) - Mohamed Sami 25

Page 26: Software development life cycle (sdlc)

THE CRITERIAFactors Waterfall V-Shaped Evolutionary

Prototyping

Spiral Iterative and

Incremental

Agile

Methodologies

Unclear User

Requirement

Poor Poor Good Excellent Good Excellent

Unfamiliar Technology Poor Poor Excellent Excellent Good Poor

Complex System Good Good Excellent Excellent Good Poor

Reliable system Good Good Poor Excellent Good Good

Short Time Schedule Poor Poor Good Excellent Excellent Excellent

Strong Project

Management

Excellent Excellent Excellent Excellent Excellent Excellent

Cost limitation Poor Poor Poor Poor Excellent Excellent

Visibility of

Stakeholders

Good Good Excellent Excellent Good Excellent

Skills limitation Good Good Poor Poor Good Poor

Documentations Excellent Excellent Good Good Excellent Poor

Component reusability Excellent Excellent Poor Poor Excellent Poor

Software Development Life Cycle (SDLC) - Mohamed Sami 26

Page 27: Software development life cycle (sdlc)

Thank you

I hope you have learned new things

Mohamed Sami

Software Development Life Cycle (SDLC) - Mohamed Sami 27


Recommended