Quality managementp1 v2.pdf
Document Details
Uploaded by NeatestStrength
Tags
Full Transcript
Quality Management 1 Topics covered Software quality Software standards Reviews and inspections Quality management and agile development Software measurement (in brief) 2 Software quality management Concerned with ensuring that the required level of quality is achieved in a software...
Quality Management 1 Topics covered Software quality Software standards Reviews and inspections Quality management and agile development Software measurement (in brief) 2 Software quality management Concerned with ensuring that the required level of quality is achieved in a software product. Three principal concerns: ◦ At the organizational level, quality management is concerned with establishing a framework of organizational processes and standards that will lead to high-quality software. ◦ At the project level establish a quality processes ◦ At the project level, establish a quality plan for a project. 3 Quality management activities Quality management provides an independent check on the software development process. The quality management process checks the project deliverables to ensure that they are consistent with organizational standards and goals The quality team should be independent from the development team. 4 Quality planning A quality plan sets out the desired product qualities and how these are assessed and defines the most significant quality attributes. 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. 5 Quality plans A quality plan should contain ◦ ◦ ◦ ◦ ◦ Product introduction; Product plans; Process descriptions; Quality goals; Risks and risk management. Quality plans should be short, succinct documents ◦ If they are too long, no-one will read them. 6 Scope of quality management Quality management is particularly important for large, complex systems. The quality documentation is a record of progress and supports continuity of development as the development team changes. For smaller systems, quality management needs less documentation and should focus on establishing a quality culture. Techniques have to evolve when agile development is used. 7 Software quality Factors 8 Software quality Quality, simplistically, means that a product should meet its specification. This is problematical for software systems ◦ 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; ◦ Software specifications are usually incomplete and often inconsistent. The focus may be ‘fitness for purpose’ rather than specification conformance. 9 Software fitness for purpose Has the software been properly tested? Is the software sufficiently dependable to be put into use? Is the performance of the software acceptable for normal use? Is the software usable? Is the software well-structured and understandable? Have programming and documentation standards been followed in the development process? 10 Non-functional characteristics The subjective quality of a software system is largely based on its non-functional characteristics. This reflects practical user experience – if the software’s functionality is not what is expected, then users will often just work around this and find other ways to do what they want to do. However, if the software is unreliable or too slow, then it is practically impossible for them to achieve their goals. 11 Software quality attributes Safety Understandability Portability Security Testability Usability Reliability Adaptability Reusability Resilience Modularity Efficiency Robustness Complexity Learnability 12 Software quality attributes Safety Understandability Portability Security Testability Usability Reliability Adaptability Reusability Resilience Modularity Efficiency Robustness Complexity Learnability 13 Quality conflicts It is not possible for any system to be optimized for all of these attributes – for example, improving robustness may lead to loss of performance. The quality plan should therefore define the most important quality attributes for the software that is being developed. The plan should also include a definition of the quality assessment process, an agreed way of assessing whether some quality, such as maintainability or robustness, is present in the product. 14 Process and product quality The quality of a developed product is influenced by the quality of the production process. This is important in software development as some product quality attributes are hard to assess. However, there is a very complex and poorly understood relationship between software processes and product quality. ◦ The application 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. 15 Quality culture Quality managers should aim to develop a ‘quality culture’ where everyone responsible for software development is committed to achieving a high level of product quality. They should encourage teams to take responsibility for the quality of their work and to develop new approaches to quality improvement. They should support people who are interested in the intangible aspects of quality and encourage professional behavior in all team members. 16 Software standards 17 Software standards Factors Standards define the required attributes of a product or process. They play an important role in quality management. Standards may be international, national, organizational or project standards. 18 Importance of standards Encapsulation of best practice- avoids repetition of past mistakes. They are a framework for defining what quality means in a particular setting i.e. that organization’s view of quality. They provide continuity - new staff can understand the organisation by understanding the standards that are used. 19 Product and process standards 1 Product standards ◦ Apply to the software product being developed. They include document standards, such as the structure of requirements documents, documentation standards, such as a standard comment header for an object class definition, and coding standards, which define how a programming language should be used. 20 Product and process standards 2 Process standards ◦ These define the processes that should be followed during software development. Process standards may include definitions of specification, design and validation processes, process support tools and a description of the documents that should be written during these processes. 21 Product and process standards Product standards Process standards Design review form Design review conduct Requirements document structure Method header format Submission of new code for system building Version release process Java programming style Project plan approval process Project plan format Change control process Change request form Test recording process 22 Problems with standards They may not be seen as relevant and upto-date by software engineers. They often involve too much bureaucratic form filling. If they are unsupported by software tools, tedious form filling work is often involved to maintain the documentation associated with the standards. 23 Standards development Involve practitioners in development. Engineers should understand the rationale underlying a standard. Review standards and their usage regularly. Standards can quickly become outdated and this reduces their credibility amongst practitioners. Detailed standards should have specialized tool support. Excessive clerical work is the most significant complaint against standards. ◦ Web-based forms are not good enough. 24 ISO 9001 standards framework An international set of standards that can be used as a basis for developing quality management systems. ISO 9001, the most general of these standards, applies to organizations that design, develop and maintain products, including software. The ISO 9001 standard is a framework for developing software standards. ◦ It sets out general quality principles, describes quality processes in general and lays out the organizational standards and procedures that should be defined. These should be documented in an organizational quality manual. 25 ISO/IEC 90003:2014 Software engineering — Guidelines for the application of ISO 9001:2008 to computer software ISO/IEC 90003:2014 provides guidance for organizations in the application of ISO 9001:2008 to the acquisition, supply, development, operation and maintenance of computer software and related support services. ISO/IEC 90003:2014 does not add to or otherwise change the requirements of ISO 9001:2008. 26 ISO/IEC 90003:2014 slide 1 The application of ISO/IEC 90003:2014 is appropriate to software that is part of a commercial contract with another organization, a product available for a market sector, used to support the processes of an organization, embedded in a hardware product, or related to software services. 27 ISO/IEC 90003:2014 slide 2 ISO/IEC 90003:2014 identifies the issues that should be addressed and is independent of the technology, life cycle models, development processes, sequence of activities and organizational structure used by an organization. 28