Introduction to Computers, Lecture Slides - Computer Science, Slides of Computers and Information technologies

Software Development Generic Software Quality comparison with bridge building agile development extreme programming

Typology: Slides

2010/2011

Uploaded on 09/06/2011

stifler_11
stifler_11 🇬🇧

4.6

(9)

272 documents

1 / 18

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Intro, slide 1
Advanced Software Development
Introduction
Ian Holyer
Ian Holyer
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Partial preview of the text

Download Introduction to Computers, Lecture Slides - Computer Science and more Slides Computers and Information technologies in PDF only on Docsity!

Advanced Software Development

Introduction

Ian Holyer

Ian Holyer

Going to the Edge

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 ...

What's Out There?

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...

Guest Speakers

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

Generic Software

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

Quality

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

Comparison with Bridge Building

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

The Bridge Building Story

Learning about bridge building involves

Learning about bridge building involves

  • the background mathematics used in the subject
  • the background theories of materials, structures,

stresses, wind flow, vibrations and so on

  • the theory of design of bridge structures
  • the practice of building bridge structures

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?

So What is Your Degree About?

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

  • programming and general development strategies
  • media, to cover a variety of types of data
  • databases, for permanent storage of data
  • communications, for moving data around

and so on, plus examples of application areas, plus:

and so on, plus examples of application areas, plus:

  • flexibility, continuous learning, picking up other

people's theories, constructing new theories

Development as Theory Building

One way of looking at software development is that

One way of looking at software development is that

  • you are investigating the theory behind the program
  • or even constructing a new theory for the program

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

Topics

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

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