Corso di Laurea Magistrale
in
Ingegneria Informatica
Module B-Software Systems
Engineering
a.a. 2012-2013
Gigliola Vaglini
11
Quality management
Lecture 6
1
Software Quality Fundamentals
• Software engineers are expected to share a
•
commitment to software quality as part of their
culture.
Ethics can play a significant role in software quality,
the culture, and the attitudes of software engineers.
The IEEE Computer Society and the ACM [IEEE99]
have developed a code of ethics and professional
practice based on eight principles to help software
engineers reinforce attitudes related to quality and
to the independence of their work.
3
Cont.
• For any engineered product, there are many
•
desired qualities relevant to a particular
perspective of the product, to be discussed
and determined at the time that the product
requirements are set down.
Quality characteristics may be required or
not, or may be required to a greater or lesser
degree, and trade-offs may be made among
them.
4
2
Software quality management
 Concerned with ensuring that the required level of quality
is achieved in a software product.
 Three principal concerns:
 At the organizational level, quality management is concerned
with establishing a framework of organizational processes and
standards that will lead to high-quality software.
 At the project level, quality management involves the application
of specific quality processes and checking that these planned
processes have been followed.
 At the project level, quality management is also concerned with
establishing a quality plan for a project. The quality plan should
set out the quality goals for the project and define what
processes and standards are to be used.
5
5
Quality management activities
 Quality management provides an independent check on
the software development process.
 The quality management process checks the project
deliverables to ensure that they are consistent with
organizational standards and goals
 The quality team should be independent from the
development team so that they can take an objective
view of the software. This allows them to report on
software quality without being influenced by software
development issues.
6
6
3
Quality management and
software development
7
7
Quality planning
 A quality plan sets out the desired product qualities and
how these are assessed and defines the most significant
quality attributes.
 The quality plan should define the quality assessment
process.
 It should set out which organisational standards should
be applied and, where necessary, define new standards
to be used.
8ì
4
Quality plans
 Quality plan structure





Product introduction;
Product plans;
Process descriptions;
Quality goals;
Risks and risk management.
 Quality plans should be short, succinct documents
 If they are too long, no-one will read them.
ì
9ì
Scope of quality management
 Quality management is particularly important for large,
complex systems. The quality documentation is a record
of progress and supports continuity of development as
the development team changes.
 For smaller systems, quality management needs less
documentation and should focus on establishing a
quality culture.
ì
10ì
5
Software quality
 Quality, simplistically, means that a product should meet
its specification.
 This is problematical for software systems
 There is a tension between customer quality requirements
(efficiency, reliability, etc.) and developer quality requirements
(maintainability, reusability, etc.);
 Some quality requirements are difficult to specify in an
unambiguous way;
 Software specifications are usually incomplete and often
inconsistent.
 The focus may be ‘fitness for purpose’ rather than
specification conformance.
ì
11ì
Software fitness for purpose
 Have programming and documentation standards been
followed in the development process?
 Has the software been properly tested?
 Is the software sufficiently dependable to be put into
use?
 Is the performance of the software acceptable for normal
use?
 Is the software usable?
 Is the software well-structured and understandable?
ì
12
6
Software quality attributes
Safety
Understandability
Portability
Security
Testability
Usability
Reliability
Adaptability
Reusability
Resilience
Modularity
Efficiency
Robustness
Complexity
Learnability
13
Quality conflicts
 It is not possible for any system to be optimized for all of
these attributes – for example, improving robustness
may lead to loss of performance.
 The quality plan should therefore define the most
important quality attributes for the software that is being
developed.
 The plan should also include a definition of the quality
assessment process, an agreed way of assessing
whether some quality, such as maintainability or
robustness, is present in the product.
14
7
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.
 The application of individual skills and experience is particularly
important in software development;
 External factors such as the novelty of an application or the need
for an accelerated development schedule may impair product
quality.
15
Process-based quality
16
8
Software standards
 Standards define the required attributes of a product or
process. They play an important role in quality
management.
 Standards may be international, national, organizational
or project standards.
 Product standards define characteristics that all software
components should exhibit e.g. a common programming
style.
 Process standards define how the software process
should be enacted.
17
Importance of standards
 Encapsulation of best practice- avoids repetition of past
mistakes.
 They are a framework for defining what quality means in
a particular setting i.e. that organization’s view of quality.
 They provide continuity - new staff can understand the
organisation by understanding the standards that are
used.
18
9
Problems with standards
 They may not be seen as relevant and up-to-date by
software engineers.
 They often involve too much bureaucratic form filling.
 If they are unsupported by software tools, tedious form
filling work is often involved to maintain the
documentation associated with the standards.
19
Standards development
 Involve practitioners in development. Engineers should
understand the rationale underlying a standard.
 Review standards and their usage regularly.
Standards can quickly become outdated and this
reduces their credibility amongst practitioners.
 Detailed standards should have specialized tool
support. Excessive clerical work is the most
significant complaint against standards.
 Web-based forms are not good enough.
20
10
ISO 9001 standards framework
 An international set of standards that can be used as a
basis for developing quality management systems.
 ISO 9001, the most general of these standards, applies
to organizations that design, develop and maintain
products, including software.
 The ISO 9001 standard is a framework for developing
software standards.
 It sets out general quality principles, describes quality processes
in general and lays out the organizational standards and
procedures that should be defined. These should be
documented in an organizational quality manual.
21
ISO 9001 core processes
22
11
ISO 9001 and quality
management
23
ISO 9001 certification
 Quality standards and procedures should be
documented in an organisational quality manual.
 An external body may certify that an organisation’s
quality manual conforms to ISO 9000 standards.
 Some customers require suppliers to be ISO 9000
