0% found this document useful (0 votes)
44 views29 pages

Unit 5 Software Quality

The document discusses various aspects of software quality. It defines software quality in terms of fitness of purpose and usability. While functional correctness is important, usability is also a key factor in determining quality. The document then covers various terminology related to software quality like portability, usability, reusability, correctness and maintainability. It also discusses software quality management systems and how they have evolved from quality control to total quality management with a focus on continuous process improvement. Finally, it categorizes different types of software quality requirements according to the ISO standard.

Uploaded by

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

Unit 5 Software Quality

The document discusses various aspects of software quality. It defines software quality in terms of fitness of purpose and usability. While functional correctness is important, usability is also a key factor in determining quality. The document then covers various terminology related to software quality like portability, usability, reusability, correctness and maintainability. It also discusses software quality management systems and how they have evolved from quality control to total quality management with a focus on continuous process improvement. Finally, it categorizes different types of software quality requirements according to the ISO standard.

Uploaded by

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

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.
Terminologies associated with Software
Quality
• Portability: A software device is said to be portable, if it can be freely made to work
in various operating system environments, in multiple machines, with other software
products, etc.
• Usability: A software product has better usability if various categories of users can
easily invoke the functions of the product.
• Reusability: A software product has excellent reusability if different modules of the
product can quickly be reused to develop new products.
• Correctness: A software product is correct if various requirements as specified in the
SRS document have been correctly implemented.
• Maintainability: A software product is maintainable if bugs can be easily corrected as
and when they show up, new tasks can be easily added to the product, and the
functionalities of the product can be easily modified, etc.
Software Quality Management System

A quality management system is the principal methods used by


organizations to provide that the products they develop have the desired
quality.
A quality system subsists of the following:
1. Managerial Structure and Individual Responsibilities: A quality system is
the responsibility of the organization as a whole. However, every
organization has a sever quality department to perform various quality
system activities. The quality system of an arrangement should have the
support of the top management. Without help for the quality system at a
high level in a company, only some members of staff will take the quality
system seriously.
• Quality System Activities: The quality system activities encompass
the following:
• Auditing of projects
• Review of the quality system
• Development of standards, methods, and guidelines, etc.
• Production of documents for the top management summarizing the
effectiveness of the quality system in the organization.
Evolution of Quality Management System

• Quality systems have increasingly evolved over the last five decades.
Before World War II, the usual function to produce quality products
was to inspect the finished products to remove defective devices.
Since that time, quality systems of organizations have undergone
through four steps of evolution, as shown in the fig. The first product
inspection task gave method to quality control (QC).
• Quality control target not only on detecting the defective devices and
removes them but also on determining the causes behind the defects.
Thus, quality control aims at correcting the reasons for bugs and not
just rejecting the products. The next breakthrough in quality methods
was the development of quality assurance methods.
• The primary premise of modern quality assurance is that if an
organization's processes are proper and are followed rigorously, then
the products are obligated to be of good quality. The new quality
functions include guidance for recognizing, defining, analyzing, and
improving the production process.
• Total quality management (TQM) advocates that the procedure
followed by an organization must be continuously improved through
process measurements. TQM goes stages further than quality
assurance and aims at frequently process improvement. TQM goes
beyond documenting steps to optimizing them through a redesign. A
term linked to TQM is Business Process Reengineering (BPR)
• BPR aims at reengineering the method business is carried out in an
organization. From the above conversation, it can be stated that over
the years, the quality paradigm has changed from product assurance
to process assurance, as shown in fig.
• Non-functional requirements are the criteria for evaluating how a
software system should perform rather than what it should do. An
example would be a requirement for a web API endpoint response
time to be under 200ms.
• When we say that a software product should be “secure”, “highly-
available”, “portable”, “scalable” and so on, we are talking about
its quality attributes.
• In other words, a software product must have certain quality
attributes to meet certain non-functional requirements.
Software Quality Requirements

ISO/IEC 25010 categorization of software quality requirements


