You are on page 1of 10

Software Quality Management

Unit 1

 Introduction to Software Quality


 Hierarchical Models
 Quality Measurement
 Metrics Measurement

Software Quality Management


Quality software refers to software which is reasonably bug or defect free, is delivered in
time and within the specified budget, meets the requirements and/or expectations, and is
maintainable.

 Software quality management is concerned with ensuring that software meets its
required standards
 Quality assurance procedures should be documented in an organisational quality
manual
 Software standards are an encapsulation of best practice
 Reviews are the most widely used approach for assessing software quality
 Software measurement gathers information about both the software process and the
software product
 Product quality metrics should be used to identify potentially problematical
components

Quality Management Activities:

Quality Assurance:

 Establishing organizational quality standards and procedures

Quality Planning:

 Selecting and modifying applicable quality standards and procedures for a


particular project

Quality control:

 Ensuring quality standards and procedures are followed by development team


In the software engineering context, software quality reflects both functional quality as well
as structural quality.

 Software Functional Quality − It reflects how well it satisfies a given design, based
on the functional requirements or specifications.

 Software Structural Quality − It deals with the handling of non-functional


requirements that support the delivery of the functional requirements, such as
robustness or maintainability, and the degree to which the software was produced
correctly.

Quality, simplistically, means that a product should meet its specification


• The software product should deliver the required functionality (functional
requirements) with the required quality attributes (non–functional
requirements)

A hierarchical model of software quality is based upon a set of quality criteria, each
of which has a set of measures or metrics associated with it.

Quality model are, Bohem model. McCall model.

Boehm’s Model
The highest level of Boehm’s model has the following three primary uses stated as
below
1. As is the utility: The extent to which, we can use software as-is.
2. Maintainability: Effort required detecting and fixing an error during maintenance.
3. Portability: Effort required changing the software to fit in a new environment.

Middle level Quality Factors Associated with Boehm’s Model

1. Portability: Effort required changing the software to fit in a new environment.


2. Reliability: The extent to which software performs according to requirements.
3. Efficiency: Amount of hardware resources and code required to execute a function.
4. Usability (Human Engineering): Extent of effort required to learn, operate and
understand functions of the software.
5. Testability: Effort required verifying that software performs its intended functions.
6. Understand ability: Effort required for a user to recognize a logical concept and its
applicability.
7. Modifiability: Effort required .modifying software during the maintenance phase.

Boehm further classified characteristics into Primitive constructs as follows-

o DEVICE INDEPENDENCE,
O ACCURACY,
O COMPLETENESS,
O CONSISTENCY,
O DEVICE EFFICIENCY,
O ACCESSIBILITY,
O COMMUNICATIVENESS,
O SELF-DESCRIPTIVENESS,
O LEGIBILITY,
O STRUCTURED NESS,
O CONCISENESS,
O AUGMENT-ABILITY.

McCall’s Software Quality Model was introduced in 1977. This model is incorporated
with many attributes, termed as software factors, which influence software. The model
distinguishes between two levels of quality attributes:

 Quality Factors
 Quality Criteria

Quality Factors: The higher-level quality attributes which can be accessed directly are
called quality factors. These attributes are external attributes. The attributes at this level are
given more importance by the users and managers.

Quality Criteria: The lower or second-level quality attributes that can be accessed either
subjectively or objectively are called Quality Criteria. These attributes are internal
attributes. Each quality factor has many second-level of quality attributes or quality criteria.

Factors of Product Quality


Below are the factors of Product Quality that are discussed in detail.
Product Operation
It includes five software quality factors, which are related to the requirements that directly
affect the operation of the software such as operational performance, convenience, ease of
usage, and correctness. These factors help in providing a better user experience.
 Correctness: The extent to which software meets its requirements specification.
 Efficiency: The number of hardware resources and code the software, needs to perform
a function.
 Integrity: The extent to which the software can control an unauthorized person from
accessing the data or software.
 Reliability: The extent to which software performs its intended functions without
failure.
 Usability: The extent of effort required to learn, operate and understand the functions
of the software.
Product Revision
It includes three software quality factors, which are required for testing and maintenance
of the software. They provide ease of maintenance, flexibility, and testing effort to support
the software to be functional according to the needs and requirements of the user in the
future.
 Maintainability: The effort required to detect and correct an error during the
maintenance phase.
 Flexibility: The effort needed to improve an operational software program.
 Testability: The effort required to verify software to ensure that it meets the specified
requirements.
Product Transition
It includes three software quality factors that allow the software to adapt to the change of
environments in the new platform or technology from the previous.
 Portability: The effort required to transfer a program from one platform to another.
 Re-usability: The extent to which the program’s code can be reused in other
applications.
 Interoperability: The effort required to integrate two systems with one another.

The difference between Boehm’s and McCall’s Models is that McCall’s Quality
Model primarily focuses on precise measurement of high-level characteristics,
whereas Boehm’s Quality Model is based on a wider range of characteristics.

International Organization for Standardization and IEC i.e. International


Electrotechnical Commission have developed ISO/IEC 9126 standards for software
engineering → Product Quality to provide an all-inclusive specification and evaluation
model for the quality of the software product.
The standard is divided into 4 parts as depicted in the following figure:

Parts of Standard