certified although the need for flexibility here is
increasingly recognised.
24
12
Standard di processo
25
Process quality:ISO 12207
• The International Standard was published
August 1, 1995. The following (17) countries
participated in the development of the
standard: Australia, Brazil, Canada, Czech
Republic, Denmark, Finland, France, Germany,
Ireland, Italy, Japan, Korea, The
Netherlands, Spain, Sweden, the United
Kingdom, and the United States of America.
26
13
Architecture
• The architecture is built with a set of
processes and interrelationships among these
processes.
• Not only one process
27
Processes characteristics
• Modularity. The processes are modular;
that is, they are maximally cohesive and
minimally coupled to the practical
extent feasible. An individual process is
dedicated to a unique function.
• Responsibility. A process is considered
to be the responsibility of a party in the
software life cycle. In other words,
each party has certain responsibilities.
28
14
Processes structure
• Each process is further designed in
terms of its own constituent activities,
each of which is further designed in
terms of its constituent tasks.
• An activity under a process is a set of
cohesive tasks.
• A task is a set of elementary or atomic
actions. A task consumes inputs (data,
information, control) and produces
outputs (data, information, control).
29
Process hierarchy
30
15
The model
• There are defined 17 Processes (+ 1
“special” process)
• 74 Activities
• 224 Tasks
– Each task is defined by requirements,
selfdeclaration, recommendation,
permissible action
31
Cont.
• The processes are grouped into three broad classes:
•
•
•
primary; supporting; and organizational.
Primary processes are the prime movers in the life
cycle; they are acquisition, supply, development,
operation, and maintenance.
Supporting processes are documentation,
configuration management, quality assurance, joint
review, audit, verification, validation, and problem
resolution. A supporting process supports another
process in performing a specialized function.
Organizational processes are management,
infrastructure, improvement, and training. An
organization may employ an organizational process to
establish, control, and improve a life cycle process.
32
16
Processes hierarchy
33
The tailoring process
• Tailoring is deletion of non-applicable or
in-effective processes, activities, and
tasks.
• A process, an activity, or a task, that is
not contained in the standard but is
pertinent to a project, may be included
in the agreement or contract.
• It should be noted that this process
itself, however, cannot be tailored.
34
17
Primary processes
• Acquisition Process. This process defines the
•
activities and tasks of the acquirer, that
contractually acquires software product or service.
The acquirer represents the needs and requirements
of the users.
Supply Process. This process contains the activities
and tasks of the supplier. The process may be
initiated either by a decision to prepare a proposal to
answer an acquirer's request for proposal or by
signing and entering into a contract or an agreement
with the acquirer to provide a software service. The
process continues with the identification of
procedures and resources needed to manage and
assure the service.
35
Primary processes
• Development Process. This process contains
the activities and tasks of the developer of
software. The development process is
intended to be employed as a methodology for
developing prototypes (or for studying the
requirements and design of a product) or as a
process to produce products.
36
18
Primary processes
• Operation Process. This process contains the
•
activities and tasks of the operator of a software
system. The process covers the operation of the
software and operational support to users.
Maintenance Process. The maintenance process
contains the activities and tasks of the maintainer.
This process is activated when a system undergoes
modifications to code and associated documentation
due to an error, or the need for an improvement or
adaptation. The objective is to modify an existing
system while preserving its integrity. Whenever a
software product needs modifications, the
development process is invoked to effect and
complete the modifications properly. The process
ends with the retirement of the system.
37
Support processes
• Documentation Process. This is a process for
recording information produced by a life cycle
process. The process defines the activities,
which plan, design, develop, edit, distribute
and maintain those documents needed by all
concerned such as managers, engineers and
users of the system.
38
19
Support processes
• Configuration Management Process. This
process is employed to identify, define, and
baseline software items in a system; to
control modifications and releases of the
items; to record and report the status of the
items and modification requests; to ensure
the completeness and correctness of the
items; and to control storage, handling and
delivery of the items.
39
Support processes
• Verification Process. This process provides the
•
evaluations related to verification of a product or
service of a given activity. Verification determines
whether the requirements for a system are complete
and correct and that the outputs of an activity fulfill
the requirements or conditions imposed on them in
the previous activities. The process covers
verification of process, requirements, design, code,
integration, and documentation.
Validation Process. Validation determines whether
the final, as-built system fulfills its specific intended
use. The extent of validation depends upon the
project's criticality.
40
20
Support processes
• Joint Review Process. This process
provides the framework for interactions
between the reviewer and the reviewee.
They may as well be the acquirer and
the supplier respectively. At a joint
review, the reviewee presents the
status and products to the reviewer for
comment (or approval).
41
Support processes
• Quality Assurance Process. This process provides
•
the framework for independently and objectively
assuring (the acquirer or the customer) of compliance
of products or services with their contractual
requirements and adherence to their established
plans. To be unbiased, software quality assurance is
provided with the organizational freedom from
persons directly responsible for developing the
products or providing the services.
Audit Process. This process provides the framework
for formal, contractually established audits of a
supplier's products or services. At an audit, the
auditor assesses the auditee's products and activities
with emphasis on compliance to requirements and
plans. An audit may well be conducted by the acquirer
on the supplier.
42
21
Support processes
• Problem Resolution Process. This process
provides the mechanism for instituting a
closed-loop process for resolving problems
and taking corrective actions to remove
problems as they are detected. In addition,
the process requires identification and
analysis of causes and reversal of trends in
the reported problems. The term "problem"
includes non-conformance.
43
Organizational processes
• Management Process. This process defines the
•
generic activities and tasks of the manager of a
software life cycle process, such as the acquisition
process, supply process, operation process,
maintenance process, or supporting process.
Infrastructure Process. This process defines the
activities needed for establishing and maintaining an
underlying infrastructure for a life cycle process.
This process has the following activities: Process
implementation; Establishment of the infrastructure;
and Maintenance of the infrastructure. The
infrastructure may include hardware, software,
standards, tools, techniques, and facilities.
44
22
Organizational processes
• Improvement Process. The standard provides the
•
basic, top-level activities that an organization (that
is, acquisition, supply, development, operation,
maintenance, or a supporting process) needs to
assess, measure, control, and improve its life cycle
process.
Training Process. This process may be used for
identifying and making timely provision for acquiring
or developing personnel resources and skills at the
management and technical levels. The process
requires that a training plan be developed, training
material be generated, and training be provided to
the personnel in a timely manner.
45
Processi primari
23
Acquisition process
47
Acquisition process
48
24
Supply process
49
Development process
50
25
Operation process
51
Maintenance process
52
26
Esempio di analisi approfondita
• Esercizio: analisi dell’attività dell’
acquisition process
53
54
27
Attività di Initiation
55
Attività di Initiation
56
28
Attività di Initiation
57
Attività di Request for proposal
58
29
Attività di Preparazione e update
del contratto
59
Attività di Monitoraggio
60
30
Attività di Acceptance e
completion
61
62
31
Cosa la norma non dice
63
Limiti della norma
64
32
Product quality and process
quality
• Quality can be seen from the point of
view of the resulting software product
and from the point of view of the
production process
• There are standard for both the
aspects, even if to state the quality of
software product is a bit dangerous.
65
Standard specifici di prodotto
• Esistono per alcune categorie di
prodotti:
– compilatori
– protocolli di comunicazione
66
33
Primo modello di qualità
• Il primo modello (McCall 1977) si basava su
•
•
•
tre usi di un prodotto sw:
Da utente (si ha una vista esterna del sw)
Da sviluppatore (si ha una vista interna del sw)
Da controllore (si ha bisogno di scale e metodi
di misura)
67
Modello attuale
• La necessità di uno standard di qualità
porta alla introduzione dell’ISO/IEC
9126 (prima versione 1991)
• An attempt to give a schema for defining the
software product quality.
68
34
Il modello ISO 9126
69
L'approccio alla qualità della
norma
• la qualità del processo contribuisce a
•
•
•
migliorare la qualità del prodotto
la qualità del prodotto contribuisce a
migliorare la qualità in uso
controllare e migliorare il processo è un
mezzo per migliorare la qualità del prodotto
valutare e migliorare la qualità del prodotto
migliora la qualità in uso
70
35
• Fa distinzione fra attributi che caratterizzano la qualità vista
dall’utente ed attributi che caratterizzano la qualità vista in
produzione
– caratteristiche esterne
– caratteristiche interne
• Il modello ha tre livelli
– Caratteristiche
– Sottocaratteristiche
– Metriche
• Le caratteristiche esterne sono organizzate in 2 livelli
– … le caratteristiche del secondo livello sono in relazione con quelle
del primo in base ad una gerarchia che definisce i legami
– … le caratteristiche del secondo livello sono anche in relazione con le
caratteristiche interne
71
Product quality: ISO 9126
• Six basic characteristics are defined from
the point of view of the user:
–
–
–
–
–
–
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability
72
36
External characteristics and subcharacteristics
73
Quality evaluation
• Each sub-characteristic must be
associated with a metric to be
quantitatively evaluated
74
37
ISO 9126 (cont.)
75
Quality in use
• Quality in use: specific users through
the software product are able to obtain
specific objectives with effectiveness,
productivity, safety and satisfaction in
a specific operational environment
• It was introduced in the release 1.2
76
38
77
78
39
79
80
40
81
82
41
83
Metriche per la manutenibilità
84
42
Internal characteristics
• Internal characteristics are 38
and are bind to the external
sub-characteristics
•
•
•
•
•
•
•
•
•
•
•
•
•
Completness
Access control
Informativeness
Self-descriptiveness
Instrumentability
Expressiveness
Data-commonality
Self-containedness
Communication-commonality
Well-equipmentness
Traceability
Timeliness
Robustness
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Integrity
Modularity
Simplicity
Coherency
Accessibility
Uniformity
Accuracy
Hierarchieness
Consistency
Metaphorability
Attractiveness
Access audit
Memorability
Conciseness
Choosability
Guideability
85
86
43
Limiti dei modelli di qualità
87
Conclusioni
88
44
Conclusioni
89
90
45
Reviews and inspections
 A group examines part or all of a process or system and
