Vous êtes sur la page 1sur 17

Software Quality Engineering

CS- 449
LECTURE # 1
Course introduction
See the course outline
Quality
Luxury
Class
Taste
Excellence
Eminence
Value
Worth
Quality: Popular view
Robert Persig [Per74] commented on the thing we call quality:
Quality . . . you know what it is, yet you don't know what it is. But that's self-contradictory. But
some things are better than others, that is, they have more quality. But when you try to say
what the quality is, apart from the things that have it, it all goes poof! There's nothing to talk
about. But if you can't say what Quality is, how do you know what it is, or how do you know
that it even exists? If no one knows what it is, then for all practical purposes it doesn't exist at
all. But for all practical purposes it really does exist. What else are the grades based on? Why
else would people pay fortunes for some things and throw others in the trash pile? Obviously
some things are better than others . . . but what's the betterness? . . . So round and round you
go, spinning mental wheels and nowhere finding anyplace to get traction. What the hell is
Quality? What is it?
I know it when I see it
Quality: Professional view
Conformance to requirements (Crosby, 1979)
Fitness for use (Gryna, 1970)
Quality of design
Quality of conformance
Quality Definitions
The American Heritage dictionary defines quality as a characteristic or attribute of
something.
IEEE Glossary: Degree to which a system, component, or process meets
1. specified requirements, and
2. customer or user needs or expectations
ISO 8402: The totality of features and characteristics of a product or service that bear on its
ability to satisfy specified or implied needs.
Another definition, coined by Gerald Weinberg in Quality Software Management: Systems
Thinking, is "Quality is value to some person. This definition stresses that quality is inherently
subjective different people will experience the quality of the same software very differently.
Different views of quality
Transcendental View
User View
Manufacturing View
Product View
Value based View
Different views of quality
The transcendental view argues (like Persig) that quality is something that you immediately
recognize, but cannot explicitly define.
The user view sees quality in terms of an end-users specific goals. If a product meets those
goals, it exhibits quality.
The manufacturers view defines quality in terms of the original specification of the product. If
the product conforms to the spec, it exhibits quality.
The product view suggests that quality can be tied to inherent characteristics (e.g., functions
and features) of a product.
Finally, the value-based view measures quality based on how much a customer is willing to pay
for a product. In reality, quality encompasses all of these views and more.
How much a customer is willing to pay for a certain level of quality.
Quality is meaningless if a product does not make economic sense.
The value-based view makes a trade-off between cost and quality.
Quality Types
Quality of design
Quality of conformance
Quality of Design
How well software is designed
Measures how valid the design are in creating a worth while product
Quality of design is the quality which the producer or supplier is intending to offer to the
customer. When the producer is making the quality of design of the product, he should take
in to consideration the customer's requirements in order to satisfy them with fitness for use
of the product.
Quality of conformance
How well the software conforms to that design
Quality of conformance is the level of the quality of product actually produced and
delivered through the production or service process of the organization as per the
specifications or design.
When the quality of a product entirely conforms to the specification (design), the quality of
conformance is deemed excellent.
It focuses on implementation based on the design.
Software Quality
Software Quality can be defined as,
Conformance to explicitly stated functional and performance requirements, explicitly
documented development standards, and implicit characteristics that are expected of all
professionally developed software [Roger Pressman .Software Engineering: A Practitioner's
Approach McGraw Hill 6 edition 2004]
This definition emphasizes 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 way in which
software is engineered. If the criteria are not followed, lack of quality will almost surely
result.
If a software conforms to its explicit requirements but fails to meet implicit requirements,
software quality is suspect.
Software Quality
Software quality can be defined as:
An effective software process applied in a manner that creates a useful product that provides
measurable value for those who produce it and those who use it. [Bes04]
Effective software process
An effective software process establishes the infrastructure that supports any effort at building
a high quality software product.
The management aspects of process create the checks and balances that help avoid project
chaosa key contributor to poor quality.
Software engineering practices allow the developer to analyze the problem and design a solid
solutionboth critical to building high quality software.
Finally, umbrella activities such as change management and technical reviews have as much to
do with quality as any other part of software engineering practice.
Useful Product
A useful product delivers the content, functions, and features that the end-user desires
But as important, it delivers these assets in a reliable, error free way.
A useful product always satisfies those requirements that have been explicitly stated by
stakeholders.
In addition, it satisfies a set of implicit requirements (e.g., ease of use) that are expected of all
high quality software.
Adding value
By adding value for both the producer and user of a software product, high quality software
provides benefits for the software organization and the end-user community.
The software organization gains added value because high quality software requires less
maintenance effort, fewer bug fixes, and reduced customer support.
The user community gains added value because the application provides a useful capability in a
way that expedites some business process.
The end result is:
greater software product revenue,
better profitability when an application supports a business process, and/or
improved availability of information that is crucial for the business.
References
Software engineering: A practitioners approach by Roger S. Pressman 8th edition
Metrics and models in software quality engineering by Stephen H. Kan 2nd edition

Vous aimerez peut-être aussi