0% found this document useful (0 votes)
53 views15 pages

Unit 4th

The document discusses various approaches and models for defining and measuring software quality. It describes McCall's quality model, which defines 11 quality factors organized into three categories: product operation, product revision, and product transition. Product operation factors relate to requirements that directly affect software usage, such as correctness, efficiency, integrity, reliability, and usability. The document also compares various other software quality models and their importance in verifying functionality and setting benchmarks to mark task completion.

Uploaded by

Rajesh Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views15 pages

Unit 4th

The document discusses various approaches and models for defining and measuring software quality. It describes McCall's quality model, which defines 11 quality factors organized into three categories: product operation, product revision, and product transition. Product operation factors relate to requirements that directly affect software usage, such as correctness, efficiency, integrity, reliability, and usability. The document also compares various other software quality models and their importance in verifying functionality and setting benchmarks to mark task completion.

Uploaded by

Rajesh Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Software Quality

 Software quality product is defined in term of its fitness of purpose. That is, a quality
product does precisely what the users want it to do. For software products, the fitness of
use is generally explained in terms of satisfaction of the requirements laid down in the
SRS document. Although "fitness of purpose" is a satisfactory interpretation of quality
for many devices such as a car, a table fan, a grinding machine, etc.for software products,
"fitness of purpose" is not a wholly satisfactory definition of quality.

Example: Consider a functionally correct software product. That is, it performs all tasks as
specified in the SRS document. But, has an almost unusable user interface. Even though it may
be functionally right, we cannot consider it to be a quality product.

 Software quality is defined as a field of study and practice that describes the desirable
attributes of software products. There are two main approaches to software quality: defect
management and quality attributes.
 A quality product does exactly what the user's wants it to do.

The software product several quality factors:

1. Portability
2. Usability
3. Reusability
4. Correctness
5. Maintainability

SOFTWARE QUALITY DEFECT MANAGEMENT APPROACH

A software defect can be regarded as any failure to address end-user requirements. Common
defects include missed or misunderstood requirements and errors in design, functional logic, data
relationships, process timing, validity checking, and coding errors.

The software defect management approach is based on counting and managing defects. Defects
are commonly categorized by severity, and the numbers in each category are used for planning.
More mature software development organizations use tools, such as defect leakage matrices (for
counting the numbers of defects that pass through development phases prior to detection)
and control charts, to measure and improve development process capability.
SOFTWARE QUALITY ATTRIBUTES APPROACH

This approach to software quality is best exemplified by fixed quality models, such as ISO/IEC
25010:2011. This standard describes a hierarchy of eight quality characteristics, each composed
of sub-characteristics:

1. Functional suitability
2. Reliability
3. Operability
4. Performance efficiency
5. Security
6. Compatibility
7. Maintainability
8. Transferability

Additionally, the standard defines a quality-in-use model composed of five characteristics:

1. Effectiveness
2. Efficiency
3. Satisfaction
4. Safety
5. Usability

A fixed software quality model is often helpful for considering an overall understanding of
software quality. In practice, the relative importance of particular software characteristics
typically depends on software domain, product type, and intended usage. Thus, software
characteristics should be defined for, and used to guide the development of, each product.

Quality function deployment provides a process for developing products based on characteristics
derived from user needs.

What is software quality model?


Software Quality Models are a standardized way of measuring a software product. With the
increasing trend in software industry, new applications are planned and developed every day.
This eventually gives rise to the need for reassuring that the product so built meets at least the
expected standards.

Comparison Of Various Software Quality Models:

Following are few models that explains what kind of quality criteria is to be followed.
 Mc Call's Model - Mccall Model is the first quality model developed, which defines a
layout of the various aspects that define the product's quality. It defines the product
quality in the following manner – Product Revision, Product Operation, Product
Transition.
Product revision deals with maintainability, flexibility and testability, product operation
is about correctness, reliability, efficiency and integrity.
 Boehm Model - This model describes how easily and reliably a software product can be
used. This model actually elaborates the aspects of McCall model in detail. It begins with
the characteristics that resorts to higher level requirements. The model's general utility is
divided into various factors - portability, efficiency and human engineering, which are the
refinement of factors like portability and utility. Further maintainability is refined into
testability, understandability and modifiability.
 FURPS Model -This model categorises requirements into functional and non-functional