its documentation to find potential problems.
 Software or documents may be 'signed off' at a
review which signifies that progress to the next
development stage has been approved by
management.
 There are different types of review with different
objectives
 Inspections for defect removal (product);
 Reviews for progress assessment (product and process);
 Quality reviews (product and standards).
91
Quality reviews
 A group of people carefully examine part or all
of a software system and its associated
documentation.
 Code, designs, specifications, test plans,
standards, etc. can all be reviewed.
 Software or documents may be 'signed off' at a
review which signifies that progress to the next
development stage has been approved by
management.
92
46
The software review process
93
Reviews and agile methods
 The review process in agile software development is
usually informal.
 In Scrum, for example, there is a review meeting after each
iteration of the software has been completed (a sprint review),
where quality issues and problems may be discussed.
 In extreme programming, pair programming ensures that
code is constantly being examined and reviewed by
another team member.
 XP relies on individuals taking the initiative to improve
and refactor code. Agile approaches are not usually
standards-driven, so issues of standards compliance are
not usually considered.
94
47
Program inspections
 These are peer reviews where engineers examine the
source of a system with the aim of discovering
anomalies and defects.
 Inspections do not require execution of a system so may
be used before implementation.
 They may be applied to any representation of the system
(requirements, design,configuration data, test data, etc.).
 They have been shown to be an effective technique for
discovering program errors.
95
Inspection checklists
 Checklist of common errors should be used to
drive the inspection.
 Error checklists are programming language
dependent and reflect the characteristic errors that are
likely to arise in the language.
 In general, the 'weaker' the type checking, the larger the
checklist.
 Examples: Initialisation, Constant naming, loop
termination, array bounds, etc.
96
48
An inspection checklist (a)
Fault class
Inspection check
Data faults
 Are all program variables initialized before their values are used?
 Have all constants been named?
 Should the upper bound of arrays be equal to the size of the
Control faults
Input/output faults







array or Size -1?
If character strings are used, is a delimiter explicitly assigned?
Is there any possibility of buffer overflow?
For each conditional statement, is the condition correct?
Is each loop certain to terminate?
Are compound statements correctly bracketed?
In case statements, are all possible cases accounted for?
If a break is required after each case in case statements, has it
been included?
 Are all input variables used?
 Are all output variables assigned a value before they are output?
 Can unexpected inputs cause corruption?
97
An inspection checklist (b)
Fault class
Inspection check
Interface faults
 Do all function and method calls have the correct number
of parameters?
 Do formal and actual parameter types match?
 Are the parameters in the right order?
 If components access shared memory, do they have the
same model of the shared memory structure?
Storage
faults
management
 If a linked structure is modified, have all links been
correctly reassigned?
 If dynamic storage is used, has space been allocated
correctly?
 Is space explicitly deallocated after it is no longer
required?
Exception
faults
management
 Have all possible error conditions been taken into
account?
98
49
Agile methods and inspections
 Agile processes rarely use formal inspection or peer
review processes.
 Rather, they rely on team members cooperating to check
each other’s code, and informal guidelines, such as
‘check before check-in’, which suggest that programmers
should check their own code.
 Extreme programming practitioners argue that pair
programming is an effective substitute for inspection as
this is, in effect, a continual inspection process.
 Two people look at every line of code and check it before
it is accepted.
99
Software measurement and
metrics
 Software measurement is concerned with deriving a
numeric value for an attribute of a software product or
process.
 This allows for objective comparisons between
techniques and processes.
 Although some companies have introduced
measurement programmes, most organisations still don’t
make systematic use of software measurement.
 There are few established standards in this area.
100
50
Software metric
 Any type of measurement which relates to a software
system, process or related documentation
 Lines of code in a program, the Fog index, number of persondays required to develop a component.
 Allow the software and the software process to
be quantified.
 May be used to predict product attributes or to control
the software process.
 Product metrics can be used for general predictions or to
identify anomalous components.
101
Use of measurements
 To assign a value to system quality attributes
 By measuring the characteristics of system components, such as
their cyclomatic complexity, and then aggregating these
measurements, you can assess system quality attributes, such
as maintainability.
 To identify the system components whose quality is substandard
 Measurements can identify individual components with
