comp 208/214/215/216 lecture 6 managing software quality

20
COMP 208/214/215/216 Lecture 6 Managing Software Quality

Upload: gerald-woods

Post on 26-Dec-2015

217 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: COMP 208/214/215/216 Lecture 6 Managing Software Quality

COMP 208/214/215/216 Lecture 6

Managing Software Quality

Page 2: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Quality

• What is software quality?• One definition:

– “Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software”

• (Pressman, Software Engineering, 1992)

• Requirements are the basis for measurement

• Standards are specified.

Page 3: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Features of Quality Software• Several classifications, with

different degrees of abstraction:• Most abstractly: Quality Software

– Meets the needs of its users– Is reliable (does not fail)– Is easy to maintain (correct, or

change).

Page 4: COMP 208/214/215/216 Lecture 6 Managing Software Quality

F.U.R.P.S.

• Functionality: functions it performs, their generality and security

• Usability: aesthetics, consistency, documentation

• Reliability: frequency and severity of failure, accuracy of output

• Performance: response time, resource consumption

• Supportability: can it be extended, adapted, corrected?

Page 5: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Software Quality Factors - I• At the finest level of detail:

– Correctness - the extent to which the software satisfies its specification and fulfils customer objectives

– Reliability - the extent to which the system performs without malfunctions

– Efficiency - the amount of computer resources required to perform its functions.

Page 6: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Software Quality Factors - II• Integrity - the extent to which access to

functions and data can be controlled• Usability - the effort required to learn,

operate, prepare input for and interpret output from, the software

• Maintainability - the effort required to locate and fix errors in operative software

• Testability - the effort required to ensure that the software performs its intended functions.

Page 7: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Software Quality Factors - III• Flexibility - the effort required to modify

operational software• Portability - the effort required to transfer

software from one hardware configuration and/or software environment to another

• Re-usability - the extent to which software can be used in applications other that that for which it was produced

• Adaptability - the effort required to couple one system with another

Page 8: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Productrevision

ProductTransition

ProductOperations

Correctness - does it do what I want?Reliability - does it always do it accurately?Efficiency - does it run as well as it can?Integrity - is it secure?Usability - is it designed for the user?

Maintainability - can I fix it?Flexibility - can I change it?Testability - can I test it?

Portability - can I use it on another machine?Reusability - can components be used in other ways?Interoperability - does it interface with other systems?

Page 9: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Examples of good quality• Easy to change the UI language of

the application (English, French, Italian or Chinese)

• Easy to re-use code, classes on new project

• Easy to plug in new credit card, payment providers

• Will no accept invalid data

Page 10: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Quality Assurance

• QA attempts to ensure the process of software development results in good quality outputs.

• There are seven major activities:– Application of a methodology– Formal technical Reviews– Testing– Enforcement of Standards– Control of change– Measurement– Record keeping and reporting.

Page 11: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Following a Method

• Ensures that all steps are completed• Builds in checks for various steps• Produces a standard output: means that

others can understand it, know what to expect

• Enables progress to be monitored• Specifies deliverables and review points Connolly and Begg provides the method

you should follow on this project.

Page 12: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Formal Reviews

• Confirm that the method is being followed

• Ensure that documentation is in order• Can identify problems before they

become fixed into the product• Result in intermediate outputs which

can be used as a used as foundations for subsequent stages.

Page 13: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Testing

• System testing – attempts to ensure correctness and

reliability– can identify efficiency problems

• User testing– allows evaluation of the usability aspects– attempts to ensure that the

requirements are met

Page 14: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Standards

• Their purpose is to facilitate communication – A uniform mode of presentation makes things

easier to understand and ensures inter-operability

• Standards are not necessarily the “right” way of doing things. – Several alternatives may be equally good. But is

is useful if everyone does things the same way

• Standards cover many things: – Documentation to be produced, notation for

diagrams, coding conventions, etc.

Page 15: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Change Control

• Any change can introduce errors• It is important to have a change control

process– To keep a version before the changes, so

they can be rolled-back if necessary– To incorporate a change once it is made

satisfactorily– So that simultaneous changes do not

conflict.

Page 16: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Measurement and Records

• Measurement– Where possible quality factors should be

measured– Nothing is perfect, but we need an idea of how

imperfect it is

• Record keeping– Makes the process transparent– Enables audit, and reference back– Results in a portfolio describing the

development process.

Page 17: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Version Control

• Throughout the project you will be developing documentation and software

• It is important that an all times there is a definitive version.– If two people make different changes, and we

have two new versions - which one will be taken forward?

– If you need to make a change you want to know that you are using the latest version

– If a change goes wrong, you need to be able to return to the correct version.

Page 18: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Ownership

• Someone needs to “own” the current version at all times.– They can then track who is doing what to

it– They can supply the current version if

required– They can agree to incorporate changes to

produce the next version, or accept a changed version as the next version.

Page 19: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Use the correct tools

• Use proper version control software for all your documents and source code

• Keep everyone in your group informed of the current login details

• Keep offline backups of all your documents

Page 20: COMP 208/214/215/216 Lecture 6 Managing Software Quality

Summary

• Software quality covers a large number of factors

• Following a method is the key to quality assurance: it specifies what the the deliverables are, and the form they should take

• Each deliverable can be subjected to appropriate checks and reviews

• Version control is essential.