Presentation is loading. Please wait.

Presentation is loading. Please wait.

Managing Software Quality

Similar presentations


Presentation on theme: "Managing Software Quality"— Presentation transcript:

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

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

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

4 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?

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

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

7 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

8 Portability - can I use it on another machine?
Reusability - can components be used in other ways? Interoperability - does it interface with other systems? Maintainability - can I fix it? Flexibility - can I change it? Testability - can I test it? Product revision Product Transition Product Operations 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?

9 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

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

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

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

13 Testing System testing User 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

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

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

16 Measurement and Records
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.

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

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

19 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

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


Download ppt "Managing Software Quality"

Similar presentations


Ads by Google