characteristics that deviate from the norm. For example, you can
measure components to discover those with the highest
complexity. These are most likely to contain bugs because the
complexity makes them harder to understand.
102
51
Metrics assumptions
 A software property can be measured.
 The relationship exists between what we can
measure and what we want to know. We can only
measure internal attributes but are often more interested
in external software attributes.
 This relationship has been formalised and
validated.
 It may be difficult to relate what can be measured to
desirable external quality attributes.
103
Problems with measurement in
industry
 It is impossible to quantify the return on investment of
introducing an organizational metrics program.
 There are no standards for software metrics or standardized
processes for measurement and analysis.
 In many companies, software processes are not standardized
and are poorly defined and controlled.
 Most work on software measurement has focused on codebased metrics and plan-driven development processes.
However, more and more software is now developed by
configuring ERP systems or COTS.
 Introducing measurement adds additional overhead to
processes.
104
52
Product metrics
 A quality metric should be a predictor of product quality.
 Classes of product metric
 Dynamic metrics which are collected by measurements made of
a program in execution;
 Static metrics which are collected by measurements made of the
system representations;
 Dynamic metrics help assess efficiency and reliability
 Static metrics help assess complexity, understandability and
maintainability.
105
Dynamic and static metrics
 Dynamic metrics are closely related to software quality
attributes
 It is relatively easy to measure the response time of a system
(performance attribute) or the number of failures (reliability
attribute).
 Static metrics have an indirect relationship with quality
attributes
 You need to try and derive a relationship between these metrics
and properties such as complexity, understandability and
maintainability.
106
53
Static software product
metrics
Software metric
Description
Fan-in/Fan-out
Fan-in is a measure of the number of functions or
methods that call another function or method (say X).
Fan-out is the number of functions that are called by
function X. A high value for fan-in means that X is tightly
coupled to the rest of the design and changes to X will
have extensive knock-on effects. A high value for fan-out
suggests that the overall complexity of X may be high
because of the complexity of the control logic needed to
coordinate the called components.
Length of code
This is a measure of the size of a program. Generally, the
larger the size of the code of a component, the more
complex and error-prone that component is likely to be.
Length of code has been shown to be one of the most
reliable metrics for predicting error-proneness in
components.
107
Static software product
metrics
Software metric
Description
Cyclomatic complexity This is a measure of the control complexity of a program.
This control complexity may be related to program
understandability. I discuss cyclomatic complexity in
Chapter 8.
Length of identifiers
This is a measure of the average length of identifiers
(names for variables, classes, methods, etc.) in a
program. The longer the identifiers, the more likely they
are to be meaningful and hence the more
understandable the program.
Depth of conditional
nesting
This is a measure of the depth of nesting of if-statements
in a program. Deeply nested if-statements are hard to
understand and potentially error-prone.
Fog index
This is a measure of the average length of words and
sentences in documents. The higher the value of a
document’s Fog index, the more difficult the document is
to understand.
108
54
The object-oriented metrics
Object-oriented
metric
Description
Weighted methods
per class (WMC)
This is the number of methods in each class, weighted by the complexity of each
method. Therefore, a simple method may have a complexity of 1, and a large
and complex method a much higher value. The larger the value for this metric,
the more complex the object class. Complex objects are more likely to be difficult
to understand. They may not be logically cohesive, so cannot be reused
effectively as superclasses in an inheritance tree.
Depth of inheritance This represents the number of discrete levels in the inheritance tree where
tree (DIT)
subclasses inherit attributes and operations (methods) from superclasses. The
deeper the inheritance tree, the more complex the design. Many object classes
may have to be understood to understand the object classes at the leaves of the
tree.
Number of children
(NOC)
This is a measure of the number of immediate subclasses in a class. It measures
the breadth of a class hierarchy, whereas DIT measures its depth. A high value
for NOC may indicate greater reuse. It may mean that more effort should be
made in validating base classes because of the number of subclasses that
depend on them.
109
The object-oriented metrics
Object-oriented
metric
Description
Coupling between
object classes
(CBO)
Classes are coupled when methods in one class use methods or instance
variables defined in a different class. CBO is a measure of how much coupling
exists. A high value for CBO means that classes are highly dependent, and
therefore it is more likely that changing one class will affect other classes in the
program.
Response for a
class (RFC)
RFC is a measure of the number of methods that could potentially be executed
in response to a message received by an object of that class. Again, RFC is
related to complexity. The higher the value for RFC, the more complex a class
and hence the more likely it is that it will include errors.
Lack of cohesion in
methods (LCOM)
LCOM is calculated by considering pairs of methods in a class. LCOM is the
difference between the number of method pairs without shared attributes and the
number of method pairs with shared attributes. The value of this metric has been
widely debated and it exists in several variations. It is not clear if it really adds
any additional, useful information over and above that provided by other metrics.
110
55
Software component analysis
 System component can be analyzed separately using a
range of metrics.
 The values of these metrics may then compared for
different components and, perhaps, with historical
measurement data collected on previous projects.
 Anomalous measurements, which deviate significantly
from the norm, may imply that there are problems with
the quality of these components.
111
The process of product
measurement
112
56
Measurement surprises
 Reducing the number of faults in a program leads to an
increased number of help desk calls
 The program is now thought of as more reliable and so has a
wider more diverse market. The percentage of users who call the
help desk may have decreased but the total may increase;
 A more reliable system is used in a different way from a system
where users work around the faults. This leads to more help
desk calls.
113
La qualità totale
57
Vari aspetti della qualità
115
La qualità totale
• Il concetto di Qualità è legato alla definizione di Qualità di Prodotto
tramite:
–
–
–
–
–
un’accurata scelta delle materie prime
un’attenta fase di progettazione
l’utilizzo di maestranze esperte e qualificate
tecniche di lavorazione orientate all’eccellenza del risultato
un severo ed efficace Controllo Qualità
• Il concetto di Qualità Totale o TQM (Total Quality Management) sta
•
•
invece ad indicare che i concetti e le tecniche del Controllo Qualità
devono essere estesi ed applicati a tutti i settori aziendali (CWQC =
Company Wide Quality Control) con l’obiettivo di raggiungere
l’eccellenza.
La Qualità Totale rappresenta un potente strumento di gestione per
raggiungere gli obiettivi dell’organizzazione.
Si passa da una visione a breve termine di “Profitto prima di tutto” ad
una a più lungo termine di “Qualità prima di tutto”.
116
58
La qualità totale
• La qualità di un sistema software è largamente
•
determinata dalla qualità del processo usato per la sua
produzione e manutenzione.
TQM pone al centro dell’attenzione i processi, in
particolare è l’applicazione di metodi quantitativi e di
risorse umane per il miglioramento:
– dei materiali e dei servizi usati da un’organizzazione;
– di tutti i processi che si sviluppano nell’organizzazione;
– del livello con il quale vengono soddisfatti i bisogni del
cliente.
117
Cambio di mentalità in azienda
118
59
La pianificazione della qualità
119
La pianificazione della qualità
120
60
L’assicurazione della qualità
121
L’assicurazione della qualità
122
61
Il controllo della qualità
123
Improvement models
Lecture 7
62
Process improvement
 Many software companies have turned to software