requirements. The term FURPS is an acronym for Functional requirement(F) which relies
on expected input and output, and in non functional requirements (U) stands for Usability
which includes human factors, aesthetic, documentation of user material of training, (R)
stands for reliability(frequency and severity of failure, time among failure), (P) stands for
Performance that includes functional requirements, and finally (S) stands for
supportability that includes backup, requirement of design and implementation etc.
 Ghezzi Model -This model states that the internal qualities of a software help
the software developers to attain a collaborative result both in terms of external and
internal qualities of a software. The overall qualities can be accuracy, flexibility,
integrity, maintainability, portability, reliability, re-usability and usability.
 IEEE Model -It is a standard which defines various specifications for software
maintenance, thus providing a quality model. This model gives a variety of measurement
techniques for various qualitative factors like efficiency, functionality, maintainability,
portability, reliability and usability.
 Dromey's Quality Model -This model emphasises on evaluating one software's quality
with another. It helps to find out defects if any, and also to point out the factors that
caused such defects. This model is designed on the basis of the relationship that exist
between software properties and its quality attributes.
 SATC's Model -SATC is an acronym for Software Assurance Technology Centre. Its
objective is to improve software quality by defining metrics program which helps to meet
the basic needs with least expenditure. This model tests a quality model by evaluating the
results of the metrics used, and also on the basis of discussions based on the project. This
model defines set of goals and process attributes based on the structure of ISO 9126-1
quality model.
 ISO 9126-1 Quality Model -This model has two primary categories – internal and
external quality attributes and quality in use attributes. The internal quality attributes are
the properties of the system the evaluation of which can be done without executing it.
Whereas the external quality attributes are those that are evaluated by observing the
system during execution.
Importance of software quality models :
 With the growing number of customer's demand for software systems, the expectation for
quality has also grown in terms of how reliable a software product will be.
 As we know a software application is quite complex in nature, hence the task of verifying
whether a specific functionality has been implemented or not, becomes quite difficult.
Therefore software developers often divide the tasks in the form of deliverables that is,
defining a benchmark to mark the completion of one specific task.

 If the errors in some of the previous phases are not rectified on time, then it may lead to
that error being carried over to the next consecutive phases, which may have a serious
problem in the later stages of the project.
McCall’s Quality Model
McCall software quality model was introduced in 1977. This model is incorporated with many
attributes, termed as software factors, which influence a software. The model distinguishes
between two levels of quality attributes :
Quality Factors – The higher level quality attributes which can be accessed directly are called
quality factors. These attributes are external attributes. The attributes in this level are given more
importance by the users and managers.
Quality Criteria –
The lower or second level quality attributes which can be accessed either subjectively or
objectively are called Quality Criteria. These attributes are internal attributes. Each quality factor
has many second levels of quality attributes or quality criteria.

Example –
Usability quality factor is divided into operability, training, communicativeness, input/output
volume, input/output rate. This model classifies all software requirements into 11 software
quality factors. The 11 factors are organised into three product quality factors – product
operation, product revision, and product transition factors.

The following are the product quality factors –


1. Product Operation :
It includes five software quality factors, which are related with the requirements that directly
affect the operation of the software such as operational performance, convenience, ease of usage
and its correctness. These factors help in providing a better user experience.

Correctness –
The extent to which a software meets its requirements specification.

Efficiency –
The amount 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 the accessing the data
or software.

Reliability –
The extent to which a software performs its intended functions without failure.

Usability –
The extent of effort required to learn, operate and understand the functions of the software.

2. 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 maintenance phase.

Flexibility –
The effort needed to improve an operational software program.
Testability –
The effort required to verify a software to ensure that it meets the specified requirements.

3. Product Transition :
It includes three software quality factors, that allows 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.

Software Engineering | Capability maturity model (CMM)


CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon University
in 1987.

It is not a software process model. It is a framework that is used to analyze the approach and
techniques followed by any organization to develop software products.

It also provides guidelines to further enhance the maturity of the process used to develop those
software products.

It is based on profound feedback and development practices adopted by the most successful
organizations worldwide.

This model describes a strategy for software process improvement that should be followed by
moving through 5 different levels.

Each level of maturity shows a process capability level. All the levels except level-1 are further
described by Key Process Areas (KPA’s).

Shortcomings of SEI/CMM:

It encourages the achievement of a higher maturity level in some cases by displacing the true
mission, which is improving the process and overall software quality.

It only helps if it is put into place early in the software development process.

It has no formal theoretical basis and in fact is based on the experience of very knowledgeable
people.

