Beruflich Dokumente
Kultur Dokumente
Lecture 10A.1
Lecture Outline
u What u How
u Software
v Software Quality Assurance v Software Quality Planning v Software Quality Control u Quality
Page 1
Definitions of Quality
u Quality is fitness for use - Juran v those product features which meet the needs of the customers and thereby provide product satisfaction v freedom from deficiencies u Quality
is conformance to requirements and zero defects - Crosby u Quality is the totality of characteristics that bear upon its ability to satisfy stated or implied needs - ISO9000
v stated needs - specified as requirements by a customer v implied needs - identified and defined by the company providing the product
Lecture 10A.4
Page 2
v explicitly stated functional and performance requirements v explicitly documented development standards v implicit characteristics that are expected of all professionally developed software u Software
Lecture 10A.5
definitions are high-level and difficult to measure are difficult to specify are usually incomplete
Lecture 10A.6
Page 3
Lecture 10A.7
Lecture 10A.8
Page 4
Product revision
Product transition
Correctness
v Does it do what I want? v Tool - Use Cases
Reliability
v Does it do it accurately all of the time? v Tool - Formal methods
Efficiency
v Will it run on my hardware as well as it can? v Tool Good algorithmic design, appropriate language (even Assembler in some cases) v Is it secure? v Tool - Java
Integrity Useability
v Is it designed for the user? v Tool - User-centred design
Lecture 10A.10
Page 5
Lecture 10A.12
Page 6
u Two methods are: v McCalls checklist approach (see download on website) v Hewlett-Packards FURPS
v Functionality
feature set, capabilities of program, generality of delivered functions, security of overall system
v Useability
human factors, overall aesthetics, consistency and documentation
v Reliability
frequency and severity of failure, accuracy of output, MTTF, ability to recover from failure, predictability
v Performance
processing speed, response time, resource consumption, throughput, efficiency
v Supportability
extensibility, adaptability, serviceability testability, compat ibility, configurability , ease of installation, ease of problem localization
Lecture 10A.13
Lecture 10A.14
Page 7
an organisation defines the methods by which it will achieve quality u Organisation must define or select standards u Quality of the product is influenced by the quality of the process u Standards need to be embedded in the software development process u All this will be documented in a Quality Manual u The relationship between software process and product quality is complex and poorly understood
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.15
Assuring Quality
u Need
to ask four questions u WHAT attributes of the product manifest quality in your context? u HOW is quality to be measured? u WHEN do we evaluate the product and the process? u WHO is responsible for carrying out the process? u Quality relies on people, but we can greatly help or hinder people from producing quality
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.16
Page 8
Quality Principles
u Try
to prevent defects from being introduced u Ensure that defects that get in are detected and corrected as early as possible
u Establish u Measure
and eliminate the causes as well as the symptoms of defects quality characteristics audit work for compliance with standards and procedures
u Independently
Lecture 10A.17
specific to a project u Produced early in the life of a project u Should set out desired product qualities u Should define how the quality is to be assessed u Should indicate which standards are to be applied u Indicate how compliance to the standards is monitored and assured u May define new standards
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.18
Page 9
Management responsibility Quality system Contract review Design control Quality control Purchasing Customer supplied info Configuration management Process control Inspection and testing Inspection and testing equipment
u u u u u u u u u
Control of non-conforming product Corrective action Handling, storage, packing and delivery Quality records Internal quality audits Training Software maintenance Statistical techniques Control of the development environment
Lecture 10A.19
Quality Control
u Ensuring
that all of the above gets done! u Tyranny is not effective in ensuring that the work is done u People must see a clear benefit to them in performing the above activities u Embedding the procedures in day-to-day work is essential u Reviews are one of the major tools for quality control
Lecture 10A.20
Page 10
Quality Standards
u u
HB 90.9-2000
v Provides guidelines for the software industry on quality management systems (QMS) complying with ISO9001:2000 (Quality Management Systems requirements) v Specifies requirements for a QMS for a software development organization that
needs to demonstrate its ability to consistently provide product that meets customer and applicable regulatory requirements, and aims to enhance customer satisfaction through the effective application of the system, including processes for continual improvement of the system and the assurance of conformity to customer and applicable regulatory requirements.
v Governments and other large organizations often require quality certification, such as ISO9000 v earlier standards superceded by this include AS 3563 and AS 3905.8
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.21
must be certified to be granted ISO9000 status u Certification is granted by independent auditing groups (e.g. Standards Australia) u Certification is not cheap (approximately $500,000 for a medium-sized company) u Certification might not bring any benefits to the company in terms of quality, but could in terms of marketing u Certification is an on-going process; audits are carried out annually
Lecture 10A.22
Page 11
standards are of greatest value to those organisations which dont already have formal development processes u They dont replace individual skills and abilities u They can only be as good as the work practices which they document
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.23
standards are only a necessary first step towards a software development environment which produces quality software u We need to define what sub-processes are necessary in the overall process u The Capability Maturity Model (CMM) documents this for organisations u The Personal Software Process (PSP) does this for individual developers
Lecture 10A.24
Page 12
Developed by the Software Engineering Institute (SEI), based on work by Watts Humphrey
v Now evolved into the CMMI family of models which are still very similar (e.g. http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr029. pdf)
5 Levels
v Level 1: Initial v Level 2: Repeatable v Level 3: Defined v Level 4: Managed v Level 5: Optimising
At each level Key Process Areas (KPAs) provide goals and example practices
Lecture 10A.25
Initial
Lecture 10A.26
Page 13
Level 1: Initial
u Process u Few
u Success u Key
v None u Too
Lecture 10A.27
Level 2: Repeatable
u Basic
project management processes defined u Process discipline in place to repeat successes u Change is inherently dangerous at this level u Key Process Areas
v Configuration management v Quality assurance v Sub-contract management v Project tracking v Project planning v Requirements management
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.28
Page 14
Level 3: Defined
u Process
is documented, standardised and integrated into a standard software process u All projects use this standard software process u Measurement is still qualitative u Key Process Areas
v Peer reviews v Intergroup coordination v Software product engineering v Integrated software management v Training program v Software process definition and focus
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.29
Level 4: Managed
u Detailed
measures of software process and product quality are collected u Process and product are quantitatively controlled u Data gathering should be automated u Key Process Areas
v Quality management v Quantitative process management
Lecture 10A.30
Page 15
Level 5: Optimising
u Continuous
process improvement is enabled u There is quantitative feedback from the process and from piloting innovative ideas and technologies u Move from a purely product focus to focusing on process as well u Key Process Areas
v Process change management v Technology change management v Defect prevention
Lecture 10A.31
the CMM for an individual u designed to help you become a better software engineer u requires research, motivation and study to work u Framework for
v why you make errors and how you find them v determining the quality of your reviews v determining the types of errors you make u Developed
by Watts Humphrey
Lecture 10A.32
Page 16
PSP0
u PSP0
- Baseline Process
v your current process with some basic measurements and a reporting format v time recording v defect recording v defect type standard u PSP0.1 v a coding standard v size measurement v process improvement proposal
CSE3308 - Software Engineering: Analysis and Design, 2005 Lecture 10A.33
PSP1
u PSP1.0
v adds planning steps to PSP0: test report size and resource estimation u PSP1.1 v to establish a performance rate for future planning v PSP1.0 enhanced by adding: task planning schedule planning
Lecture 10A.34
Page 17
PSP2
u PSP2.0
PSP3
u PSP3
- Cyclic Personal Process u For large programs - 10,000 LOC u Sub-divide into PSP2-sized modules u Enhance the base module in iterative cycles u In each iteration do a complete PSP2 including design, code, compile, test u Effectively scale up from base module to large program, if each increment is of high quality
Lecture 10A.36
Page 18
sets out the principal practices for managing the processes in large-scale software development sets out the principal practices for defining, measuring and analysing an individuals own processes
u PSP
Lecture 10A.37
References
u Pressman,
Roger S., Software Engineering: A Practitioners Approach, McGraw-Hill, 2000 (Ch. 19). u Capability Maturity Model for Software (SWCMM), The Software Engineering Institute (SEI), Carnegie Mellon University. http://www.sei.cmu.edu/cmm/cmm.html u The Personal Software ProcessSM (PSPSM ), The Software Engineering Institute (SEI), Carnegie Mellon University. http://www.sei.cmu.edu/tsp/psp.html
Lecture 10A.38
Page 19