• 1. Functional Suitability
• —i.e. what does the app do? In particular:
• Functional completeness—is the app in line with the specification? Does it
have the functions it was supposed to have?
• Functional correctness—does it provide the correct results?
• Functional appropriateness —does it fulfill its function?
• 2. Performance efficiency
• —does the app use an optimal amount of resources?
• Time behavior—are the response and processing times or throughput rates
reasonable?
• Resource utilization—are the amounts and types of resources used
reasonable?
• Capacity—are the maximum limits reasonable? 
• If the app is supposed to be performant or handle larger amounts of
data, we can propose more server power or suggest other solutions
based on available funds. It’s all down to resource optimization. 
• 3. Compatibility
• —can the app work cross-platform or share data with other products,
systems or components?
• Co-existence—can the app share a common environment and resources with
other products?
• Interoperability—can it exchange information and use the information that
has been exchanged?
• 4. Usability
• —can specific users use the app in specific conditions?
• As you know, every app is different and has different users. In the case of an app we developed
we had to adjust the UI for users of all ages and make it run on all kinds of phones, including
feature phones.
• Appropriateness recognizability—can users can recognize whether the app is appropriate for
their needs?
• Learnability—is it easy to learn how the app works?
• Operability—is the app easy to operate and control?
• User error protection—does the app protect users against making errors?
• User interface aesthetics—is the user interface pleasing to the eye? (watch out—that’s a very
subjective issue!)
• Accessibility—can the app be used by people of all characteristics and capabilities?
• The last factor is particularly important, as we should keep in mind all sorts of prospective
users that might end up using our app. For this purpose, I’d recommend checking out the 
Axe accessibility browser tool—a handy extension for verifying apps e.g. against color-
blindness. 
• 5. Reliability
• —an extremely important issue. Here, we look closer at:
• Maturity—how stable is the app during everyday use?
• Availability—can the users use the app when they need to? Remember, some apps really
need to work under specific conditions. E.g., when we were building an app for farriers,
it was really important for the app to work offline, because many pastures may be out of
the mobile broadband reach.
• Fault tolerance—can the app work even when there are some hardware or software
faults?
• Recoverability—in the event of an interruption or a failure, can the app recover the data
affected directly and re-establish the system? For a bank or any other business dealing
with large amounts of data, recoverability is of prime importance.
• 6. Security
• —does the app protect information and data? For EU countries this is additionally
connected with GDPR rules, which we need to be particularly aware of.
• Confidentiality—is data accessible only to authorized people?
• Integrity—does the app prevent unauthorized access to, or modification of, computer
programs or data? 
• Non-repudiation—does the app collect information whether specific actions or events have
taken place? 
• Accountability—can the actions of an entity can be traced back to that particular entity?
• Authenticity—can you prove the identity of a subject or resource?
• To help apps comply with the above requirements, make sure that the provided
databases are secure and compliant with OAuth 2.0 standards.
• 7. Maintainability
• —will it be possible for the app to be modified or improved in the future, or
will it adapt to changes in the environment?
• Modularity—if an app is built with components, does changing one component impact other
components? (Which makes any changes to the app easier and faster.)
• Reusability—can an asset be used in more than one system, or in building other assets? Again, this
might be extremely time-saving when changing or expanding the app.
• Analyzability—is it easy to analyze any activities in the app that need to be taken into account? (Again,
do not overanalyze. Look at what is important.)
• Modifiability—is the app easy to modify without harming present product quality?
• Testability—can the app be tested, also automatically?

• Maintainability should be taken into account at the planning stage of the app
development cycle. Therefore, the best practice is to engage a QA team
member at the very beginning of the process. You see, if you take a QA on
board to join a set of developers, you will be able to foresee any possible
future requirements and save yourself a lot of effort (and money) down the
line. Also, instead of fixing things on the go, you will be able to build a well-
planned, robust app.
• 8. Portability
• —can the software be used in various environments?
• Adaptability—can the app be adapted for different or evolving hardware, software or
other operational or usage environments?
• Installability—is key for mobile apps—can they be successfully installed and/or
uninstalled in a specified environment?
• Replaceability—can the app replace another software product for the same purpose in
the same environment?
• Try Visit the given Link
• https://simplicable.com/new/quality-requirements
ISO 9000 STANDARDS SERIES

• 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.
• They are not specific to any one industry and can be applied to organizations
of any size.
• ISO 9000 can help a company satisfy its customers, meet regulatory
requirements, and achieve continual improvement. It should be considered to
be a first step or the base level of a quality system.
ISO 9000 history and revisions: ISO 9000:2000,
2008, and 2015
• The ISO 9000:2015 and ISO 9001:2015 standards are based on seven quality
management principles that senior management can apply to promote
organizational improvement.
• Customer focus
• Understand the needs of existing and future customers
• Align organizational objectives with customer needs and expectations
• Meet customer requirements
• Measure customer satisfaction
• Manage customer relationships
• Aim to exceed customer expectations
• Leadership
• Establish a vision and direction for the organization
• Set challenging goals
• Model organizational values
• Establish trust
• Equip and empower employees
• Recognize employee contributions
• Engagement of people
• Ensure that people’s abilities are used and valued
• Make people accountable
• Enable participation in continual improvement
• Evaluate individual performance
• Enable learning and knowledge sharing
• Enable open discussion of problems and constraints
• Process approach
• Manage activities as processes
• Measure the capability of activities
• Identify linkages between activities
• Prioritize improvement opportunities
• Deploy resources effectively
• Improvement
• Improve organizational performance and capabilities
• Align improvement activities
• Empower people to make improvements
• Measure improvement consistently
• Celebrate improvements
• Evidence-based decision making
• Ensure the accessibility of accurate and reliable data
• Use appropriate methods to analyze data
• Make decisions based on analysis
• Balance data analysis with practical experience
• Relationship management
• Identify and select suppliers to manage costs, optimize resources, and create
value
• Establish relationships considering both the short and long term
• Share expertise, resources, information, and plans with partners
• Collaborate on improvement and development activities
• Recognize supplier successes

You might also like