Download presentation
Presentation is loading. Please wait.
1
TOTAL QUALITY MANAGEMENT
Unit-5 Software quality Presented by Ramya Rajendran
2
Software quality Software quality is the “conformance to explicit stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software
3
Cont… The above definition emphasize on these three important points
Software requirements are the foundation from which quality is measured. Lack of conformance to requirements is lack of quality Specified standards define a set of development criteria that guide the manner in which software is engineered. If the criteria are not followed, lack of quality will almost surely in result There is a set of implicit requirements that often goes unmentioned. If software conforms to its explicit requirements but fails to meet implicit requirements, software quality is suspect Software quality is a complex mix of factors that will vary across different applications and the customer who request them
4
Cont… Software quality is a complex mix of factors that will vary across different applications and the customer who request them Software quality can be considered as: 1) Product quality: The product quality describes the attributes of the products of the software process. For example Completeness of the design documents Traceability of the design Reliability and maintainability of the code, and Coverage of the tests
5
Cont… 2) Process quality: process quality describes the attributes of the software development process itself. Five software environment elements that are present in all the software projects are taken into account, they are: Techniques Tools People Organization, and Facilities
6
Cont… Process quality mainly focuses on, for example
Correct implementation of a technique Productivity of a tool Abilities of the programmers Communicativeness of an organization, and How well suited are the installations and facilities?
7
Classification of software qualities
There are many desirable software qualities. Some of these apply both to the product and to the process used to produce the product. The user wants the software products to be reliable, efficient, and easy to use. The producer of the software wants it to be verifiable, maintainable, portable, and extensible. The manager of the software project wants the process of software development to be productive and easy to control
8
External versus internal qualities:
we can divide software qualities into external and internal qualities. The external qualities are visible to the users of the system. The internal qualities are those that concern the developers of the system. In general, a user of the software, that help developers achieve the external qualities. For example, the internal quality of verifiability is necessary for achieving the external quality of reliability. In many cases, however, the qualities are related closely and the distinction between internal and external is not sharp
9
Product versus process qualities:
We use a process to produce the software product. We can also attribute some qualities to the process, although process qualities often are closely related to product qualities. For example, it the process requires careful planning of system test data before any design and development of the system starts, products reliability will increase. Some qualities, such as efficiency, apply both to the product and to the process
10
Cont… Product usually refers to what is delivered to the customer. Even though this is an acceptable definition from the customer’s perspective, it is not adequate for the developer who requires a general definition of a software product that encompasses not only the object code and the user manual that are delivered to the customer but also the requirements, design, source code, test data, etc. in fact, it is possible to deliver different subsets of the same product to different customers
11
Importance of software quality
Quality is a concern of all producers of goods and services. However, the special characteristics of software, and in particular, its intangibility and complexity, make special demands
12
Increasing criticality of software:
The final customer or user is naturally anxious about the general quality of software, especially its reliability. This is increasingly the case as organizations become more dependent on their computer systems and software is used more and more in areas which are safety critical
13
Intangibility of software:
This makes it difficult to know whether a particular task in a project has been completed satisfactorily. The results of these tasks can be made tangible by demanding that the developers produce ‘deliverables’ that can be examined for quality
14
Accumulating errors during software development:
As computer system development is made-up of a number of steps where the output from one step is the input to the next, the errors in the earlier deliverables will be added to those in the later steps leading to an accumulating detrimental effect, and generally, the later in a project that an error is found the more expensive it will be to fix. In addition, because the number of errors in the system is unknown the debugging phases of a project are particularly difficult to control
15
Software quality attributes
Clearly, developing high-quality software is fundamental goal of software engineering. However, while cost is generally well understood, the concept of quality in the context of software needs further discussion Software quality comprises of six main attributes (called characteristics). These six attributes have detailed characteristics which are considered the basic ones and which can and should be measured using suitable metrics
16
At the top level for a software product, these attributes can be defined as follows:
Functionality: The capability to provide functions which meet stated and implied needs when the software is used Reliability: The capability to maintain a specified level of performance Usability: The capability to provide appropriate performance relative to the amount of resources used Efficiency: The capability to provide appropriate performance relative to the amount of resources used Maintainability: The capability to be modified for purposes of making corrections, improvements, or adaptation Portability: The capability to be adapted for different specified environments without applying actions or means other than those provided for this purpose in the product
17
Cont… The characteristics for the different attributes provide further details. Usability, for example, has characteristics of understandability, learnability, operability, maintainability has changeability, testability, stability etc; while portability has adaptability, installability, etc. Functionality includes suitability (whether appropriate set of functions are provided), accuracy (the results are accurate) and security: Note that in this classification, security is considered a characteristic of functionality, and is defined as “ the capability to protect information and data so that unauthorized persons or systems cannot read or modify them, and authorized persons or systems are not denied access to them”
18
Cont… There are two important consequences of having multiple dimensions to quality First, software quality cannot be reduced to a single number (or a single parameter) Second, the concept of quality is project-specific
19
Software quality factors
The factors that affect software quality can be categorized in two broad groups Factors that can be directly measured (for example, defects per function point) Factors that can be measured only indirectly (for example, usability or maintainability)
20
McCall’s quality factors
McCall, Richards and Walters propose a useful categorization of factors that affect software quality. Software quality factors focus on three important aspects of a software product: Product operation: its operational characteristics Product revision: its ability to undergo change Product transaction: its adaptability to new environments
21
These 11 quality factors are described by McCall and his colleagues as under:
Correctness: The extent to which a program satisfies its specification and fulfills the customer’s mission objectives Reliability: The extent to which a program can be expected to perform its intended function with required precision Efficiency: The amount of computing resources and code required by a program to perform its function Integrity: extent to which access to software or data by unauthorized persons can be controlled Usability: Effort required to learn, operate, prepare input, and interpret output of a program
22
Cont… Maintainability: Effort required to locate and fix an error in a program. Flexibility: Effort required to modify an operational program Testability: Effort required to test a program to ensure that it performs its intended function Portability: Effort required to transfer the program from one hardware and/or software system environment to another Reusability: Extent to which a program (or parts of a program) can be reused in other applications – related to the packaging and scope of the functions that the program performs Interoperability: Effort required to couple one system to another
23
Few other quality factors include:
User friendliness: A software system is user friendly if its human users find it easy to use. This definition reflects the subjective nature of user friendliness Extensibility: Extensibility allows required modifications at the appropriate locations to be made without undesirable side effects Verifiability: A software system is verifiable if its properties can be verified easily. Verification can be performed either by formal analysis methods or through testing
24
Various metrics defined by McCall are used to grade specific attributes of the software
Auditability: The ease with which conformance to standards can be checked Accuracy: The precision of computations and control Communication commonality: The degree to which standard interfaces, protocols, and bandwidth are used Completeness: The degree to which full implementation of required function has been achieved Conciseness: The compactness of the program in terms of lines of code Consistency: The use of uniform design and documentation techniques throughout the software development project
25
Cont… Data commonality: The use of standard data structures and types throughout the program Error tolerance: The damage that occurs when the program encounters an error Execution efficiency: The run-time performance of a program Expandability: The degree to which architectural, data, or procedural design can be extended
26
Cont… Generality: The breadth of potential application of program components Hardware independence: The degree to which the program monitors its own operation and identifies errors that do occur Modularity: The functional independence of program components Operability: The ease of operation of a program Security: The availability of mechanisms that control or protect programs and data Self-documentation: The degree to which the source code provides meaningful documentation
27
Cont… Simplicity: The degree to which a program can be understood without difficulty Software system independence: The degree to which the program is independent of nonstandard programming languages features, operating system characteristics, and other environmental constraints Traceability: The ability to trace a design representation or actual program component back to requirements Training: The degree to which the software assists in enabling new users to apply the system
28
Thank You
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.