process improvement as a way of enhancing the quality
of their software, reducing costs or accelerating their
development processes.
 Process improvement means understanding existing
processes and changing these processes to increase
product quality and/or reduce costs and development
time.
125
Approaches to improvement
 The process maturity approach, which focuses on
improving process and project management and
introducing good software engineering practice.
 The level of process maturity reflects the extent to which good
technical and management practice has been adopted in
organizational software development processes.
 The agile approach, which focuses on iterative
development and the reduction of overheads in the
software process.
 The primary characteristics of agile methods are rapid delivery of
functionality and responsiveness to changing customer
requirements.
126
63
Process and product quality
 Process quality and product quality are closely
related and process improvement benefits arise because
the quality of the product depends on its development
process.
 For manufactured goods, process is the principal quality
determinant.
 For design-based activities, other factors are also
involved, especially the capabilities of the designers.
127
Factors affecting software
product quality
128
64
Quality factors
 For large projects with ‘average’ capabilities, the
development process determines product quality.
 For small projects, the capabilities of the developers is
the main determinant.
 The development technology is particularly significant for
small projects.
 In all cases, if an unrealistic schedule is imposed then
product quality will suffer.
129
Process improvement process
 There is no such thing as an ‘ideal’ or ‘standard’ software
process that is applicable in all organizations or for all
software products of a particular type.
 You will rarely be successful in introducing process
improvements if you simply attempt to change the process to
one that is used elsewhere.
 You must always consider the local environment and culture and
how this may be affected by process change proposals.
 Each company has to develop its own process
depending on its size, the background and skills of its
staff, the type of software being developed, customer
and market requirements, and the company culture.
130
65
Improvement attributes
 You also have to consider what aspects of the process
that you want to improve.
 Your goal might be to improve software quality and so
you may wish to introduce new process activities that
change the way software is developed and tested.
 You may be interested in improving some attribute of the
process itself (such as development time) and you have
to decide which process attributes are the most
important to your company.
131
Process attributes
Process
characteristic
Key issues
Understandability To what extent is the process explicitly defined and how easy is it to
understand the process definition?
Standardization
To what extent is the process based on a standard generic process?
This may be important for some customers who require
conformance with a set of defined process standards. To what extent
is the same process used in all parts of a company?
Visibility
Do the process activities culminate in clear results, so that the
progress of the process is externally visible?
Measurability
Does the process include data collection or other activities that allow
process or product characteristics to be measured?
Supportability
To what extent can software tools be used to support the process
activities?
132
66
Process attributes
Process
characteristic
Key issues
Acceptability
Is the defined process acceptable to and usable by the engineers
responsible for producing the software product?
Reliability
Is the process designed in such a way that process errors are avoided
or trapped before they result in product errors?
Robustness
Can the process continue in spite of unexpected problems?
Maintainability
Can the process evolve to reflect changing organizational requirements
or identified process improvements?
Rapidity
How fast can the process of delivering a system from a given
specification be completed?
133
Process improvement stages
 Process measurement
 Attributes of the current process are measured. These are a
baseline for assessing improvements.
 Process analysis
 The current process is assessed and bottlenecks and
weaknesses are identified.
 Process change
 Changes to the process that have been identified during the
analysis are introduced.
134
67
The process improvement cycle
135
Process measurement
 Wherever possible, quantitative process data
should be collected
 However, where organisations do not have clearly defined
process standards this is very difficult as you don’t know what to
measure. A process may have to be defined before any
measurement is possible.
 Process measurements should be used to
assess process improvements
 But this does not mean that measurements should drive the
improvements. The improvement driver should be the
organizational objectives.
136
68
Process metrics
 Time taken for process activities to be
completed
 E.g. Calendar time or effort to complete an activity or process.
 Resources required for processes or activities
 E.g. Total effort in person-days.
 Number of occurrences of a particular event
 E.g. Number of defects discovered.
137
Goal-Question-Metric Paradigm
 Goals
 What is the organisation trying to achieve? The objective of
process improvement is to satisfy these goals.
 Questions
 Questions about areas of uncertainty related to the goals. You
need process knowledge to derive these.
 Metrics
 Measurements to be collected to answer the questions.
138
69
GQM questions
 The GQM paradigm is used in process improvement to
help answer three critical questions:
 Why are we introducing process improvement?
 What information do we need to help identify and assess
improvements?
 What process and product measurements are required to
provide this information?
139
The GQM paradigm
140
70
Process analysis
 The study of existing processes to understand the
relationships between parts of the process and to
compare them with other processes.
 Process analysis and process measurement are
intertwined.
 You need to carry out some analysis to know what to
measure, and, when making measurements, you
inevitably develop a deeper understanding of the
process being measured.
141
Process analysis techniques
 Published process models and process
standards
 It is always best to start process analysis with an existing model.
People then may extend and change this.
 Questionnaires and interviews
 Must be carefully designed. Participants may tell you what they
think you want to hear.
 Ethnographic analysis
 Involves assimilating process knowledge by observation. Best
for in-depth analysis of process fragments rather than for wholeprocess understanding.
142
71
Aspects of process analysis
Process
aspect
Adoption and
standardization
Software
engineering
practice
Organizational
constraints
Questions
Is the process documented and standardized across the
organization? If not, does this mean that any measurements
made are specific only to a single process instance? If processes
are not standardized, then changes to one process may not be
transferable to comparable processes elsewhere in the company.
Are there known, good software engineering practices that are
not included in the process? Why are they not included? Does the
lack of these practices affect product characteristics, such as the
number of defects in a delivered software system?
What are the organizational constraints that affect the process
design and the ways that the process is performed? For example,
if the process involves dealing with classified material, there may
be activities in the process to check that classified information is
not included in any material due to be released to external
organizations. Organizational constraints may mean that possible
process changes cannot be made.
143
Aspects of process analysis
Process aspect
Questions
Communications
How are communications managed in the process? How do
communication issues relate to the process measurements that have
been made? Communication problems are a major issue in many
processes and communication bottlenecks are often the reasons for
project delays.
Is the process reflective (i.e., do the actors involved in the process
explicitly think about and discuss the process and how it might be
improved)? Are there mechanisms through which process actors can
propose process improvements?
How do people joining a development team learn about the software
processes used? Does the company have process manuals and
process training programs?
What aspects of the process are and aren’t supported by software
tools? For unsupported areas, are there tools that could be deployed
cost-effectively to provide support? For supported areas, are the tools
effective and efficient? Are better tools available?
Introspection
Learning
Tool support
144
72
Process change
 Involves making modifications to existing processes.
 This may involve:




