comp 208/214/215/216 lecture 6 managing software quality
TRANSCRIPT
![Page 1: COMP 208/214/215/216 Lecture 6 Managing Software Quality](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/1.jpg)
COMP 208/214/215/216 Lecture 6
Managing Software Quality
![Page 2: COMP 208/214/215/216 Lecture 6 Managing Software Quality](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022082817/56649e2a5503460f94b1811d/html5/thumbnails/20.jpg)
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.