software quality management - free university of bozen …pro.unibz.it/staff/mscotto/sqm/sqm2 -...
Post on 28-May-2018
215 Views
Preview:
TRANSCRIPT
Software Quality Management
Software Quality Management
2004-2005Marco Scotto (Marco.Scotto@unibz.it)
2Software Quality Management
Contents
DefinitionsQuality of the software productSpecial features of softwareEarly software quality models• Boehm model• McCall model
Standard ISO 9126
3Software Quality Management
Definitions
Software: intellectual product consisting of information stored on a storage device (ISO/DIS 9000: 2000)• Software may occur as concepts, transactions, procedures. One
example of software is a computer program • Software is "intellectual creation comprising the programs,
procedures, rules and any associated documentation pertaining to the operation of a data processing system"
• A software product is the "complete set of computer programs, procedures and associated documentation and data designated for delivery to a user" [ISO 9000-3]
• Software is independent of the medium on which it is recorded
4Software Quality Management
Quality of the software product
The product should, on the highest level…• Ensure the satisfaction of the user needs• Ensure its proper use
Earlier: 1 developer, 1 user• The program should run and produce results similar to those
expected
Later: more developers, more users • Need to economical use of the storage devices • Understandability, portability • User-friendliness, learnability
Nowadays:• Efficiency, reliability, no errors, able to restart without using data
5Software Quality Management
Special features of software (1/6)
Why is software ”different”?
• Does not really have “physical” existence • It is developed within a special life cycle• It changes very rapidly• It always has to be adaptable to the newest hardware and
software environment • The customers faces difficulties when specifying the
requirements • The customer has extremely high expectations regarding
software• Defining the quality attributes of software is extremely difficult • Measuring the value of the quality attributes is extremely
difficult • Copying, packaging is not problematic
6Software Quality Management
Early software quality models (2/6)
In the 1970’s: mostly theoretical models • Knuth: proving correctness of small programs
using mathematical approach
1975-1980: first software quality models • Define the elements of software quality and their
interconnections (tables of correlation, priorities, etc.)• “Fixed” quality models• “Self defined” quality models
7Software Quality Management
Early software quality models (3/6)
The Boehm model• 1977, Barry Boehm
(http://sunset.usc.edu/Research_Group/barry.html)
• a TRW Systems and Energy Inc. (“Thompson Ramo Wooldridge”) software research lab
McCall model• 1978, James McCall• Project manager at General Electric
8Software Quality Management
Early software quality models (4/6)
Both models concentrate on the final product The models define • Basic user needs • Quality factors of the product (high level
quality attributes) • Quality factors are decomposed into quality
criteria• The quality attributes have associated metrics
9Software Quality Management
Early software quality models (5/6)
We have to suppose that any software user is interested in the following questions when purchasing a new software:• Is the product usable in its present state?• How easily can the product be changed?• How will it be possible to transfer the product
into an other hardware / software environment?
10Software Quality Management
Early software quality models (6/6)
According to the hierarchy reflected by the questions, the two models make use of the following three basic principles in classifying a product:
1. Usability of the product in its present state (in the Boehm model: "as is utility", in the McCall model: "product operation")
2. Changeability of the product’s functions (in the Boehm model: "maintainability", in the McCall model: "product revision")
3. Portability of the product into an other hardware-software environment (in the Boehm model: "portability", in the McCall model: ”product transition")
11Software Quality Management
Early software quality models
BoehmBasic user requirements (3): “as is” utility, general usability , maintainabilityQuality factors (7):portability, reliability, efficiency, usability, testability, understandability, flexibilityQuality characteristics (12)
McCallBasic user requirements (3): product operation, product revision, product transition Quality characteristics (11): usability, integrity, efficiency, correctness, reliability, maintainability, testability, flexibility,reusability, portability, interoperability Quality characteristics (22)
12Software Quality Management
Operability
Training
Communicativeness
I/O volume, I/O rayte
Access control, access audir
Storage efficiency
Execution efficiency
Traceability
Completeness
Accuracy
Error tolerance
Consistency
Simplicity
Conciseness
Instrumentation
Expandability
Generality
Self-descriptiveness
Modularity
Machine independence
Sw system independence
Comms commonality, Data commonality
Criteria
Usability
Integrity
Efficiency
Correctness
Reliability
Maintainability
Testability
Flexibility
Reusability
Portability
Interoperability
Factor
Productoperation
Productrevision
Producttransition
Use
Device independence
Completeness
Accuracy
Consistency
Device efficiency
Acessibility
Communicativeness
Structuredness
Self descriptiveness
Conciseness
Legibility
AugmentabilityM
etrics
Primitive constructs
Understandability
Portability
Reliability
Efficiency
Humanengineering
Testability
Modifiability
As isutility
Maintainability
Generalutility
Intermediateconstructs
Primary uses
Boehm model
McCall model
13Software Quality Management
The product-oriented approach
reliability
security
interoperability
time behaviour
14Software Quality Management
Tables of correlation
Cor
rect
ness
Effic
ienc
y
Inte
grity
Ease
of u
se
Mai
ntai
nabi
lity
Test
abili
ty
Cha
ngea
bilit
y
Porta
bilit
y
Correctness - x x x x Efficiency - ● ● ● ● ● ● Integrity ● - x ● Ease of use x ● x - x x x Maintainability x ● x - x x x Testability x ● x x - x x Changeability x ● ● x x x - Portability ● x x - x = positive correlation
● = negativee correlation
15Software Quality Management
Correlation of the quality factors (1/2)
Many correlations weaken the attributes, therefore the weight of different quality factors should be differentPrioritizing of the quality factors
16Software Quality Management
Correlation of the quality factors (2/2)
Boehm model• Maintainability is dealt with in very much
detail
McCall model• Precise measurement of “as is” utility
17Software Quality Management
Boehm and McCall models
Fixed quality models There are “define it by yourself” quality models• The attributes are defined together with the
user
18Software Quality Management
ISO 9126 standard (1/2)
Software specialists have looked for a standard that would unambiguously define the quality attributes of the software1991: ISO 9126: “Software Product Evaluation: Quality Characteristics and Guidelines for their Use”The standard was based on:• McCall and Boehm models• Experience in using the models • Existing business needs
19Software Quality Management
ISO 9126 standard (2/2)
Requirements for the quality characteristics in the new of standard:• To cover together all aspects of software quality
resulting from ISO quality definition• To describe the product quality with a minimum of
overlap• To be as close as possible to the established
technology• To form a set of not more than six to eight
characteristics for reason of clarity and handling• To identify areas of attributes of software products
for further refinement
20Software Quality Management
Software quality characteristics in ISO 9126
Quality characteristics
Definition
Functionality A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy the stated or implied needs.
Reliability A set of attributes that bear on the capability of the software to maintain its level of performance under stated conditions for a stated period of time.
Usability A set of attributes that bear on the effort needed to use, and on the individual assessment of such use, by a stated or implied set of users.
Efficiency A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions.
Maintainability A set of attributes that bear on the effort needed to make specified modifications.
Portability A set of attributes that bear on the ability of software to be transferred from one environment to another.
21Software Quality Management
Sub-characteristics (1/5)Characteristic Sub-characteristics Definition of sub-characteristic
Functionality Suitability Attribute of software that bears on the presence and appropriateness of a set of functions for specified tasks.
Accuracy Attributes of software that bear on the provision of right or agreed results or effects.
Interoperability Attributes of software that bear on its ability to interact with specified systems.
Compliance Attributes of software that make the software adhere to application related standards or conventions or regulations in laws and similar prescriptions.
Security Attributes of software that bear on its ability to prevent unauthorized access, whether accidental or deliberate, to programs and data.
22Software Quality Management
Sub-characteristics (2/5)Reliability Maturity Attributes of software that bear on the frequency of
failure by faults in the software.
Fault tolerance Attributes of software that bear on its ability to maintain specified level of performance in cases of software faults or of infringement of its special interface.
Recoverability Attributes of software that bear on the capability to re/establish its level of performance and recover the data directly affected in case of a failure and on the time and effort needed for it.
23Software Quality Management
Sub-characteristics (3/5)Usability Understandability Attributes of software that bear on the users’ effort
for recognizing the logical concept and its applicability.
Learnability Attributes of software that bear on the users’ effort for learning its application (for example, operation control, input, output).
Operability Attributes of software that bear on the users’ effort for operation and operation control.
24Software Quality Management
Sub-characteristics (4/5)Efficiency Time behavior Attributes of software that bear on response and
processing times and throughput rates in performing its function.
Resource behavior
Attributes of software that bear on the amount of resources used and the duration of such use in performing its function.
Maintainability Analyzability Attributes of software that bear on the effort needed for diagnosis of deficiencies or causes of failures, or for identification of parts to be modified.
Changeability Attributes of software that bear on the effort needed for modification, fault removal or for environmental change.
Stability Attributes of software that bear on the risk of unexpected effect of modifications.
Testability Attributes of software that bear on the effort needed for validating the modified software.
25Software Quality Management
Sub-characteristics (5/5)Portability Adaptability Attributes of software that bear on the opportunity for
its adaptation to different specified environments without applying other actions or means than those provided for this purpose for the software considered.
Installability Attributes of software that bear on the effort needed to install the software in a specified environment.
Conformance Attributes of software that make the software adhere to standards or conventions relating to portability.
Replace ability Attributes of software that bear on the opportunity and effort of using it in the place of specified other software in the environment of that software.
26Software Quality Management
Developing ISO 9126 further
ISO /IEC 9126-1: Software Quality Characteristics and metrics. Part 1: Quality characteristics and subcharacteristics (1995) ISO /IEC 9126-2: Software Quality Characteristics and metrics. Part 2: External metrics (1999)ISO 9126-3: Software Quality Characteristics and metrics. Part 3: Internal metrics (1999)ISO 9126-1.2: Software Product Quality. Part 1: Quality model (1998)
27Software Quality Management
Developing ISO 9126 further
Standard ISO/IEC 9126-1.2 introduces the concept of Quality in use• As being "the user's view of the quality of an
environment containing software, and is measured from the results of using the software in the environment, rather than properties of the software itself"
• The quality in the user's environment may be different from that in the developer's environment, because some functions may not be visible to a user or may not be used by a user
28Software Quality Management
Subcharacteristics of quality in use
Characteristic Definition
Effectiveness The capability of the software product to enable users to achieve specified goals with accuracy and completeness in a specified context of use.
Productivity The capability of the software product to enable users to expend appropriate amounts of resources in relation to the effectiveness achieved in a specified context of use.
Safety The capability of the software product to achieve acceptable levels of risk of harm to people, software, equipment or the environment in a specified context of use..
Satisfaction The capability of the software product to satisfy users in a specified context of use.
29Software Quality Management
ISO 9126accuracyaccuracysuitabilitysuitability
interoperabilityinteroperabilitycompliancecompliance
securitysecurity
understandabilityunderstandabilitylearnabilitylearnabilityoperabilityoperability
time behaviourtime behaviourresource utilisationresource utilisation
analysabilityanalysabilitychangeabilitychangeability
stabilitystabilitytestabilitytestability
adaptabilityadaptabilityinstallabilityinstallabilityco-existenceco-existenceconformanceconformancereplaceabilityreplaceability
quality in usequality in use
functionalityfunctionality
usabilityusability
efficiencyefficiency
maintainabilitymaintainability
portabilityportability
reliabilityreliabilitymaturitymaturity
fault tolerancefault tolerance
recoverabilityrecoverability
effectivenesseffectivenessproductivityproductivity
safetysafetysatisfactionsatisfaction
availabilityavailability
30Software Quality Management
The product-oriented approachQuality characteristics• Examples
usabilitymaintainabilityportabilitytime behaviouretc.
Measures/design actions• Examples
implementing help messagesmodular designparameterization of programsetc.
qualitycharacteristics
softwareattributes
measures/designactions
evaluation?
31Software Quality Management
A matrix for linking measures/design actions to quality characteristics
effectivenessreliability
efficiencyergonomics
changeabilityrobustness
portability
+
++
++
++
+
--
-
-
-
--modeling
controllingoptimalisationstylingtracingstrengthening
32Software Quality Management
Choosing the appropriate quality attributes
Some general principles / findings / correlationsPrinciples / findings / correlations according to the particular case
33Software Quality Management
A double loop for specification and realization of quality characteristics
qualitycharacteristics
softwareattributes
measures/design actions
business systemcharacteristics
quality needs
user/customer is central developer is central
34Software Quality Management
The Quality House for the determination of quality characteristics
relations betweenneeds and quality
characteristicsprioritised qualitycharacteristics
prioritised needs
qualitycharacteristics
user/customerneeds
relations betweencharacteristics
35Software Quality Management
Selection of relevant quality characteristics
qualitycharacteristics
qualitycharacteristics
translationprocess
translationprocess
Softwareproduct
Softwareproduct
Businessprocess
Businessprocess
User/customerUser/customer
Qualityprofile
Qualityprofile
36Software Quality Management
Quality profiles - examplesApplication/environment characteristics Software quality characteristics
Human lives affected Integrity Reliability Correctness Verifiability
Longlife cycle Maintainability Expandability
Experimental system or high rate of change FlexibilityExperimental technology in hardware design PortabilityMany changes over life cycle Flexibility
Reusability Expandability
Real time application Efficiency Reliability Correctness
On-board computer application Efficiency Reliabilty Correctness
Processing of classified information IntegrityInterrelated systems Interoperability
37Software Quality Management
Business analysis• Business process
• importance• risks• control
• User• knowledge level• number• age
• Software product• type of product• type of usage• infrastructure
38Software Quality Management
Investigating business process characteristics
• Importance for the organization• Risk for the environment/organization• Control
• Complexity• Dynamics• Stability
39Software Quality Management
Example
• Continuous critical management decisions• Strong dependency of the organization
from software productsLeads to high requirements for reliability (availability)
40Software Quality Management
Reliability (1/2)• The capability of the software to maintain the level of
performance of the system when used under specified conditions
Maturity:• The capability of the software to avoid failure as a result of
faults in the software• Example
Mean Time Between Failures = Operation time divided by number of failures
Fault tolerance:• The capability of the software to maintain a specified level of
performance in cases of software faults or of infingement of itsspecified interface
• ExampleInput Error Detection Ratio = Number of detected input errors versus total number of inputs
41Software Quality Management
Reliability (2/2)• Recoverability:
• The capability of the software to re-establish its level of performance and recover the data directly affected in the case of a failure
• Example:• Mean Down Time = The total down time of a system divided
by the number of observed breakdowns
• Availability• the capability of the software to be in a state to
perform a required function at a given point in time, under stated conditions of use
• Example:• Relative Availability Percentage = The ratio of time the
software product is available to the time it is needed
42Software Quality Management
Example
• Many business process parameters• Many interdependencies• High level of difficulty regarding business
control and monitoringLeads to specific requirements for understandability (of the software application)
43Software Quality Management
Investigating user characteristics
• business process• importance• risks• control
• user• knowledge level• number• age
• software product• type of product• type of usage• infrastructure
44Software Quality Management
Investigating user characteristics
• Type (end users, intermediate, remote)• Knowledge level (educational background)• Number• Age• Experience (business process, automation)
45Software Quality Management
Examples
• Many inexperienced users• Relatively low educational background
Leads to high requirements for learnability
• Many managers as users• Relatively high experience
Leads to high requirements for response time (time behavior)
46Software Quality Management
Usability (1/2)
• The capability of the software to be understood, learned, used and liked by the user, when used under specified conditionsUnderstandability:• The capability of the software product to enable the
user to understand whether the software is suitable, and how it can be used for particular tasks and conditions of use
• Example:Understandable Input and Output Data Items Ratio = Number of Functions for which an average new user understands input/output data items related to total amount of functions
47Software Quality Management
Usability (2/2)• Learnability:
• The capability of the software product to enable the user to learn its application
• Example:Average Learning Time = The average time necessary for a set of inexperienced users to achieve a specific level of competence with the system
• Operability:• The capability of the software product to enable the user to
operate and control it• Example:
Human Error Free Time = Total operation time by a group of inexperienced users divided by the number of human errors
48Software Quality Management
Efficiency (1/2)
The capability of the software to provide the required performance relative to the amount of resources used, under stated conditionsTime behaviour:
the capability of the software to provide appropriate response and processing time and throughput rates when performing its function, under stated conditionsExample
Response Time = Average time between (end of a) command and the moment of gaining a result
49Software Quality Management
Efficiency (2/2)• Resource utilization
• The capability of the software to use appropriate resources in an appropriate time when the software performs its function under stated conditions
• Example
• ROM Utilization Distribution per Function = Number of bytes in ROM necessary for each function / feature (ROM space used for more than one function should be divided according to function specific ROM-usage)
50Software Quality Management
Investigating software product characteristics (1/2)
• business process• importance• risks• control
• user• knowledge level• number• Age
• software product• type of product• type of usage• infrastructure
51Software Quality Management
Investigating the software product characteristics (2/2)
• Type of system:• functionality• language used• business application/
embedded software
• Type of usage:• on-line/batch• intensity/frequency• time criticality
• Type of infrastructure:type of hardware number of locations network communication
52Software Quality Management
Example
• Many batch-jobs• Transaction processing system
(operational processes)Leads to high requirements for recoverability
53Software Quality Management
Example of a quality profile result
For each selected characteristic:• selection of subcharacteristics• importance rating (evaluation level)• context description (business situation)• “Standard” ways to specify and assess on each level
(metrics)
FUNCTIONALITY
RELIABILITY
USABILITY
EFFICIENCY
MAINTAINABILITY
PORTABILITY
ISO 9126 quality characteristicsEvaluation level
D ABC-
X
X
54Software Quality Management
Assignment of levels of evaluation
levels safety view economy view security view environmentalview
A many peoplekilled
financial disaster(company willnot survive)
protection ofstrategic dataand services
unrecoverableenvironmentaldamage
B threat to humanlives
large economicloss (companyengaged)
protection ofcritical data andservices
local pollution
C damage toproperty, fewpeople injured
protectionagainst errorrisk
noenvironmentalrisk
D small damageto property, norisk to people
no specific riskidentified
55Software Quality Management
Identification and specification of quality characteristics
Five steps:1. Investigating in a structured way with users/customers
the business characteristics
2. Determination of the characteristics of the business processes
3. Determination of the characteristics of the software product
4. Determination of the characteristics of users
5. Specification of quality characteristics from the users point of view
top related