creator: acsession no: 15 slide no: 1reviewer: ss cse300advanced software engineeringfebruary 2006...
TRANSCRIPT
Creator: AC Session No: 15 Slide No: 1 Reviewer: SS
CSE300 Advanced Software Engineering February 2006
Software Quality Assurance & Software Quality Control
CSE300
Advanced Software EngineeringUniversity of Sunderland © 2006
Anne Comer
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 2 Reviewer: SS
Aim of the Session
To provide a critical understanding of the
nature of Software Quality Assurance and
Control in the Software Engineering
Context.
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 3 Reviewer: SS
The Nature of Quality
• Management Commitment
• Words and Money
• Planning (at all levels)
• Communication
• Involvement (“walk the halls”)
• Control
• Measurement - key
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 4 Reviewer: SS
The History of Quality
Guild Halls - standards (materials, products, practices, conditions)
Industrialisation - supervisors - growing responsibility
for quality - formal quality inspection
Post WW1 - sophistication - stats, societies, standards
(military, civil, international)
60’s - Japanese adopt and adapt quality methods
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 5 Reviewer: SS
Development of Quality
• Deming, Juran, Ishikawa, Shingo, Crosby
• TQM
– kaizen
– atarimae hinshitsu
– kansei
– miryokuteki hinshitsu
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 6 Reviewer: SS
What is Quality?
• Basic concept: ‘Fitness for purpose’
• Quality Definition –
“The totality of features and characteristics of a
product or service that bear on its ability to
satisfy stated or implied needs.”- ISO 8402
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 7 Reviewer: SS
Quality Concepts• general objective: “reduce the variation between
samples” ... what does mean for software?
• quality control: inspections, reviews, tests
• quality assurance: analysis, auditing and reporting activities
• cost of quality– appraisal costs, prevention costs
• cost of poor quality– failure costs, external (field) failure costs
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 8 Reviewer: SS
Software Quality Assurance
FormalTechnicalReviews
SQASQA
Test Planning& Review
Measurement
Analysis&
Reporting
ProcessDefinition &Standards
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 9 Reviewer: SS
Statistical SQA
• Measurement (- of what?)– Product and Process
• Collect data
• Find causes in the process
• Find a fix, in each case, in the process
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 10 Reviewer: SS
Deming
• “ Someone once said: “You cannot inspect quality into a product.” - he meant that you must build it in!
• Quality Participation – - employee participation in decisions
• 14 point quality plan
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 11 Reviewer: SS
Quality Assurance
– Juran defined quality assurance, in his Quality Control Handbook, as:
“the activity of providing to all concerned the evidence needed to establish confidence that the quality function is being performed adequately”
– Also defined as:
“Systematic activities providing evidence of fitness for purpose of the total software product”
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 12 Reviewer: SS
QA Activities
• prepare a SQA plan
• participate in the definition of a project’s software development plan (and process model)
• review (software engineering) activities to verify compliance with defined software process
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 13 Reviewer: SS
QA Activities – contd.
• review selected (software) work products to verify compliance with specifications
• ensure deviations from defined activities and products are documented and handled according to defined procedures
• record any non-compliances
• regularly report to senior management
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 14 Reviewer: SS
Software Quality Planning
“If we fail to plan, we plan to fail….”anon.
Objective:
Provide a framework for understanding
the scope of the problem and for making
estimates of resources, cost and
schedule.
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 15 Reviewer: SS
Launching a SQA Programme• initiate the programme
• identify the issues
• write the plan
• establish standards
• establish the function
• train and promote
• implement the plan
• evaluate the programme
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 16 Reviewer: SS
Watts Humphrey says:
“The people responsible for the software projects are the only ones who can be responsible for quality. The role of SQA is to monitor the way these groups perform their responsibilities.”
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 17 Reviewer: SS
Pitfalls• it is a mistake to think that SQA people (alone) can do
anything about quality
• the existence of a SQA function does not ensure that the standard procedures are followed
• unless management periodically demonstrates its support for SQA, by following their recommendations, SQA will be ineffective
• unless line management requires that SQA tries to resolves their issues with project management before escalation, SQA and development will not work together effectively.
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 18 Reviewer: SS
QA vs. QC
• Precise definitions vary, but broadly we may distinguish between these as follows:
– software quality assurance concerns the design and monitoring of an appropriate regime of standards and procedures to achieve high quality outcomes from system development activities;
– software quality control consists in the conformance to this regime by all members of a system development team.
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 19 Reviewer: SS
Software Quality Factors
• McCall et al, Factors in Software Quality, (1977), sets out a checklist of factors divided into three categories:– system operations: factors which focus on the
day-to-day use of the system;– system revision: factors which address the
ease with which changes can be made to the system;
– system transition: factors which consider the system in relation to other systems.
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 20 Reviewer: SS
System Operations Factors• correctness: does the system operate
according to its specification?
• reliability: is the system consistently able to produce accurate results? (Narrow definition?)
• efficiency: does the system avoid unwarranted resource demands?
• integrity: is the system secure from intrusion?
• usability: is it easy for users to learn how to use the system, and then convenient to use it?
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 21 Reviewer: SS
System Revision Factors
• maintainability: how easy is it to fix bugs in the system?
(this is a much narrower definition of ‘maintenance’ than is usually applied.)
• flexibility: how readily can the system be modified to meet new/changed requirements?
• testability: has the system been designed to facilitate systematic and thorough testing?
CSE300 Advanced Software Engineering February 2006
Creator/Editor: AC Session No:15 Slide No: 22 Reviewer: SS
System Transition Factors
• portability: how easy is it to adapt the system to enable it to operate in a different hardware and/or software environment?
• reusability: would it be possible and cost-effective to reuse all or some parts of the system in future development projects?
• interoperability: how readily can the system communicate and interact with other systems?