Introducing new practices, methods or processes;
Changing the ordering of process activities;
Introducing or removing deliverables;
Introducing new roles or responsibilities.
 Change should be driven by measurable goals.
145
The process change process
146
73
Process change stages
 Improvement identification
 This stage is concerned with using the results of the process
analysis to identify ways to tackle quality problems, schedule
bottlenecks or cost inefficiencies that have been identified during
process analysis.
 Improvement prioritization
 When many possible changes have been identified, it is usually
impossible to introduce them all at once, and you must decide
which are the most important.
 Process change introduction
 Process change introduction means putting new procedures,
methods and tools into place and integrating them with other
process activities.
147
Process change stages
 Process change training
 Without training, it is not possible to gain the full benefits of
process changes. The engineers involved need to understand
the changes that have been proposed and how to perform the
new and changed processes.
 Change tuning
 Proposed process changes will never be completely effective as
soon as they are introduced. You need a tuning phase where
minor problems can be discovered, and modifications to the
process can be proposed and introduced.
148
74
Process change problems
 Resistance to change
 Team members or project managers may resist the introduction
of process changes and propose reasons why changes will not
work, or delay the introduction of changes. They may, in some
cases, deliberately obstruct process changes and interpret data
to show the ineffectiveness of proposed process change.
 Change persistence
 While it may be possible to introduce process changes initially, it
is common for process innovations to be discarded after a short
time and for the processes to revert to their previous state.
149
Resistance to change
 Project managers often resist process change because
any innovation has unknown risks associated with it.
 Project managers are judged according to whether or not their
project produces software on time and to budget. They may
prefer an inefficient but predictable process to an improved
process that has organizational benefits, but which has shortterm risks associated with it.
 Engineers may resist the introduction of new processes
for similar reasons, or because they see these
processes as threatening their professionalism.
 That is, they may feel that the new pre-defined process gives
them less discretion and does not recognize the value of their
skills and experience.
150
75
Change persistence
 The problem of changes being introduced then
subsequently discarded is a common one.
 Changes may be proposed by an ‘evangelist’ who believes
strongly that the changes will lead to improvement. He or she
may work hard to ensure the changes are effective and the new
process is accepted.
 If the ‘evangelist’ leaves, then the people involved may therefore
simply revert to the previous ways of doing things.
 Change institutionalization is important
 This means that process change is not dependent on individuals
but that the changes become part of standard practice in the
company, with company-wide support and training.
151
Maturity models
• A maturity model can be described as a
structured collection of elements that
describe certain aspects of maturity in an
organization, and aids in the definition and
understanding of the organization's
processes and in the organization
improvement.
152
76
Maturity models
• A maturity model may provide, for example :
–
–
–
–
–
a place to start
the benefit of a community’s prior experiences
a common language and a shared vision
a framework for prioritizing actions
a way to define what improvement means for your
organization.
• A maturity model can be used as a benchmark for
comparison and as an aid to understanding - for
example, for comparative assessment of different
organizations where there is something in common
that can be used as a basis for comparison.
153
• The Capability Maturity Model (CMM) is
the most widely used model of
assesment and improvement. Active
development of this model began in
1986 at the Software Engineering
Institute located at Carnegie Mellon
University in Pittsburgh, Pennsylvania on
behalf of DOD and Mitra Corporation.
154
77
The SEI capability maturity
model
 Initial
 Essentially uncontrolled
 Repeatable
 Product management procedures defined and used
 Defined
 Process management procedures and strategies defined
and used
 Managed
 Quality management strategies defined and used
 Optimising
 Process improvement strategies defined and used
155
Capability Maturity Model (CMM)
• The CMM was originally intended as a tool to evaluate
•
•
the ability of government contractors to perform a
contracted software project.
In the case of the CMM the basis for comparison
among organizations would be the organizations'
software development processes.
Though it comes from the area of software
development, it can be, has been, and continues to be
widely applied as a general model of the maturity of
processes.
156
78
Capability Maturity Model
157
Capability Maturity Model Structure
• The Capability Maturity Model involves the
•
•
following aspects:
Maturity Levels: A 5-Level process maturity
continuum - where the uppermost (5th) level
is a notional ideal state where processes
would be systematically managed by a
combination of process optimization and
continuous process improvement.
Key Process Areas: A Key Process Area (KPA)
identifies a cluster of related activities that,
when performed collectively, achieve a set of
goals considered important.
158
79
Struttura dei livelli
• Ciascun livello di maturità è composto da un
•
•
insieme di aree chiavi di processo.
Ciascuna "area chiave" è organizzata in cinque
sezioni dette "Caratteristiche comuni".
Le caratteristiche comuni identificano le
"Pratiche chiavi“ che, quando tutte eseguite,
permettono il raggiungimento dei goal delle
"aree chiavi”.
159
• Ciascuna area chiave definisce un insieme di attività
•
correlate che, quando vengono globalmente sviluppate,
garantiscono che il processo sia al livello di maturità
ad essa associato, … e quindi anche la relativa
capacità.
Queste aree chiave risultano fondamentali ai fini:
– dell’accertamento: se le attività sono sviluppate allora il
processo è al livello associato;
– del miglioramento: se si vuol passare al livello associato si
deve introdurre nel processo lo sviluppo delle attività
associate.
160
80
• In each KPA there are five definitions
identified:
–
–
–
–
–
Goals
Commitment
Ability
Measurement
Verification
• The KPAs are not necessarily unique to CMM,
representing — as they do — the stages that
organizations must go through on the way to
becoming mature.
161
Cont.
• Goals: The goals of a key process area summarize the states
that must exist for that key process area to have been
implemented in an effective and lasting way. The extent to
which the goals have been accomplished is an indicator of how
much capability the organization has established at that
maturity level. The goals signify the scope, boundaries, and
intent of each key process area.
• Common Features: Common features include practices that
implement and institutionalize a key process area. There are five
types of common features: Commitment to Perform, Ability to
Perform, Activities Performed, Measurement and Analysis, and
Verifying Implementation.
• Key Practices: The key practices describe the elements of
infrastructure and practice that contribute most effectively to
the implementation and institutionalization of the KPAs.
162
81
CMM
• The model identifies five levels of process maturity
for an organization:
– Initial (chaotic, ad hoc, heroic) the starting point for use of
a new process.
– Repeatable (project management, process discipline) the
process is used repeatedly.
– Defined (institutionalized) the process is defined/confirmed
as a standard business process.
– Managed (quantified) process management and measurement
takes place.
– Optimizing (process improvement) process management
includes deliberate process optimization/improvement.
163
Capability Maturity Model
• Initial. It is characteristic of processes at this level that they
are (typically) undocumented and in a state of dynamic change,
tending to be driven in an ad hoc, uncontrolled and reactive
manner by users or events. This provides a chaotic or unstable
environment for the processes.
• Requirements flow in. A software product is (usually) produced
by some amorphous process. The product flows out and
(hopefully) works.
• Institutional knowledge tends to be scattered in such
environments, not all of the participants in the processes may
know or understand all of the components that make up the
processes.
164
82
Capability Maturity Model
• Repeatable. Processes and their outputs could be visible to
management at defined points, but results may not always be
consistent. Some basic processes are established to track cost,
schedule, and functionality, and a degree of process discipline is in
place to repeat earlier successes on projects with similar applications
and scope; nevertheless there could still be a significant risk of
exceeding cost and time estimates.
• Requirements and resources flow in. The production of the software
product is visible at defined points. Artifacts of the process are
controlled.
165
Capability Maturity Model
• Defined. There are sets of defined and documented
•
standard processes established and subject to some
degree of improvement over time. These standard
processes are in place and used to establish
consistency of process performance across the
organization.
Roles and responsabilities in the process are
understood. The software product is visible
throughout the software process.
166
83
Capability Maturity Model
• Managed. Using process metrics, management can
•
effectively control the software development. In
particular, management can identify ways to adjust
and adapt the process to particular projects without
measurable losses of quality or deviations from
specifications.
The software production is quantitatively understood
throughout the software process.
167
Capability Maturity Model
• Optimizing. Quantitative process-
•
improvement objectives for the organization
are established, continually revised to reflect
changing business objectives, and used as
criteria in managing process improvement.
The software process is continuously
improved in a controlled manner.
168
84
Capability Maturity Model
• Each level is associated with an
expected performance
• Each level is associated with tools to be
used during the process, for example,
organizational database
169
The CMMI process improvement
framework
 The CMMI framework is the current stage of work on
