CSC 709 Assignment

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

QUESTION

Explain the various SDLC Models for System/Software Development process


INTRODUCTION
It stands for Software Development Life Cycle. SDLC is a continuous process, which starts when
a decision to launch the project is made and ends at the moment of its complete removal from
the exploitation. There is no universal SDLC model. They are divided into groups according to
some factors, and each approach has its strengths and weaknesses.
There are so many different SDLC models in software engineering, and choosing the best one for
your project is half the battle on the way to creating a successful product. People have already
developed frameworks for efficient project management called software development
methodologies.
Evolving from the first and oldest “waterfall” SDLC model, their variety significantly expanded.
The diversity of SDLC models is predetermined by the vast number of product types – starting
with web application development to complex medical software. And if you take one of the SDLC
models mentioned below as the basis – in any case, it should be adjusted to the features of the
product, project, and company. You can see the most used and reliable SDLC models on the list
below:
1. Waterfall model
2. Iterative model
3. Spiral model
4. V-shaped model
5. Agile model
The SDLC models define how the process is organized, in which order the potential risks are
eliminated, and the problems are solved. We’ll look into some of the models, discuss their
similarities and differences, and name some of the most beneficial and comfortable to work with.
By the way, the frequency of communication between the programmers and other details related
to the collaboration within a team are also defined by the SDLC model. While planning all details,
the project manager should choose the model according to the team size, working schedule, etc.
For example, all software development life cycle models under the adaptive type will not be
suitable for large teams and yield results only in groups of approximately 5 to 10 people.
So, no matter what software development approach you’ve chosen, each has the core stages
which every software product goes through. Let’s explore those stages as it is essential to
understand different SDLC models in detail.

1|Page
Software Development Life Cycle Phases
There are many different SDLC models in software engineering, and they vary according to many
factors. Still, the sequence of software life cycle phases usually remains the same, with a few
exceptions. Let’s see what software life cycle phases there are and what should be done during
each.

2|Page
Types of SDLC Models
If we’re speaking about the classification of SDLC models and methodologies, they can be divided
into numerous groups according to different criteria. However, let’s see what the main types of
SDLC models are.

Heavyweight and Lightweight Processes


There are two core software development life cycle models: heavyweight (predictive) and
lightweight (agile). Heavyweight processes imply that the scope of work is predefined in advance.
That’s why they are also called predictive. They require a significant contribution from the
programmers and weighty documentation. Traditionally, companies chose a heavyweight
approach for streamlining and organizing extensive projects. However, now this type of SDLC
models has lost its popularity. It decreases project efficiency because of the unnecessary
bureaucracy implied.
Today, it is replaced by lightweight or agile processes, also called adaptive. They are a good
compromise between overly strict discipline and its total absence. Agile methodologies require
a much smaller amount of documentation in terms of a software life cycle.
For example, an adaptive approach considers various customer requirements, such as the
necessity of constant application modifications. Predictive SDLC models, in turn, are only growing
in complexity with the emergence of unplanned changes.

3|Page
Heavyweight methodologies are pertinent in the context of strictly defined requirements and
large teams of specialists. Agile tactics are best implemented in terms of frequent amendments
to the initial plan and relatively small groups (up to 10 people working in one team).
Predictive SDLC Models
Predictive (heavyweight) models include:
1. Waterfall
2. Iterative
3. Spiral
4. V-shaped
There are many more options, but these are the most common ones. Let’s discover the main
characteristics of each. We won’t dive deep into the phases of each model because they are
pretty similar. So, let’s find out each model’s peculiarities and pros and cons.
Adaptive SDLC Models
Among different SDLC models and methodologies, adaptive (agile) are the brightest candidates
nowadays. The agile approach opens up new possibilities for specialists, enables more flexibility,
and puts the communication between people ahead of the blind plan following.
Realizations of Agile models include:
1. Scrum
2. XP
3. Kanban
SDLC MODELS
Waterfall SDLC Model
The waterfall is a cascade SDLC model that presents the development process like the flow,
moving step by step through the phases of analysis, projecting, realization, testing,
implementation, and support. This SDLC model includes gradual execution of every stage.
Waterfall implies strict documentation. The features expected of each phase of this SDLC model
are predefined in advance.
The waterfall life cycle model is considered one of the best-established ways to handle complex
projects. This approach allows avoiding many mistakes that may appear because of insufficient
control over the project. However, it results in pervasive documentation development. It is
beneficial to the developers who may be working with the product in the future, but it takes a
long time to write everything down.

