INSE - Lecture 2 What makes Software “ good ” ?. INSE - Lecture 2 What makes Software “ bad...

Post on 18-Dec-2015

215 views 1 download

Tags:

transcript

INSE - Lecture 2

What makes Software “good”?

INSE - Lecture 2

What makes Software “bad”?

unreliable, unusable, too slow, too fast;errors (i.e. bugs), un-maintainable;not what the customer needed;…

What makes software “bad?” unreliable; unusable; too slow; too fast; … un-maintainable; errors (i.e. bugs); not what the customer needed; …

Unreliable

Software should not do un-reasonable things… … when presented with bad input [not blow

up; not ignore the bad input] … when overloaded [not blow up, say it is

overloaded; “suffer graceful degradation”]; … when faced with emergencies, e.g. real-

time crises [not blow up: should do something adequate]

…not blow up

Unusable Causes for dislike/irritation

by the user by the user’s manager

Inconvenient/error-prone input Illegible/incomprehensible output Documentation

unclear (for that reader) inappropriate length (for that user & document) hard to use/hard to look up in

Exceeds human limits (e.g. patience, speed, memory…) Not too fascinating!

Too slow/too fast

[Both really forms of “unusable”] Too slow

wastes the users time; or bores the user; or so slow the user loses track

Too fast The user can’t keep up, in some sense

Un-maintainable Design without considering the problems of

maintaining the software, and later you’ll find it’s very hard to maintain, very expensive to maintain, & the maintained software is very prone to bugs,

crashes, etc. [“Maintainability” is not something that can

be “added later” – it must be designed in & coded in.]

Erorrs (i.e. bugs)

bug = minor error in design or coding

…sloppiness!

…waste of time!

… so get it right first time

Not what the customer needed

build the right product!

build the product right!

This was all about bad software

So by “opposites”, that lectures defined what it means for software to be “not bad” –

but “not bad” falls a long way short of “good”.

After this lecture think about your past programming

efforts – in what ways were your products “good”? In what ways were they “bad”?

think about software you use – in what ways is it good/bad?

think about software you’ve stopped using – was it because it was “bad”? In what ways?

© C Lester 1997-2004