process assessment and improvement that started at the
Software Engineering Institute in the 1980s.
 The SEI’s mission is to promote software technology
transfer particularly to US defence contractors.
 It has had a profound influence on process improvement
 Capability Maturity Model introduced in the early 1990s.
 Revised maturity framework (CMMI) introduced in 2001.
170
85
The CMMI model
 An integrated capability model that includes software
and systems engineering capability assessment.
 The model has two instantiations
 Staged where the model is expressed in terms of capability
levels;
 Continuous where a capability rating is computed.
171
Evoluzione del CMM:CMMI
172
86
CMMI model components
 Process areas
 24 process areas that are relevant to process capability and
improvement are identified. These are organised into 4 groups.
 Goals
 Goals are descriptions of desirable organisational states. Each
process area has associated goals.
 Practices
 Practices are ways of achieving a goal - however, they are
advisory and other approaches to achieve the goal may be used.
173
Process areas in the CMMI
Category
Process area
Process management
Organizational process definition (OPD)
Organizational process focus (OPF)
Organizational training (OT)
Organizational process performance (OPP)
Organizational innovation and deployment
(OID)
Project management
Project planning (PP)
Project monitoring and control (PMC)
Supplier agreement management (SAM)
Integrated project management (IPM)
Risk management (RSKM)
Quantitative project management (QPM)
174
87
Process areas in the CMMI
Category
Process area
Engineering
Requirements management (REQM)
Requirements development (RD)
Technical solution (TS)
Product integration (PI)
Verification (VER)
Validation (VAL)
Support
Configuration management (CM)
Process and product quality management (PPQA)
Measurement and analysis (MA)
Decision analysis and resolution (DAR)
Causal analysis and resolution (CAR)
175
Goals and associated practices in
the CMMI
Goal
The requirements are analyzed and
validated, and a definition of the
required functionality is developed.
Associated practices
Analyze derived requirements systematically to ensure that
they are necessary and sufficient.
Validate requirements to ensure that the resulting product will
perform as intended in the user’s environment, using multiple
techniques as appropriate.
Root causes of defects and other
problems are systematically
determined.
Select the critical defects and other problems for analysis.
Perform causal analysis of selected defects and other
problems and propose actions to address them.
The process is institutionalized as a
defined process.
Establish and maintain an organizational policy for planning
and performing the requirements development process.
176
88
Examples of goals in the CMMI
Goal
Process area
Corrective actions are managed to closure Project monitoring and control (specific
when the project’s performance or results goal)
deviate significantly from the plan.
Actual performance and progress of the Project monitoring and control (specific
project are monitored against the project goal)
plan.
The requirements are analyzed and Requirements development (specific goal)
validated, and a definition of the required
functionality is developed.
Root causes of defects and other problems Causal analysis and resolution (specific
are systematically determined.
goal)
The process is institutionalized as a defined Generic goal
process.
177
CMMI assessment
 Examines the processes used in an organisation and
assesses their maturity in each process area.
 Based on a 6-point scale:






Not performed;
Performed;
Managed;
Defined;
Quantitatively managed;
Optimizing.
178
89
The staged CMMI model
 Comparable with the software CMM.
 Each maturity level has process areas and goals. For
example, the process area associated with the managed
level include:






Requirements management;
Project planning;
Project monitoring and control;
Supplier agreement management;
Measurement and analysis;
Process and product quality assurance.
179
The CMMI staged maturity model
180
90
Institutional practices
 Institutions operating at the managed level should have
institutionalised practices that are geared to
standardisation.
 Establish and maintain policy for performing the project
management process;
 Provide adequate resources for performing the project
management process;
 Monitor and control the project planning process;
 Review the activities, status and results of the project planning
