
CHAPTER 11 SOFTWARE QUALITY The important concept is that the software requirements ACRONYMS define the required quality characteristics of the software, and influence the measurement methods and acceptance CMMi Capability Maturity Model Integrated criteria for assessing these characteristics. COTS Commercial Off-the-shelf Software 1.1.Software engineering Culture and Ethics PDCA Plan, Do, Check, Act Software engineers are expected to share a commitment to SQA Software Quality Assurance software quality as part of their culture. A healthy software engineering culture is described in [Wie96]. SQM Software Quality Management Ethics can play a significant role in software quality, the TQM Total Quality Management culture, and the attitudes of software engineers. The IEEE V&V Verification and Validation Computer Society and the ACM [IEEE99] have developed a code of ethics and professional practice based on eight principles, to help software engineers reinforce attitudes INTRODUCTION related to quality and to the independence of their work. What is software quality, and why is it so important that it 1.2.Value and Costs of Quality be pervasive in the Swebok Guide? Over the years, authors and organizations have defined the term “quality” [Boe78; NIST; Pre01; Wei93] differently. To Phil Crosby (Cro79), it was “conformance to The notion of “quality” is not as simple as it may seem. user requirements.” Watts Humphrey (Hum89) refers to it as For any engineered product, there are many desired “achieving excellent levels of fitness for use”, while IBM qualities relevant to a particular perspective of the product, coined the phrase "“market-driven quality”, which is based on to be discussed and determined at the time that the product achieving total customer satisfaction. The Baldrige criteria requirements are set down. Quality characteristics may be for organizational quality (NIST03) use a similar phrase, required or not, or may be required to a greater or lesser “customer-driven quality”, and include customer satisfaction degree, and tradeoffs may be made among them. [Pfl01] as a major consideration. More recently, quality has been The cost of quality can be differentiated into prevention defined in (ISO9001-00) as “the degree to which a set of cost, appraisal cost, internal failure cost, and external inherent characteristics fulfils requirements.” failure cost. [Hou99] This chapter deals with software quality considerations A motivation behind a software project is the desire to which transcend the life cycle processes. Software quality create software that has value, and this value may or may is a ubiquitous concern in software engineering, and so it is not be quantified as a cost. The customer will have some also considered in many of the KAs. In summary, the maximum cost in mind, in return for which it is expected SWEBOK Guide describes a number of ways of achieving that the basic purpose of the software will be fulfilled. The software quality (see figure 1). In particular, this KA will customer may also have some expectation as to the quality cover static techniques, those which do not require the of the software. Sometimes customers may not have execution of the software being evaluated, while the thought through the quality issues or their related costs. Is dynamic techniques are covered in the Software Testing the characteristic merely an adornmentdecorative, or is it KA. essential to the software? If the answer lies somewhere in between, as is almost always the case, it is a matter of BREAKDOWN OF SOFTWARE QUALITY TOPICS making the customer a part of the decision process and fully aware of both costs and benefits. Ideally, most of 1. Software Quality Fundamentals these decisions will be made in the software requirements process (see the Software Requirements KA), but these Agreement on quality requirements, as well as clear issues may arise throughout the software life cycle. There is communication to the software engineer on what no definite rule as to how these decisions should be made, constitutes quality, require that the many aspects of quality but the software engineer should be able to present quality be formally defined and discussed. alternatives and their costs. A discussion concerning cost A software engineer should understand the underlying and the value of quality requirements can be found in meanings of quality concepts and characteristics and their [Jon96:c5; Wei96:c11]. value to the software under development or to maintenance. © IEEE – 2004 Version 11-1 Software Quality Software Quality Software Quality Practical Management Fundamentals Considerations Processes Software Engineering Software Quality Application Quality Culture and Ethics Assurance Requirements Value and Costs Verification and Defect of Quality Validation Characterization Software Quality Models and Reviews and Management Quality Audits Techniques Characteristics Software Quality Quality Improvement Measurement Figure 1 Breakdown of topics for the Software Quality KA Models and criteria which evaluate the capabilities of 1.3.Models and quality characteristics software organizations are primarily project organization and management considerations, and, as such, are covered [Dac01; Kia95; Lap91; Lew92; Mus99; NIST; Pre01; in the Software Engineering Management and Software Rak97; Sei02; Wal96] Engineering Process KAs. Terminology for software quality characteristics differs Of course, it is not possible to completely distinguish the from one taxonomy (or model of software quality) to quality of the process from the quality of the product. another, each model perhaps having a different number of Process quality, discussed in the Software Engineering hierarchical levels and a different total number of Process KA of this Guide, influences the quality characteristics. Various authors have produced models of characteristics of software products, which in turn affect software quality characteristics or attributes which can be quality-in-use as perceived by the customer. useful for discussing, planning, and rating the quality of software products. [Boe78; McC77] ISO/IEC has defined Two important quality standards are TicKIT [Llo03], and three related models of software product quality (internal one which has an impact on software quality, the ISO9001 quality, external quality, and quality in use) (ISO9126-01) standard [ISO9001-00], along with its guidelines for and a set of related guides parts (ISO14598-98). application to software [ISO900390003-04]. Another industry standard on software quality is CMMi 1.3.1. Software engineering process quality [Sei02], also discussed in the Software Engineering Software quality management and software engineering Process KA. CMMi is a process benchmarking and process quality have a direct bearing on the quality of the improvement model which proposes bestproven practices. software product. Specific process areas related to quality management are: a) process and product quality assurance, b) process 11–2 © IEEE – 2004 Version verification, and c) process validation. CMMi classifies work of experts in quality who have stated that the quality reviews and audits as methods of verification, and not as of a product is directly linked to the quality of the process specific processes like (IEEE12207.0-96). used to create it. (Cro79, Dem86, Jur89) There was initially some debate over whether ISO9001 or Approaches such as the Total Quality Management CMMi should be used by software engineers to ensure (TQM) process of Plan, Do, Check, and Act (PDCA) are quality. This debate is widely published, and, as a result, tools by which quality objectives can be met. the position has been taken that the two are Management sponsorship supports process and product complementary, and that having ISO9001 certification evaluations and the resulting findings. Then, an can help greatly in achieving the higher maturity levels of improvement program is developed identifying detailed the CMMi. [Dac01] actions and improvement projects to be addressed in a feasible time frame. Management support implies that 1.3.2. Software product quality each improvement project has enough resources to The software engineer needs, first of all, to determine the achieve the goal defined for it. Management sponsorship real purpose of the software. In this regard, it is of prime must be solicited frequently by implementing proactive importance to keep in mind that the customer’s communication activities. The involvement of work requirements come first, and that they include constraints groups, as well as middle-management support and requirements like quality, not just functionality. Thus, the resources allocated at project level, are discussed in the software engineer has a responsibility to elicit quality Software Engineering Process KA. requirements which may not be explicit at the outset, and to discuss their importance as well as the level of 2. Software Quality Management Processes difficulty in attaining them. All processes associated with Software quality management (SQM) applies to all software quality (for example, building, checking, and perspectives of software processes, products, and improving quality) will be designed with these resources. It defines processes, process owners, and requirements in mind, and they carry additional costs. requirements for those processes, measurements of the Standard (ISO9126-01) defines, for each two of its three process and its outputs, and feedback channels. (Art93) models of quality, the related quality characteristics
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages14 Page
-
File Size-