Part-1: Software Engineering: Product Quality “Quality model”: It describes the quality
model framework which explains relationships between different approaches to quality as
well as identifying quality characteristics and sub-characteristics of software products.
Part-2: Software Engineering: Product Quality “External Metrics”: Its use is to describe
external metrics that are used to measure characteristics and sub-characteristics which are
identified in part 1.
Part-3: Software Engineering: Product Quality “Internal Metrics”: Its use is to describe
internal metrics that are used to measure characteristics and sub-characteristics which are
identified in part 1.
Part-4: Software Engineering: Product Quality “Quality in use metrics”: Its use is to
identify metrics that are used to measure the effects of combined quality characteristics for
users.

Quality model is classified into two categories as depicted in the following figure:

Product:
In the context of software engineering, Product includes any software manufactured based
on the customer’s request. This can be a problem solving software or computer based
system. It can also be said that this is the result of a project.
Process:
Process is a set of sequence steps that have to be followed to create a project. The main
purpose of a process is to improve the quality of the project. The process serves as a
template that can be used through the creation of its examples and is used to direct the
project.
The main difference between a process and a product is that the process is a set of steps that
guide the project to achieve a convenient product. while on the other hand, the product is
the result of a project that is manufactured by a wide variety of people.
Product is the final production of While the process is a set of sequence steps that have
the project. to be followed to create a project.

A product focuses on the final Whereas the process is focused on completing each
result. step being developed.

Software Quality Metrics


The word 'metrics' refer to standards for measurements. Software Quality Metrics means
measurement of attributes, pertaining to software quality along with its process of
development. The term software quality metrics illustrate the picture of measuring the
software qualities by recording the number of defects or security loopholes present in the
software. However, quality measurement is not restricted to counting of defects or
vulnerabilities but also covers other aspects of the qualities such as maintainability,
reliability, integrity, usability, customer satisfaction, etc.

Software metrics are used to find defects in code, predicting defective code, predicting
project success, and predicting project risk.

Quality is the degree to which any product or service possesses a desired combination of
attributes, to satisfy the stated and implied needs.

• Producers view: Meeting requirements

• Customers view: Fit for use

• Attributes of quality: Capability, usability, performance, install-ability,


Maintainability, scalability, Security

Types of software Metrics:


• Product Metrics: Size, Complexity, design features, performance, quality level
• Process Metrics: Effectiveness of defect removal, response time of the fix process
• Project metrics: Number of software developers, cost, schedule, productivity

Classification of software Quality Metrics:

• Process metrics, related to the software development process

• Product metrics, related to software maintenance

• The second classification category refers to the subjects of the measurements:

• KLOC – this classic metric measures the size of software by thousands of code lines.
KLOC (thousands of lines of code) is a traditional measure of how large a computer
program is or how long or how many people it will take to write it. The code
measured is usually source code

• Function points – a measure of the development resources (human resources)


required to develop a program, based on the functionality specified for the software
system

LLOC = Number of logical lines of code LLOC counts all logical lines except the
following:

⦿Full comment lines


⦿Whitespace lines
⦿Lines excluded by compiler conditional directives Maximum acceptable LLOC Procedure
LLOC <= 50

Class LLOC <= 1500 File LLOC <= 2000 Minimum acceptable LLOC Procedure LLOC >=
3 Class LLOC >= 3 File LLOC >= 1

Function points are a unit measure for software much like an hour is to measuring time,
miles are to measuring distance or Celsius is to measuring temperature. Function Point
Analysis, systems are divided into five large classes and general system characteristics:

⦿External Inputs
⦿External Outputs
⦿External Inquires
⦿Logical Files
⦿External Interface Files Transactions Logical Information

External Inputs (EI): It is an elementary process in which data crosses the boundary from
outside to inside. This data may come from a data input screen or another application. The
data may be used to maintain one or more internal logical files. The data can be either
control information or business information. The graphic represents a simple EI that updates
2 ILF's (FTR's).

External Outputs (EO): Is an elementary process in which derived data passes across the
boundary from inside to outside. Additionally, an EO may update an ILF. The data creates
reports or output files sent to other applications. These reports and files are created from one
or more internal logical files and external interface file. The following graphic represents on
EO with 2 FTR's there is derived information (green) that has been derived from the ILF's

External Inquiry (EQ) An elementary process with both input and output components that
result in data retrieval from one or more internal logical files and external interface files. The
input process does not update any Internal Logical Files, and the output side does not contain
derived data. The graphic below represents an EQ with two ILF's and no derived data.

Internal Logical Files (ILF’s) - a user identifiable group of logically related data that resides
entirely within the applications boundary and is maintained through external inputs.

External Interface Files (EIF’s) - a user identifiable group of logically related data that is
used for reference purposes only. The data resides entirely outside the application and is
maintained by another application. The external interface file is an internal logical file for
another application.

Project Metrics are the measures of Software Project and are used to monitor and control the
project. Project metrics usually show how project manager is able to estimate schedule and
cost.

An overall measure of quality:

Methods are detailed by Watts (1987) as part of the MQ approach.

1. Simple scoring: In this method, each criterion is allocated a score. The overall quality is
given by the mean of the individual scores.

2. Weighted scoring: This scheme allows the user to weight each criterion according to how
important they consider them to be. Each criterion is evaluated to produce a score between 0
and 1. Each score is weighted before summation and the resulting figure reflects the relative
importance if the different factors.

You might also like