forked from ggiuffre/sweki
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path10_qualsoftware.html
109 lines (98 loc) · 9.33 KB
/
10_qualsoftware.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<title>Processi software - sweki</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="author" content="FIUP" />
<meta name="keywords" content="sweki, ingegneria, software, qualità" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="main.css" />
<link rel="prev" href="09_projdidattico.html" />
<link rel="next" href="11_qualprocesso.html" />
</head>
<body>
<div id="header">
<h1>
<a class="prev" title="prev" href="09_projdidattico.html"><</a>
<a href="index.html"><acronym title="SoftWare Engineering wiKI">sweki</acronym></a>
<a class="next" title="next" href="11_qualprocesso.html">></a>
</h1>
<h2>la wiki di Ingegneria del Software</h2>
</div>
<div id="content">
<h1>Qualità del software</h1>
<h2>Definizione di qualità</h2>
<p>Secondo <abbr title="International Organitazion for Standardization">ISO</abbr>, la qualità è l'insieme delle caratteristiche di un'entità che ne determinano la capacità di soddisfare esigenze espresse e implicite. Valutare la qualità del software serve sia a chi lo ha realizzato (per migliorarlo), sia a chi lo usa (per avere garanzie), sia a chi valuta (per imparare). Tuttavia, quello di qualità è un concetto ambivalente: può riguardare la conformità ai requisiti (visione intrinseca della qualità), la soddisfazione del cliente (visione relativa) o la misura del livello di qualità (visione quantitativa); ad ogni modo, tutte queste sono aree in cui interviene il "sistema qualità".</p>
<h2>Il sistema qualità</h2>
<p><abbr title="International Organitazion for Standardization">ISO</abbr> definisce il "sistema qualità" come la struttura organizzativa, le responsabilità, le procedure, i procedimenti e le risorse messe in atto per il perseguimento della qualità. Questo sistema gestisce la qualità in tre ambiti:</p>
<ul>
<li>La <strong>pianificazione</strong>, cioè le attività del sistema qualità mirate a fissare gli obiettivi di qualità, con i processi e le risorse necessari per conseguire tali obiettivi; è una premessa al controllo della qualità.</li>
<li>Il <strong>controllo</strong>, cioè le attività del sistema qualità pianificate e attuate affinché il prodotto soddisfi i requisiti attesi.</li>
<li>Il <strong>miglioramento continuo</strong>, secondo lo schema <abbr title="Plan, Do, Check, Act">PDCA</abbr>.</li>
</ul>
<p>Il sistema qualità è fissato nelle Norme di Progetto (il Piano di Qualifica fissa invece gli <em>obiettivi</em> di qualità: i piani fissano solo obiettivi e strategie per raggiungerli).</p><!-- ... boh?! -->
<h2>Modelli della qualità</h2>
<p>Per uniformare la percezione e la valutazione della qualità, è bene che committenti e fornitori si accordino su un <strong>modello</strong> da seguire per la qualità. Esistono vari modelli della qualità; ognuno di essi definisce le caratteristiche rilevanti che deve avere un prodotto "di qualità" e organizza tali caratteristiche in una struttura logica.</p>
<p>Ad esempio, <abbr title="International Organitazion for Standardization">ISO</abbr>/<abbr title="International Electrotechnical Commission">IEC</abbr> 9126 definisce 7 caratteristiche principali (suddivise poi in 31 sotto-caratteristiche):</p>
<ul>
<li>funzionalità;</li>
<li>affidabilità;</li>
<li>efficienza;</li>
<li>usabilità;</li>
<li>manutenibilità;</li>
<li>portabilità;</li>
<li>qualità in uso.</li>
</ul>
<p>Oltre a descriverle, il modello specifica anche come <em>misurarle</em>, cioè assegna ad ogni caratteristica una metrica (che è un modo per dare un significato a dei valori). Un modello è quindi uno strumento di definizione e di valutazione:</p>
<ul>
<li><strong>definizione</strong> perché cataloga in modo sistematico delle caratteristiche rilevanti;</li>
<li><strong>valutazione</strong> perché definisce delle metriche per la misurazione di tali caratteristiche.</li>
</ul>
<p>Sempre in <abbr title="International Organitazion for Standardization">ISO</abbr>/<abbr title="International Electrotechnical Commission">IEC</abbr> 9126, vengono proposte tre visioni della qualità:</p>
<ul>
<li>Visione esterna, relativa all'esecuzione del prodotto; è ciò che si osserva, quindi solo la punta dell'iceberg.</li>
<li>Visione interna, relativa al prodotto <em>non</em> in esecuzione; è ciò che deriva dalle scelte di progettazione, codifica e verifica, quindi si può vedere solo attraverso una revisione critica del prodotto.</li>
<li>Visione in uso, relativa alla percezione dell'utente finale.</li>
</ul>
<p>Mentre le visioni interna ed esterna si riferiscono al prodotto software, la visione in uso si riferisce agli <em>effetti</em> di tale prodotto.</p>
<h2>Qualità nel ciclo di vita</h2>
<p>Possiamo individuare una catena di dipendenze tra le varie visioni della qualità: la <strong>qualità di un processo</strong> influenza gli attributi della <strong>qualità interna</strong>, che influenza gli attributi della <strong>qualità esterna</strong>, che influenza gli attributi della <strong>qualità in uso</strong>.</p>
<p>È bene che i seguenti aspetti siano il meno distante possibile tra loro:</p>
<ol>
<li>qualità obiettivo;</li>
<li>qualità richiesta;</li>
<li>qualità progettata;</li>
<li>qualità stimata;</li>
<li>qualità consegnata.</li>
</ol>
<p>Il committente ha responsabilità sulle prime due; il fornitore su tutte quante tranne la prima.</p>
<h2>Metriche e misurazioni</h2>
<p>Una <strong>metrica</strong> è un modo per dare un significato a dei valori, quindi è l'interpretazione di un sistema di unità di misura. Una <strong>misurazione quantitativa</strong> è l'uso di una metrica per assegnare un valore su una scala predefinita.</p>
<p>Le metriche software permettono di quantificare sia un prodotto (e quindi predire i suoi attributi) sia un processo (al fine di monitorarlo e migliorarlo).</p>
<p>L'uso di una metrica assume che:</p>
<ul>
<li>Si può misurare un certo attributo (o proprietà) del software.</li>
<li>Esiste una relazione tra ciò che possiamo misurare e ciò che vogliamo sapere. Ad esempio, generalmente è possibile misurare solo attributi <em>interni</em> del software, mentre ciò che più spesso ci interessa sono i suoi attributi <em>esterni</em>: per capire il grado di manutenibilità di un software (attributo esterno), dobbiamo conoscere il numero di righe di codice, il numero di parametri per procedura, l'ampiezza del manuale utente... (attributi interni).</li>
<li>La suddetta relazione è stata formalizzata e validata.</li>
</ul>
<p>La selezione delle metriche (e la scelta dei criteri di accettazione) parte dall'analisi dei requisiti di qualità e dei vincoli di costo. Dopodiché:</p>
<ol>
<li>una volta selezionate le metriche, si può procedere alla misurazione;</li>
<li>poi si passa alla valutazione (che è una verifica quantificata);</li>
<li>e infine viene l'accettazione — basandosi, appunto, sui criteri di accettazione scelti.</li>
</ol>
<h2>Sviluppi e integrazioni a <abbr title="International Organitazion for Standardization">ISO</abbr>/<abbr title="International Electrotechnical Commission">IEC</abbr> 9126</h2>
<p><abbr title="International Organitazion for Standardization">ISO</abbr>/<abbr title="International Electrotechnical Commission">IEC</abbr> 9126 fu scritto nel 1991. Non era ben chiaro, però, come usare correttamente le metriche che questo standard definiva; a tale scopo, nel 1999, <abbr title="International Organitazion for Standardization">ISO</abbr> creò <abbr title="International Organitazion for Standardization">ISO</abbr>/<abbr title="International Electrotechnical Commission">IEC</abbr> 14598 (<em xml:lang="en">Information Technology — Software Product Evaluation</em>): se <abbr title="International Organitazion for Standardization">ISO</abbr>/<abbr title="International Electrotechnical Commission">IEC</abbr> 9126 definiva un <em>modello</em> della qualità del software, lo standard 14598 descriveva il <em>processo</em> di valutazione della qualità del software; questo si componeva di sei parti:</p>
<ol>
<li>parte inroduttiva;</li>
<li>pianificare e gestire una valutazione;</li>
<li>valutazione durante lo sviluppo;</li>
<li>valutazione nella fase di acquisizione;</li>
<li>in fase di <em xml:lang="en">assessment</em> di terza parte;</li>
<li>infine, un esempio di documentazione da produrre in fase di valutazione.</li>
</ol>
<p>Nel 2005, la famiglia <strong><abbr title="International Organitazion for Standardization">ISO</abbr>/<abbr title="International Electrotechnical Commission">IEC</abbr> 25000</strong> ha rimpiazzato gli standard 14598 e 9126, creando così un nuovo progetto più specifico di nome <abbr title="Systems and software Quality Requirements and Evaluation">SQuaRE</abbr>: <em xml:lang="en">Systems and software Quality Requirements and Evaluation</em>. Questa famiglia di standard ha lo scopo di creare un <em xml:lang="en">framework</em> per la valutazione della qualità del software.</p><!-- da dire q.cosa su SQuaRE... -->
</div>
</body>
</html>