COMPUTER SCIENCE
Software Development Life Cycle
Creating New Software / Apps /
Programs
How do you think new software / apps or programs
are made?
HINT: what might be some of the steps that happens
before, during and after its made? Think about your
coursework, what steps where there?
Learning Objectives
Understand the software development lifecycle
Be able to explain what commonly occurs at each stage of the software development lifecycle
Be able to identify at which stage of the software development lifecycle a given step would occur.
Success Criteria
Good - will be able to explain in detail ALL the
sections of the SDLC.
Better - will be able to put the SDLC in the correct
order and remember what they are for.
Great - will understand the purpose of the SDLC.
We are going to
look at how
software comes to
life!
Software Development Life Cycle
(SDLC)
The development of software is very complex and
can take years!
The purpose of the SDLC is to break the making of
software down into manageable steps, that:
produces a piece of software that meets the users’ needs
is produced within budget
is finished on time
Problem – Mrs Legomski is hungry…
What are the steps you might take to help Mrs
Legomski out?
Sandwich Development Cycle
Requirements/ Analysis
Design
Implementation
Testing
Evaluation
Maintenance
Sandwich Development Cycle
It is possible to make me a sandwich?
Do we have the correct equipment?
What will the costs be?
When does the sandwich need to be
made by?
Sandwich Development Cycle
Research needs to happen as to
what sandwich fillings Mrs Legomski
likes,
what fillings are available.
Use questionnaires / interviews to
help your research.
Sandwich Development Cycle
Think about the shape of the sandwich
e.g. triangles / squares?
Think about the layers of the sandwich
e.g. ham then lettuce and tomato on
top?
Sandwich Development Cycle
Make the sandwich!
Sandwich Development Cycle
Do all the ingredients taste
nice together
Is it put together in the best
way possible
Sandwich Development Cycle
Taste the sandwich and tell you what I
think about it.
Do I like it?
Would I like to change it next time?
What would I take away or add?
Sandwich Development Cycle
Clean up any crumbs that have
dropped.
Put any rubbish in the bin.
Software Development Life Cycle
Technical – does the technology exist to
do what we want to do?
Economical – does it make financial
sense? Will we save money in the long
run?
Legal – are there any
copyright/licencing issues?
Operational – Will people be able to
use it?
Schedule – Can it be made in time?
It is possible and can it
be done?
Remember TELOS
Software Development Life Cycle
Use interviews / questionnaires /
observe people / find existing
documentation.
Draw diagrams that identify processes
and show how data will flow around
the system.
The end product is the specification and
user requirements (explains what the
software must do)
What will the software
need to do?
Software Development Life Cycle
The software design will include:
• A detailed Data Dictionary that
defines any data in the system.
• Input screens/user interface
• Output screens and reports
• How the data will be processed:
main algorithms as flow charts and
pseudocode.
• How the software will be tested:
typically a formal test plan will be
drawn up at the design stage to
make sure the software is tested
objectively.
Software Development Life Cycle
Implementation includes the following
activities:
• Coding & Testing the software
Writing documentation: technical
documentation, for whoever has to
support and maintain the software
later, and a user guide
• Installing the software for the user (if
this software is written for a particular
customer, as opposed to commercial
off-the-shelf software).
Implementation includes the following
activities:
• Coding & Testing the software
Writing documentation: technical
documentation, for whoever has to
support and maintain the software
later, and a user guide
• Installing the software for the user (if
this software is written for a particular
customer, as opposed to commercial
off-the-shelf software).
Software Development Life Cycle
Does it do what it is supposed to do?
The software must be evaluated
against the original specification/User
Requirement document. This is also
called Acceptance Testing.
If everything works the developer can
get paid!
Software Development Life Cycle
Corrective maintenance – fix any bugs
that come up.
Adaptive maintenance – when the
software needs to change to meet new
requirements.
Perfective maintenance – the user might
want request performance
improvements or changes to how it
looks to make it easier to use.
Remember CAP!
Software Development Life Cycle
Identify problems with
existing data
Produce Documentation for
the users
Implement the new system
Maintain the new system
Evaluate the new system
Test the new system
Design the new system
Build the new system
Analyse the new system’s
requirements
Carry out a Feasibility
Study
Identify problems
with existing data Evaluate the
new system
Maintain the
new system
Implement the
new system
Produce Documentation
for the users
Test the new
system
Build the
new system
Design the
new system
Analyse the new
system’s requirements
Carry out a
Feasibility Study
Review
Can you create a method that will help you to
remember the order of the SDLC?
Song
Limmerick
Rhyme
What problems might there be with the SDLC?
Software Development Life Cycle
Requirements/ Analysis
Design
Implementation
Testing
Evaluation
Maintenance
Different Life Cycle Models?
Why are there several different ways to develop
software?
Why isn’t there just one method?
Learning Objectives
understand that there are several lifecycle models that can be used (eg cyclical, waterfall, spiral)
be able to discuss the advantages and disadvantages of these lifecycle models
Success Criteria
Good - will be able to explain the advantages and
disadvantages of ALL life cycle models.
Better - will be able to explain the advantages
and disadvantages of at least one model.
Great - will be able to name all the different life
cycle models and how they are different.
Challenge: Waterfall Model
You have 5 minutes to find out what the waterfall
model is.
And an advantage / disadvantage.
5 minutes
End
Waterfall Model
What is the waterfall model?
Advantages Disadvantages
Waterfall Model
Steps completed one at a time
Each step should have an output
Can go back but then the steps will need redoing
User has little impact after analysis until the
evaluate stage.
Waterfall Model
Self-contained steps are easy to manage
Defined processes and output per step
Good model for managing large groups of developers working in parallel
Requirement changes mean going back to an earlier stage that had already been completed
Changes can be costly in money and time
Lack of customer involvement after Analysis means issues are not highlighted until the Evaluation
Advantages Disadvantages
Challenge: Cyclical Model
You have 5 minutes to find out what the cyclical
model is.
And an advantage / disadvantage.
5 minutes
End
Cyclical Model
What is the Cyclical model?
Advantages Disadvantages
Cyclical Model
Similar to waterfall model
Knows that once a version of software has come out,
then ideas for a new version are already being
made taking it back to the feasibility study.
Cyclical Model
Self-contained steps are easy to manage
Defined processes and output per step
Good model for managing large groups of developers working in parallel
Maintenance, logically starts the next cycle of the process so it maps better on to the real lifecycle of a complex piece of software.
Requirement changes mean going back to an earlier stage that had already been completed
Changes can be costly in money and time
Lack of customer involvement after Analysis means issues are not highlighted until the Evaluation
Advantages Disadvantages
Challenge: Spiral Model
You have 5 minutes to find out what the spiral
model is.
And an advantage / disadvantage.
5 minutes
End
Spiral Model
What is the Spiral model?
Advantages Disadvantages
Spiral Model
Developing the software in iterative (repeating)
stages
After each run through a prototype is made
Keeps refining the software
Used for larger projects
Spiral Model
Well defined steps in the process make it easy to manage
Interim prototypes highlight issues quickly so that the end product is more likely to be what the customer wants
Iterative nature of the process means changes can be easily incorporated as feedback is received
It takes time to build
prototypes and get
feedback, so it takes
longer to get the
product to the customer
Longer timescale means
it costs more to develop
Advantages Disadvantages
Challenge: Agile Model
You have 5 minutes to find out what the agile model
is.
And an advantage / disadvantage.
5 minutes
End
Agile Model
What is the Agile model?
Advantages Disadvantages
Agile Model
Similar to spiral in making prototypes
Customer then evaluates each prototype and gives
feedback
Best suited to small groups of developers who work
together rather than large projects where
developers work on separate parts in parallel
Good if the requirements of the products are likely
to change
Agile Model
Essentially the same as the Spiral Model with the following addition:
Small multitasking groups make the team flexible to changing requirements so this is more effective in a rapidly changing environment
Essentially the same as
the Spiral Model with
the following addition:
This way of working is
only suitable for smaller
development teams.
Advantages Disadvantages
Life Cycle Models
Create a leaflet that explains each model and
highlights an advantage and a disadvantage of
each.
Review
Can you simplify each model to 10 words?
Now 5?
Match Up!
Spiral Model
Waterfall Model
Cyclical Model
Agile Model
A – Used for large projects, after going
through each stage a prototype is made.
B – When you get to maintenance it starts
the steps all over again (to develop a
new version).
C – If you go back to a step you have to
follow through the other steps again.
D – Where small group of developers
work together, great if the requirements
might change
HW - DUE IN – 19th April 2016
Complete Software Development life cycle
questions.
You can use the internet, but MUST be written in
your own words.
This work will be marked and then put in folders for
you to revise from.