4|Page
In some cases, the feedback loop is included. It allows making short reviews of each stage’s result
and applying some minor amendments. This loop enables specialists to return to the previous
phase for a short period.
If something significant changes in the initial plan, a team should wait until the very last stage to
return to the beginning and pass all software life cycle phases again.

In the table below, you will find the advantages and disadvantages of the Waterfall SDLC model.

Advantages Disadvantages
Simple to use and understand The software is ready only after the last stage
is over
Management simplicity thanks to its rigidity: High risks and uncertainty
every phase has a defined result and process
review
Development stages go one by one Not the best choice for complex and object-
oriented projects
Perfect for the small or mid-sized projects Inappropriate for the long-term projects
where requirements are clear and not
equivocal
Easy to determine the key points in the The progress of the stage is hard to measure
development cycle while it is still in the development
Easy to classify and prioritize tasks Integration is done at the very end, which
does not give the option of identifying the
problem in advance

5|Page
Use cases for the Waterfall SDLC model:

 The requirements are precisely documented


 Product definition is stable
 The technologies stack is predefined, which makes it not dynamic
 No ambiguous requirements
 The project is short
Iterative SDLC Model
The iterative model resembles a waterfall model, but there is quite a considerable difference
between them. For example, let’s suppose there’s an app that contains ten core features. In the
waterfall case, all ten functions will be thoroughly planned during the requirement analysis and
design phases and then steadily implemented during the development stage. The iterative model
is quite different. It implies that the whole process is divided into a particular number of
iterations, and during each of them, developers build a limited number of features.
So, the Iterative SDLC model does not require a complete list of requirements before the project
starts. The development process may start with the requirements to the functional part, which
can be expanded later. The process is repetitive, allowing to make new versions of the product
for every cycle. Every iteration (that lasts from two to six weeks) includes the development of a
separate component of the system. After that, this component is added to the features
developed earlier. Speaking with math terminology, the iterative model is a realization of the
sequential approximation method; that means a gradual closeness to the planned final product
shape.
For example, during the first iteration, the team has decided to work on three features out of 10.
While creating them, developers pass all stages of the software development process, starting
from the requirement gathering to the deployment and maintenance. When they move to the
next set of functions, the development cycle starts over.

6|Page
Advantages Disadvantages
Some functions can be quickly developed at Iterative model requires more resources than
the beginning of the development lifecycle the waterfall model
The paralleled development can be applied Constant management is required
The progress is easy measurable Issues with architecture or design may occur
because not all the requirements are
foreseen during the short planning stage
The shorter iteration is – the easier testing Bad choice for the small projects
and debugging stages are
It is easier to control the risks as high-risk The process is difficult to manage
tasks are completed first
Problems and risks defined within one The risks may not be completely determined
iteration can be prevented in the next sprints even at the final stage of the project
Flexibility and readiness to the changes in the Risks analysis requires involvement of the
requirements highly-qualified specialists

Use cases for the Iteration model:

 The requirements for the final product are clear from the beginning
 The project is large and includes complex tasks
 The main task is predefined, but the details may change in the process
This approach results in constant learning, meaning that during each iteration, the team makes
observations and brings new ideas to the next iteration.

7|Page
Spiral SDLC Model
Spiral model is a combination of the Iterative and Waterfall SDLC models with a significant accent
on the risk analysis. The main issue of the spiral model is defining the right moment to take a step
into the next stage. The preliminary set timeframes are recommended as the solution to this
issue. The shift to the next stage is done according to the plan, even if the work on the previous
step isn’t done yet. The plan is introduced based on the statistical data received in the last
projects and even from the personal developer’s experience.

Advantages Disadvantages
Lifecycle is divided into small parts, and if the Can be quite expensive
risk concentration is higher, the phase can be
finished earlier to address the treats
The development process is precisely The risk control demands involvement of the
documented yet scalable to the changes highly-skilled professionals

8|Page
The scalability allows to make changes and Can be ineffective for the small projects
add new functionality even at the relatively
late stages
The earlier working prototype is done – Big number of the intermediate stages
sooner users can point out the flaws requires excessive documentation

