Unit 4th
Unit 4th
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.
1. Portability
2. Usability
3. Reusability
4. Correctness
5. Maintainability
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
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.
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.
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.
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.
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.
Level-3: Defined –
At this level, documentation of the standard guidelines and procedures takes place.
Peer Reviews- In this method, defects are removed by using a number of review methods like
walkthroughs, inspections, buddy checks, etc.
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.
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
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.
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.
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.