It does not have good empirical support and this same empirical support could also be
constructed to support other models.
Key Process Areas (KPA’s):
Each of these KPA’s defines the basic requirements that should be met by a software process in
order to satisfy the KPA and achieve that level of maturity.

Conceptually, key process areas form the basis for management control of the software project
and establish a context in which technical methods are applied, work products like models,
documents, data, reports, etc. are produced, milestones are established, quality is ensured and
change is properly managed.
Level-1: Initial –

No KPA’s defined.

Processes followed are Adhoc and immature and are not well defined.

Unstable environment for software development.

No basis for predicting product quality, time for completion, etc.

Level-2: Repeatable –
Focuses on establishing basic project management policies.

Project Planning- It includes defining resources required, goals, constraints, etc. for the project.
It presents a detailed plan to be followed systematically for the successful completion of good
quality software.

Configuration Management- The focus is on maintaining the performance of the software


product, including all its components, for the entire lifecycle.

Requirements Management- It includes the management of customer reviews and feedback


which result in some changes in the requirement set. It also consists of accommodation of those
modified requirements.
Subcontract Management- It focuses on the effective management of qualified software
contractors i.e. it manages the parts of the software which are developed by third parties.

Software Quality Assurance- It guarantees a good quality software product by following


certain rules and quality standard guidelines while developing.

Level-3: Defined –

At this level, documentation of the standard guidelines and procedures takes place.

It is a well-defined integrated set of project-specific software engineering and management


processes.

Peer Reviews- In this method, defects are removed by using a number of review methods like
walkthroughs, inspections, buddy checks, etc.

Intergroup Coordination- It consists of planned interactions between different development


teams to ensure efficient and proper fulfillment of customer needs.

Organization Process Definition- Its key focus is on the development and maintenance of the
standard development processes.

Organization Process Focus- It includes activities and practices that should be followed to
improve the process capabilities of an organization.

Training Programs- It focuses on the enhancement of knowledge and skills of the team
members including the developers and ensuring an increase in work efficiency.

Level-4: Managed –

At this stage, quantitative quality goals are set for the organization for software products as well
as software processes.
The measurements made help the organization to predict the product and process quality within
some limits defined quantitatively.

Software Quality Management- It includes the establishment of plans and strategies to develop
quantitative analysis and understanding of the product’s quality.

Quantitative Management- It focuses on controlling the project performance in a quantitative


manner.

Level-5: Optimizing –

This is the highest level of process maturity in CMM and focuses on continuous process
improvement in the organization using quantitative feedback.
Use of new tools, techniques, and evaluation of software processes is done to prevent recurrence
of known defects.

Process Change Management- Its focus is on the continuous improvement of the organization’s
software processes to improve productivity, quality, and cycle time for the software product.

Technology Change Management- It consists of the identification and use of new technologies
to improve product quality and decrease product development time.

Defect Prevention- It focuses on the identification of causes of defects and prevents them from
recurring in future projects by improving project-defined processes.
Figure 1:CMM

Boehm’s Software Quality Model


In 1978, B.W. Boehm introduced his software quality model. The model represents a
hierarchical quality model similar to McCall Quality Model to define software quality using a
predefined set of attributes and metrics, each of which contributes to overall quality of
software.
The difference between Boehm’s and McCall’s model is that McCall’s model primarily
focuses on precise measurement of high-level characteristics, whereas Boehm’s quality model
is based on a wider range of characteristics.
Example –
Characteristics of hardware performance, that are missing in McCall’s model.
The Boehm’s model has three levels for quality attributes. These levels are divided based on
their characteristics. These levels are primary uses (high level characteristics), intermediate
constructs(mid-level characteristics) and primitive constructs(primitive characteristics).
The highest level of Boehm’s model has following three primary uses stated as below –
1. As is utility –
Extent to which, we can use software as-is.
2. Maintainability –
Effort required to detect and fix an error during maintenance.
3. Portability –
Effort required to change software to fit in a new environment.
The next level of Boehm’s hierarchical model consists of seven quality factors associated with
three primary uses, stated as below –
1. Portability –
Effort required to change software to fit in a new environment.
2. Reliability –
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 to verify that software performs its intended functions.
6. Understandability –
Effort required for a user to recognize logical concept and its applicability.
7. Modifiability –
Effort required to modify a software during maintenance phase.
Boehm further classified characteristics into Primitive constructs as follows- device
independence, accuracy, completeness, consistency, device efficiency, accessibility,
communicativeness, self-descriptiveness, legibility, structuredness, conciseness, augment-
ability. For example- Testability is broken down into:- accessibility, communicativeness,
structuredness and self descriptiveness.
Advantages :
 It focuses and tries to satisfy the needs of the user.
 It focuses on software maintenance cost effectiveness.