Use cases for the Spiral model

 The customer isn’t sure about the requirements


 Significant edits are expected during the software development life cycle
 Risk management is highly essential for the project

9|Page
V-shaped SDLC Model
The V-shaped algorithm differs from the previous ones by the work approach and the
architecture. If we visualize this model, we’ll see that there appears one more axis, unlike the
waterfall and iterative models. Along with the first one, they constitute the V letter. You can see
it in the picture below.

The V-model is called this way because of the scheme’s appearance and because its primary
priorities are Verification and Validation. Stages positioned along the left axis display the
verification phases, and the ones on the right are responsible for validation.
Let’s clear the terms in a few words, so there’s no misconception. Verification and validation
mean different things, though they seem pretty similar. The goal of verification is to determine
whether the software is consistent with the initial technical requirements. Validation, in turn,
should confirm whether the product corresponds to the business needs, whether it serves its
intended purpose, whether it acts as planned. To summarize, verification accounts for aligning
features with the technical requirements based on the business requirements. Validation
manages the last ones.
These concepts include different types of product testing. These methods are located along the
respective axes. One on the left side necessarily has an associated one on the right. For example,
the requirement analysis stage corresponds to acceptance testing, system design to system
testing, architecture design to integration testing, etc.
To summarize, the V-shaped SDLC model is an expansion of the classic waterfall model, and it’s
based on the associated test stage for every development stage. This is a rigorous model, and the

10 | P a g e
next step is started only after the previous one is over. Every phase includes the current process
control to ensure that the conversion to the next stage is possible.

Advantages Disadvantages
Every stage of V-shaped model has strict Lack of the flexibility
results so it’s easy to control
Testing and verification take place in the early Bad choice for the small projects
stages
Good for the small projects, where Relatively big risks
requirements are static and clear

Use cases for the V-shaped model:

 For the projects where accurate product testing is required


 For the small and mid-sized projects, where requirements are strictly predefined
 The engineers of the required qualification, especially testers, are within easy reach
Agile SDLC Model
Agile is a philosophy, not a specific development approach. It is a whole family of methodologies.
Scrum, Kanban, or XP (extreme programming) are among the most common realizations of the
Agile SDLC. Let’s find out the core principles of Agile in general and then take a brief look at some
of its realizations.
Its first peculiarity is that all work is split into iterations like the iterative model. These iterations
are named sprints. The team initially defines what actions they’ll need to perform in a particular
timeframe. The main difference with the iterative approach is that this amount of work is not
strict and can be changed in the middle of the process.
The following distinction is that Agile doesn’t ever leave customers in ignorance. Specialists on a
provider’s side constantly stay in contact with the client. They give him updates on the performed
work and familiarize him with the plan. All changes are also discussed with the customer and
approved by him. Each stage in Agile should be analyzed and accepted by all sides before the
development team can move on to the next one.
Agile includes daily or weekly calls and Sprint reviews. Sprint reviews have such a structure – the
first half of the meeting is dedicated to the performed work, and the second half is about planning
the next Sprint.

11 | P a g e
One more aspect of the Agile software life cycle is face-to-face communication. It is one of 12
Agile principles. Considering that companies often outsource, meeting a customer face-to-face is
problematic, but Agile offers video conferencing instead of audio calls to observe the body
language. It helps to avoid some misunderstandings and build better relationships with clients.
A lot more can be said on Agile SDLC, but let’s better look at specific numbers. Research on Agile
methodology shows incredible results. Here are the main key points:

 The adoption of Agile has grown from 37% in 2020 to 86% in 2021
 50% more achieved business objectives with Agile
 70% of people choose Agile due to the possibility of changing project priorities at any
moment
 60% of programmers working with Agile highlight noticeably faster time to market

Advantages Disadvantages
Corrections of functional requirements are Difficulties with measuring the final cost
implemented into the development process because of permanent changes
to provide the competitiveness
Project is divided by short and transparent The team should be highly professional and
iterations client-oriented
Risks are minimized thanks to the flexible New requirements may conflict with the
change process existing architecture

12 | P a g e
Fast release of the first product version With all the corrections and changes there is
possibility that the project will exceed
expected time

Use cases for the Agile model:

 The users’ needs change dynamically


 Less price for the changes implemented because of the numerous iterations
 It requires only initial planning to start the project