process.
181
Una previsione di performance
per ogni livello
182
91
Una tipologia di strumenti per
ogni livello
183
Accertamento
• L’accertamento è condotto mediante una
•
•
analisi dell’azienda (documenti organizzativi,
procedure aziendali) e realizzando interviste
attraverso appositi questionari.
Il SEI ha definito un questionario da
utilizzare che va adattato e tarato alle varie
realtà.
Il questionario è suddiviso in sezioni, quali:
– organizzazione, risorse, personale e formazione,
gestione della tecnologia, standard e procedure,
metriche di processo, raccolta ed analisi dei dati,
controllo processo.
184
92
Accertamento
• Le domande, divise in due categorie (a e b),
•
sono a risposta booleana (Si/No) ed ognuna di
esse, correlata ad una key area, è associata ad
un livello di maturità da 2 a 5.
La regola che determina il livello di maturità è
la seguente:
– La maturità di un processo è di livello i se si
risponde SI all’80% delle domande di tipo a ed al
90% di quelle di tipo b associate ai livelli tra 2 ed i.
• Le risposte vengono verificate e controllate.
185
Domande per il livello 2
186
93
Domande per il livello 2
187
Domande per il livello 2
188
94
Domande per il livello 2
189
Domande per il livello 2
190
95
Come migliorare ad ogni livello
191
Pros
• Prior to the introduction of CMM, there
was no theoretical basis applicable to
process maturity for IT-related
processes.
• CMM has been shown to be well-suited
for organizations wishing to define their
key processes.
192
96
Pros
• 1300 projects involving products of at
least 200 KLOC had been examined to
evaluate the possible saving in the five
levels.
• See the table in the following slide.
• The US Air Force requires level 3
certification from all its contractors.
193
194
97
Cons
• The objective of scientifically managing the software
•
process using defined metrics is difficult to achieve
until Level 4.
The CMM does not help to define the structure of an
effective software development organization. The
CMM contains behaviors or best practices that
successful projects have demonstrated. Thus, being
CMM compliant would not necessarily guarantee that
a project would be successful. However, being
compliant could increase a project's chances of being
successful .
195
Contro
• I clienti sono spesso orientati a
parametri non solo di qualità, ma
piuttosto di rapporto tra qualità e costi
oppure tra qualità costi e tempi.
• Un fornitore di Livello 5 CMM
garantisce davvero che il progetto
software dato in outsourcing si
concluderà in tempo e nel budget ?
196
98
Contro
• Le indagini confermano che livelli CMM più alti sono
•
•
correlati con una minor difettosità del software. I
dati su qualità e livello di maturità mostrano che c’è un
miglioramento indiscutibile nei costi e nel rispetto dei
tempi di completamento dei progetti.
Ma la massima valutazione CMM non necessariamente
garantisce il massimo risparmio per il cliente. Il
fornitore passa i suoi minori costi al cliente?
I fornitori di Livello 5 sono i migliori, dunque hanno la
possibilità di ricaricare di più, non di meno, sui clienti.
Per di più, una valutazione di Livello 5 in qualche caso,
fanno notare gli esperti, potrebbe comportare
investimenti maggiori del necessario.
197
Riassumendo
• Il modello indica ventidue Aree di processi
•
aziendali (Process area) strutturate su cinque
livelli, ognuna con i propri obiettivi generici
(Generic Goal) e specifici (Specific Goal).
Gli obiettivi generici e specifici sono
implementati da una sequenza temporale di
attività generiche (Generic practice) e
specifiche (specific practice), che hanno
determinate tipologie di output (tipical work
product).
198
99
• Il SEI ha constatato che 60 società hanno misurato
miglioramenti delle loro prestazioni in termini di costi, qualità,
produttività e soddisfazione del cliente con miglioramenti
compresi fra il 14% della soddisfazione del cliente al 62% di
incremento della produttività.
• Il CMMI in molti casi si limita a dichiarare quali miglioramenti
dei processi devono essere raggiunti, ma non in quale modo. In
particolare, non indica gli attori, le applicazioni e le strutture
informatiche protagoniste del cambiamento.
• I benefici dell'implementazione di un framework CMMI sono
limitati per piccole organizzazioni. È significativo che il 70.5%
delle società del campione con meno di 25 dipendenti si collochi
al livello 2, mentre il 52.8% di quelle che hanno fra i 1000 e i
2000 dipendenti, si collochi al livello più alto (livello 5:
ottimizzato).
199
• An organization cannot be certified in CMMI; instead, an
organization is appraised. Depending on the type of appraisal,
the organization can be awarded a maturity level rating (1-5) or
a capability level achievement profile.
• Appraisals of organizations using a CMMI model must conform
to the requirements defined in the Appraisal Requirements for
CMMI (ARC) document. There are three classes of appraisals, A,
B and C, which focus on identifying improvement opportunities
and comparing the organization’s processes to CMMI best
practices.
• The Standard CMMI Appraisal Method for Process
Improvement (SCAMPI) is an appraisal method that meets all of
the ARC requirements.
• A class A appraisal is more formal and is the only one that can
result in a level rating. Results of an appraisal may be published
(if the appraised organization approves) on the CMMI Web site
of the SEI.
200
100
• Al momento non esistono authority
•
indipendenti autorizzate a valutare i processi
di altre aziende secondo il CMMI, e la
valutazione è effettuata direttamente dal
SEI.
Il SEI ha valutato secondo il CMMI i processi
di una ventina di aziende informatiche in tutto
il mondo. Fra queste, una decina di aziende
indiane; in Italia, la sola IBM.
201
Statistiche
• SEI has maintained statistics on the "time to move
•
•
up" for organizations adopting the earlier Software
CMM and primarily using the traditional approach.
These statistics indicate that, since 1987, the median
times to move from Level 1 to Level 2 is 23 months,
and from Level 2 to Level 3 is an additional 20
months.
The Software Engineering Institute’s (SEI) Team
Software Process methodology and the Capability
Maturity Modeling framework have been successfully
employed to accelerate progress from Maturity Level
1 to Maturity Level 4. They’ve demonstrated
progressing from Level 1 to Level 4 in 30 months,
which is less than half of the average time it has
taken traditionally.
202
101
References
• Turner & Jain (2002) per un confronto
tra CMMI e metodologie Agile
• Nawrocki e altri (2002) per un
confronto tra CMMI e Extreme
Programming
203
• Interestingly, Turner & Jain (2002) argue that
•
•
•
although it is obvious there are large differences
between CMMI and agile methods, both approaches
have much in common.
They believe neither way is the 'right' way to develop
software, but that there are phases in a project
where one of the two is better suited.
They suggest one should combine the different
fragments of the methods into a new hybrid method.
David J. Anderson (2005) gives hints on how to
interpret CMMI in an agile manner. Other viewpoints
about using CMMI and Agile development are
available on the SEI Web site.
204
102
• To conclude with a similar use of CMMI,
Extreme Programming (XP) has been
evaluated with CMM/CMMI (Nawrocki
et al., 2002).
• The XP requirements management
approach, (which relies on oral
communication), was evaluated as not
compliant with CMMI.
205
103
Scarica

Quality management - E-learning del Polo di Ingegneria