










Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Software Development Generic Software Quality comparison with bridge building agile development extreme programming
Typology: Slides
1 / 18
This page cannot be seen from the preview
Don't miss anything!











Ian Holyer
Ian Holyer
This unit follows on from programming and software
This unit follows on from programming and software
engineering in the first and second years
engineering in the first and second years
One of the ideas for this unit is to
One of the ideas for this unit is to take you to the
take you to the
leading edge
leading edge (some say bleeding edge) of
(some say bleeding edge) of
programming, software engineering and development
programming, software engineering and development
That means telling you everything I know, and more ...
That means telling you everything I know, and more ...
A third idea is to give you an overview of
A third idea is to give you an overview of what's out
what's out
there
there
in industry...
in industry...
...what real development is like...
...what real development is like...
...what kinds of jobs there are...
...what kinds of jobs there are...
...what issues are important...
...what issues are important...
How do I tell you more than I know?
How do I tell you more than I know?
How do I tell it how it is, on a variety of topics?
How do I tell it how it is, on a variety of topics?
How do I tell you what is out there?
How do I tell you what is out there?
The answer is some guest speakers from local industry
The answer is some guest speakers from local industry
There is no announcement of which lectures slots are
There is no announcement of which lectures slots are
mine and which will be given by guest speakers
mine and which will be given by guest speakers
Guest speakers have been asked to tell their own story,
Guest speakers have been asked to tell their own story,
not present some particular topic
not present some particular topic
That means each topic is presented by someone who
That means each topic is presented by someone who
really believes it
really believes it
To lift the level of the coursework above just
To lift the level of the coursework above just
"implementing a program", you are asked to develop a
"implementing a program", you are asked to develop a
generic
generic
piece of software
piece of software
That means a library, or an engine, or a framework
That means a library, or an engine, or a framework
There will be examples of these in the lectures, so you
There will be examples of these in the lectures, so you
know exactly what kind of thing you are aiming for
know exactly what kind of thing you are aiming for
There will be some suggestions for students who feel
There will be some suggestions for students who feel
challenged, or who feel that software development is
challenged, or who feel that software development is
not their career subject
not their career subject
There will
There will not
not be time for a full working program,
be time for a full working program,
(but there should be a demo of how far you got)
(but there should be a demo of how far you got)
The emphasis will be on the experience
The emphasis will be on the experience
On the one hand, this unit should stretch you, to give
On the one hand, this unit should stretch you, to give
you confidence and experience
you confidence and experience
On the other hand, it shouldn't be beyond you; it
On the other hand, it shouldn't be beyond you; it
should start from 'where you are'
should start from 'where you are'
Read the quotations from "Zen and the Art of
Read the quotations from "Zen and the Art of
Motorcycle Maintenance" on the web site
Motorcycle Maintenance" on the web site
The aims are to gain experience and have fun
The aims are to gain experience and have fun
Getting marks should be very much secondary
Getting marks should be very much secondary
Marking will be done according to how 'expert' or
Marking will be done according to how 'expert' or
'non-expert' you are already, and how far you get
'non-expert' you are already, and how far you get
compared to where you are at the moment
compared to where you are at the moment
Let's compare software engineering with, say, bridge
Let's compare software engineering with, say, bridge
building, in Civil Engineering
building, in Civil Engineering
Disclaimer: I know almost nothing about bridge
Disclaimer: I know almost nothing about bridge
building, so the bridge building story is made up
building, so the bridge building story is made up
Learning about bridge building involves
Learning about bridge building involves
stresses, wind flow, vibrations and so on
This provides a simple, satisfying story of taking a
This provides a simple, satisfying story of taking a
degree, learning about the subject, and becoming an
degree, learning about the subject, and becoming an
expert with professional qualifications
expert with professional qualifications
This story is a common ideal for engineering subjects
This story is a common ideal for engineering subjects
What is the theory behind building software?
What is the theory behind building software?
A Computer Science degree consists of generic
A Computer Science degree consists of generic
theories that apply to quite a lot of application areas
theories that apply to quite a lot of application areas
and so on, plus examples of application areas, plus:
and so on, plus examples of application areas, plus:
people's theories, constructing new theories
One way of looking at software development is that
One way of looking at software development is that
at the same time as you are implementing it
at the same time as you are implementing it
That means the things you have learned, and will learn
That means the things you have learned, and will learn
in this unit, are more like advice than rules
in this unit, are more like advice than rules
or like a toolkit or library of available ideas which you
or like a toolkit or library of available ideas which you
can choose from as you see fit, in your area
can choose from as you see fit, in your area
We'll have
We'll have another
another look at those old favourites,
look at those old favourites,
analysis, design, implementation, testing, deployment
analysis, design, implementation, testing, deployment
We'll still be treating implementation as central, but we
We'll still be treating implementation as central, but we
will assume that we all know (or can look up) any
will assume that we all know (or can look up) any
basic language or library feature we might need
basic language or library feature we might need
We will try and work out what analysis really is
We will try and work out what analysis really is
We will do a lot on design, particularly OO design
We will do a lot on design, particularly OO design
We will look at how to improve programming style
We will look at how to improve programming style
(that's low level design, not indentation etc)
(that's low level design, not indentation etc)
We will look at unit testing, construction tools etc
We will look at unit testing, construction tools etc
We will study
We will study agile
agile software development as a way of
software development as a way of
putting it all together
putting it all together
Agile development is about keeping software and its
Agile development is about keeping software and its
development very flexible, to the point where you can
development very flexible, to the point where you can
do analysis, design etc continuously as you go along
do analysis, design etc continuously as you go along
The trick is to do this in a carefully controlled eyes-
The trick is to do this in a carefully controlled eyes-
wide-open way, where you don't get sucked into the
wide-open way, where you don't get sucked into the
very common quagmire of out-of-control development
very common quagmire of out-of-control development
There are two agile development methods which you
There are two agile development methods which you
are likely to meet
are likely to meet
XP: Extreme Programming
UP: The Unified Process, closely tied to UML
We will concentrate on XP and skirt round UP, except
We will concentrate on XP and skirt round UP, except
that we will use UML for illustrations
that we will use UML for illustrations