Sei sulla pagina 1di 27

Module 1

Introduction to Software
Quality

SQAM Course, Proficience, IISc 1


Different Views on Quality
 Hard to define, Impossible to measure and Easy to
recognize
 Transparent when present, but easily recognized in
absence
 Quality is not absolute
 Quality is multidimensional
 Quality is subject to constraints
 Quality is about acceptable compromises
 Quality Criteria are not independent, but interact
with each other
SQAM Course, Proficience, IISc 2
Garvin’s Five Definitions of
Quality
 Transcendent Definition (Relative Quality): Quality is universally
recognizable; it is related to a comparison of features and
characteristics of products.
 Product-Based: Quality is a precise and measurable variable.
Differences in quality reflect differences in quantity of some product
attribute.
 User-Based Definition: Quality is “fitness for intended use.”
 Manufacturing-Based Definition: Quality is “conformance to
specifications.”
 Value-Based Definition: Quality is defined in terms of costs and
prices. A quality product is one that provides performance at an
acceptable price or conformance at an acceptable costs.

SQAM Course, Proficience, IISc 3


Quality Revolution or Quality Confusion?

SQAM Course, Proficience, IISc 4


Poor Quality Practice Results in

SQAM Course, Proficience, IISc 5


Some Definitions..
ISO: The totality of features and
characteristics of a product or service that
bear on its ability to satisfy specified or
implied needs
Fruhauf (1994): Quality is when the customer
comes back, not the product

SQAM Course, Proficience, IISc 6


Software Quality
 The degree to which a software product posses a
specified set of attributes necessary to fulfill a
stated purpose(Reifer,1985)
 Conformance to customer expectations (Stephen
Kan,1995)
 Software product must provide functions of a type
and at a time when the user needs them. If it does
not, nothing else matters. The product must work
consistently and reasonably, without which the
user will not use it regardless of its other best
attributes.( Watts Humprey, 1995)
SQAM Course, Proficience, IISc 7
GE Model (McCall,1977)

Product Revision: Product Transition:


2. Maintainability 2. Portability
3. Flexibility 3. Reusability
4. Testability 4. Interoperability

Product Operations:
2. Correctness
3. Reliability
4. Efficiency
5. Integrity
6. Usability

SQAM Course, Proficience, IISc 8


Software Quality Factors
Product Operations
 Correctness Extent to which a program satisfies its
specification and fulfills the user’s
functional requirements
Does it do what I want?
 Reliability Extent to which a program can be
expected to perform its intended
functions with required precision
Does it behave properly all the time?
SQAM Course, Proficience, IISc 9
Software Quality Factors
Product Operations (continued)
 Efficiency The amount of computing resources
required by a program to perform its functions
Will it run fast?
 Integrity Extent to which access to software or data
by unauthorized persons can be controlled
Is it secure?
 Usability Effort required to learn, operate, prepare
input, and interpret output of a program
Can I run it easily?

SQAM Course, Proficience, IISc 10


Software Quality Factors
Product Revision
 Maintainability Effort required to locate and fix
an error in an operational program
Can I fix it?
 Testability Effort required to test a program
to ensure it performs its intended
functions
Can I test it?
 Flexibility Effort required to modify an
operational program
Can I change it?
SQAM Course, Proficience, IISc 11
Software Quality Factors
Product Transition
 Portability Effort required to transfer an program from one
hardware configuration or software system
environment to another
Can it run on another machine?
 Reusability Effort to which a program can be used in other
applications
Can I reuse part of the software?
 Interoperability Effort required to couple one system with another

Can it interface with another system?

SQAM Course, Proficience, IISc 12


Interaction between quality parameters
Criteria R E I S U F EI P U A T T A U C O
Reliability o √ √ o o o o o o o o o o o o
Efficiency o X X X X X X X o X √ X X o X
Integrity √ X √ √ o X X √ √ X o o X o √
Security √ X √ √ o X X √ √ X o o X o X
Understandability o X o o √ o o o o X X o o o o
Flexibility o X o o √ o o o o X X o X o X
Ease of Interfacing o o X √ √ √ √ √ X X o o o o o
Portability o X o o o √ √ o o X o o o o X
User Consultation o o √ o √ o o o o X o o o o o
Accuracy √ o √ √ √ o o o √ X o o o o o
Timeliness X o X X X X X X X X X X X √ X
Time to use √ √ o o X X X o o o √ √ X o X
Appeal √ √ o √ √ √ √ √ √ √ √ √ √ √ √
User flexibility o X o o o √ o √ √ √ o X o o o
Cost/Benefit √ √ √ √ √ √ o o √ √ √ √ o √ √
User friendliness √ o o o o o o o √ o X √ √ √ o