So, in general, the agile methodology allows the customer to see the result and understand if he
is satisfied with it or not after every development iteration. This is one of the advantages of the
agile software development life cycle model. One of its disadvantages is that it is difficult to
estimate the resources and development cost with the absence of defined requirements.
On the one hand, the flexibility of the Agile approaches is an advantage. However, at the same
time, it may become a downside. Developers may face some pitfalls if they aren’t familiarized
enough with the Agile methodology. Read about the 10 most common mistakes in Agile
development to know what to pay attention to while implementing this approach.
Scrum/XP
People consider Scrum and Extreme programming the two different implementations of Agile.
Together, they make an excellent approach to software development, but it’s apples and oranges
separately. Scrum is a project management methodology, and XP is a development technique.
Extreme programming contains methods targeting specifically the technical side of the software
development process. They include continuous integration, pair programming, test-driven
development, etc. Scrum, in turn, is oriented towards the organization of the process.
Sprints lie at the core of Scrum. A sprint is an iteration that lasts from 2 to 4 weeks. It starts with
the planning of the product and an iteration itself. Then, the product passes the stages of a
chosen software development methodology (XP is the most popular option in terms of Scrum).
At the end of the sprint, the team delivers the developed part of the product, and then it’s time
for the retrospective – sprint review and analysis.
The core methods of Scrum contain sprint planning, daily meet-ups, demos and reviews, and a
retrospective at the end of each sprint. Its main principles are сourage, commitment, focus,
openness, respect.

13 | P a g e
The visibility and obviousness of the process are what make Scrum stand out. Sprint backlogs (SB)
and product backlogs (PB) would be excellent proof of it.
PB is a set of objectives that should be achieved at the end of development. Product backlog
includes the names of items, their priority, and a number of a sprint when they need to be
completed. In sprint backlog, each item is divided into small steps called tasks. SB defines all tasks
that developers undertake to complete during a particular sprint.
Both PB and SB are traditionally organized as a physical board named the Scrum board. It is
divided into specific vertical sections. The ones for the product backlog contain:

 User story
 Priority
 Sprint
 Task Owner
 Estimated Effort
 Status
As you can see, product backlog mainly targets the organizational part of the software life cycle.
Let’s see what sections a sprint backlog includes:

 User story
 To do
 In progress
 To verify
 Done

14 | P a g e
In each section, team members place sticky notes with related information. However, lately, such
boards have taken the shape of online spreadsheets. It saves precious time and remains very
illustrative.

As you can tell, Scrum doesn’t specify developers’ actions. It is responsible for consistent product
delivery and process organization. That’s why it should be combined with some methodology
that focuses precisely on the programming approach.
The most common combination is Scrum and XP. In extreme programming, minor weekly
releases are much better than a completed app delivery in a one-year perspective. Also, testers
work along with developers during the whole process, unlike Waterfall, for example. It eliminates
a tremendous amount of work during the testing stage and the derived heap of code changes.
XP also implies that the code is shared between all team members, so everyone can give
suggestions and look at it from the other angle.
Kanban
Kanban is another realization of Agile. It somehow reminds Scrum, but still, they have some
distinct differences. Both approaches use boards to track progress and have similar sections. The
ones of Kanban are:

 Requested
 In progress
 Done

15 | P a g e
The range of statuses in Kanban is less extensive, but it is sufficient to keep up with the software
development process. The key differences lie in the work approach and main principles of the
method.
Let’s start with planning. Kanban doesn’t obligate devs to follow the plan, unlike Scrum strictly.
It is open to constant changes. With Kanban, team members don’t track the exact time spent on
a task. Instead, the board includes the “Recommended timeframe” section. It allows estimating
the approximate development time in the end. Also, Scrum has strictly defined roles, such as
scrum master, product owner, and a development team. In Kanban, no roles are set, so the
flexibility is much higher. Iterations in Kanban don’t have predefined timeframes – they can
change depending on the amount of work.
Scrum seems very flexible before you find out about Kanban, enabling even more flexibility.
However, it’s questionable how effective such an approach will be because an undisciplined team
is as destructive as an overdisciplined. So, it’s essential to consider all pros and cons before
deciding on a software development methodology.

16 | P a g e

You might also like