Software Development Methodologies
Video Activity
Join over 3 million cybersecurity professionals advancing their career
Sign up with
Required fields are marked with an *
or
Already have an account? Sign In »

Time
15 hours 43 minutes
Difficulty
Advanced
CEU/CPE
16
Video Transcription
00:00
>> In the last section,
00:00
we talked about some general approaches
00:00
to creating secure software,
00:00
just some secure design principles.
00:00
Now, we're going to talk
00:00
about the ways that we create the software,
00:00
the methodologies that we follow.
00:00
This exam is never going to
00:00
>> ask you to look at the code,
00:00
>> but it's going to ask you to look at the process,
00:00
so part of that process is the methodology we use.
00:00
We're going to talk about the traditional waterfall.
00:00
We'll also talk about prototyping
00:00
and spiral methodologies,
00:00
and then ultimately getting to agile methodologies,
00:00
which is where a lot of software development programs
00:00
work at this point in time.
00:00
In talking about the waterfall,
00:00
this has been the traditional,
00:00
it's very much a phased approach
00:00
where you have step by step by step,
00:00
we're going to look at these others in just one minute.
00:00
But this is a good example of the Waterfall model,
00:00
so we go from requirements to
00:00
design to implementation, testing, deployment,
00:00
maintenance, but it's step 1,
00:00
then you move to step 2,
00:00
then you move to step 3.
00:00
You notice you don't see any feedback errors,
00:00
you move from one step to the next.
00:00
This is a very formal process that goes through,
00:00
you have a lot of documentation,
00:00
and what's good about it is it's formalized,
00:00
you have processes for changes,
00:00
you have a better control
00:00
over the software because of
00:00
the rigidness of the process.
00:00
But the downside is if you have a very long project,
00:00
by the time you develop the software,
00:00
it's so far removed from
00:00
its requirements that you could
00:00
actually find the requirements have changed.
00:00
Requirement changes can be very difficult in
00:00
a waterfall environment because we
00:00
move forward step by step by step,
00:00
so if we have a change to the scope, for instance,
00:00
we have to go all the way back to
00:00
requirements and then move
00:00
forward from that beginning step.
00:00
It's very rigid. Sometimes rigidity is good if we're
00:00
doing projects that we've managed
00:00
the same way time and time,
00:00
waterfall method works very well for us.
00:00
But many of us who've done software development
00:00
know customer requirements change very frequently,
00:00
so we have to be able to adjust and adapt.
00:00
Prototyping, most folks have heard of prototyping.
00:00
The idea is you make a design,
00:00
you build the product,
00:00
customer gives you information,
00:00
they give you feedback,
00:00
and then you go back to the drawing board,
00:00
and then you produce
00:00
a prototype and the customer evaluates,
00:00
gives you information back to the drawing board until
00:00
we ultimately produce the product
00:00
that the customer wants.
00:00
That's good because I'm working
00:00
closely with the customer.
00:00
We can get feedback fairly early on in the project.
00:00
I don't have to do a lot of work if I'm off base.
00:00
However, many times you want to make changes.
00:00
''Hey, can you make this one little change?"
00:00
This looks great except and they don't always
00:00
understand the ramifications of
00:00
the changes that they're asking for,
00:00
so when we keep going back from
00:00
the customer saying this is good,
00:00
do you want anything different?
00:00
Then all of a sudden they can build on
00:00
their original requirements and start
00:00
asking for things that cause
00:00
a tremendous amount of change in the work.
00:00
I always think of the waterfall is going down steps.
00:00
I think of prototyping as a circular motion.
00:00
If you go step by step by step in a circular motion,
00:00
you have a spiral, and that's exactly what a spiral is.
00:00
A spiral is a combination of
00:00
the waterfall method going step by step by step.
00:00
But it also at each stage of the waterfall,
00:00
at the end of each stage,
00:00
it allows feedback from the customer,
00:00
so you have that combination
00:00
of prototyping and waterfall.
00:00
But you've got the pros of each kind.
00:00
You've also got the cons of each kind.
00:00
You put a lot of effort into risk analysis,
00:00
which is very helpful,
00:00
it helps mitigate the possibility
00:00
of failure to satisfy the customer,
00:00
it lessens the risk of going over
00:00
budget or over schedule.
00:00
But it can be expensive,
00:00
and risk analysis is not easy.
00:00
It takes a lot of expertise in making sure that we have
00:00
a good quantitative understanding of
00:00
the risks associated with the modifications we make,
00:00
that can be tricky to find.
00:00
What most software development projects
00:00
use today is they use agile.
00:00
What agile does is it
00:00
generally takes the work of a project,
00:00
the work of an application to be built,
00:00
and breaks it down into iterations called sprints.
00:00
Ultimately, what we're
00:00
going to do is we're going to take
00:00
functionality and we're going to
00:00
provide that with a team,
00:00
and they're going to go through,
00:00
and the idea is we're going to develop deliverables,
00:00
present them to the customer early and often.
00:00
When the customer comes back and says,
00:00
''Oh, I don't like this piece,
00:00
'' we're going to be able to move out
00:00
individual pieces of the product
00:00
without affecting the whole.
00:00
It's really designed for very quick adaptations,
00:00
hence the name Agile,
00:00
specifically to customer changes.
00:00
Those are just a handful of
00:00
the software development methodologies,
00:00
but they are by far the most common.
00:00
Waterfall has been around for years and years,
00:00
and that's been the de facto standard
00:00
until maybe the last decade.
00:00
We do also have prototyping and spiral,
00:00
but really the real game-changer
00:00
in project management friends has been
00:00
agile because of the fact that it can
00:00
adapt to changes and is so flexible.
Up Next
Instructed By
Similar Content