You are on page 1of 22

Software Quality

Different Perspective

LECTURE # 6

12/30/2020 1
Software Quality
 Quality
 Quality Types
 Quality Control vs Quality Assurance
 Different views of Quality
 Quality Models
 Cost of Quality

12/30/2020 2
What is quality?

12/30/2020 3
Defining Quality Features

 Perfection
 Consistency
 Eliminating waste
 Speed of delivery
 Compliance with policies & procedures
 Providing good, usable products
 Doing it right the first time
 Delighting or pleasing customers
 Total customer service & satisfaction
 ….

12/30/2020 4
What is quality?

 Hard to define.
 Difficult to measure.
 Easy to recognize in its absence.
 Transparent when present.
 Some quality requirements are difficult to specify in an

unambiguous way;
◦ Software specifications are usually incomplete and often
inconsistent.

12/30/2020 5
What is quality?
 There is a tension between customer quality requirements
(efficiency, reliability, etc.) and developer quality
requirements (maintainability, reusability, etc.);

12/30/2020 6
What is quality?
 Quality, simplistically, means that a product should meet its
specification.
 This is problematical for software systems:

1. Software has no physical existence.


2. The lack of knowledge of client needs at the start.
3. The change of client needs over time.
4. The rapid rate of change on both hardware and software.
5. The high expectations of customers, particularly with respect
to adaptability.

12/30/2020 7
Quality Types
 Functional Quality — a measure of what the software does
vs. what it’s supposed to do

 Non-Functional Quality – a measure of how well it does it


vs. how well it’s supposed to do it

 Latent Quality — a measure of how well it will continue to


do it in the future

12/30/2020 8
Process quality Vs Product quality
 Process quality: Software processes implement best practices
of software engineering in an organizational context. Process
quality expresses the degree to which defined processes were
followed and completed.
 Product quality: Software products are the output of software
processes. Product quality is determined by the degree to
which the developed software meets the defined requirements.

12/30/2020 9
Software Quality?
 Internal quality (life-cycle properties)
◦ Perceived by developers, testers, etc., i.e., people who see
and work with the internals of the system
◦ Understandable, adaptable, low coupling, high cohesion, etc
◦ High internal quality pays off in the long run!

 External quality (runtime properties)


◦ Perceived by external people, e.g. users
◦ Formulated in requirements!
◦ Performance, reliability, user-friendliness, security, …
Quality Models
 Standard quality models
◦ ISO
◦ McCall
◦ IEEE
 Application or company specific quality models
◦ GQM Approach
◦ FURPS

12/30/2020 11
Cost of Quality
 Prevention cost:
 Appraisal/Assessment

cost:
 Failure cost:

◦ Internal failure cost


◦ External failure cost

12/30/2020 12
Classification scheme for QA
 Defect Prevention
◦ Education and training
◦ Process conformance and standards enforcement
◦ Tools/technologies and techniques

 Defect Reduction (Defect Detection and Removal)


◦ Static Testing
◦ Dynamic Testing

 Defect Containment
◦ Software Fault Tolerance
◦ Fault Containment

12/30/2020 13
Techniques for Achieving SQ
  Explicit software quality objectives.
  Explicit quality assurance activities.
  Testing strategy.
  Software Engineering guidelines.
  Informal technical reviews.
  Formal technical reviews.
  External audits.
  Development process.

12/30/2020 14
Different Views of Quality

1. User View
2. Transcendental View
3. Manufacturing View
4. Product View
5. Value based View

12/30/2020 15
Different Views of Quality
 The user view –
◦ quality is fitness for purpose
◦ Quality concerns the extent to which a product meets user
needs and expectations.
◦ Is a product fit for use?
◦ This view is highly personalized.
 A product is of good quality if it satisfies a large number of users.
 It is useful to identify the product attributes which the users
consider to be important.
◦ This view may encompass many subject elements, such as
usability, reliability, and efficiency.

12/30/2020 16
Different Views of Quality
 The manufacturing view –
◦ quality is conformance to specification
◦ This view has its genesis in the manufacturing industry – auto and
electronics.
◦ Key idea: Does a product satisfy the requirements?
 Any deviation from the requirements is seen as reducing the quality of the
product.
◦ The concept of process plays a key role.
◦ Products are manufactured “right the first time” so that the cost is
reduced
 Development cost
 Maintenance cost
◦ Product quality can be incrementally improved by improving the
process.
 The CMM and ISO 9001 models are based on the manufacturing view.

12/30/2020 17
Different Views of Quality
 The value-based view –
◦ quality is related to the amount the customer is willing to pay
◦ This represents the merger of two concepts: excellence and
worth.
◦ Quality is a measure of excellence, and value is a measure of
worth.
◦ Central idea
 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.

12/30/2020 18
Different Views of Quality
 The product view –
◦ related to product characteristics (maintainability, reliability..)
◦ Hypothesis: If a product is manufactured with good internal
properties, then it will have good external properties.
◦ One can explore the causal relationship between internal
properties and external qualities.
◦ Example: Modularity enables testability.

12/30/2020 19
Different Views of Quality
 The transcendental(inspirational) view –
◦ you recognize quality, but cannot define it
◦ Quality is something that can be recognized through
experience, but not defined in some tractable form.
◦ A good quality object stands out, and it is easily recognized

12/30/2020 20
So What is Software Quality?
 A quality software should deliver the required functionality
and performance to the user and should be
◦ Acceptable
 Software must accepted by the users for which it was designed; it
must be understandable, usable etc.
◦ Efficient and
 Software should not make wasteful use of system resources;
◦ Dependable
 Software must be trustworthy;
◦ Maintainable
 Software must be able to evolve to meet changing needs;

12/30/2020 21
Assignment # 3
 Install any versioning system, like Subversion (SVN)
etc. and demonstrate its working.
 Two version

◦ SVN Tortise (Desktop)


◦ Visual SVN (Server)

 Next week 1st class.


 Group Assignment

◦ 2-3 Member

12/30/2020 22

You might also like