SQAM Course, Proficience, IISc 13


Process and product quality
 The quality of a developed product is influenced
by the quality of the production process.
 This is important in software development as some
product quality attributes are hard to assess.
 However, there is a very complex and poorly
understood relationship between software
processes and product quality.

SQAM Course, Proficience, IISc 14


Software Quality Assurance
 Activity of providing to all concerned the
evidence needed to establish confidence that the
quality function is being performed adequately
(Juran,1995)
 Quality Assurance is a planned and systematic
pattern of all actions necessary to provide
adequate confidence that an item or product
conforms to established technical requirements
(IEEE,1990)
SQAM Course, Proficience, IISc 15
Software Quality Assurance Activities
 Monitoring processes and products throughout the
software development lifecycle to ensure the quality of the
delivered product(s)

 Monitoring the processes


– Provides management with objective feedback
regarding process compliance to approved plans,
procedures, standards, and analyses
 Monitoring the products
– Focus on the quality of product within each phase of
the SDLC
 e.g., requirements, test plan, architecture, etc.

– Objective: identify and remove defects throughout the


lifecycle, as early as possible

SQAM Course, Proficience, IISc 16


Process Assessment
 Use of standards and process models has a positive impact on
the quality of the software product
– Disciplined, controlled development process
 Examples include:
– ISO 9001
– CMMI
 CMU SEI, 5 levels

– SPICE
 Developing a standard for software process assessment

 ISO joint committee, Europe, Australia

– IEEE 12207

SQAM Course, Proficience, IISc 17


Product Assessment
– Reviews, inspections, walkthroughs, reports, standards
– Requirements, analysis, architecture, detailed design
model, test cases
– Issue or problem reports
– Metric reports
– Traceability reports
– Documentation, coding standards

SQAM Course, Proficience, IISc 18


Microsoft View
 Have you identified important quality characteristics to
your project?
 Have you made others aware of project’s quality
objectives?
 Have you differentiated between External an Internal
quality characteristics?
 Do you use different error detection techniques?
 Do you have a plan to assure quality at each stage of
software development?
 Is quality measured to say whether it is improving and
degrading?
(Jim McCarthy, Microsoft Press, 1995)

SQAM Course, Proficience, IISc 19


Software Quality Control
 The assessment of procedural and product
compliance. Independently finding these
deficiencies and correcting them assures
compliance of the product with the stated
requirements (Fisher and Mathew, 1979)
 Set of verification activities which at any point in
the software development sequence involves
assessing whether the current products being
produced are technically consistent and compliant
with the specification of the previous phase.
(Donald Reifer,1985)
SQAM Course, Proficience, IISc 20
Software Quality Control
 Involves series of inspections, reviews and
tests used throughout the software process.
 Measurement and feedback loop is
important
 Activities can be completely automated,
entirely manual or combination of both.

SQAM Course, Proficience, IISc 21


Verification and Validation
 Verification is the process of evaluating a system
to determine whether the products of a given
development phase satisfy the conditions imposed
at the start of that phase.
 Validation is the process of evaluating a system or
component during or at the end of development
process to determine whether it satisfies specified
requirements

SQAM Course, Proficience, IISc 22


Software quality management
 Concerned with ensuring that the required level of
quality is achieved in a software product.
 Involves defining appropriate quality standards
and procedures and ensuring that these are
followed.
 Should aim to develop a ‘quality culture’ where
quality is seen as everyone’s responsibility.

SQAM Course, Proficience, IISc 23


Practical process quality
 Define process standards such as how reviews
should be conducted, configuration
management, etc.
 Monitor the development process to ensure
that standards are being followed.
 Report on the process to project management and
software procurer.
 Don’t use inappropriate practices simply because
standards have been established.

SQAM Course, Proficience, IISc 24


Typical SQA Role in the organization

 Responsibility for SQA planning, oversight,


recording, analysis and reporting.
 Prepare an SQA plan for a project
 Participate in the development of project’s process
description
 Reviews Software Engineering activities to verify
compliance with defined software process
 Audits the designated software work products
 Ensures deviations are recorded and closed
 Reports to Senior Management

SQAM Course, Proficience, IISc 25


SQAM Course, Proficience, IISc 26
Case Analysis

 Compare ISO 9126 and ISO 12207


 How they are related?
 To be presented in the next class

Thank you

SQAM Course, Proficience, IISc 27

Potrebbero piacerti anche