Disadvantages :
 It doesn’t suggest, how to measure the quality characteristics.
 It is difficult to evaluate the quality of software using the top-down approach.
So, we can say that, Boehm’s model is an improvised version of McCall’s model and it is used
extensively, but because of the top-down approach to see quality of software, Boehm’s model
can’t be employed always.
Figure 2: boehm quality model

ISO 9000
ISO (International Standards Organization) is a group or consortium of 63 countries established
to plan and fosters standardization. ISO declared its 9000 series of standards in 1987. It serves as
a reference for the contract between independent parties. The ISO 9000 standard determines the
guidelines for maintaining a quality system. The ISO standard mainly addresses operational
methods and organizational methods such as responsibilities, reporting, etc. ISO 9000 defines a
set of guidelines for the production process and is not directly concerned about the product itself.

The International organization for Standardization is a world wide federation of national


standard bodies. The International standards organization (ISO) is a standard which serves
as a for contract between independent parties. It specifies guidelines for development
of quality system.
Quality system of an organization means the various activities related to its products or
services. Standard of ISO addresses to both aspects i.e. operational and organizational aspects
which includes responsibilities, reporting etc. An ISO 9000 standard contains set of guidelines
of production process without considering product itself.

Types of ISO 9000 Quality Standards


The ISO 9000 series of standards is based on the assumption that if a proper stage is followed for
production, then good quality products are bound to follow automatically. The types of industries
to which the various ISO standards apply are as follows.

1. ISO 9001: This standard applies to the organizations engaged in design, development,
production, and servicing of goods. This is the standard that applies to most software
development organizations.
2. ISO 9002: This standard applies to those organizations which do not design products but
are only involved in the production. Examples of these category industries contain steel
and car manufacturing industries that buy the product and plants designs from external
sources and are engaged in only manufacturing those products. Therefore, ISO 9002 does
not apply to software development organizations.
3. ISO 9003: This standard applies to organizations that are involved only in the installation
and testing of the products. For example, Gas companies.

Why ISO Certification required by Software Industry?


There are several reasons why software industry must get an ISO certification. Some of
reasons are as follows :
 This certification has become a standards for international bidding.
 It helps in designing high-quality repeatable software products.
 It emphasis need for proper documentation.
 It facilitates development of optimal processes and totally quality measurements.

How to get ISO 9000 Certification?

An organization determines to obtain ISO 9000 certification applies to ISO registrar office for
registration. The process consists of the following stages:
1. Application: Once an organization decided to go for ISO certification, it applies to the
registrar for registration.
2. Pre-Assessment: During this stage, the registrar makes a rough assessment of the
organization.
3. Document review and Adequacy of Audit: During this stage, the registrar reviews the
document submitted by the organization and suggest an improvement.
4. Compliance Audit: During this stage, the registrar checks whether the organization has
compiled the suggestion made by it during the review or not.
5. Registration: The Registrar awards the ISO certification after the successful completion
of all the phases.
6. Continued Inspection: The registrar continued to monitor the organization time by time.

Features of ISO 9001 Requirements :


 Document control –
All documents concerned with the development of a software product should be properly
managed and controlled.
 Planning –
Proper plans should be prepared and monitored.
 Review –
For effectiveness and correctness all important documents across all phases should be
independently checked and reviewed .
 Testing –
The product should be tested against specification.
 Organizational Aspects –
Various organizational aspects should be addressed e.g., management reporting of the
quality team.
Advantages of ISO 9000 Certification :
Some of the advantages of the ISO 9000 certification process are following :
 Business ISO-9000 certification forces a corporation to specialize in “how they are doing
business”. Each procedure and work instruction must be documented and thus becomes a
springboard for continuous improvement.
 Employees morale is increased as they’re asked to require control of their processes and
document their work processes
 Better products and services result from continuous improvement process.
 Increased employee participation, involvement, awareness and systematic employee
training are reduced problems.
Shortcomings of ISO 9000 Certification :
Some of the shortcoming of the ISO 9000 certification process are following :
 ISO 9000 does not give any guideline for defining an appropriate process and does not give
guarantee for high quality process.
 ISO 9000 certification process have no international accreditation agency exists.

You might also like