14
CSc161 Software Quality Pete Sawyer & Alan Dix Email: [email protected]

CSc161 Software Quality Pete Sawyer & Alan Dix Email: [email protected]

Embed Size (px)

Citation preview

Page 1: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

CSc161Software Quality

Pete Sawyer & Alan DixEmail:

[email protected]

Page 2: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

CSc160 in context

The CSc160 stream: Provides an introduction to software

engineering Is intended for Computer Science

majors and Computer Systems Engineers

Has a close relationship with the CSc110 Java Programming stream

Page 3: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

CSc160 structure Term 1

CSc161 Software Quality Term 2

CSc162 Programming in the Large Term 3

CSc163 Professional issues 1 lecture per week Occasional lab sessions as and when

needed

Page 4: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Key course objectives The aim of CSc161 is to equip you with

skills that enable you to engineer software

At the end of the course, you should be able to: Use a number of techniques to ensure that

your software is free from defects Develop efficient software Write software that is maintainable

Page 5: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Course text

Software Engineering, 7th edition, Ian Sommerville, Addison Wesley, ISBN 0321210263 This is a recommended purchase

Page 6: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Assessment One practical group-based exercise

An extension of the CSC110 Java Programming exercise

Involves putting into practice the techniques taught in CSc161

Given out in week 8, due in week 10 Exam in Summer term

Questions will be based on some of this term’s suggested exercises

Page 7: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Expectations

Each lecture has a set of objectives To meet the objectives, you will

need to: Re-read the lectures notes Do suggested exercises Follow up any further reading

It is your responsibility to undertake work to meet the objectives

Page 8: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Today’s objectives

After today you should be able to: Define the term software

engineering and explain why software engineering is important

Explain what software quality means

Give examples where software is used

Page 9: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

What is software engineering? Software engineering is concerned

with all aspects of software production from specifying requirements through to maintaining the system once it is in use

Engineering involves applying established techniques to solve problems subject to constraints such as cost

Page 10: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Why is software engineering important? Software engineering aims to prevent low

quality software Therac-25, 1985-87

A radiation therapy machine that caused 3 deaths by radiation overdose

Cause: inadequate software testing 3 Mile Island, 1979

A partial meltdown of a nuclear reactor Cause: a badly designed user interface

London Ambulance Dispatch System, 1992 The new computer controlled system failed on two

occasions, resulting in delayed ambulances. People died unnecessarily

Cause: poor project management

Page 11: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Why is software engineering important?

Mars Climate Orbiter, 1999 A $125m spacecraft that has been assumed lost by NASA Cause: poor project management, inadequate testing

USS Yorktown, 1998 The ship’s software control system shut down the

propulsion system because of divide by zero instruction Cause: inadequate testing

Denver Baggage Handling System, 1994 An overly complex system whose development overran,

preventing Denver Airport opening on time. The total repair costs were 50% of the original budget - $200m

Cause: inability of system to scale

Page 12: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

What is software quality? Software quality can be defined in terms of 4

attributes: Maintainability

Software should be written in a way that is easy to change

Dependability This spans a range of characteristics including

reliability, availability, security and safety Efficiency

Software should not make wasteful use of resources like memory and processor time

Usability Software must be usable, without undue effort, by the

type of user for whom it is designed

Page 13: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

CSc161 and software quality For this course, we look at a subset of

quality attributes and examine practical techniques for developing software that exhibits these attributes

Correct

Maintainable

Efficient

Testing Debugging Static analysis Profiling

• • •

• •

Page 14: CSc161 Software Quality Pete Sawyer & Alan Dix Email: sawyer@comp.lancs.ac.uk

Suggested exercises

Before next week’s lecture, discuss with other students what you think are the significant points raised in today’s Airbus video

Read Chapter 1 of Software Engineering