620 likes | 1.12k Views
Chapter 11 Quality Management . This chapter is extracted from Sommerville’s slides. Text book chapter 27. 1. Objectives. To introduce the quality management process and key quality management activities: Quality assurance Quality planning Quality control
E N D
Chapter 11Quality Management This chapter is extracted from Sommerville’s slides. Text book chapter 27 1
Objectives • To introduce the quality management process and key quality management activities: • Quality assurance • Quality planning • Quality control • To explain the role of standards in quality management • Introduce software measurements and metrics 2
Overview • Process and product quality • Quality assurance and standards • Quality planning • Quality control • Software metrics 3
Quality Quality, simplistically, means that a product should meet its specification. However, this is problematical for software systems.......
Because • There is a tension between customer quality requirements (efficiency, reliability, etc.) and developer quality requirements (maintainability, reusability, etc.); • Some quality requirements are difficult to specify in an unambiguous way (maintainability) ; • Software specifications are usually incomplete and often inconsistent. Even if a SW conforms to the specification, users may not consider it to be high quality because it does not meet their expectations.
Software quality management • Concerned with ensuring that the required level of quality is achieved in a software product. • Involves defining appropriate quality standards and procedures and ensuring that these are followed. • Should aim to develop a ‘quality culture’ where quality is seen as everyone’s responsibility.
Quality management activities Quality assurance Establish a framework of organisational procedures and standards that lead to high-quality software. Quality planning The selection of appropriate procedures and standards form this framework for a particular project and modify these as required. Quality control The definition of processes that ensure that project quality procedures and standards are followed by the software development team.
Quality Team The quality team: • Check the project deliverables to ensure they are consistent with organizational standards and goals. • Report problems and difficulties to senior management in the organization, to managers above the project managers level.
Quality Team A quality assurance team should be independent from the development group. Do you know why?
Why? So that they can take an objective view of the software. The reason for this separation is that project management have to maintain the project budget and schedule. They might compromise on project quality to meet the schedule. An independent quality management team ensures that the organizational goals of quality are not compromised by short-term budget and schedule considerations.
Process and product quality The quality of a developed product is influenced by the quality of the production process. However software is not manufactured but is designed,……
Process and product quality • Software development is a creative rather than a mechanical process • The influence of individual skills and experience is particularly important in software development; • External factors such as the novelty of an application or the need for an accelerated development schedule may impair product quality irrespective of the process used.
Process and product quality In software development, the relationship between process quality and product quality is more complex. It is difficult to measure software quality attributes, such as maintainability, even after using the software for a long time.
Can we measure maintainability? “I have been reminded that metrics should have some sort of a measurement to them. Here is my own method, which requires some special audio recording equipment. Go into the room and say: "Guys, the client want to change something" Measure the strength of the groans.” http://ayende.com/Blog/archive/2007/08/10/How-to-measure-maintainability.aspx
Process and product quality Experience shows that process quality has a significant influence on the quality of the software. Process quality management and improvement can lead to fewer defects in delivered software.
Process quality management Process quality management involves: • Defining process standards such as how and when reviews should be conducted. • Monitoring the development process to ensure that standards are being followed. • Reporting the software process to project management and to the buyer of the software. One problem with process-based quality assurance is that the quality assurance team may insist that standard processes should be used irrespective of the type of software that is being developed.
Quality management activities • Quality assurance • Establish a framework of organisational procedures and standards that lead to high-quality software. • Quality planning • The selection of appropriate procedures and standards form this framework for a particular project and modify these as required. • Quality control • The definition of processes that ensure that project quality procedures and standards are followed by the software development team.
Quality assurance (QA) and standards QA is the process of defining : • How software quality can be achieved, and • How the development organization knows that the software has the required level of quality. QA is primarily concerned with defining standards that should be applied to the software development process or software product.
Quality assurance (QA) and standards Two types of standards may be established as part of the quality assurance process: • Product standards: document standards (structure), documentation standards (comment headers), and coding standards (variable names). • Process standards define the processes that should be followed during software development (validation process).
Importance of Standards • Encapsulation of best practice- avoids repetition of past mistakes. • They are a framework for quality assurance processes - they involve checking compliance to standards. • They provide continuity - new staff can understand the organisation by understanding the standards that are used.
ISO 9000 • An international set of standards that can be used in the development of a quality management system in all industries is called ISO9000. • Applicable to a range of organisations from manufacturing to service industries. • ISO 9001 is the most general of these standards and applies to organisations concerned with the quality process in organizations that design, develop and maintain products.
ISO 9000 Certification • Quality standards and procedures should be documented in an organisational quality manual. • An external body may certify that an organisation’s quality manual conforms to ISO 9000 standards. • Some customers require suppliers to be ISO 9000 certified although the need for flexibility here is increasingly recognised.
Documentation standards Particularly important - documents are the tangible manifestation of the software. Three types of documentation standards: • Documentation process standards • Concerned with how documents should be developed, validated and maintained. (what tools are used) • Document standards • Concerned with document contents, structure, and appearance. • Document interchange standards • Concerned with the compatibility of electronic documents. (standard style sheet, font, text style)
Quality management activities • Quality assurance • Establish a framework of organisational procedures and standards that lead to high-quality software. • Quality planning • The selection of appropriate procedures and standards form this framework for a particular project and modify these as required. • Quality control • The definition of processes that ensure that project quality procedures and standards are followed by the software development team.
Quality planning • A quality plan sets out • the desired software qualities and • how these are assessed • It defines what “high quality software” means. • The quality plan should define the quality assessment process. • It should set out which organisational standards should be applied and, where necessary, define new standards to be used.
Quality management activities • Quality assurance • Establish a framework of organisational procedures and standards that lead to high-quality software. • Quality planning • The selection of appropriate procedures and standards form this framework for a particular project and modify these as required. • Quality control • The definition of processes that ensure that project quality procedures and standards are followed by the software development team.
Quality Control • This involves checking the software development process to ensure that procedures and standards are being followed. • There are two approaches to quality control • Quality reviews; • Automated software assessment and software measurement.
Quality reviews • This is the principal method of validating the quality of a process or a product. • A group examines part or all of a software process, system or its documentation to discover potential problems. • There are different types of review with different objectives • Inspections for defect removal; • Reviews for progress assessment; (cost, plans, schedules) • Quality reviews.
Review results • Comments made during the review should be classified • No action. No change to the software or documentation is required; • Refer for repair. Designer or programmer should correct an identified fault; • Reconsider overall design. The problem identified in the review impacts other parts of the design. Some overall judgement must be made about the most cost-effective way of solving the problem; • Requirements and specification errors may have to be referred to the client.
Quality Reviews • Quality reviews are expensive and time-consuming. • It is possible to accelerate this process by using tools to analyze the software and make some automated assessments about some software quality .
Software measurement and metrics • Software measurement is concerned with deriving a numeric value for an attribute of a software product or process. • This allows for objective comparisons between techniques and processes.
Software metric • Any type of measurement which relates to a software system, process or related documentation • Lines of code in a program, the Fog index, number of person-days required to develop a component. • Software metrics may be either control metrics or predictor metrics.
Software metrics • Control metrics are associated with software processes. • Example: the average effort and time required to repair reported defects. • Predictor metrics are associated with the software product. • Example: complexity of a module, average length of identifiers in a program, and the number of attributes and operations associated with an object.
Metrics assumptions If the measure of the internal attribute is to be a useful predictor of the external software characteristic, three conditions must apply: • The internal attribute must be measured accurately. • The relationship exists between what we can measure and what we want to know. • This relationship is understood, has been validated and can be expressed in terms of a formula or model.
The measurement process • A software measurement process may be part of a quality control process. • Data collected during this process should be maintained as an organisational resource. • Once a measurement database has been established, comparisons across projects become possible.
Product metrics • A quality metric should be a predictor of product quality. • Classes of product metric • Dynamic metrics which are collected by measurements made of a program in execution; • Static metrics which are collected by measurements made of the system representations; • Dynamic metrics help assess efficiency and reliability; • Static metrics help assess complexity, understandability and maintainability.
Dynamic and static metrics • Dynamic metrics are closely related to software quality attributes • It is relatively easy to measure the response time of a system (performance attribute) or the number of failures (reliability attribute). • Static metrics have an indirect relationship with quality attributes • You need to try and derive a relationship between these metrics and properties such as complexity, understandability and maintainability.