CSC 709 Assignment
CSC 709 Assignment
CSC 709 Assignment
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.
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:
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
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
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
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
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