Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FOGLI METRICI
Misurare il sistema
IPOTESI DI
MISURE
VARIAZIONE DEI PIANO GQM
FOGLI METRICI
SISTEMA
SOFTWARE Caratterizzare il sistema
SISTEMA 2
SOFTWARE DA
MIGLIORARE
SISTEMA
SOFTWARE
MIGLIORATO
PUNTI DI DEBOLEZZA
DISTANZE DAGLI
OBIETTIVI
Eseguire il processo di
miglioramento
4
FORMALIZZAZIONE DEL PROCESSO DI
SVILUPPO SOFTWARE
OBIETTIVI DI MISURAZIONE E
MODELLI DI QUALITÀ
CONOSCENZA
Definire il piano GQM
1.2
PIANO GQM DA VERIFICARE
IPOTESI DI 1.3
VARIAZIONE DEI
FOGLI METRICI PIANO GQM
PIANO DI MISURAZIONI
Rilevare le misure
1.6
SISTEMA SOFTWARE
FOGLI METRICI
MISURE
MISURE
Interpretare le misure
2.1
PUNTI DI DEBOLEZZA
PUNTI DI DEBOLEZZA
Individuare i fattori di
variazione
3.1
FATTORI DI VARIAZIONE
FOGLI METRICI
Individuare le ipotesi di
miglioramento
3.2
SCHEDA DESCRIZIONE
DEGLI INTERVENTI
Specificare le modifiche
SISTEMA SOFTWARE
alle componenti
4.2
FORMALIZZAZIONE DEL PROCESSO DI SVILUPPO
SOFTWARE
SPECIFICHE DELLE
MODIFICHE
Modificare il sistema
software
4.3
SISTEMA SOFTWARE
MODIFICATO
1 Misurare il sistema
1.1 Definire gli obiettivi di misurazione e i modelli di qualità
Obiettivo: Individuare e definire formalmente gli obiettivi della misurazione e i relativi modelli di qualità.
Procedura:
Procedura:
Procedura:
(correttezza sintattica)
1. Verificare che tutte le domande siano strutturate secondo lo schema della loro classe di appartenenza
2. Verificare che tutte le domande siano classificate per sotto obiettivi
3. Verificare che tutte le domande siano completate con le rispettive metriche
(correttezza semantica)
4. Verificare che tutte le domande siano rilevanti per gli obiettivi che dettagliano
5. Verificare la plausibilità delle relazioni tra domande ed obiettivi
6. Verificare che tutte le metriche abbiano, nel loro dominio di definizione, tutti i valori necessari per
rispondere esaurientemente alle rispettive domande
7. Verificare che tutte le metriche siano operative
8. Verificare che tutti gli schemi di interpretazione siano plausibili
9. Verificare che le modalità di rappresentazione e sintesi delle metriche favoriscano la leggibilità
I.S.C.: Disponibile Piano GQM oppure disponibili Piano GQM e Ipotesi di variazione dei fogli metrici
Procedura:
Procedura:
Procedura:
1. Raccogliere dal sistema software tutti i valori delle metriche dirette elencate nel piano di misurazioni,
effettuando gli eventuali controlli sui valori misurati
2. Calcolare tutti i valori delle metriche indirette contenute nel piano GQM sulla base dei valori raccolti al
passo 1
3. Organizzare tutti i valori, derivati nei passi precedenti, in un report di misure, fornendo eventualmente anche
una rappresentazione grafica che aiuti a rendere più facilmente leggibili le metriche che possono avere
molti valori di misure
Output: Misure
Procedura:
1. Per ogni misura rilevata
1.1 Ricercare nel II Quadrante, del foglio metrico del relativo Goal, la corrispondente baseline
hypothesis
1.2 Valutare la distanza tra la misura e l'ipotesi
1.3 Indicare nelle distanze dagli obiettivi la metrica, il valore rilevato nella misura e di quanto questo
valore sia distante dalla baseline hypothesis
Input: Distanze dagli obiettivi, Sistema software, Piano GQM, Fogli metrici
Procedura:
1. Per ogni foglio metrico
1.1 Se le distanze dagli obiettivi indicano il raggiungimento di tutti gli obiettivi delle baseline
hypothesis o di migliori e se rispondendo alle question si ritiene di aver raggiunto il goal
1.1.1 Se si ritiene che alcune baseline hypothesis possano essere avvicinate ai valori riportati
negli schemi di interpretazione del piano GQM
1.1.1.1 Suggerire tali variazioni come ipotesi di variazione dei fogli metrici in
modo da usare questi suggerimenti nella preparazione dei fogli metrici
1.1.1.2 Designare il sistema software ad una nuova misurazione, anche se migliorato
Altrimenti
1.1.1.3 Designare il sistema software ad essere consegnato all'utente
Altrimenti
1.1.2 Se per alcune metriche le distanze dagli obiettivi indicano il raggiungimento delle
baseline hypothesis o di migliori e si ritiene che tali baseline hypothesis possano essere
avvicinate ai valori riportati negli schemi di interpretazione del piano GQM o che il
raggiungimento delle baseline hypothesis non sia attualmente realizzabile e/o che i
fattori di variazione indicati non influiscono sulla qualità del prodotto e/o che l'impatto
dei fattori di variazione non è significativo
1.1.3.1 Suggerire tali variazioni come ipotesi di variazione dei fogli metrici in
modo da usare questi suggerimenti nella successiva preparazione dei fogli
metrici
1.1.4 Indicare e riportare come punti di debolezza, quei fattori di qualità (presenti nel I
Quadrante del foglio metrico considerato) che hanno almeno una metrica relativa che
ha, come valore misurato, un valore peggiore di quello indicato nelle baseline
hypothesis. Riportare anche le metriche carenti relative a ogni fattore di qualità
individuato e il riferimento al foglio metrico
1.2 Se sono state prodotte ipotesi di variazione dei fogli metrici
Caso di studio Ingegneria del Software II 12
1.2.1 Rieseguire l'attività 1.4 (Produrre i fogli metrici) che produrrà come output una nuova
versione dei fogli metrici da usare nel seguito dell'esecuzione del processo
Output: Punti di debolezza, Sistema software migliorato, Ipotesi di variazione dei fogli metrici
I.E.C.: Realizzato il prodotto Punti di debolezza, oppure realizzato il prodotto Sistema software migliorato, oppure
realizzati i prodotti Sistema software migliorato e Ipotesi di variazione dei fogli metrici, oppure realizzati i prodotti
Punti di debolezza e Ipotesi di variazione dei fogli metrici
Procedura:
Procedura:
Input: Distanze dagli obiettivi, Ipotesi di miglioramento del sistema software, Sistema software
Procedura:
1. Con l'ausilio delle distanze dagli obiettivi, individuare le componenti del sistema software sulle quali
intervenire
2. Per ogni componente individuata
2.1 In base alle ipotesi di miglioramento, specificare le tipologie degli interventi da eseguire sulla
componente
Input: Formalizzazione del processo di sviluppo software, Scheda descrizione degli interventi, Ipotesi di miglioramento
del sistema software
Procedura:
1. Raggruppare le componenti, elencate nella scheda descrizione degli interventi, per tipologia di intervento da
effettuare
2. Per ciascuna tipologia di intervento
2.1 Individuare nella formalizzazione del processo di sviluppo software, quali sono le attività da
eseguire
2.2 Se nelle ipotesi di miglioramento sono presenti attività di base o attività elementari diverse e/o
nuove rispetto a quelle precedentemente individuate nel punto 2.1
2.2.1 Integrare le attività della formalizzazione del processo di sviluppo software con quelle
presenti nelle ipotesi di miglioramento
2.2.2 Riportare nel miglioramento del processo di sviluppo software le attività modificate al
punto 2.2.1 e le indicazioni per integrarle nella formalizzazione del processo di
sviluppo software.
2.3 Produrre un piano esecutivo accompagnato dagli scenari procedurali delle attività, dalla
descrizione dei manufatti utilizzati e dall'elenco delle componenti su cui eseguire le attività
(specifiche delle modifiche).
3. Raggruppare tutte le tipologie di interventi che sono coperte dallo stesso piano esecutivo
I.E.C.: Realizzato il prodotto specifiche delle modifiche oppure realizzati i prodotti specifiche delle modifiche e
miglioramento del processo di sviluppo software
Procedura:
• Distanze dagli obiettivi: documento che contiene una lista di tutte le metriche presenti nel II Quadrante dei fogli
metrici, per ogni metrica, la misura rilevata e di quanto questa sia distante dalla baseline hypothesis (può essere
indicato un valore numerico o un commento che in ogni caso quantifichi la distanza).
• Fattori di variazione: documento che contiene la lista dei fattori di qualità carenti, le relative metriche che lo
rendono tale, tutti i fattori di variazione che hanno impatto sulle metriche riportate e il riferimento al foglio metrico
di appartenenza.
• Fogli metrici: insieme di documenti di supporto alla successiva analisi e interpretazione delle misure al fine di
individuare possibili ipotesi di miglioramento dell'oggetto sotto misurazione o del modello di qualità stesso. Un
foglio metrico è presentato possibilmente su un'unica pagina e ha la seguente struttura:
Intestazione
II Quadrante IV Quadrante
Intestazione: contiene l'etichetta e la specifica dell'obiettivo della misurazione nei suoi 5 aspetti: Oggetto, Scopo,
Obiettivo di qualità, Punto di vista, Contesto (vedere Obiettivi di misurazione e modelli di qualità);
I Quadrante: contiene il modello di qualità, ovvero i fattori di qualità con le relative metriche utili ad eseguire la
misurazione (specificate per fattore di qualità di appartenenza);
II Quadrante: contiene gli obiettivi minimi da raggiungere per le metriche del I Quadrante (baseline hypothesis);
III Quadrante: contiene i fattori che si ritiene influenzino il modello di qualità (specificando le metriche che
influenzano);
IV Quadrante: contiene le dipendenze tra i fattori di variazione del III Quadrante e i fattori di qualità del I
Quadrante.
• Formalizzazione del processo di sviluppo software: processo di sviluppo software formalizzato usando il
linguaggio di modellazione Formal Structured Planning (FSP).
• Ipotesi di variazione dei fogli metrici: documento in cui sono riportati, in modo informale, le possibili variazioni
da apportare ai fogli metrici in termini di nuovi valori delle baseline hypothesis, modifiche dei fattori di variazione
e del loro impatto sulle baseline hypothesis (vedere Fogli metrici).
• Ipotesi di miglioramento del sistema software: documento in cui sono riportati, in modo informale, quali
possono essere gli interventi da effettuare sul sistema software al fine di migliorarlo, specificati in termini di
miglioramenti al processo di sviluppo utilizzato per produrre il sistema e al sistema.
• Miglioramento del processo di sviluppo software: documento in cui sono elencate le modifiche da riportare alla
formalizzazione del processo di sviluppo software
• Misure: insieme di schede in cui sono riportati i risultati della rilevazione delle misure. Oltre alla data di consegna
e il nome di chi ha effettuato le rilevazioni, su tali schede è presente:
Inoltre tali schede possono essere accompagnate da una rappresentazione grafica di quelle metriche che possono
avere molti valori di misure, in modo da renderle più facilmente leggibili.
• Obiettivi di misurazione e modelli di qualità: documento contenente la lista degli obiettivi della misurazione,
specificati secondo il template proposto in [BAS94] e di seguito riportato:
Per ogni obiettivo è anche indicato il modello di qualità, ovvero i fattori di qualità che l'oggetto da misurare deve
avere per soddisfare l'obiettivo e, per ogni fattore di qualità, le possibili metriche per misurarlo.
• Piano di misurazioni: definizione concisa del processo di raccolta delle misure. Per ogni metrica viene specificato
chi, quando, come e con quali mezzi effettuare le misure, e tutti i controlli da effettuare sui valori delle misure.
• Piano GQM: documento che descrive formalmente il raffinamento degli obiettivi della misurazione (Goal) in
domande operative (Question) e successivamente delle domande in metriche (Metric). Il piano GQM contiene
anche la descrizione di tutte le metriche dirette che devono essere raccolte per poter calcolare ogni metrica
indiretta. Dovendo servire anche come linea guida per la successiva fase di interpretazione delle misure, il piano
GQM contiene anche gli schemi per l'interpretazione del significato dei valori delle misure corrispondenti alle
metriche, quando questa operazione di interpretazione non è banale.
• Piano GQM da verificare: piano GQM (vedere definizione di Piano GQM) da sottoporre all'attività di verifica di
correttezza e completezza.
• Punti di debolezza: documento che contiene la lista di quei fattori di qualità con le relative metriche (entrambi
indicati nel I Quadrante dei fogli metrici) le cui baseline hypothesis (indicate nel II Quadrante dei fogli metrici)
differiscono dalle misure rilevate. Per ogni fattore di qualità è indicato anche il foglio metrico di appartenenza.
• Richieste di miglioramento: descrizione in qualunque forma di quello che si vuole migliorare del sistema software
• Scheda descrizione degli interventi: documento contenente una lista delle componenti del sistema software sulle
quali intervenire e tutte le tipologie di interventi da effettuare su ognuna di esse.
• Sistema software: l'insieme completo dei programmi, delle procedure e dell'associata documentazione e dei dati,
designato ad essere usato nelle attività del processo che lo richiedono come input.
• Sistema software migliorato: l'insieme completo dei programmi, delle procedure e dell'associata documentazione
e dei dati, designato ad essere consegnato all'utente in quanto si ritiene che abbia raggiunto gli obiettivi di qualità
prefissati.
• Sistema software modificato: l'insieme completo dei programmi, delle procedure e dell'associata documentazione
e dei dati, risultato dell'esecuzione del processo di miglioramento e designato ad essere nuovamente sottoposto a
misurazione.
1.2
1.3
1.4
Rilevare le misure
1.6
Interpretare le misure
2.1
Individuare i punti di
debolezza
2.2
…
Caso di studio Ingegneria del Software II 21
…
Individuare i fattori di
variazione
3.1
Individuare le ipotesi di
miglioramento
3.2
STOP
Conoscenza pag. 25
Distanze dagli obiettivi pag. 81
Fattori di variazione pag. 95
Fogli metrici pag. 43
Ipotesi di miglioramento del sistema software pag. 96
Miglioramento del processo di sviluppo software pag. 107
Misure pag. 47
Obiettivi di misurazione e modelli di qualità pag. 26
Piano di misurazioni pag. 35
Piano GQM pag. 31
Piano GQM da verificare pag. 27
Punti di debolezza pag. 94
Scheda descrizione degli interventi pag. 97
Specifiche delle modifiche pag. 98
NOTE:
I manufatti Sistema software e Sistema software modificato sono presenti in formato elettronico nel CD-ROM allegato.
Il Sistema software nella directory GEFIN-Originale, il Sistema software modificato nella directory GEFIN-1
• esperienza derivante dalla partecipazione alla produzione del sistema software stesso
• dispense, articoli e testi: [VIS99], [VIS00], [PAR83], [PAR72], [PRESM], [BAS94], [FRAN96], [VSB99]
Fattori di qualità
ACC – Accoppiamento dei moduli del sistema, dove, per ogni modulo, il valore di ACC è calcolato come
ACC = 1 – 1 / ( DI + 2CI + DO + 2CO + GD + 2GC + FANIN + FANOUT ) e DI è il numero di parametri-
dato di input al modulo, DO è il numero di parametri-dato di output del modulo, CI è il numero di parametri di
controllo di input al modulo, CO è il numero di parametri di controllo di output del modulo, GD è il numero di
variabili globali utilizzate come dati nel modulo, GC è il numero di variabili globali utilizzate per controllo dal
modulo, FANIN è il numero di moduli che richiamano il modulo e FANOUT è il numero di moduli richiamati
dal modulo;
TM – Distribuzione della tipologia dei moduli tra i moduli del sistema;
MNS – Numero di moduli che nascondono un segreto;
MDS – Numero di moduli che conoscono la struttura di un dato;
MTS – Numero di moduli che conoscono la struttura di una tavola della base di dati;
SN – Numero di segreti nascosti per modulo;
PT5NF – Normalizzazione della base di dati, dove PT5NF = NT5NF / NT e NT5NF è il numero di tavole in
quinta forma normale presenti nel database, NT è il numero di tavole presenti nel database
• Riusabilità: il grado in cui un sistema, o alcune sue parti, può essere utilizzato nuovamente in altri sistemi
(riusabilità esterna) e il grado in cui alcune parti del sistema possono essere utilizzate più volte all'interno del
sistema stesso (riusabilità interna). La riusabilità è correlata al modo in cui il sistema è strutturato e alla portata
delle funzioni svolte dal sistema: infatti moduli che nascondono un solo segreto e che svolgono un'unica funzione
hanno alta probabilità di poter essere riusati in altri sistemi o, nello stesso sistema, da tutti quei moduli che hanno
bisogno di utilizzare la funzione suddetta.
NOTE:
Il piano GQM qui di seguito riportato NON è la versione definitiva, ma una versione da sottoporre all'attività di verifica
(attività 1.3). Per la versione definitiva usata nel seguito del processo vedere il documento Piano GQM a pagina 31.
TAV lista delle tavole presenti nel database usato dal sistema
MxTAV per ogni modulo, la o le tavole di cui il modulo conosce la struttura (tabella cross-reference)
Interpretazione: il valore di ACC è compreso tra 0 e 1. Il valore 0 corrisponde a basso accoppiamento, mentre il
valore 1 corrisponde ad alto accoppiamento. Per ogni modulo, il valore ACC deve essere il più vicino possibile a
0 e comunque non deve salire al di sopra di 0.860. Valori vicini a 0 indicano un alto grado di indipendenza del
modulo dagli altri e quindi che l'impatto di una modifica sul modulo sia localizzata e interessi un numero molto
basso, se non nullo, di moduli. Il valore di GD e GC deve essere pari a 0 per tutti i moduli, in caso contrario
l'impatto di una modifica su un modulo che usa una variabile globale potrebbe estendersi agli altri moduli che
usano la stessa variabile globale. Il valore di CO deve essere 0 per tutti i moduli per evitare che decisioni prese in
un modulo interessino moduli che non appartengono alla sua portata del controllo. Il valore di CI deve essere il
più vicino possibile a 0 in quanto la non perfetta conoscenza del suo significato può rendere ogni intervento di
Interpretazione: il valore di TM deve essere pari a 1 per ogni modulo. Un valore maggiore di 1 indica che il
modulo svolge più funzioni principali del sistema e questo implica difficoltà nel collaudo, manutenzione ed
estensione del sistema, oltre che una difficoltà nel capire la responsabilità del modulo e le funzioni da esso svolte.
MNS per ogni segreto, il numero di moduli che conoscono questo segreto
Interpretazione: per ogni segreto, il valore di MNS non deve superare il valore 5 e comunque deve essere un
valore vicino a 3. In caso contrario l'impatto della modifica di un dettaglio (segreto) si estenderebbe a tutti i
moduli che conoscono lo stesso dettaglio (segreto). Valori bassi di MNS indicano quindi una maggiore
localizzazione degli interventi di manutenzione.
MDS per ogni struttura dati, il numero di moduli che conoscono questa struttura
Interpretazione: per ogni struttura dati, il valore di MDS non deve superare il valore 4 e comunque deve essere il
più vicino possibile a 3.
MTS per ogni tavola del database, il numero di moduli che conoscono la sua struttura
Interpretazione: per ogni tavola, il valore di MTS deve essere non superiore a 1. In caso contrario una modifica
alla struttura della tavola avrebbe impatto su tutti i moduli che la conoscono.
Interpretazione: il valore di SN deve essere non superiore ad 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
NT5NF numero di tavole in quinta forma normale (5NF) presenti nel database
NT numero di tavole presenti nel database
PT5NF = NT5NF / NT
Interpretazione: il valore di PT5NF deve essere uguale a 1, in caso contrario è possibile che più moduli che
svolgono funzioni diverse accedano alla stessa tavola e quindi questa tavola aumenti l'accoppiamento dei moduli
suddetti, oppure che un modulo effettui più funzioni diverse sulla stessa tavola, diminuendo così l'indipendenza
funzionale.
Interpretazione: il valore di SN deve essere non superiore ad 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
Interpretazione: il valore di FANIN indica il grado di riusabilità interna al sistema del modulo: a un valore alto di
FANIN corrisponde un modulo che svolge una precisa funzione richiesta da altri moduli, quindi si tratta di un
Modello di conferma
Q1,7 Qual è l'impatto delle modifiche ?
MxMMODRIUS scheda dei moduli del vecchio sistema, modificati e riusati per il nuovo sistema
(tabella cross-reference)
NMRIUS numero di moduli del vecchio sistema modificati per il nuovo
NMMOD numero di moduli del vecchio sistema riusati nel nuovo
PERMMOD = NMMOD / NMOD
PERMRIUS = NMRIUS / NMOD
Interpretazione: i valori di PERMMOD e PERMRIUS sono compresi tra 0 e 1. Il valore di PERMMOD deve
essere il più vicino possibile a 0, non deve superare il valore 0.05 per garantire una struttura che localizza le
informazioni. Il valore di PERMRIUS deve essere il più vicino possibile a 1, non deve essere inferiore al valore
0.95 per garantire che il sistema sia stato modificato riusando la maggior parte delle componenti della versione
precedente
CORREZIONI APPORTATE:
NOTE:
Il piano GQM qui di seguito riportato è la versione definitiva usata nel seguito del processo.
TAV lista delle tavole presenti nel database usato dal sistema
MxTAV per ogni modulo, la o le tavole di cui il modulo conosce la struttura (tabella cross-reference)
Interpretazione: il valore di ACC è compreso tra 0 e 1. Il valore 0 corrisponde a basso accoppiamento, mentre il
valore 1 corrisponde ad alto accoppiamento. Per ogni modulo, il valore ACC deve essere il più vicino possibile a
0 e comunque non deve salire al di sopra di 0.860 (fanno eccezione i moduli di servizio per i quali FANIN
elevato aumenta ACC ma non è indice di cattiva modularità, e i moduli di controllo per i quali è normale un
valore elevato di FANOUT). Valori vicini a 0 indicano un alto grado di indipendenza del modulo dagli altri e
quindi che l'impatto di una modifica sul modulo sia localizzata e interessi un numero molto basso, se non nullo,
di moduli. Il valore di GD e GC deve essere pari a 0 per tutti i moduli, in caso contrario l'impatto di una modifica
su un modulo che usa una variabile globale potrebbe estendersi agli altri moduli che usano la stessa variabile
globale. Il valore di CO deve essere 0 per tutti i moduli per evitare che decisioni prese in un modulo interessino
moduli che non appartengono alla sua portata del controllo. Il valore di CI deve essere il più vicino possibile a 0
Interpretazione: il valore di TM deve essere pari a 1 per ogni modulo. Un valore maggiore di 1 indica che il
modulo svolge più funzioni principali del sistema e questo implica difficoltà nel collaudo, manutenzione ed
estensione del sistema, oltre che una difficoltà nel capire la responsabilità del modulo e le funzioni da esso svolte.
MNS per ogni segreto, il numero di moduli che conoscono questo segreto
Interpretazione: per ogni segreto, il valore di MNS non deve superare il valore 5 e comunque deve essere un
valore vicino a 3. In caso contrario l'impatto della modifica di un dettaglio (segreto) si estenderebbe a tutti i
moduli che conoscono lo stesso dettaglio (segreto). Valori bassi di MNS indicano quindi una maggiore
localizzazione degli interventi di manutenzione.
MDS per ogni struttura dati, il numero di moduli che conoscono questa struttura
Interpretazione: per ogni struttura dati, il valore di MDS non deve superare il valore 4 e comunque deve essere il
più vicino possibile a 3. Per moduli che conoscono una struttura dati, si intendono quei moduli che usano dati
contenuti in essa per eseguire una elaborazione (non vanno considerati i moduli che scrivono dati nella struttura);
quindi un alto valore di MDS implica che una modifica alla struttura dati si estenderebbe a tutti i moduli che
usano i dati in essa contenuta per eseguire un'elaborazione.
MTS per ogni tavola del database, il numero di moduli che conoscono la sua struttura
Interpretazione: per ogni tavola, il valore di MTS deve essere non superiore a 1. In caso contrario una modifica
alla struttura della tavola avrebbe impatto su tutti i moduli che la conoscono.
Interpretazione: il valore di SN deve essere pari ad 1 per tutti i moduli. Un valore maggiore di 1 indica una bassa
indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la manutenibilità
del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
NT5NF numero di tavole in quinta forma normale (5NF) presenti nel database
NT numero di tavole presenti nel database
PT5NF = NT5NF / NT
Interpretazione: il valore di PT5NF è compreso tra 0 e 1. Il valore di PT5NF deve essere uguale a 1, in caso
contrario è possibile che più moduli che svolgono funzioni diverse accedano alla stessa tavola e quindi questa
tavola aumenti l'accoppiamento dei moduli suddetti, oppure che un modulo effettui più funzioni diverse sulla
stessa tavola, diminuendo così l'indipendenza funzionale.
Interpretazione: il valore di SN deve essere pari ad 1 per tutti i moduli. Un valore maggiore di 1 indica una bassa
indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la manutenibilità
del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
Interpretazione: il valore di FANIN indica il grado di riusabilità interna al sistema del modulo: a un valore alto di
FANIN corrisponde un modulo che svolge una precisa funzione richiesta da altri moduli, quindi si tratta di un
modulo di servizio. Inoltre moduli con alto FANIN presenti a un livello inferiore della structure chart, con molta
probabilità presentano anche riusabilità esterna.
Modello di conferma
Q1,7 Qual è l'impatto delle modifiche ?
MxMMODRIUS scheda dei moduli del vecchio sistema, modificati e riusati per il nuovo sistema
(tabella cross-reference)
NMRIUS numero di moduli del vecchio sistema modificati per il nuovo
NMMOD numero di moduli del vecchio sistema riusati nel nuovo
PERMMOD = NMMOD / NMOD
PERMRIUS = NMRIUS / NMOD
Interpretazione: i valori di PERMMOD e PERMRIUS sono compresi tra 0 e 1. Il valore di PERMMOD deve
essere il più vicino possibile a 0, non deve superare il valore 0.05 per garantire una struttura che localizza le
informazioni. Il valore di PERMRIUS deve essere il più vicino possibile a 1, non deve essere inferiore al valore
0.95 per garantire che il sistema sia stato modificato riusando la maggior parte delle componenti della versione
precedente
NMOD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• contare il numero di moduli distinti presenti in essa
Controlli da effettuare nessuno
S
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• individuare e riportare i segreti (dettagli) distribuiti tra i moduli presenti in essa
Controlli da effettuare nessuno
MxS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed S
• considerare i valori rilevati con le metriche M ed S e la structure chart del sistema
(o anche la call graph) presente nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e i segreti elencati in
Come misurare
S
• usando la structure chart, per ogni modulo nella tabella, contrassegnare con una
"x" le caselle in corrispondenza dei segreti che nasconde
Controlli da effettuare ogni segreto nella tabella deve essere nascosto in almeno un modulo
T
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
documenti di progetto
Come misurare
• individuare e riportare le tipologie di moduli presenti nella structure chart (moduli
efferenti, afferenti, di controllo, ecc…)
Controlli da effettuare nessuno
SD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare il dizionario dei dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le strutture di dati distinte presenti in esso
Controlli da effettuare nessuno
SDxM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed SD
• considerare i valori rilevati con le metriche M ed SD e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le strutture dati
elencate in SD
Come misurare
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle strutture dati di cui conosce la struttura (per individuarle,
usare la specifica del modulo e verificare se il modulo usa dati in essa contenuti
per eseguire un'elaborazione)
Controlli da effettuare ogni struttura dati nella tabella deve essere usata in almeno un modulo
TAV
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le tavole presenti in esso
Controlli da effettuare nessuno
MxTAV
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M e TAV
• considerare i valori rilevati con le metriche M e TAV e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le tavole elencate
Come misurare in TAV
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle tavole di cui conosce la struttura (per individuarle, usare la
specifica del modulo)
Controlli da effettuare nessuno
DO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato da elaborare"
Controlli da effettuare nessuno
CI
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in input del
tipo "dato di controllo"
Controlli da effettuare nessuno
CO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato di controllo"
Controlli da effettuare nessuno
GD
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente le variabili usate dal modulo e contare il numero di variabili di tipo
globale usate come dato da elaborare (usare la specifica del modulo)
Controlli da effettuare nessuno
GC
FANIN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nelle specifiche dei moduli) che richiamano il modulo suddetto
il valore di FANIN deve essere maggiore o uguale a 1, tranne per il modulo di
Controlli da effettuare
livello 1 della structure chart
FANOUT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nella specifica del modulo) richiamati dal modulo suddetto
Controlli da effettuare nessuno
TM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxT
• per ogni modulo elencato nella tabella MxT, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di TM deve essere maggiore o uguale a 1
MNS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni segreto elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di MNS deve essere maggiore o uguale a 1
MTS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxTAV
• per ogni tavola elencata nella tabella MxTAV, contare il numero di caselle, ad essa
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
SN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni modulo elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
NT5NF
Chi deve misurare ingegnere del software
Quando misurare durante l'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare • contare il numero di tabelle in quinta forma normale contenute nello schema della
base di dati
Controlli da effettuare nessuno
NT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica TAV
Come misurare • contare il numero di tabelle elencate in TAV
Controlli da effettuare nessuno
NMRIUS
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "riusato"
Controlli da effettuare nessuno
NMMOD
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "modificato"
Controlli da effettuare nessuno
TM: distribuzione della tipologia dei moduli tra i moduli del sistema
- Riusabilità:
SN: massimo 1 per tutti i moduli del sistema; • esperienza del team di progetto nella progettazione delle interfacce tra le singole componenti
del sistema
PT5NF: pari a 1;
la maggiore esperienza nel limitare le interazioni tra i moduli al semplice passaggio di
- Riusabilità: controllo (mediante chiamata/sincronizzazione) o allo scambio (in input/output) dei soli
dati necessari, comporta la diminuzione dell'accoppiamento dei moduli (ACC). Inoltre
SN: pari a 1 per tutti i moduli del sistema; se i dati scambiati sono dati elementari e non strutture dati, si ottiene la diminuzione del
numero di moduli che conoscono una struttura dati (MDS) in quanto localizzata a pochi
moduli
FANIN: maggiore del 30% dei moduli del sistema per i moduli riusabili
esternamente; compreso tra il 5% e il 30% dei moduli del sistema la maggiore esperienza nel limitare la possibilità di scambio di dati tra i moduli al solo
per i moduli riusabili internamente; minore del 5% dei moduli del uso della loro interfaccia, comporta la diminuzione della necessità di usare variabili
sistema per i moduli generici globali (GD e GC) e quindi la diminuzione dell'accoppiamento dei moduli (ACC)
la maggiore esperienza nel metodo della decomposizione senza perdita o nell'uso del
data modelling comporta una migliore normalizzazione della base di dati (PT5NF)
MxMMODRIUS pag. 76
NMMOD pag. 77
NMRIUS pag. 78
PERMMOD pag. 79
PERMRIUS pag. 80
NOTE:
Le rilevazioni delle misure per le metriche relative al modello di conferma del piano GQM sono state rilevate al termine
dell'esecuzione degli interventi sul sistema (come si può notare dalle date di consegna delle schede).
• il valore di PERMRIUS pari a 0.98 e quindi molto vicino a 1 e comunque superiore a 0.95 dimostra che il fattore di
qualità riusabilità non sia un punto di debolezza per il sistema;
• il valore di PERMMOD pari a 0.26 e quindi superiore a 0.05 dimostra che il fattore di qualità modularità sia un
punto di debolezza per il sistema. Il valore elevato comunque è giustificato in parte dal fatto che sul sistema sono
stati apportati molti interventi di manutenzione.
GOAL: G1
QUESTION: Q1,1
METRICA: M
VALORE RILEVATO:
CODICE MODULO
M1 Aggiornare Disponibilità Finanziaria e Disponibilità di Cassa
M2 Calcolare Disponibilità di Cassa Non Impegnata
M3 Calcolare Prenotazione Non Impegnata
M4 Calcolare Situazione Eco./Fin.
M5 Consolidare Automaticamente
M6 Consolidare Entrate
M7 Consolidare Manualmente Finanziamento
M8 Consolidare Manualmente Prenotazione
M9 Controllare Consistenza Cancellazione Entrata
M10 Controllare Consistenza Cancellazione Finanziamento
M11 Controllare Consistenza Cancellazione Impegno
M12 Controllare Consistenza Cancellazione Prenotazione
M13 Controllare Consistenza Creazione Entrata
M14 Controllare Consistenza Creazione Finanziamento
M15 Controllare Consistenza Creazione Impegno
M16 Controllare Consistenza Creazione Prenotazione
M17 Controllare Consistenza Modifica Entrata
M18 Controllare Consistenza Modifica Finanziamento
M19 Controllare Consistenza Modifica Impegno
M20 Controllare Consistenza Modifica Prenotazione
M21 Controllare Consistenza Creazione Pagamento
M22 Inserire Pagamento Maggiore
M23 Controllare Scadenze
M24 Convertire Valuta
M25 Data Banker
M26 Data Banker Create
M27 Data Banker Delete
M28 Data Banker Read
M29 Data Banker Update
M30 Gestire Schermate
M31 Inserire Entrata
M32 Inserire Finanziamento
M33 Inserire Impegno
M34 Inserire Pagamento
M35 Inserire Pagamento Prenotazione Esaurita
M36 Inserire Prenotazione
M37 Leggere Metadati
M38 Main
M39 Modificare/Cancellare Entrata
M40 Modificare/Cancellare Finanziamento
M41 Modificare/Cancellare Impegno
M42 Modificare/Cancellare Prenotazione
M43 Navigare Entrate
M44 Navigare Finanziamenti
M45 Navigare Impegni
M46 Navigare Pagamenti
M47 Navigare Prenotazioni
M48 Selezionare Finanziamento da Consolidare
M49 Selezionare Prenotazione da Consolidare
M50 Trattare Errore
NOTE: viene indicato anche il codice in modo da rendere più leggibili le tabelle delle successive metriche, nelle quali
verrà usato il codice al posto del nome del modulo
GOAL: G1
QUESTION: Q1,1
METRICA: NMOD
VALORE RILEVATO: 50
GOAL: G1
QUESTION: Q1,3
METRICA: T
VALORE RILEVATO:
TIPOLOGIA
Controllo
Afferente
Efferente
Trasformazione
Data Banker
GOAL: G1
QUESTION: Q1,4
METRICA: TAV
VALORE RILEVATO:
TAVOLA
Finanziamenti
Entrate
Prenotazioni
Impegni
Pagamenti
Finanziamenti Entrate
Finanziamenti Prenotazioni
Prenotazioni Impegni
Impegni Pagamenti
GOAL: G1
QUESTION: Q1,4
METRICA: SD
VALORE RILEVATO:
STRUTTURA DATI
db_request
db_result
JoinTab
INS_RIC
Metadati
MOD_CANC_RIC
RIC
TipoValuta
GOAL: G1
QUESTION: Q1,2
METRICA: S
VALORE RILEVATO:
CODICE SEGRETO
S1 algoritmo di conversione valuta (Euro-Lire)
S2 algoritmo per la generazione automatica della chiave di un record
S3 D.B.M.S. usato
S4 gestione della situazione di un aumento di un impegno e della prenotazione che non riesce a coprirlo
S5 gestione dell'interfaccia grafica
S6 gestione messaggistica di errore
S7 metodo per il calcolo della disponibilità di cassa non impegnata
S8 metodo per il calcolo della parte di prenotazione non impegnata
S9 metodo per il calcolo della situazione economica e finanziaria
S10 metodo per il consolidamento automatico di un finanziamento
S11 metodo per il consolidamento automatico di una entrata
S12 metodo per il consolidamento automatico di una prenotazione
S13 metodo per il consolidamento manuale di un finanziamento
S14 metodo per il consolidamento manuale di una prenotazione
S15 metodo per la cancellazione di un finanziamento
S16 metodo per la cancellazione di un impegno
S17 metodo per la cancellazione di una entrata
S18 metodo per la cancellazione di una prenotazione
S19 metodo per la modifica di un finanziamento
S20 metodo per la modifica di un impegno
S21 metodo per la modifica di una entrata
S22 metodo per la modifica di una prenotazione
S23 metodo per l'aggiornamento della situazione economica e finanziaria
S24 metodo per l'individuazione delle scadenze
S25 metodo per l'inserimento di un nuovo finanziamento
S26 metodo per l'inserimento di un nuovo impegno
S27 metodo per l'inserimento di un nuovo pagamento quando l'importo è uguale all'impegno
S28 metodo per l'inserimento di un nuovo pagamento quando l'importo è maggiore dell'impegno
S29 metodo per l'inserimento di un nuovo pagamento quando l'importo è minore dell'impegno
S30 metodo per l'inserimento di una nuova entrata
S31 metodo per l'inserimento di una nuova prenotazione
S32 modalità di presentazione dati richiesti per la navigazione degli impegni
S33 modalità di presentazione dati richiesti per la navigazione dei finanziamenti
S34 modalità di presentazione dati richiesti per la navigazione dei pagamenti
S35 modalità di presentazione dati richiesti per la navigazione delle entrate
S36 modalità di presentazione dati richiesti per la navigazione delle prenotazioni
S37 modalità di presentazione dati richiesti per la variazione degli impegni
S38 modalità di presentazione dati richiesti per la variazione dei finanziamenti
S39 modalità di presentazione dati richiesti per la variazione delle entrate
S40 modalità di presentazione dati richiesti per la variazione delle prenotazioni
S41 modalità di presentazione dati richiesti per l'inserimento degli impegni
S42 modalità di presentazione dati richiesti per l'inserimento dei finanziamenti
S43 modalità di presentazione dati richiesti per l'inserimento dei pagamenti
S44 modalità di presentazione dati richiesti per l'inserimento delle entrate
S45 modalità di presentazione dati richiesti per l'inserimento delle prenotazioni
S46 modalità di presentazione finanziamenti consolidabili manualmente
S47 modalità di presentazione prenotazioni consolidabili manualmente
S48 operazioni da eseguire al lancio del sistema
S49 ricerca entrate e modalità di presentazione risultati
S50 ricerca finanziamenti e modalità di presentazione risultati
S51 ricerca impegni e modalità di presentazione risultati
S52 ricerca pagamenti e modalità di presentazione risultati
S53 ricerca prenotazioni e modalità di presentazione risultati
S54 accesso ai metadati
S55 accesso ai servizi offerti dal data banker
NOTE: viene indicato anche il codice in modo da rendere più leggibili le tabelle delle successive metriche, nelle quali
verrà usato il codice al posto del nome del segreto
GOAL: G1
QUESTION: Q1,2
METRICA: MxS
VALORE RILEVATO: (le righe contengono i segreti, le colonne i moduli)
M10
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M11
M1
M2
M3
M4
M5
M6
M7
M8
M9
S1 x
S2
S3
S4
S5
S6
S7 x
S8 x
S9 x
S10 x
S11 x
S12 x
S13 x
S14 x
S15 x
S16 x
S17 x
S18 x
S19 x
S20 x
S21 x
S22 x
S23 x
S24 x
S25 x
S26 x
S27 x
S28 x
S29 x
S30 x
S31 x
S32
S33
S34
S35
S36
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M38
M39
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49
M50
S1
S2 x x
S3 x x x x
S4 x
S5 x
S6 x
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
S28
S29
S30
S31
S32 x
S33 x
S34 x
S35 x
S36 x
S37 x
S38 x
S39 x
S40 x
S41 x
S42 x
S43 x
S44 x
S45 x
S46 x
S47 x
S48 x
S49 x
S50 x
S51 x
S52 x
S53 x
S54 x
S55 x
GOAL: G1
QUESTION: Q1,3
METRICA: MxT
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tipologie)
GOAL: G1
QUESTION: Q1,4
METRICA: SDxM
VALORE RILEVATO: (le righe contengono i moduli, le colonne le strutture dati)
MOD_CANC_RIC
TipoValuta
db_request
INS_RIC
db_result
Metadati
JoinTab
RIC
M1 x
M2 x
M3 x
M4 x
M5 x
M6 x
M7 x
M8 x
M9 x
M10 x
M11 x
M12 x
M13 x
M14 x
M15 x
M16 x
M17 x
M18 x
M19 x
M20 x
M21 x
M22 x
M23 x
M24 x
M25 x
M26 x x
M27 x
M28 x x
M29 x x
M30 x x
M31 x
M32 x
M33 x
M34 x
M35 x
M36 x
M37
M38 x
M39 x
M40 x
M41 x
M42 x
M43 x
M44 x
M45 x
M46 x
M47 x
M48 x
M49 x
M50
GOAL: G1
QUESTION: Q1,4
METRICA: MxTAV
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tavole)
Finanziamenti
Finanziamenti
Finanziamenti
Prenotazioni
Prenotazioni
Prenotazioni
Pagamenti
Pagamenti
Impegni
Impegni
Impegni
Entrate
Entrate
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
M11
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49
M50
NOTE: l'assenza di corrispondenze è dovuta all'uso del data banker per l'accesso ai dati nel sistema: infatti, il data banker
è implementato in modo da costruire automaticamente, sulla base dei metadati, le richieste per l'accesso al database.
GOAL: G1
QUESTION: Q1,5
METRICA: DI
VALORE RILEVATO:
M1 3
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 2
M14 1
M15 2
M16 2
M17 3
M18 2
M19 3
M20 3
M21 2
M22 2
M23 0
M24 1
M25 1
M26 3
M27 2
M28 2
M29 4
M30 0
M31 0
M32 0
M33 0
M34 0
M35 2
M36 0
M37 1
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 1
GOAL: G1
QUESTION: Q1,5
METRICA: DO
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 0
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 2
M32 2
M33 2
M34 2
M35 1
M36 2
M37 1
M38 0
M39 1
M40 1
M41 1
M42 1
M43 0
M44 0
M45 0
M46 0
M47 0
M48 1
M49 1
M50 0
GOAL: G1
QUESTION: Q1,5
METRICA: CI
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 1
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 1
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
GOAL: G1
QUESTION: Q1,5
METRICA: CO
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
GOAL: G1
QUESTION: Q1,5
METRICA: GD
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
GOAL: G1
QUESTION: Q1,5
METRICA: GC
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: FANIN
VALORE RILEVATO:
M1 6
M2 2
M3 4
M4 1
M5 1
M6 1
M7 1
M8 2
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 2
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 15
M25 40
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 4
M38 0
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
GOAL: G1
QUESTION: Q1,5
METRICA: FANOUT
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 2
M5 3
M6 1
M7 2
M8 2
M9 2
M10 1
M11 2
M12 1
M13 2
M14 1
M15 5
M16 1
M17 2
M18 1
M19 2
M20 1
M21 4
M22 3
M23 1
M24 0
M25 4
M26 1
M27 1
M28 1
M29 1
M30 17
M31 2
M32 1
M33 2
M34 2
M35 1
M36 2
M37 0
M38 18
M39 2
M40 2
M41 2
M42 2
M43 2
M44 2
M45 2
M46 2
M47 2
M48 1
M49 1
M50 0
GOAL: G1
QUESTION: Q1,5
METRICA: ACC
VALORE RILEVATO:
M1 0.909
M2 0.800
M3 0.857
M4 0.666
M5 0.833
M6 0.750
M7 0.800
M8 0.833
M9 0.800
M10 0.750
M11 0.800
M12 0.750
M13 0.833
M14 0.750
M15 0.909
M16 0.833
M17 0.857
M18 0.800
M19 0.857
M20 0.833
M21 0.875
M22 0.857
M23 0.500
M24 0.947
M25 0.978
M26 0.833
M27 0.800
M28 0.800
M29 0.857
M30 0.947
M31 0.800
M32 0.750
M33 0.800
M34 0.800
M35 0.800
M36 0.800
M37 0.833
M38 0.944
M39 0.750
M40 0.750
M41 0.750
M42 0.750
M43 0.666
M44 0.666
M45 0.666
M46 0.666
M47 0.666
M48 0.666
M49 0.666
M50 0.500
GOAL: G1
QUESTION: Q1,5
METRICA: TM
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 2
M44 2
M45 2
M46 2
M47 2
M48 1
M49 1
M50 1
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: SN
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 2
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 2
M22 1
M23 1
M24 1
M25 1
M26 2
M27 1
M28 1
M29 2
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 2
M44 2
M45 2
M46 2
M47 2
M48 1
M49 1
M50 1
GOAL: G1
QUESTION: Q1,5
METRICA: MNS
VALORE RILEVATO:
S1 1
S2 2
S3 4
S4 1
S5 1
S6 1
S7 1
S8 1
S9 1
S10 1
S11 1
S12 1
S13 1
S14 1
S15 1
S16 1
S17 1
S18 1
S19 1
S20 1
S21 1
S22 1
S23 1
S24 1
S25 1
S26 1
S27 1
S28 1
S29 1
S30 1
S31 1
S32 1
S33 1
S34 1
S35 1
S36 1
S37 1
S38 1
S39 1
S40 1
S41 1
S42 1
S43 1
S44 1
S45 1
S46 1
S47 1
S48 1
S49 1
S50 1
S51 1
S52 1
S53 1
S54 1
S55 1
GOAL: G1
QUESTION: Q1,5
METRICA: MDS
VALORE RILEVATO:
db_request 1
db_result 40
JoinTab 3
INS_RIC 1
Metadati 4
MOD_CANC_RIC 1
RIC 1
TipoValuta 1
NOTE: il valore 40 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
GOAL: G1
QUESTION: Q1,5
METRICA: MTS
VALORE RILEVATO:
Finanziamenti 0
Entrate 0
Prenotazioni 0
Impegni 0
Pagamenti 0
Finanziamenti Entrate 0
Finanziamenti Prenotazioni 0
Prenotazioni Impegni 0
Impegni Pagamenti 0
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema: infatti, il data banker
è implementato in modo da costruire automaticamente, sulla base dei metadati, le richieste per l'accesso al database.
GOAL: G1
QUESTION: Q1,5
METRICA: NT5NF
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: NT
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: PT5NF
VALORE RILEVATO: 1
GOAL: G1
QUESTION: Q1,7
METRICA: MxMMODRIUS
VALORE RILEVATO:
GOAL: G1
QUESTION: Q1,7
METRICA: NMMOD
VALORE RILEVATO: 13
GOAL: G1
QUESTION: Q1,7
METRICA: NMRIUS
VALORE RILEVATO: 49
GOAL: G1
QUESTION: Q1,7
METRICA: PERMMOD
VALORE RILEVATO: 0.26
GOAL: G1
QUESTION: Q1,7
METRICA: PERMRIUS
VALORE RILEVATO: 0.98
NOTE:
• una distanza pari a 0 indica il raggiungimento della baseline hypothesis; un valore diverso invece quantifica la
distanza tra il valore rilevato e la baseline hypothesis
• una distanza pari a rientra indica che il valore rilevato è migliore di quello indicato nella baseline hypothesis
• le distanze segnate in grassetto indicano le metriche che non hanno raggiunto le baseline hypothesis (cioè il valore
rilevato è peggiore)
• per alcune metriche è indicato eccezione, ovvero il valore rilevato è peggiore della baseline hypothesis ma si ritiene
che la metrica abbia dato risultati positivi per i motivi spiegati nelle note o tra le distanze stesse
VALORE
DISTANZA
RILEVATO
M1 0 0
M2 0 0
M3 0 0
M4 0 0
M5 0 0
M6 0 0
M7 0 0
M8 0 0
M9 0 0
M10 0 0
M11 0 0
M12 0 0
M13 0 0
M14 0 0
M15 1 1
M16 0 0
M17 0 0
M18 0 0
M19 0 0
M20 0 0
M21 0 0
M22 0 0
M23 0 0
M24 1 1
M25 0 0
M26 0 0
M27 0 0
M28 0 0
M29 0 0
M30 0 0
M31 0 0
M32 0 0
M33 0 0
M34 0 0
M35 0 0
M36 0 0
M37 0 0
M38 0 0
M39 0 0
M40 0 0
M41 0 0
M42 0 0
M43 0 0
M44 0 0
M45 0 0
M46 0 0
M47 0 0
M48 0 0
M49 0 0
M50 0 0
NOTE: il numero di moduli con CI pari a 1 è uguale a 2, quindi essendo al di sotto del 5% dei moduli del sistema, la
baseline hypothesis è stata raggiunta.
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 6 nessuna (r.i.)
M2 2 nessuna (g.)
M3 4 nessuna (r.i.)
M4 1 nessuna (g.)
M5 1 nessuna (g.)
M6 1 nessuna (g.)
M7 1 nessuna (g.)
M8 2 nessuna (g.)
M9 1 nessuna (g.)
M10 1 nessuna (g.)
M11 1 nessuna (g.)
M12 1 nessuna (g.)
M13 1 nessuna (g.)
M14 1 nessuna (g.)
M15 1 nessuna (g.)
M16 2 nessuna (g.)
M17 1 nessuna (g.)
M18 1 nessuna (g.)
M19 1 nessuna (g.)
M20 1 nessuna (g.)
M21 1 nessuna (g.)
M22 1 nessuna (g.)
M23 1 nessuna (g.)
M24 15 nessuna (r.e.)
M25 40 nessuna (r.e.)
M26 1 nessuna (g.)
M27 1 nessuna (g.)
M28 1 nessuna (g.)
M29 1 nessuna (g.)
M30 1 nessuna (g.)
M31 1 nessuna (g.)
M32 1 nessuna (g.)
M33 1 nessuna (g.)
M34 1 nessuna (g.)
M35 1 nessuna (g.)
M36 1 nessuna (g.)
M37 4 nessuna (r.i.)
M38 0 nessuna (g.)
M39 1 nessuna (g.)
M40 1 nessuna (g.)
M41 1 nessuna (g.)
M42 1 nessuna (g.)
M43 1 nessuna (g.)
M44 1 nessuna (g.)
M45 1 nessuna (g.)
M46 1 nessuna (g.)
M47 1 nessuna (g.)
M48 1 nessuna (g.)
M49 1 nessuna (g.)
M50 1 nessuna (g.)
NOTE: Le sigle r.i., r.e. e g. sono le abbreviazioni di riusabile internamente, riusabile esternamente e generico
VALORE
DISTANZA
RILEVATO
M1 0.909 eccezione (FANIN alto)
M2 0.800 rientra
M3 0.857 rientra
M4 0.666 rientra
M5 0.833 rientra
M6 0.750 rientra
M7 0.800 rientra
M8 0.833 rientra
M9 0.800 rientra
M10 0.750 rientra
M11 0.800 rientra
M12 0.750 rientra
M13 0.833 rientra
M14 0.750 rientra
M15 0.909 0.049
M16 0.833 rientra
M17 0.857 rientra
M18 0.800 rientra
M19 0.857 rientra
M20 0.833 rientra
M21 0.875 0.050
M22 0.857 rientra
M23 0.500 rientra
M24 0.947 eccezione (FANIN alto)
M25 0.978 eccezione (FANIN alto)
M26 0.833 rientra
M27 0.800 rientra
M28 0.800 rientra
M29 0.857 rientra
M30 0.947 eccezione (modulo di controllo)
M31 0.800 rientra
M32 0.750 rientra
M33 0.800 rientra
M34 0.800 rientra
M35 0.800 rientra
M36 0.800 rientra
M37 0.833 rientra
M38 0.944 eccezione (modulo di controllo)
M39 0.750 rientra
M40 0.750 rientra
M41 0.750 rientra
M42 0.750 rientra
M43 0.666 rientra
M44 0.666 rientra
M45 0.666 rientra
M46 0.666 rientra
M47 0.666 rientra
M48 0.666 rientra
M49 0.666 rientra
M50 0.500 rientra
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 1 nessuna
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 1 nessuna
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 1 nessuna
M27 1 nessuna
M28 1 nessuna
M29 1 nessuna
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 2 1
M44 2 1
M45 2 1
M46 2 1
M47 2 1
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 2 1
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 2 1
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 2 1
M27 1 nessuna
M28 1 nessuna
M29 2 1
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 2 1
M44 2 1
M45 2 1
M46 2 1
M47 2 1
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
VALORE
RILEVATO Distanza
S1 1 nessuna
S2 2 nessuna
S3 4 nessuna
S4 1 nessuna
S5 1 nessuna
S6 1 nessuna
S7 1 nessuna
S8 1 nessuna
S9 1 nessuna
S10 1 nessuna
S11 1 nessuna
S12 1 nessuna
S13 1 nessuna
S14 1 nessuna
S15 1 nessuna
S16 1 nessuna
S17 1 nessuna
S18 1 nessuna
S19 1 nessuna
S20 1 nessuna
S21 1 nessuna
S22 1 nessuna
S23 1 nessuna
S24 1 nessuna
S25 1 nessuna
S26 1 nessuna
S27 1 nessuna
S28 1 nessuna
S29 1 nessuna
S30 1 nessuna
S31 1 nessuna
S32 1 nessuna
S33 1 nessuna
S34 1 nessuna
S35 1 nessuna
S36 1 nessuna
S37 1 nessuna
S38 1 nessuna
S39 1 nessuna
S40 1 nessuna
S41 1 nessuna
S42 1 nessuna
S43 1 nessuna
S44 1 nessuna
S45 1 nessuna
S46 1 nessuna
S47 1 nessuna
S48 1 nessuna
S49 1 nessuna
S50 1 nessuna
S51 1 nessuna
S52 1 nessuna
S53 1 nessuna
S54 1 nessuna
S55 1 nessuna
VALORE
RILEVATO Distanza
db_request 1 rientra
db_result 40 eccezione (vedere note)
JoinTab 3 rientra
INS_RIC 1 rientra
Metadati 4 rientra
MOD_CANC_RIC 1 rientra
RIC 1 rientra
TipoValuta 1 rientra
NOTE: il valore 40 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
VALORE
DISTANZA
RILEVATO
Finanziamenti 0 rientra
Entrate 0 rientra
Prenotazioni 0 rientra
Impegni 0 rientra
Pagamenti 0 rientra
Finanziamenti Entrate 0 rientra
Finanziamenti Prenotazioni 0 rientra
Prenotazioni Impegni 0 rientra
Impegni Pagamenti 0 rientra
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema.
Il sistema GEFIN D.F. presenta come punto di debolezza la modularità. Al fine di migliorare la qualità del sistema, i
possibili interventi da effettuare su di esso sono i seguenti:
al fine di ridurre l'accoppiamento dei moduli del sistema, è necessario intervenire sui singoli moduli ad alto
accoppiamento (superiore al valore 0.860) ed eventualmente su tutti i moduli interconnessi. Per ridurre
l'accoppiamento di un modulo sono possibili due tipi di interventi: ristrutturazione dell'interfaccia tra i moduli e
ristrutturazione interna del modulo stesso. Per il primo intervento è necessario verificare la necessità di tutti i dati
passati al modulo come parametri e la necessità di tutti i dati restituiti dal modulo. Se il numero di dati passati è
elevato e questi dati sono "collegati" tra loro, è possibile sostituirli con una struttura. Per il secondo intervento è
necessario verificare che il modulo svolga un'unica funzione. In caso contrario è necessario dividere il modulo in
moduli dedicati ad un'unica funzione. In questo modo è anche possibile che il gran numero di dati passati al/dal
modulo originario sia distribuito ai moduli derivanti dalla sua divisione.
al fine di ridurre il numero di tipologie di appartenenza dei singoli moduli, è necessario rivedere la struttura del
sistema intervenendo sui moduli che appartengono a più di una tipologia. Per questi moduli sono necessari
interventi che tendano a ridurre a una le funzioni principali svolte da ogni singolo modulo. Tale scopo può essere
raggiunto mediante l'esplosione dei moduli: ognuno dei moduli derivanti sarà progettato in modo che appartenga
ad una ed una sola tipologia, e quindi in modo che all'interno del sistema svolga una sola funzione principale. Si
evince che i moduli risultanti dall'esplosione di un singolo modulo dovranno essere posti in aree differenti della
struttura del sistema, perciò è possibile che in queste aree vadano eseguiti degli interventi al fine di integrare i
nuovi moduli.
al fine di ridurre a uno il numero di segreti nascosti nei singoli moduli, è necessario intervenire sui moduli che
nascondono più di un segreto riprogettandoli al fine di separare i singoli segreti in moduli distinti. Tale scopo può
essere raggiunto mediante l'esplosione dei moduli: in ognuno dei moduli derivanti da tale operazione sarà nascosto
uno ed uno solo dei segreti nascosti nel modulo originario.
Structure Chart • revisione della struttura del sistema (structure chart e call graph)
Matrice Cross Reference • aggiornamento e integrazione delle possibili nuove componenti nella
RExDS matrice cross reference RExDS
Codice sorgente • modifiche ai moduli del codice sogente interessati dalle modifiche al
progetto
NOTE:
La descrizione completa del processo di sviluppo software è presente nell'Appendice A a pagina 324.
START
STOP
Procedura:
Input: Specifiche dei moduli aggiornate, Tavole e percorsi di navigazione, Dizionario dei dati (analisi)
Procedura:
Output: Definizione delle strutture dei file esterni e dei dati globali
Procedura:
1. Costruire la matrice Cross Reference per stabilire in quale parte del progetto è implementato
ciascun requisito
• Definizione delle strutture dei file esterni e dei dati globali: struttura logica, record logici e modalità di accesso
per ogni file esterno; struttura di ciascun dato globale; matrice Cross Reference file esterno/dato globale x modulo
che li usa
• Matrice Cross Reference RexDS: matrice usata per stabilire in quale parte del progetto è implementato ciascun
requisito
• Requisiti utente: descrizione in qualunque forma di quello che l'utente intende ottenere dal prodotto software
• Specifiche dei moduli: definizione dettagliata delle operazioni che ciascun modulo software deve eseguire
• Specifiche dei moduli aggiornate: rifinitura delle specifiche dei moduli necessaria all'allineamento con la
Structure Chart aggiornata
• Structure Chart: espressione gerarchica delle relazioni fra i moduli e delle interfacce fra ogni coppia di essi
• Structure Chart aggiornata: rifinitura della Structure Chart utilizzando le euristiche e i principi dell'Information
Hiding
• Tavole e percorsi di navigazione: struttura dell'organizzazione della base di dati e insieme di percorsi logici per
navigarla
START
STOP
SCENARI PROCEDURALI:
Input: Dizionario dei dati (analisi), Diagramma delle dipendenze, Requisiti informatici
Procedura:
• Attributi di ciascuna entità: descrizione delle caratteristiche di ciascuna entità del modello E-R
• Attributi e funzionalità di ciascuna relazione: descrizione dei legami logici tra le diverse entità del modello E-R
e delle eventuali caratteristiche dei suddetti legami
• DFDs: descrizione dei requisiti funzionali dell'applicazione software. Ogni funzione deve essere identificata; le
funzioni possono essere articolate per livelli di dettaglio successivi. Le funzioni di livello più basso sono quelle
elementari
• Dizionario dei dati (analisi): descrizione testuale dei flussi dei DFD, dei depositi e delle entità esterne
• Dizionario dei dati (progetto): descrizione delle strutture e dei dati usati nelle specifiche dei moduli
• Documenti analisi dei requisiti: documentazione ottenuta come risultato dell'analisi dei requisiti del software e
del sistema
Composizione: DFDs +
Dizionario dei dati (analisi) +
Specifica delle funzioni elementari +
Modello E-R +
Attributi di ciascuna entità +
Attributi e funzionalità di ciascuna relazione
• Modello E-R: descrizione dei requisiti informativi dell'applicazione software: diagramma entità (E) – relazioni
(R). Esprime il contenuto informativo dell'applicazione dal punto di vista dell'utilizzatore finale
• Requisiti utente: descrizione in qualunque forma di quello che l'utente intende ottenere dal prodotto software
• Specifiche delle funzioni elementari: descrizione dettagliata delle operazioni di ciascuna funzione elementare dei
DFD
START
Implementare il progetto
3.1
Compilare il programma
3.2
STOP
SCENARI PROCEDURALI:
Procedura:
1. Realizzare il codice
2. Realizzare la base di dati
Procedura:
1. Compilare il programma
2. Se esistono errori sintattici
2.1 Correggere gli errori
2.2 Ripetere dal passo 1
• Codice sorgente corretto: codice sorgete rielaborato in modo da eliminare gli errori sintattici
• Definizione delle strutture dei file esterni e dei dati globali: struttura logica, record logici e modalità di accesso
per ogni file esterno; struttura di ciascun dato globale; matrice Cross Reference file esterno/dato globale x modulo
che li usa
• Diagramma delle dipendenze: diagramma in cui sono indicati, per ciascun dato della base di dati, le dipendenze
rispetto agli altri dati
• Dizionario dei dati (progetto): descrizione delle strutture e dei dati usati nelle specifiche dei moduli
• Documenti interni di progetto: documenti prodotti durante la fase di progetto, ad uso interno
• Matrice Cross Reference RexDS: matrice usata per stabilire in quale parte del progetto è implementato ciascun
requisito
• Structure Chart aggiornata: rifinitura della Structure Chart utilizzando le euristiche e i principi dell'Information
Hiding
• Tavole e percorsi di navigazione: struttura dell'organizzazione della base di dati e insieme di percorsi logici per
navigarla
• Negli scenari procedurali del processo di sviluppo software, sostituire la specifica dell'attività 2.5 (Rifinire la
Structure Chart e le specifiche dei moduli) con la seguente:
Procedura:
Rilevare le misure
1.6
Interpretare le misure
2.1
Individuare i punti di
debolezza
2.2
Individuare i fattori di
variazione
3.1
Individuare le ipotesi di
miglioramento
3.2
STOP
NOTE:
I manufatti Sistema software e Sistema software modificato sono presenti in formato elettronico nel CD-ROM allegato.
Il Sistema software nella directory GEFIN-1, il Sistema software modificato nella directory GEFIN-2
TAV lista delle tavole presenti nel database usato dal sistema
MxTAV per ogni modulo, la o le tavole di cui il modulo conosce la struttura (tabella cross-reference)
Interpretazione: il valore di ACC è compreso tra 0 e 1. Il valore 0 corrisponde a basso accoppiamento, mentre il
valore 1 corrisponde ad alto accoppiamento. Per ogni modulo, il valore ACC deve essere il più vicino possibile a
0 e comunque non deve salire al di sopra di 0.850 (fanno eccezione i moduli di servizio per i quali FANIN
elevato aumenta ACC ma non è indice di cattiva modularità, e i moduli di controllo per i quali è normale un
valore elevato di FANOUT). Valori vicini a 0 indicano un alto grado di indipendenza del modulo dagli altri e
quindi che l'impatto di una modifica sul modulo sia localizzata e interessi un numero molto basso, se non nullo,
di moduli. Il valore di GD e GC deve essere pari a 0 per tutti i moduli, in caso contrario l'impatto di una modifica
su un modulo che usa una variabile globale potrebbe estendersi agli altri moduli che usano la stessa variabile
globale. Il valore di CO deve essere 0 per tutti i moduli per evitare che decisioni prese in un modulo interessino
moduli che non appartengono alla sua portata del controllo. Il valore di CI deve essere il più vicino possibile a 0
Interpretazione: il valore di TM deve essere pari a 1 per ogni modulo. Un valore maggiore di 1 indica che il
modulo svolge più funzioni principali del sistema e questo implica difficoltà nel collaudo, manutenzione ed
estensione del sistema, oltre che una difficoltà nel capire la responsabilità del modulo e le funzioni da esso svolte.
MNS per ogni segreto, il numero di moduli che conoscono questo segreto
Interpretazione: per ogni segreto, il valore di MNS non deve superare il valore 5 e comunque deve essere un
valore vicino a 3. In caso contrario l'impatto della modifica di un dettaglio (segreto) si estenderebbe a tutti i
moduli che conoscono lo stesso dettaglio (segreto). Valori bassi di MNS indicano quindi una maggiore
localizzazione degli interventi di manutenzione.
MDS per ogni struttura dati, il numero di moduli che conoscono questa struttura
Interpretazione: per ogni struttura dati, il valore di MDS non deve superare il valore 4 e comunque deve essere il
più vicino possibile a 3. Per moduli che conoscono una struttura dati, si intendono quei moduli che usano dati
contenuti in essa per eseguire una elaborazione (non vanno considerati i moduli che scrivono dati nella struttura);
quindi un alto valore di MDS implica che una modifica alla struttura dati si estenderebbe a tutti i moduli che
usano i dati in essa contenuta per eseguire un'elaborazione.
MTS per ogni tavola del database, il numero di moduli che conoscono la sua struttura
Interpretazione: per ogni tavola, il valore di MTS deve essere non superiore a 1. In caso contrario una modifica
alla struttura della tavola avrebbe impatto su tutti i moduli che la conoscono.
Interpretazione: il valore di SN deve essere non superiore a 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
NT5NF numero di tavole in quinta forma normale (5NF) presenti nel database
NT numero di tavole presenti nel database
PT5NF = NT5NF / NT
Interpretazione: il valore di PT5NF è compreso tra 0 e 1. Il valore di PT5NF deve essere uguale a 1, in caso
contrario è possibile che più moduli che svolgono funzioni diverse accedano alla stessa tavola e quindi questa
tavola aumenti l'accoppiamento dei moduli suddetti, oppure che un modulo effettui più funzioni diverse sulla
stessa tavola, diminuendo così l'indipendenza funzionale.
Interpretazione: il valore di SN deve essere non superiore a 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
Interpretazione: il valore di FANIN indica il grado di riusabilità interna al sistema del modulo: a un valore alto di
FANIN corrisponde un modulo che svolge una precisa funzione richiesta da altri moduli, quindi si tratta di un
modulo di servizio. Inoltre moduli con alto FANIN presenti a un livello inferiore della structure chart, con molta
probabilità presentano anche riusabilità esterna.
Modello di conferma
Q1,7 Qual è l'impatto delle modifiche ?
MxMMODRIUS scheda dei moduli del vecchio sistema, modificati e riusati per il nuovo sistema
(tabella cross-reference)
NMRIUS numero di moduli del vecchio sistema modificati per il nuovo
NMMOD numero di moduli del vecchio sistema riusati nel nuovo
PERMMOD = NMMOD / NMOD
PERMRIUS = NMRIUS / NMOD
Interpretazione: i valori di PERMMOD e PERMRIUS sono compresi tra 0 e 1. Il valore di PERMMOD deve
essere il più vicino possibile a 0, non deve superare il valore 0.05 per garantire una struttura che localizza le
informazioni. Il valore di PERMRIUS deve essere il più vicino possibile a 1, non deve essere inferiore al valore
0.95 per garantire che il sistema sia stato modificato riusando la maggior parte delle componenti della versione
precedente
NMOD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• contare il numero di moduli distinti presenti in essa
Controlli da effettuare nessuno
S
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• individuare e riportare i segreti (dettagli) distribuiti tra i moduli presenti in essa
Controlli da effettuare nessuno
MxS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed S
• considerare i valori rilevati con le metriche M ed S e la structure chart del sistema
(o anche la call graph) presente nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e i segreti elencati in
Come misurare
S
• usando la structure chart, per ogni modulo nella tabella, contrassegnare con una
"x" le caselle in corrispondenza dei segreti che nasconde
Controlli da effettuare ogni segreto nella tabella deve essere nascosto in almeno un modulo
T
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
documenti di progetto
Come misurare
• individuare e riportare le tipologie di moduli presenti nella structure chart (moduli
efferenti, afferenti, di controllo, ecc…)
Controlli da effettuare nessuno
SD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare il dizionario dei dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le strutture di dati distinte presenti in esso
Controlli da effettuare nessuno
SDxM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed SD
• considerare i valori rilevati con le metriche M ed SD e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le strutture dati
elencate in SD
Come misurare
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle strutture dati di cui conosce la struttura (per individuarle,
usare la specifica del modulo e verificare se il modulo usa dati in essa contenuti
per eseguire un'elaborazione)
Controlli da effettuare ogni struttura dati nella tabella deve essere usata in almeno un modulo
TAV
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le tavole presenti in esso
Controlli da effettuare nessuno
MxTAV
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M e TAV
• considerare i valori rilevati con le metriche M e TAV e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le tavole elencate
Come misurare in TAV
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle tavole di cui conosce la struttura (per individuarle, usare la
specifica del modulo)
Controlli da effettuare nessuno
DO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato da elaborare"
Controlli da effettuare nessuno
CI
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in input del
tipo "dato di controllo"
Controlli da effettuare nessuno
CO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato di controllo"
Controlli da effettuare nessuno
GD
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente le variabili usate dal modulo e contare il numero di variabili di tipo
globale usate come dato da elaborare (usare la specifica del modulo)
Controlli da effettuare nessuno
FANIN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nelle specifiche dei moduli) che richiamano il modulo suddetto
il valore di FANIN deve essere maggiore o uguale a 1, tranne per il modulo di
Controlli da effettuare
livello 1 della structure chart
FANOUT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nella specifica del modulo) richiamati dal modulo suddetto
Controlli da effettuare nessuno
TM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxT
• per ogni modulo elencato nella tabella MxT, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di TM deve essere maggiore o uguale a 1
MNS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni segreto elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di MNS deve essere maggiore o uguale a 1
MTS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxTAV
• per ogni tavola elencata nella tabella MxTAV, contare il numero di caselle, ad essa
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
SN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni modulo elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
NT5NF
Chi deve misurare ingegnere del software
Quando misurare durante l'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare • contare il numero di tabelle in quinta forma normale contenute nello schema della
base di dati
Controlli da effettuare nessuno
NT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica TAV
Come misurare • contare il numero di tabelle elencate in TAV
Controlli da effettuare nessuno
NMRIUS
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "riusato"
Controlli da effettuare nessuno
NMMOD
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "modificato"
Controlli da effettuare nessuno
TM: distribuzione della tipologia dei moduli tra i moduli del sistema
- Riusabilità:
SN: massimo 1 per tutti i moduli del sistema; • esperienza del team di progetto nella progettazione delle interfacce tra le singole componenti
del sistema
PT5NF: pari a 1;
la maggiore esperienza nel limitare le interazioni tra i moduli al semplice passaggio di
- Riusabilità: controllo (mediante chiamata/sincronizzazione) o allo scambio (in input/output) dei soli
dati necessari, comporta la diminuzione dell'accoppiamento dei moduli (ACC). Inoltre
SN: pari a 1 per tutti i moduli del sistema; se i dati scambiati sono dati elementari e non strutture dati, si ottiene la diminuzione del
numero di moduli che conoscono una struttura dati (MDS) in quanto localizzata a pochi
moduli
FANIN: maggiore del 30% dei moduli del sistema per i moduli riusabili
esternamente; compreso tra il 5% e il 30% dei moduli del sistema la maggiore esperienza nel limitare la possibilità di scambio di dati tra i moduli al solo
per i moduli riusabili internamente; minore del 5% dei moduli del uso della loro interfaccia, comporta la diminuzione della necessità di usare variabili
sistema per i moduli generici globali (GD e GC) e quindi la diminuzione dell'accoppiamento dei moduli (ACC)
la maggiore esperienza nel metodo della decomposizione senza perdita o nell'uso del
data modelling comporta una migliore normalizzazione della base di dati (PT5NF)
NOTE:
Le rilevazioni delle misure per le metriche relative al modello di conferma del piano GQM sono state rilevate al termine
dell'esecuzione degli interventi sul sistema (come si può notare dalle date di consegna delle schede).
• il valore di PERMRIUS pari a 1 dimostra che il fattore di qualità riusabilità non sia un punto di debolezza per il
sistema;
• il valore di PERMMOD pari a 0.08 e quindi superiore a 0.05 dimostra che il fattore di qualità modularità sia un
punto di debolezza per il sistema. Il valore comunque non è di molto superiore a 0.05 ed è inoltre inferiore a quello
rilevato durante la prima esecuzione del processo (0.26) a dimostrazione del miglioramento della qualità del
sistema.
GOAL: G1
QUESTION: Q1,1
METRICA: M
VALORE RILEVATO:
CODICE MODULO
M1 Aggiornare Disponibilità Finanziaria e Disponibilità di Cassa
M2 Calcolare Disponibilità di Cassa Non Impegnata
M3 Calcolare Prenotazione Non Impegnata
M4 Calcolare Situazione Eco./Fin.
M5 Consolidare Automaticamente Prenotazione
M6 Consolidare Entrate
M7 Consolidare Manualmente Finanziamento
M8 Consolidare Manualmente Prenotazione
M9 Controllare Consistenza Cancellazione Entrata
M10 Controllare Consistenza Cancellazione Finanziamento
M11 Controllare Consistenza Cancellazione Impegno
M12 Controllare Consistenza Cancellazione Prenotazione
M13 Controllare Consistenza Creazione Entrata
M14 Controllare Consistenza Creazione Finanziamento
M15 Controllare Consistenza Creazione Impegno
M16 Controllare Consistenza Creazione Prenotazione
M17 Controllare Consistenza Modifica Entrata
M18 Controllare Consistenza Modifica Finanziamento
M19 Controllare Consistenza Modifica Impegno
M20 Controllare Consistenza Modifica Prenotazione
M21 Controllare Consistenza Creazione Pagamento
M22 Inserire Pagamento Maggiore
M23 Controllare Scadenze
M24 Convertire Valuta
M25 Data Banker
M26 Data Banker Create
M27 Data Banker Delete
M28 Data Banker Read
M29 Data Banker Update
M30 Gestire Schermate
M31 Inserire Entrata
M32 Inserire Finanziamento
M33 Inserire Impegno
M34 Inserire Pagamento
M35 Inserire Pagamento Prenotazione Esaurita
M36 Inserire Prenotazione
M37 Leggere Metadati
M38 Main
M39 Modificare/Cancellare Entrata
M40 Modificare/Cancellare Finanziamento
M41 Modificare/Cancellare Impegno
M42 Modificare/Cancellare Prenotazione
M43 Navigare Entrate
M44 Navigare Finanziamenti
M45 Navigare Impegni
M46 Navigare Pagamenti
M47 Navigare Prenotazioni
M48 Selezionare Finanziamento da Consolidare
M49 Selezionare Prenotazione da Consolidare
M50 Trattare Errori
M51 Acquisire Parametri Navigazione Finanziamenti
M52 Acquisire Parametri Navigazione Entrate
M53 Acquisire Parametri Navigazione Prenotazioni
M54 Acquisire Parametri Navigazione Impegni NOTE: viene indicato anche il
M55 Acquisire Parametri Navigazione Pagamenti codice in modo da rendere più
M56 Inserire Pagamento Minore leggibili le tabelle delle
M57 Inserire Pagamento Uguale successive metriche, nelle quali
M58 Generare Chiave Automaticamente
M59 Consolidare Automaticamente Finanziamento verrà usato il codice al posto del
M60 Controllare Consistenza Creazione Impegno Senza Prenotazione nome del modulo
GOAL: G1
QUESTION: Q1,1
METRICA: NMOD
VALORE RILEVATO: 60
GOAL: G1
QUESTION: Q1,3
METRICA: T
VALORE RILEVATO:
TIPOLOGIA
Controllo
Afferente
Efferente
Trasformazione
Data Banker
GOAL: G1
QUESTION: Q1,4
METRICA: TAV
VALORE RILEVATO:
TAVOLA
Finanziamenti
Entrate
Prenotazioni
Impegni
Pagamenti
Finanziamenti Entrate
Finanziamenti Prenotazioni
Prenotazioni Impegni
Impegni Pagamenti
GOAL: G1
QUESTION: Q1,4
METRICA: SD
VALORE RILEVATO:
STRUTTURA DATI
db_request
db_result
JoinTab
INS_RIC
Metadati
MOD_CANC_RIC
RIC
TipoValuta
GOAL: G1
QUESTION: Q1,2
METRICA: S
VALORE RILEVATO:
CODICE SEGRETO
S1 algoritmo di conversione valuta (Euro-Lire)
S2 algoritmo per la generazione automatica della chiave di un record
S3 D.B.M.S. usato
S4 gestione della situazione di un aumento di un impegno e della prenotazione che non riesce a coprirlo
S5 gestione dell'interfaccia grafica
S6 gestione messaggistica di errore
S7 metodo per il calcolo della disponibilità di cassa non impegnata
S8 metodo per il calcolo della parte di prenotazione non impegnata
S9 metodo per il calcolo della situazione economica e finanziaria
S10 metodo per il consolidamento automatico di un finanziamento
S11 metodo per il consolidamento automatico di una entrata
S12 metodo per il consolidamento automatico di una prenotazione
S13 metodo per il consolidamento manuale di un finanziamento
S14 metodo per il consolidamento manuale di una prenotazione
S15 metodo per la cancellazione di un finanziamento
S16 metodo per la cancellazione di un impegno
S17 metodo per la cancellazione di una entrata
S18 metodo per la cancellazione di una prenotazione
S19 metodo per la modifica di un finanziamento
S20 metodo per la modifica di un impegno
S21 metodo per la modifica di una entrata
S22 metodo per la modifica di una prenotazione
S23 metodo per l'aggiornamento della situazione economica e finanziaria
S24 metodo per l'individuazione delle scadenze
S25 metodo per l'inserimento di un nuovo finanziamento
S26 metodo per l'inserimento di un nuovo impegno
S27 metodo per l'inserimento di un nuovo pagamento quando l'importo è uguale all'impegno
S28 metodo per l'inserimento di un nuovo pagamento quando l'importo è maggiore dell'impegno
S29 metodo per l'inserimento di un nuovo pagamento quando l'importo è minore dell'impegno
S30 metodo per l'inserimento di una nuova entrata
S31 metodo per l'inserimento di una nuova prenotazione
S32 modalità di presentazione dati richiesti per la navigazione degli impegni
S33 modalità di presentazione dati richiesti per la navigazione dei finanziamenti
S34 modalità di presentazione dati richiesti per la navigazione dei pagamenti
S35 modalità di presentazione dati richiesti per la navigazione delle entrate
S36 modalità di presentazione dati richiesti per la navigazione delle prenotazioni
S37 modalità di presentazione dati richiesti per la variazione degli impegni
S38 modalità di presentazione dati richiesti per la variazione dei finanziamenti
S39 modalità di presentazione dati richiesti per la variazione delle entrate
S40 modalità di presentazione dati richiesti per la variazione delle prenotazioni
S41 modalità di presentazione dati richiesti per l'inserimento degli impegni
S42 modalità di presentazione dati richiesti per l'inserimento dei finanziamenti
S43 modalità di presentazione dati richiesti per l'inserimento dei pagamenti
S44 modalità di presentazione dati richiesti per l'inserimento delle entrate
S45 modalità di presentazione dati richiesti per l'inserimento delle prenotazioni
S46 modalità di presentazione finanziamenti consolidabili manualmente
S47 modalità di presentazione prenotazioni consolidabili manualmente
S48 operazioni da eseguire al lancio del sistema
S49 ricerca entrate e modalità di presentazione risultati
S50 ricerca finanziamenti e modalità di presentazione risultati
S51 ricerca impegni e modalità di presentazione risultati
S52 ricerca pagamenti e modalità di presentazione risultati
S53 ricerca prenotazioni e modalità di presentazione risultati
S54 accesso ai metadati
S55 accesso ai servizi offerti dal data banker
NOTE: viene indicato anche il codice in modo da rendere più leggibili le tabelle delle successive metriche, nelle quali
verrà usato il codice al posto del nome del segreto
GOAL: G1
QUESTION: Q1,2
METRICA: MxS
VALORE RILEVATO: (le righe contengono i segreti, le colonne i moduli)
M10
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M11
M1
M2
M3
M4
M5
M6
M7
M8
M9
S1 x
S2
S3
S4
S5
S6
S7 x
S8 x
S9 x
S10
S11 x
S12 x
S13 x
S14 x
S15 x
S16 x
S17 x
S18 x
S19 x
S20 x
S21 x
S22 x
S23 x
S24 x
S25 x
S26 x
S27
S28 x
S29
S30 x
S31 x
S32
S33
S34
S35
S36
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M38
M39
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49
M50
S1
S2
S3 x x x x
S4 x
S5 x
S6 x
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
S28
S29
S30
S31
S32
S33
S34
S35
S36
S37 x
S38 x
S39 x
S40 x
S41 x
S42 x
S43 x
S44 x
S45 x
S46 x
S47 x
S48 x
S49 x
S50 x
S51 x
S52 x
S53 x
S54 x
S55 x
M52
M53
M54
M55
M56
M57
M58
M59
M60
S1
S2 x
S3
S4
S5
S6
S7
S8
S9
S10 x
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26 x
S27 x
S28
S29 x
S30
S31
S32 x
S33 x
S34 x
S35 x
S36 x
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
GOAL: G1
QUESTION: Q1,3
METRICA: MxT
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tipologie)
Controllo Afferente Efferente Trasformazione Data Banker
M1 x
M2 x
M3 x
M4 x
M5 x
M6 x
M7 x
M8 x
M9 x
M10 x
M11 x
M12 x
M13 x
M14 x
M15 x
M16 x
M17 x
M18 x
M19 x
M20 x
M21 x
M22 x
M23 x
M24 x
M25 x
M26 x
M27 x
M28 x
M29 x
M30 x
M31 x
M32 x
M33 x
M34 x
M35 x
M36 x
M37 x
M38 x
M39 x
M40 x
M41 x
M42 x
M43 x
M44 x
M45 x
M46 x
M47 x
M48 x
M49 x
M50 x
M51 x
M52 x
M53 x
M54 x
M55 x
M56 x
M57 x
M58 x
M59 x
M60 x
GOAL: G1
QUESTION: Q1,4
METRICA: SDxM
VALORE RILEVATO: (le righe contengono i moduli, le colonne le strutture dati)
INS_RIC
db_result
Metadati
CANC_
JoinTab
request
MOD_
Valuta
Tipo
RIC
RIC
db_
M1 x
M2 x
M3 x
M4 x
M5 x
M6 x
M7 x
M8 x
M9 x
M10 x
M11 x
M12 x
M13 x
M14 x
M15 x
M16 x
M17 x
M18 x
M19 x
M20 x
M21
M22 x
M23 x
M24 x
M25 x
M26 x x
M27 x
M28 x x
M29 x x
M30 x x
M31 x
M32 x
M33 x
M34 x
M35 x
M36 x
M37
M38 x
M39 x
M40 x
M41 x
M42 x
M43 x
M44 x
M45 x
M46 x
M47 x
M48 x
M49 x
M50
M51 x
M52 x
M53 x
M54 x
M55 x
M56 x
M57 x
M58
M59 x
GOAL: G1
QUESTION: Q1,4
METRICA: MxTAV
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tavole)
menti
Finanzia
Entrate
zioni
Prenota
Impegni
ti
Pagamen
Entrate
menti
Finanzia
zioni
Prenota
menti
Finanzia
Impegni
zioni
Prenota
ti
Pagamen
Impegni
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
M11
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39
M40
M41
M42
M43 NOTE: l'assenza di
M44 corrispondenze è dovuta
M45 all'uso del data banker
M46 per l'accesso ai dati nel
M47
M48 sistema: infatti, il data
M49 banker è implementato
M50 in modo da costruire
M51 automaticamente, sulla
M52 base dei metadati, le
M53
M54
richieste per l'accesso al
M55 database.
M56
M57
M58
M59
GOAL: G1
QUESTION: Q1,5
METRICA: DI
VALORE RILEVATO:
M1 3
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 2
M14 1
M15 2
M16 2
M17 3
M18 2
M19 3
M20 3
M21 2
M22 2
M23 0
M24 1
M25 1
M26 3
M27 2
M28 2
M29 4
M30 0
M31 0
M32 0
M33 0
M34 0
M35 2
M36 0
M37 1
M38 0
M39 0
M40 0
M41 0
M42 0
M43 1
M44 1
M45 1
M46 1
M47 1
M48 0
M49 0
M50 1
M51 0
M52 0
M53 0
M54 0
M55 0
M56 2
M57 2
M58 2
M59 1
M60 2
GOAL: G1
QUESTION: Q1,5
METRICA: DO
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 0
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 2
M32 2
M33 2
M34 2
M35 1
M36 2
M37 1
M38 0
M39 1
M40 1
M41 1
M42 1
M43 0
M44 0
M45 0
M46 0
M47 0
M48 1
M49 1
M50 0
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: CI
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 1
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: CO
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: GD
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: GC
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: FANIN
VALORE RILEVATO:
M1 9
M2 3
M3 4
M4 1
M5 3
M6 1
M7 1
M8 2
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 2
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 20
M25 48
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 4
M38 0
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 2
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: FANOUT
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 2
M5 3
M6 1
M7 2
M8 2
M9 2
M10 1
M11 2
M12 1
M13 2
M14 1
M15 4
M16 1
M17 2
M18 1
M19 2
M20 1
M21 3
M22 5
M23 1
M24 0
M25 4
M26 2
M27 1
M28 1
M29 2
M30 17
M31 2
M32 1
M33 2
M34 2
M35 1
M36 2
M37 0
M38 24
M39 2
M40 2
M41 2
M42 2
M43 2
M44 2
M45 2
M46 2
M47 2
M48 1
M49 1
M50 0
M51 2
M52 2
M53 2
M54 2
M55 2
M56 3
M57 3
M58 0
M59 2
M60 4
GOAL: G1
QUESTION: Q1,5
METRICA: ACC
VALORE RILEVATO:
M1 0.928
M2 0.833
M3 0.857
M4 0.666
M5 0.875
M6 0.750
M7 0.800
M8 0.833
M9 0.800
M10 0.750
M11 0.800
M12 0.750
M13 0.833
M14 0.750
M15 0.875
M16 0.833
M17 0.857
M18 0.800
M19 0.857
M20 0.833
M21 0.857
M22 0.888
M23 0.500
M24 0.958
M25 0.981
M26 0.857
M27 0.800
M28 0.800
M29 0.875
M30 0.947
M31 0.800
M32 0.750
M33 0.800
M34 0.800
M35 0.800
M36 0.800
M37 0.833
M38 0.956
M39 0.750
M40 0.750
M41 0.750
M42 0.750
M43 0.750
M44 0.750
M45 0.750
M46 0.750
M47 0.750
M48 0.666
M49 0.666
M50 0.500
M51 0.750
M52 0.750
M53 0.750
M54 0.750
M55 0.750
M56 0.857
M57 0.857
M58 0.800
M59 0.800
M60 0.875
GOAL: G1
QUESTION: Q1,5
METRICA: TM
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: SN
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 0
M22 1
M23 1
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: MNS
VALORE RILEVATO:
S1 1
S2 1
S3 4
S4 1
S5 1
S6 1
S7 1
S8 1
S9 1
S10 1
S11 1
S12 1
S13 1
S14 1
S15 1
S16 1
S17 1
S18 1
S19 1
S20 1
S21 1
S22 1
S23 1
S24 1
S25 1
S26 2
S27 1
S28 1
S29 1
S30 1
S31 1
S32 1
S33 1
S34 1
S35 1
S36 1
S37 1
S38 1
S39 1
S40 1
S41 1
S42 1
S43 1
S44 1
S45 1
S46 1
S47 1
S48 1
S49 1
S50 1
S51 1
S52 1
S53 1
S54 1
S55 1
GOAL: G1
QUESTION: Q1,5
METRICA: MDS
VALORE RILEVATO:
db_request 1
db_result 48
JoinTab 3
INS_RIC 1
Metadati 4
MOD_CANC_RIC 1
RIC 1
TipoValuta 1
NOTE: il valore 48 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
GOAL: G1
QUESTION: Q1,5
METRICA: MTS
VALORE RILEVATO:
Finanziamenti 0
Entrate 0
Prenotazioni 0
Impegni 0
Pagamenti 0
Finanziamenti Entrate 0
Finanziamenti Prenotazioni 0
Prenotazioni Impegni 0
Impegni Pagamenti 0
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema: infatti, il data banker
è implementato in modo da costruire automaticamente, sulla base dei metadati, le richieste per l'accesso al database.
GOAL: G1
QUESTION: Q1,5
METRICA: NT5NF
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: NT
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: PT5NF
VALORE RILEVATO: 1
GOAL: G1
QUESTION: Q1,7
METRICA: MxMMODRIUS
VALORE RILEVATO:
GOAL: G1
QUESTION: Q1,7
METRICA: NMMOD
VALORE RILEVATO: 5
NOTE: Il modulo Inserire Pagamento Maggiore, nonostante sia indicato nella Scheda descrizione degli interventi
(pagina 181), non è stato sottoposto a modifiche (come si nota nella misurazione della metrica MxMMODRIUS a
pagina 156), in quanto si è ritenuto che modifiche tese a diminuire l'accoppiamento avrebbero comportato il
peggioramento della coesione del modulo stesso sia dei possibili moduli derivanti da un'esplosione del modulo,
andando quindi contro quanto indicato nel processo di sviluppo software migliorato (pagina 191)..
GOAL: G1
QUESTION: Q1,7
METRICA: NMRIUS
VALORE RILEVATO: 60
GOAL: G1
QUESTION: Q1,7
METRICA: PERMMOD
VALORE RILEVATO: 0.08
GOAL: G1
QUESTION: Q1,7
METRICA: PERMRIUS
VALORE RILEVATO: 1
NOTE:
• una distanza pari a 0 indica il raggiungimento della baseline hypothesis; un valore diverso invece quantifica la
distanza tra il valore rilevato e la baseline hypothesis
• una distanza pari a rientra indica che il valore rilevato è migliore di quello indicato nella baseline hypothesis
• le distanze segnate in grassetto indicano le metriche che non hanno raggiunto le baseline hypothesis (cioè il valore
rilevato è peggiore)
• per alcune metriche è indicato eccezione, ovvero il valore rilevato è peggiore della baseline hypothesis ma si ritiene
che la metrica abbia dato risultati positivi per i motivi spiegati nelle note o tra le distanze stesse
VALORE
DISTANZA
RILEVATO
M1 0 0
M2 0 0
M3 0 0
M4 0 0
M5 0 0
M6 0 0
M7 0 0
M8 0 0
M9 0 0
M10 0 0
M11 0 0
M12 0 0
M13 0 0
M14 0 0
M15 0 0
M16 0 0
M17 0 0
M18 0 0
M19 0 0
M20 0 0
M21 0 0
M22 0 0
M23 0 0
M24 1 1
M25 0 0
M26 0 0
M27 0 0
M28 0 0
M29 0 0
M30 0 0
M31 0 0
M32 0 0
M33 0 0
M34 0 0
M35 0 0
M36 0 0
M37 0 0
M38 0 0
M39 0 0
M40 0 0
M41 0 0
M42 0 0
M43 0 0
M44 0 0
M45 0 0
M46 0 0
M47 0 0
M48 0 0
M49 0 0
M50 0 0
M51 0 0
M52 0 0
M53 0 0
M54 0 0
M55 0 0
M56 0 0
M57 0 0
M58 0 0
M59 0 0
M60 0 0
NOTE: il numero di moduli con CI pari a 1 è uguale a 1, quindi essendo al di sotto del 5% dei moduli del sistema, la
baseline hypothesis è stata raggiunta.
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 9 nessuna (r.i.)
M2 3 nessuna (r.i.)
M3 4 nessuna (r.i.)
M4 1 nessuna (g.)
M5 3 nessuna (r.i.)
M6 1 nessuna (g.)
M7 1 nessuna (g.)
M8 2 nessuna (g.)
M9 1 nessuna (g.)
M10 1 nessuna (g.)
M11 1 nessuna (g.)
M12 1 nessuna (g.)
M13 1 nessuna (g.)
M14 1 nessuna (g.)
M15 1 nessuna (g.)
M16 2 nessuna (g.)
M17 1 nessuna (g.)
M18 1 nessuna (g.)
M19 1 nessuna (g.)
M20 1 nessuna (g.)
M21 1 nessuna (g.)
M22 1 nessuna (g.)
M23 1 nessuna (g.)
M24 20 nessuna (r.e.)
M25 48 nessuna (r.e.)
M26 1 nessuna (g.)
M27 1 nessuna (g.)
M28 1 nessuna (g.)
M29 1 nessuna (g.)
M30 1 nessuna (g.)
M31 1 nessuna (g.)
M32 1 nessuna (g.)
M33 1 nessuna (g.)
M34 1 nessuna (g.)
M35 1 nessuna (g.)
M36 1 nessuna (g.)
M37 4 nessuna (r.i.)
M38 0 nessuna (g.)
M39 1 nessuna (g.)
M40 1 nessuna (g.)
M41 1 nessuna (g.)
M42 1 nessuna (g.)
M43 1 nessuna (g.)
M44 1 nessuna (g.)
M45 1 nessuna (g.)
M46 1 nessuna (g.)
M47 1 nessuna (g.)
M48 1 nessuna (g.)
M49 1 nessuna (g.)
M50 1 nessuna (g.)
M51 1 nessuna (g.)
M52 1 nessuna (g.)
M53 1 nessuna (g.)
M54 1 nessuna (g.)
M55 1 nessuna (g.)
M56 1 nessuna (g.)
M57 1 nessuna (g.)
M58 2 nessuna (g.)
M59 1 nessuna (g.)
M60 1 nessuna (g.)
NOTE: Le sigle r.i., r.e. e g. sono le abbreviazioni di riusabile internamente, riusabile esternamente e generico
VALORE
DISTANZA
RILEVATO
M1 0.928 eccezione (FANIN alto)
M2 0.857 rientra
M3 0.857 rientra
M4 0.666 rientra
M5 0.875 eccezione (FANIN alto)
M6 0.750 rientra
M7 0.800 rientra
M8 0.833 rientra
M9 0.800 rientra
M10 0.750 rientra
M11 0.800 rientra
M12 0.750 rientra
M13 0.833 rientra
M14 0.750 rientra
M15 0.875 0.015
M16 0.833 rientra
M17 0.857 rientra
M18 0.800 rientra
M19 0.857 rientra
M20 0.833 rientra
M21 0.857 rientra
M22 0.888 0.028
M23 0.500 rientra
M24 0.958 eccezione (FANIN alto)
M25 0.981 eccezione (FANIN alto)
M26 0.857 rientra
M27 0.800 rientra
M28 0.800 rientra
M29 0.875 0.015
M30 0.947 eccezione (modulo di controllo)
M31 0.800 rientra
M32 0.750 rientra
M33 0.800 rientra
M34 0.800 rientra
M35 0.800 rientra
M36 0.800 rientra
M37 0.833 rientra
M38 0.958 eccezione (modulo di controllo)
M39 0.750 rientra
M40 0.750 rientra
M41 0.750 rientra
M42 0.750 rientra
M43 0.750 rientra
M44 0.750 rientra
M45 0.750 rientra
M46 0.750 rientra
M47 0.750 rientra
M48 0.666 rientra
M49 0.666 rientra
M50 0.500 rientra
M51 0.750 rientra
M52 0.750 rientra
M53 0.750 rientra
M54 0.750 rientra
M55 0.750 rientra
M56 0.857 rientra
M57 0.857 rientra
M58 0.800 rientra
M59 0.800 rientra
M60 0.875 0.015
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 1 nessuna
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 1 nessuna
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 1 nessuna
M27 1 nessuna
M28 1 nessuna
M29 1 nessuna
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 1 nessuna
M44 1 nessuna
M45 1 nessuna
M46 1 nessuna
M47 1 nessuna
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
M51 1 nessuna
M52 1 nessuna
M53 1 nessuna
M54 1 nessuna
M55 1 nessuna
M56 1 nessuna
M57 1 nessuna
M58 1 nessuna
M59 1 nessuna
M60 1 nessuna
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 1 nessuna
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 0 rientra
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 1 nessuna
M27 1 nessuna
M28 1 nessuna
M29 1 nessuna
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 1 nessuna
M44 1 nessuna
M45 1 nessuna
M46 1 nessuna
M47 1 nessuna
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
M51 1 nessuna
M52 1 nessuna
M53 1 nessuna
M54 1 nessuna
M55 1 nessuna
M56 1 nessuna
M57 1 nessuna
M58 1 nessuna
M59 1 nessuna
M60 1 nessuna
VALORE
RILEVATO Distanza
S1 1 nessuna
S2 1 nessuna
S3 4 nessuna
S4 1 nessuna
S5 1 nessuna
S6 1 nessuna
S7 1 nessuna
S8 1 nessuna
S9 1 nessuna
S10 1 nessuna
S11 1 nessuna
S12 1 nessuna
S13 1 nessuna
S14 1 nessuna
S15 1 nessuna
S16 1 nessuna
S17 1 nessuna
S18 1 nessuna
S19 1 nessuna
S20 1 nessuna
S21 1 nessuna
S22 1 nessuna
S23 1 nessuna
S24 1 nessuna
S25 1 nessuna
S26 2 nessuna
S27 1 nessuna
S28 1 nessuna
S29 1 nessuna
S30 1 nessuna
S31 1 nessuna
S32 1 nessuna
S33 1 nessuna
S34 1 nessuna
S35 1 nessuna
S36 1 nessuna
S37 1 nessuna
S38 1 nessuna
S39 1 nessuna
S40 1 nessuna
S41 1 nessuna
S42 1 nessuna
S43 1 nessuna
S44 1 nessuna
S45 1 nessuna
S46 1 nessuna
S47 1 nessuna
S48 1 nessuna
S49 1 nessuna
S50 1 nessuna
S51 1 nessuna
S52 1 nessuna
S53 1 nessuna
S54 1 nessuna
S55 1 nessuna
VALORE
RILEVATO Distanza
db_request 1 rientra
db_result 48 eccezione (vedere note)
JoinTab 3 rientra
INS_RIC 1 rientra
Metadati 4 rientra
MOD_CANC_RIC 1 rientra
RIC 1 rientra
TipoValuta 1 rientra
NOTE: il valore 48 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
VALORE
DISTANZA
RILEVATO
Finanziamenti 0 rientra
Entrate 0 rientra
Prenotazioni 0 rientra
Impegni 0 rientra
Pagamenti 0 rientra
Finanziamenti Entrate 0 rientra
Finanziamenti Prenotazioni 0 rientra
Prenotazioni Impegni 0 rientra
Impegni Pagamenti 0 rientra
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema.
• Per la metrica CI, avendo rilevato valori migliori della precedente baseline hypothesis, si ritiene che la sua nuova
baseline hypothesis possa essere sostituita con:
• Per la metrica MTS, avendo rilevato valori migliori della precedente baseline hypothesis, si ritiene che la sua nuova
baseline hypothesis possa essere sostituita con:
• Per la metrica MDS, avendo rilevato valori migliori della precedente baseline hypothesis, si ritiene che la sua nuova
baseline hypothesis possa essere sostituita con:
MDS: massimo 4 per tutte le strutture dati escluse quelle che fanno parte
dell'interfaccia delle componenti riusabili del sistema;
• esperienza del team di progetto nel miglioramento della qualità del sistema
Metriche influenzate: TM, SN, ACC
• esperienza del team di progetto nel miglioramento della qualità del sistema
la maggiore esperienza del team di progetto nell'applicazione delle euristiche e dei principi
dell'information hiding prestando attenzione che l'applicazione di una euristica o di un principio non
vada in conflitto con altri, comporta la riduzione del rischio che interventi tesi a migliorare una metrica
producano come effetto collaterale il peggioramento di altri (TM, SN, ACC)
NOTE:
Questa versione dei fogli metrici è stata prodotta durante l'esecuzione dell'attività 1.4 (Produrre i fogli metrici) a causa
della presenza delle Ipotesi di variazione dei fogli metrici
- Riusabilità:
ACC: massimo 0.860 per tutti i moduli esclusi i moduli di servizio e quelli di la maggiore esperienza nel ripartire la struttura del sistema secondo le funzioni principali
svolte, comporta una migliore distribuzione della tipologia dei moduli (basso valore di TM);
controllo per i quali valori vicini a 1 sono accettabili;
in particolare, delegando l'accesso ai dati a una sola tipologia di moduli si riduce al minimo il
numero di moduli che conoscono le singole componenti della base di dati (MTS)
CI: massimo 1 per il 2% dei moduli del sistema
pari a 0 per il restante 98%; la maggiore esperienza nel nascondere i dettagli del sistema in componenti separate
CO: pari a 0 per tutti i moduli del sistema; comporta un basso numero di segreti nascosti dallo stesso modulo (SN) oltre che
GD: pari a 0 per tutti i moduli del sistema; l'abbassamento del numero di moduli che conoscono lo stesso segreto (MNS)
GC: pari a 0 per tutti i moduli del sistema;
la maggiore esperienza nel progettare moduli che implementano una singola funzione
comporta la diminuzione dell'interconnessione tra i moduli, e quindi dell'accoppiamento
TM: pari a 1 per tutti i moduli del sistema; (ACC), in particolare diminuisce la necessità dell'uso di dati di controllo (CO, CI e GC)
MNS: massimo 4 per tutti i segreti; la maggiore esperienza nell'identificare nei moduli del sistema funzioni ricorrenti più volte,
nell'estrarre queste funzioni e nell'inserire ognuna di esse in singoli moduli, comporta
l'aumento del fan-in di questi moduli (FANIN)
MDS: massimo 4 per tutte le strutture dati escluse quelle che fanno parte
dell'interfaccia delle componenti riusabili del sistema; • esperienza del team di progetto nella progettazione delle interfacce tra le singole componenti del
sistema
MTS: pari a 0 per tutte le tavole del sistema;
la maggiore esperienza nel limitare le interazioni tra i moduli al semplice passaggio di
SN: massimo 1 per tutti i moduli del sistema; controllo (mediante chiamata/sincronizzazione) o allo scambio (in input/output) dei soli dati
necessari, comporta la diminuzione dell'accoppiamento dei moduli (ACC). Inoltre se i dati
scambiati sono dati elementari e non strutture dati, si ottiene la diminuzione del numero di
PT5NF: pari a 1; moduli che conoscono una struttura dati (MDS) in quanto localizzata a pochi moduli
- Riusabilità: la maggiore esperienza nel limitare la possibilità di scambio di dati tra i moduli al solo uso
della loro interfaccia, comporta la diminuzione della necessità di usare variabili globali (GD
SN: pari a 1 per tutti i moduli del sistema; e GC) e quindi la diminuzione dell'accoppiamento dei moduli (ACC)
Il sistema GEFIN D.F. presenta come punto di debolezza la modularità. Al fine di migliorare la qualità del sistema, i
possibili interventi da effettuare su di esso sono i seguenti:
al fine di ridurre l'accoppiamento dei moduli del sistema, è necessario intervenire sui singoli moduli ad alto
accoppiamento (superiore al valore 0.860) ed eventualmente su tutti i moduli interconnessi. Per ridurre
l'accoppiamento di un modulo sono possibili due tipi di interventi: ristrutturazione dell'interfaccia tra i moduli e
ristrutturazione interna del modulo stesso. Per il primo intervento è necessario verificare la necessità di tutti i dati
passati al modulo come parametri e la necessità di tutti i dati restituiti dal modulo. Se il numero di dati passati è
elevato e questi dati sono "collegati" tra loro, è possibile sostituirli con una struttura. Per il secondo intervento è
necessario verificare che il modulo svolga un'unica funzione. In caso contrario è necessario dividere il modulo in
moduli dedicati ad un'unica funzione. In questo modo è anche possibile che il gran numero di dati passati al/dal
modulo originario sia distribuito ai moduli derivanti dalla sua divisione. Controllare anche che i moduli derivanti
dall'esplosione di un modulo rispettino quanto sopra indicato e che per tutti i moduli modificati in altri tipi di
interventi venga verificato quanto sopra indicato.
Structure Chart • revisione della struttura del sistema (structure chart e call graph)
Matrice Cross Reference • aggiornamento e integrazione delle possibili nuove componenti nella
RExDS matrice cross reference RExDS
Codice sorgente • modifiche ai moduli del codice sogente interessati dalle modifiche al
progetto
NOTE:
La descrizione completa del processo di sviluppo software è presente nell'Appendice A a pagina 324. Inoltre si è
considerato il processo di sviluppo software aggiornato mediante i manufatti Miglioramento del processo di sviluppo
software prodotti nelle esecuzioni precedenti.
START
STOP
Procedura:
Input: Specifiche dei moduli aggiornate, Tavole e percorsi di navigazione, Dizionario dei dati (analisi)
Procedura:
Output: Definizione delle strutture dei file esterni e dei dati globali
Procedura:
1. Costruire la matrice Cross Reference per stabilire in quale parte del progetto è implementato
ciascun requisito
• Definizione delle strutture dei file esterni e dei dati globali: struttura logica, record logici e modalità di accesso
per ogni file esterno; struttura di ciascun dato globale; matrice Cross Reference file esterno/dato globale x modulo
che li usa
• Matrice Cross Reference RexDS: matrice usata per stabilire in quale parte del progetto è implementato ciascun
requisito
• Requisiti utente: descrizione in qualunque forma di quello che l'utente intende ottenere dal prodotto software
• Specifiche dei moduli: definizione dettagliata delle operazioni che ciascun modulo software deve eseguire
• Specifiche dei moduli aggiornate: rifinitura delle specifiche dei moduli necessaria all'allineamento con la
Structure Chart aggiornata
• Structure Chart: espressione gerarchica delle relazioni fra i moduli e delle interfacce fra ogni coppia di essi
• Structure Chart aggiornata: rifinitura della Structure Chart utilizzando le euristiche e i principi dell'Information
Hiding
• Tavole e percorsi di navigazione: struttura dell'organizzazione della base di dati e insieme di percorsi logici per
navigarla
START
STOP
SCENARI PROCEDURALI:
Input: Dizionario dei dati (analisi), Diagramma delle dipendenze, Requisiti informatici
Procedura:
• Attributi di ciascuna entità: descrizione delle caratteristiche di ciascuna entità del modello E-R
• Attributi e funzionalità di ciascuna relazione: descrizione dei legami logici tra le diverse entità del modello E-R
e delle eventuali caratteristiche dei suddetti legami
• DFDs: descrizione dei requisiti funzionali dell'applicazione software. Ogni funzione deve essere identificata; le
funzioni possono essere articolate per livelli di dettaglio successivi. Le funzioni di livello più basso sono quelle
elementari
• Dizionario dei dati (analisi): descrizione testuale dei flussi dei DFD, dei depositi e delle entità esterne
• Dizionario dei dati (progetto): descrizione delle strutture e dei dati usati nelle specifiche dei moduli
• Documenti analisi dei requisiti: documentazione ottenuta come risultato dell'analisi dei requisiti del software e
del sistema
Composizione: DFDs +
Dizionario dei dati (analisi) +
Specifica delle funzioni elementari +
Modello E-R +
Attributi di ciascuna entità +
Attributi e funzionalità di ciascuna relazione
• Modello E-R: descrizione dei requisiti informativi dell'applicazione software: diagramma entità (E) – relazioni
(R). Esprime il contenuto informativo dell'applicazione dal punto di vista dell'utilizzatore finale
• Requisiti utente: descrizione in qualunque forma di quello che l'utente intende ottenere dal prodotto software
• Specifiche delle funzioni elementari: descrizione dettagliata delle operazioni di ciascuna funzione elementare dei
DFD
START
Implementare il progetto
3.1
Compilare il programma
3.2
STOP
SCENARI PROCEDURALI:
Procedura:
1. Realizzare il codice
2. Realizzare la base di dati
Procedura:
1. Compilare il programma
2. Se esistono errori sintattici
2.1 Correggere gli errori
2.2 Ripetere dal passo 1
• Codice sorgente corretto: codice sorgete rielaborato in modo da eliminare gli errori sintattici
• Definizione delle strutture dei file esterni e dei dati globali: struttura logica, record logici e modalità di accesso
per ogni file esterno; struttura di ciascun dato globale; matrice Cross Reference file esterno/dato globale x modulo
che li usa
• Diagramma delle dipendenze: diagramma in cui sono indicati, per ciascun dato della base di dati, le dipendenze
rispetto agli altri dati
• Dizionario dei dati (progetto): descrizione delle strutture e dei dati usati nelle specifiche dei moduli
• Documenti interni di progetto: documenti prodotti durante la fase di progetto, ad uso interno
• Matrice Cross Reference RexDS: matrice usata per stabilire in quale parte del progetto è implementato ciascun
requisito
• Structure Chart aggiornata: rifinitura della Structure Chart utilizzando le euristiche e i principi dell'Information
Hiding
• Tavole e percorsi di navigazione: struttura dell'organizzazione della base di dati e insieme di percorsi logici per
navigarla
• Negli scenari procedurali del processo di sviluppo software, sostituire la specifica dell'attività 2.5 (Rifinire la
Structure Chart e le specifiche dei moduli) con la seguente:
Procedura:
Rilevare le misure
1.6
Interpretare le misure
2.1
Individuare i punti di
debolezza
2.2
Individuare i fattori di
variazione
3.1
Individuare le ipotesi di
miglioramento
3.2
STOP
NOTE:
I manufatti Sistema software e Sistema software migliorato sono presenti in formato elettronico nel CD-ROM allegato.
Il Sistema software nella directory GEFIN-2, il Sistema software migliorato nella directory GEFIN-2 in quanto non è
stato sottoposto a interventi
TAV lista delle tavole presenti nel database usato dal sistema
MxTAV per ogni modulo, la o le tavole di cui il modulo conosce la struttura (tabella cross-reference)
Interpretazione: il valore di ACC è compreso tra 0 e 1. Il valore 0 corrisponde a basso accoppiamento, mentre il
valore 1 corrisponde ad alto accoppiamento. Per ogni modulo, il valore ACC deve essere il più vicino possibile a
0 e comunque non deve salire al di sopra di 0.850 (fanno eccezione i moduli di servizio per i quali FANIN
elevato aumenta ACC ma non è indice di cattiva modularità, e i moduli di controllo per i quali è normale un
valore elevato di FANOUT). Valori vicini a 0 indicano un alto grado di indipendenza del modulo dagli altri e
quindi che l'impatto di una modifica sul modulo sia localizzata e interessi un numero molto basso, se non nullo,
di moduli. Il valore di GD e GC deve essere pari a 0 per tutti i moduli, in caso contrario l'impatto di una modifica
su un modulo che usa una variabile globale potrebbe estendersi agli altri moduli che usano la stessa variabile
globale. Il valore di CO deve essere 0 per tutti i moduli per evitare che decisioni prese in un modulo interessino
moduli che non appartengono alla sua portata del controllo. Il valore di CI deve essere il più vicino possibile a 0
Interpretazione: il valore di TM deve essere pari a 1 per ogni modulo. Un valore maggiore di 1 indica che il
modulo svolge più funzioni principali del sistema e questo implica difficoltà nel collaudo, manutenzione ed
estensione del sistema, oltre che una difficoltà nel capire la responsabilità del modulo e le funzioni da esso svolte.
MNS per ogni segreto, il numero di moduli che conoscono questo segreto
Interpretazione: per ogni segreto, il valore di MNS non deve superare il valore 5 e comunque deve essere un
valore vicino a 3. In caso contrario l'impatto della modifica di un dettaglio (segreto) si estenderebbe a tutti i
moduli che conoscono lo stesso dettaglio (segreto). Valori bassi di MNS indicano quindi una maggiore
localizzazione degli interventi di manutenzione.
MDS per ogni struttura dati, il numero di moduli che conoscono questa struttura
Interpretazione: per ogni struttura dati, il valore di MDS non deve superare il valore 4 e comunque deve essere il
più vicino possibile a 3. Per moduli che conoscono una struttura dati, si intendono quei moduli che usano dati
contenuti in essa per eseguire una elaborazione (non vanno considerati i moduli che scrivono dati nella struttura);
quindi un alto valore di MDS implica che una modifica alla struttura dati si estenderebbe a tutti i moduli che
usano i dati in essa contenuta per eseguire un'elaborazione.
MTS per ogni tavola del database, il numero di moduli che conoscono la sua struttura
Interpretazione: per ogni tavola, il valore di MTS deve essere non superiore a 1. In caso contrario una modifica
alla struttura della tavola avrebbe impatto su tutti i moduli che la conoscono.
Interpretazione: il valore di SN deve essere non superiore a 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
NT5NF numero di tavole in quinta forma normale (5NF) presenti nel database
NT numero di tavole presenti nel database
PT5NF = NT5NF / NT
Interpretazione: il valore di PT5NF è compreso tra 0 e 1. Il valore di PT5NF deve essere uguale a 1, in caso
contrario è possibile che più moduli che svolgono funzioni diverse accedano alla stessa tavola e quindi questa
tavola aumenti l'accoppiamento dei moduli suddetti, oppure che un modulo effettui più funzioni diverse sulla
stessa tavola, diminuendo così l'indipendenza funzionale.
Interpretazione: il valore di SN deve essere non superiore a 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
Interpretazione: il valore di FANIN indica il grado di riusabilità interna al sistema del modulo: a un valore alto di
FANIN corrisponde un modulo che svolge una precisa funzione richiesta da altri moduli, quindi si tratta di un
modulo di servizio. Inoltre moduli con alto FANIN presenti a un livello inferiore della structure chart, con molta
probabilità presentano anche riusabilità esterna.
Modello di conferma
Q1,7 Qual è l'impatto delle modifiche ?
MxMMODRIUS scheda dei moduli del vecchio sistema, modificati e riusati per il nuovo sistema
(tabella cross-reference)
NMRIUS numero di moduli del vecchio sistema modificati per il nuovo
NMMOD numero di moduli del vecchio sistema riusati nel nuovo
PERMMOD = NMMOD / NMOD
PERMRIUS = NMRIUS / NMOD
Interpretazione: i valori di PERMMOD e PERMRIUS sono compresi tra 0 e 1. Il valore di PERMMOD deve
essere il più vicino possibile a 0, non deve superare il valore 0.05 per garantire una struttura che localizza le
informazioni. Il valore di PERMRIUS deve essere il più vicino possibile a 1, non deve essere inferiore al valore
0.95 per garantire che il sistema sia stato modificato riusando la maggior parte delle componenti della versione
precedente
NMOD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• contare il numero di moduli distinti presenti in essa
Controlli da effettuare nessuno
S
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• individuare e riportare i segreti (dettagli) distribuiti tra i moduli presenti in essa
Controlli da effettuare nessuno
MxS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed S
• considerare i valori rilevati con le metriche M ed S e la structure chart del sistema
(o anche la call graph) presente nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e i segreti elencati in
Come misurare
S
• usando la structure chart, per ogni modulo nella tabella, contrassegnare con una
"x" le caselle in corrispondenza dei segreti che nasconde
Controlli da effettuare ogni segreto nella tabella deve essere nascosto in almeno un modulo
T
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
documenti di progetto
Come misurare
• individuare e riportare le tipologie di moduli presenti nella structure chart (moduli
efferenti, afferenti, di controllo, ecc…)
Controlli da effettuare nessuno
SD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare il dizionario dei dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le strutture di dati distinte presenti in esso
Controlli da effettuare nessuno
SDxM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed SD
• considerare i valori rilevati con le metriche M ed SD e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le strutture dati
elencate in SD
Come misurare
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle strutture dati di cui conosce la struttura (per individuarle,
usare la specifica del modulo e verificare se il modulo usa dati in essa contenuti
per eseguire un'elaborazione)
Controlli da effettuare ogni struttura dati nella tabella deve essere usata in almeno un modulo
TAV
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le tavole presenti in esso
Controlli da effettuare nessuno
MxTAV
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M e TAV
• considerare i valori rilevati con le metriche M e TAV e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le tavole elencate
Come misurare in TAV
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle tavole di cui conosce la struttura (per individuarle, usare la
specifica del modulo)
Controlli da effettuare nessuno
DO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato da elaborare"
Controlli da effettuare nessuno
CI
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in input del
tipo "dato di controllo"
Controlli da effettuare nessuno
CO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato di controllo"
Controlli da effettuare nessuno
GD
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente le variabili usate dal modulo e contare il numero di variabili di tipo
globale usate come dato da elaborare (usare la specifica del modulo)
Controlli da effettuare nessuno
FANIN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nelle specifiche dei moduli) che richiamano il modulo suddetto
il valore di FANIN deve essere maggiore o uguale a 1, tranne per il modulo di
Controlli da effettuare
livello 1 della structure chart
FANOUT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nella specifica del modulo) richiamati dal modulo suddetto
Controlli da effettuare nessuno
TM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxT
• per ogni modulo elencato nella tabella MxT, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di TM deve essere maggiore o uguale a 1
MNS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni segreto elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di MNS deve essere maggiore o uguale a 1
MTS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxTAV
• per ogni tavola elencata nella tabella MxTAV, contare il numero di caselle, ad essa
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
SN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni modulo elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
NT5NF
Chi deve misurare ingegnere del software
Quando misurare durante l'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare • contare il numero di tabelle in quinta forma normale contenute nello schema della
base di dati
Controlli da effettuare nessuno
NT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica TAV
Come misurare • contare il numero di tabelle elencate in TAV
Controlli da effettuare nessuno
NMRIUS
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "riusato"
Controlli da effettuare nessuno
NMMOD
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "modificato"
Controlli da effettuare nessuno
- Riusabilità:
ACC: massimo 0.860 per tutti i moduli esclusi i moduli di servizio e quelli di la maggiore esperienza nel ripartire la struttura del sistema secondo le funzioni principali
svolte, comporta una migliore distribuzione della tipologia dei moduli (basso valore di TM);
controllo per i quali valori vicini a 1 sono accettabili;
in particolare, delegando l'accesso ai dati a una sola tipologia di moduli si riduce al minimo il
numero di moduli che conoscono le singole componenti della base di dati (MTS)
CI: massimo 1 per il 2% dei moduli del sistema
pari a 0 per il restante 98%; la maggiore esperienza nel nascondere i dettagli del sistema in componenti separate
CO: pari a 0 per tutti i moduli del sistema; comporta un basso numero di segreti nascosti dallo stesso modulo (SN) oltre che
GD: pari a 0 per tutti i moduli del sistema; l'abbassamento del numero di moduli che conoscono lo stesso segreto (MNS)
GC: pari a 0 per tutti i moduli del sistema;
la maggiore esperienza nel progettare moduli che implementano una singola funzione
comporta la diminuzione dell'interconnessione tra i moduli, e quindi dell'accoppiamento
TM: pari a 1 per tutti i moduli del sistema; (ACC), in particolare diminuisce la necessità dell'uso di dati di controllo (CO, CI e GC)
MNS: massimo 4 per tutti i segreti; la maggiore esperienza nell'identificare nei moduli del sistema funzioni ricorrenti più volte,
nell'estrarre queste funzioni e nell'inserire ognuna di esse in singoli moduli, comporta
l'aumento del fan-in di questi moduli (FANIN)
MDS: massimo 4 per tutte le strutture dati escluse quelle che fanno parte
dell'interfaccia delle componenti riusabili del sistema; • esperienza del team di progetto nella progettazione delle interfacce tra le singole componenti del
sistema
MTS: pari a 0 per tutte le tavole del sistema;
la maggiore esperienza nel limitare le interazioni tra i moduli al semplice passaggio di
SN: massimo 1 per tutti i moduli del sistema; controllo (mediante chiamata/sincronizzazione) o allo scambio (in input/output) dei soli dati
necessari, comporta la diminuzione dell'accoppiamento dei moduli (ACC). Inoltre se i dati
scambiati sono dati elementari e non strutture dati, si ottiene la diminuzione del numero di
PT5NF: pari a 1; moduli che conoscono una struttura dati (MDS) in quanto localizzata a pochi moduli
- Riusabilità: la maggiore esperienza nel limitare la possibilità di scambio di dati tra i moduli al solo uso
della loro interfaccia, comporta la diminuzione della necessità di usare variabili globali (GD
SN: pari a 1 per tutti i moduli del sistema; e GC) e quindi la diminuzione dell'accoppiamento dei moduli (ACC)
la maggiore esperienza del team di progetto nell'applicazione delle euristiche e dei principi
dell'information hiding prestando attenzione che l'applicazione di una euristica o di un
principio non vada in conflitto con altri, comporta la riduzione del rischio che interventi tesi
a migliorare una metrica producano come effetto collaterale il peggioramento di altri (TM,
SN, ACC)
GOAL: G1
QUESTION: Q1,1
METRICA: M
VALORE RILEVATO:
CODICE MODULO
M1 Aggiornare Disponibilità Finanziaria e Disponibilità di Cassa
M2 Calcolare Disponibilità di Cassa Non Impegnata
M3 Calcolare Prenotazione Non Impegnata
M4 Calcolare Situazione Eco./Fin.
M5 Consolidare Automaticamente Prenotazione
M6 Consolidare Entrate
M7 Consolidare Manualmente Finanziamento
M8 Consolidare Manualmente Prenotazione
M9 Controllare Consistenza Cancellazione Entrata
M10 Controllare Consistenza Cancellazione Finanziamento
M11 Controllare Consistenza Cancellazione Impegno
M12 Controllare Consistenza Cancellazione Prenotazione
M13 Controllare Consistenza Creazione Entrata
M14 Controllare Consistenza Creazione Finanziamento
M15 Controllare Consistenza Creazione Impegno
M16 Controllare Consistenza Creazione Prenotazione
M17 Controllare Consistenza Modifica Entrata
M18 Controllare Consistenza Modifica Finanziamento
M19 Controllare Consistenza Modifica Impegno
M20 Controllare Consistenza Modifica Prenotazione
M21 Controllare Consistenza Creazione Pagamento
M22 Inserire Pagamento Maggiore
M23 Controllare Scadenze
M24 Convertire Valuta
M25 Data Banker
M26 Data Banker Create
M27 Data Banker Delete
M28 Data Banker Read
M29 Data Banker Update
M30 Gestire Schermate
M31 Inserire Entrata
M32 Inserire Finanziamento
M33 Inserire Impegno
M34 Inserire Pagamento
M35 Inserire Pagamento Prenotazione Esaurita
M36 Inserire Prenotazione
M37 Leggere Metadati
M38 Main
M39 Modificare/Cancellare Entrata
M40 Modificare/Cancellare Finanziamento
M41 Modificare/Cancellare Impegno
M42 Modificare/Cancellare Prenotazione
M43 Navigare Entrate
M44 Navigare Finanziamenti
M45 Navigare Impegni
M46 Navigare Pagamenti
M47 Navigare Prenotazioni
M48 Selezionare Finanziamento da Consolidare
M49 Selezionare Prenotazione da Consolidare
M50 Trattare Errori
M51 Acquisire Parametri Navigazione Finanziamenti
M52 Acquisire Parametri Navigazione Entrate
M53 Acquisire Parametri Navigazione Prenotazioni NOTE: viene indicato anche il
M54 Acquisire Parametri Navigazione Impegni codice in modo da rendere più
M55 Acquisire Parametri Navigazione Pagamenti
leggibili le tabelle delle
M56 Inserire Pagamento Minore
M57 Inserire Pagamento Uguale successive metriche, nelle quali
M58 Generare Chiave Automaticamente verrà usato il codice al posto del
M59 Consolidare Automaticamente Finanziamento nome del modulo
M60 Controllare Consistenza Creazione Impegno Senza Prenotazione
GOAL: G1
QUESTION: Q1,1
METRICA: NMOD
VALORE RILEVATO: 60
GOAL: G1
QUESTION: Q1,3
METRICA: T
VALORE RILEVATO:
TIPOLOGIA
Controllo
Afferente
Efferente
Trasformazione
Data Banker
GOAL: G1
QUESTION: Q1,4
METRICA: TAV
VALORE RILEVATO:
TAVOLA
Finanziamenti
Entrate
Prenotazioni
Impegni
Pagamenti
Finanziamenti Entrate
Finanziamenti Prenotazioni
Prenotazioni Impegni
Impegni Pagamenti
GOAL: G1
QUESTION: Q1,4
METRICA: SD
VALORE RILEVATO:
STRUTTURA DATI
CREATE_IMP
db_request
db_result
JoinTab
INS_RIC
Metadati
MOD_CANC_RIC
RIC
TipoValuta
GOAL: G1
QUESTION: Q1,2
METRICA: S
VALORE RILEVATO:
CODICE SEGRETO
S1 algoritmo di conversione valuta (Euro-Lire)
S2 algoritmo per la generazione automatica della chiave di un record
S3 D.B.M.S. usato
S4 gestione della situazione di un aumento di un impegno e della prenotazione che non riesce a coprirlo
S5 gestione dell'interfaccia grafica
S6 gestione messaggistica di errore
S7 metodo per il calcolo della disponibilità di cassa non impegnata
S8 metodo per il calcolo della parte di prenotazione non impegnata
S9 metodo per il calcolo della situazione economica e finanziaria
S10 metodo per il consolidamento automatico di un finanziamento
S11 metodo per il consolidamento automatico di una entrata
S12 metodo per il consolidamento automatico di una prenotazione
S13 metodo per il consolidamento manuale di un finanziamento
S14 metodo per il consolidamento manuale di una prenotazione
S15 metodo per la cancellazione di un finanziamento
S16 metodo per la cancellazione di un impegno
S17 metodo per la cancellazione di una entrata
S18 metodo per la cancellazione di una prenotazione
S19 metodo per la modifica di un finanziamento
S20 metodo per la modifica di un impegno
S21 metodo per la modifica di una entrata
S22 metodo per la modifica di una prenotazione
S23 metodo per l'aggiornamento della situazione economica e finanziaria
S24 metodo per l'individuazione delle scadenze
S25 metodo per l'inserimento di un nuovo finanziamento
S26 metodo per l'inserimento di un nuovo impegno
S27 metodo per l'inserimento di un nuovo pagamento quando l'importo è uguale all'impegno
S28 metodo per l'inserimento di un nuovo pagamento quando l'importo è maggiore dell'impegno
S29 metodo per l'inserimento di un nuovo pagamento quando l'importo è minore dell'impegno
S30 metodo per l'inserimento di una nuova entrata
S31 metodo per l'inserimento di una nuova prenotazione
S32 modalità di presentazione dati richiesti per la navigazione degli impegni
S33 modalità di presentazione dati richiesti per la navigazione dei finanziamenti
S34 modalità di presentazione dati richiesti per la navigazione dei pagamenti
S35 modalità di presentazione dati richiesti per la navigazione delle entrate
S36 modalità di presentazione dati richiesti per la navigazione delle prenotazioni
S37 modalità di presentazione dati richiesti per la variazione degli impegni
S38 modalità di presentazione dati richiesti per la variazione dei finanziamenti
S39 modalità di presentazione dati richiesti per la variazione delle entrate
S40 modalità di presentazione dati richiesti per la variazione delle prenotazioni
S41 modalità di presentazione dati richiesti per l'inserimento degli impegni
S42 modalità di presentazione dati richiesti per l'inserimento dei finanziamenti
S43 modalità di presentazione dati richiesti per l'inserimento dei pagamenti
S44 modalità di presentazione dati richiesti per l'inserimento delle entrate
S45 modalità di presentazione dati richiesti per l'inserimento delle prenotazioni
S46 modalità di presentazione finanziamenti consolidabili manualmente
S47 modalità di presentazione prenotazioni consolidabili manualmente
S48 operazioni da eseguire al lancio del sistema
S49 ricerca entrate e modalità di presentazione risultati
S50 ricerca finanziamenti e modalità di presentazione risultati
S51 ricerca impegni e modalità di presentazione risultati
S52 ricerca pagamenti e modalità di presentazione risultati
S53 ricerca prenotazioni e modalità di presentazione risultati
S54 accesso ai metadati
S55 accesso ai servizi offerti dal data banker
NOTE: viene indicato anche il codice in modo da rendere più leggibili le tabelle delle successive metriche, nelle quali
verrà usato il codice al posto del nome del segreto
GOAL: G1
QUESTION: Q1,2
METRICA: MxS
VALORE RILEVATO: (le righe contengono i segreti, le colonne i moduli)
M10
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M11
M1
M2
M3
M4
M5
M6
M7
M8
M9
S1 x
S2
S3
S4
S5
S6
S7 x
S8 x
S9 x
S10
S11 x
S12 x
S13 x
S14 x
S15 x
S16 x
S17 x
S18 x
S19 x
S20 x
S21 x
S22 x
S23 x
S24 x
S25 x
S26 x
S27
S28 x
S29
S30 x
S31 x
S32
S33
S34
S35
S36
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M38
M39
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49
M50
S1
S2
S3 x x x x
S4 x
S5 x
S6 x
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
S28
S29
S30
S31
S32
S33
S34
S35
S36
S37 x
S38 x
S39 x
S40 x
S41 x
S42 x
S43 x
S44 x
S45 x
S46 x
S47 x
S48 x
S49 x
S50 x
S51 x
S52 x
S53 x
S54 x
S55 x
M52
M53
M54
M55
M56
M57
M58
M59
M60
S1
S2 x
S3
S4
S5
S6
S7
S8
S9
S10 x
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26 x
S27 x
S28
S29 x
S30
S31
S32 x
S33 x
S34 x
S35 x
S36 x
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
GOAL: G1
QUESTION: Q1,3
METRICA: MxT
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tipologie)
Controllo Afferente Efferente Trasformazione Data Banker
M1 x
M2 x
M3 x
M4 x
M5 x
M6 x
M7 x
M8 x
M9 x
M10 x
M11 x
M12 x
M13 x
M14 x
M15 x
M16 x
M17 x
M18 x
M19 x
M20 x
M21 x
M22 x
M23 x
M24 x
M25 x
M26 x
M27 x
M28 x
M29 x
M30 x
M31 x
M32 x
M33 x
M34 x
M35 x
M36 x
M37 x
M38 x
M39 x
M40 x
M41 x
M42 x
M43 x
M44 x
M45 x
M46 x
M47 x
M48 x
M49 x
M50 x
M51 x
M52 x
M53 x
M54 x
M55 x
M56 x
M57 x
M58 x
M59 x
M60 x
GOAL: G1
QUESTION: Q1,4
METRICA: SDxM
VALORE RILEVATO: (le righe contengono i moduli, le colonne le strutture dati)
db_reques
TipoValut
CANC_R
CREATE
INS_RIC
db_result
Metadati
JoinTab
MOD_
_IMP
RIC
IC
a
t
M1 x
M2 x
M3 x
M4 x
M5 x
M6 x
M7 x
M8 x
M9 x
M10 x
M11 x
M12 x
M13 x
M14 x
M15 x x
M16 x
M17 x
M18 x
M19 x
M20 x
M21
M22 x
M23 x
M24 x
M25 x
M26 x x
M27 x
M28 x x
M29 x x
M30 x x
M31 x
M32 x
M33 x
M34 x
M35 x
M36 x
M37
M38 x
M39 x
M40 x
M41 x
M42 x
M43 x
M44 x
M45 x
M46 x
M47 x
M48 x
M49 x
M50
M51 x
M52 x
M53 x
M54 x
M55 x
M56 x
M57 x
M58
M59 x
GOAL: G1
QUESTION: Q1,4
METRICA: MxTAV
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tavole)
menti
Finanzia
Entrate
zioni
Prenota
Impegni
ti
Pagamen
Entrate
menti
Finanzia
Prenotazi
menti
Finanzia
Impegni
zioni
Prenota
ti
Pagamen
Impegni
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
M11
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39
M40
M41
M42 NOTE: l'assenza di
M43 corrispondenze è dovuta
M44
all'uso del data banker
M45
M46 per l'accesso ai dati nel
M47 sistema: infatti, il data
M48 banker è implementato
M49 in modo da costruire
M50
automaticamente, sulla
M51
M52 base dei metadati, le
M53 richieste per l'accesso al
M54 database.
M55
M56
M57
M58
M59
GOAL: G1
QUESTION: Q1,5
METRICA: DI
VALORE RILEVATO:
M1 3
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 2
M14 1
M15 1
M16 2
M17 3
M18 2
M19 3
M20 3
M21 2
M22 2
M23 0
M24 1
M25 1
M26 3
M27 2
M28 2
M29 1
M30 0
M31 0
M32 0
M33 0
M34 0
M35 2
M36 0
M37 1
M38 0
M39 0
M40 0
M41 0
M42 0
M43 1
M44 1
M45 1
M46 1
M47 1
M48 0
M49 0
M50 1
M51 0
M52 0
M53 0
M54 0
M55 0
M56 2
M57 2
M58 2
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: DO
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 0
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 2
M32 2
M33 2
M34 2
M35 1
M36 2
M37 1
M38 0
M39 1
M40 1
M41 1
M42 1
M43 0
M44 0
M45 0
M46 0
M47 0
M48 1
M49 1
M50 0
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: CI
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 1
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: CO
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: GD
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: GC
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: FANIN
VALORE RILEVATO:
M1 9
M2 3
M3 4
M4 1
M5 3
M6 1
M7 1
M8 2
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 2
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 20
M25 48
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 4
M38 0
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 2
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: FANOUT
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 2
M5 3
M6 1
M7 2
M8 2
M9 2
M10 1
M11 2
M12 1
M13 2
M14 1
M15 4
M16 1
M17 2
M18 1
M19 2
M20 1
M21 3
M22 5
M23 1
M24 0
M25 4
M26 2
M27 1
M28 1
M29 2
M30 17
M31 2
M32 1
M33 2
M34 2
M35 1
M36 2
M37 0
M38 24
M39 2
M40 2
M41 2
M42 2
M43 2
M44 2
M45 2
M46 2
M47 2
M48 1
M49 1
M50 0
M51 2
M52 2
M53 2
M54 2
M55 2
M56 3
M57 3
M58 0
M59 2
M60 4
GOAL: G1
QUESTION: Q1,5
METRICA: ACC
VALORE RILEVATO:
M1 0.928
M2 0.833
M3 0.857
M4 0.666
M5 0.875
M6 0.750
M7 0.800
M8 0.833
M9 0.800
M10 0.750
M11 0.800
M12 0.750
M13 0.833
M14 0.750
M15 0.857
M16 0.833
M17 0.857
M18 0.800
M19 0.857
M20 0.833
M21 0.857
M22 0.888
M23 0.500
M24 0.958
M25 0.981
M26 0.857
M27 0.800
M28 0.800
M29 0.800
M30 0.947
M31 0.800
M32 0.750
M33 0.800
M34 0.800
M35 0.800
M36 0.800
M37 0.833
M38 0.958
M39 0.750
M40 0.750
M41 0.750
M42 0.750
M43 0.750
M44 0.750
M45 0.750
M46 0.750
M47 0.750
M48 0.666
M49 0.666
M50 0.500
M51 0.750
M52 0.750
M53 0.750
M54 0.750
M55 0.750
M56 0.857
M57 0.857
M58 0.800
M59 0.800
M60 0.857
GOAL: G1
QUESTION: Q1,5
METRICA: TM
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: SN
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 0
M22 1
M23 1
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: MNS
VALORE RILEVATO:
S1 1
S2 1
S3 4
S4 1
S5 1
S6 1
S7 1
S8 1
S9 1
S10 1
S11 1
S12 1
S13 1
S14 1
S15 1
S16 1
S17 1
S18 1
S19 1
S20 1
S21 1
S22 1
S23 1
S24 1
S25 1
S26 2
S27 1
S28 1
S29 1
S30 1
S31 1
S32 1
S33 1
S34 1
S35 1
S36 1
S37 1
S38 1
S39 1
S40 1
S41 1
S42 1
S43 1
S44 1
S45 1
S46 1
S47 1
S48 1
S49 1
S50 1
S51 1
S52 1
S53 1
S54 1
S55 1
GOAL: G1
QUESTION: Q1,5
METRICA: MDS
VALORE RILEVATO:
CREATE_IMP 2
db_request 1
db_result 48
JoinTab 3
INS_RIC 1
Metadati 4
MOD_CANC_RIC 1
RIC 1
TipoValuta 1
NOTE: il valore 48 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
GOAL: G1
QUESTION: Q1,5
METRICA: MTS
VALORE RILEVATO:
Finanziamenti 0
Entrate 0
Prenotazioni 0
Impegni 0
Pagamenti 0
Finanziamenti Entrate 0
Finanziamenti Prenotazioni 0
Prenotazioni Impegni 0
Impegni Pagamenti 0
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema: infatti, il data banker
è implementato in modo da costruire automaticamente, sulla base dei metadati, le richieste per l'accesso al database.
GOAL: G1
QUESTION: Q1,5
METRICA: NT5NF
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: NT
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: PT5NF
VALORE RILEVATO: 1
NOTE:
• una distanza pari a 0 indica il raggiungimento della baseline hypothesis; un valore diverso invece quantifica la
distanza tra il valore rilevato e la baseline hypothesis
• una distanza pari a rientra indica che il valore rilevato è migliore di quello indicato nella baseline hypothesis
• le distanze segnate in grassetto indicano le metriche che non hanno raggiunto le baseline hypothesis (cioè il valore
rilevato è peggiore)
• per alcune metriche è indicato eccezione, ovvero il valore rilevato è peggiore della baseline hypothesis ma si ritiene
che la metrica abbia dato risultati positivi per i motivi spiegati nelle note o tra le distanze stesse
VALORE
DISTANZA
RILEVATO
M1 0 0
M2 0 0
M3 0 0
M4 0 0
M5 0 0
M6 0 0
M7 0 0
M8 0 0
M9 0 0
M10 0 0
M11 0 0
M12 0 0
M13 0 0
M14 0 0
M15 0 0
M16 0 0
M17 0 0
M18 0 0
M19 0 0
M20 0 0
M21 0 0
M22 0 0
M23 0 0
M24 1 1
M25 0 0
M26 0 0
M27 0 0
M28 0 0
M29 0 0
M30 0 0
M31 0 0
M32 0 0
M33 0 0
M34 0 0
M35 0 0
M36 0 0
M37 0 0
M38 0 0
M39 0 0
M40 0 0
M41 0 0
M42 0 0
M43 0 0
M44 0 0
M45 0 0
M46 0 0
M47 0 0
M48 0 0
M49 0 0
M50 0 0
M51 0 0
M52 0 0
M53 0 0
M54 0 0
M55 0 0
M56 0 0
M57 0 0
M58 0 0
M59 0 0
M60 0 0
NOTE: il numero di moduli con CI pari a 1 è uguale a 1, quindi essendo al di sotto del 2% dei moduli del sistema, la
baseline hypothesis è stata raggiunta.
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 9 nessuna (r.i.)
M2 3 nessuna (r.i.)
M3 4 nessuna (r.i.)
M4 1 nessuna (g.)
M5 3 nessuna (r.i.)
M6 1 nessuna (g.)
M7 1 nessuna (g.)
M8 2 nessuna (g.)
M9 1 nessuna (g.)
M10 1 nessuna (g.)
M11 1 nessuna (g.)
M12 1 nessuna (g.)
M13 1 nessuna (g.)
M14 1 nessuna (g.)
M15 1 nessuna (g.)
M16 2 nessuna (g.)
M17 1 nessuna (g.)
M18 1 nessuna (g.)
M19 1 nessuna (g.)
M20 1 nessuna (g.)
M21 1 nessuna (g.)
M22 1 nessuna (g.)
M23 1 nessuna (g.)
M24 20 nessuna (r.e.)
M25 48 nessuna (r.e.)
M26 1 nessuna (g.)
M27 1 nessuna (g.)
M28 1 nessuna (g.)
M29 1 nessuna (g.)
M30 1 nessuna (g.)
M31 1 nessuna (g.)
M32 1 nessuna (g.)
M33 1 nessuna (g.)
M34 1 nessuna (g.)
M35 1 nessuna (g.)
M36 1 nessuna (g.)
M37 4 nessuna (r.i.)
M38 0 nessuna (g.)
M39 1 nessuna (g.)
M40 1 nessuna (g.)
M41 1 nessuna (g.)
M42 1 nessuna (g.)
M43 1 nessuna (g.)
M44 1 nessuna (g.)
M45 1 nessuna (g.)
M46 1 nessuna (g.)
M47 1 nessuna (g.)
M48 1 nessuna (g.)
M49 1 nessuna (g.)
M50 1 nessuna (g.)
M51 1 nessuna (g.)
M52 1 nessuna (g.)
M53 1 nessuna (g.)
M54 1 nessuna (g.)
M55 1 nessuna (g.)
M56 1 nessuna (g.)
M57 1 nessuna (g.)
M58 2 nessuna (g.)
M59 1 nessuna (g.)
M60 1 nessuna (g.)
NOTE: Le sigle r.i., r.e. e g. sono le abbreviazioni di riusabile internamente, riusabile esternamente e generico
VALORE
DISTANZA
RILEVATO
M1 0.928 eccezione (FANIN alto)
M2 0.857 rientra
M3 0.857 rientra
M4 0.666 rientra
M5 0.875 eccezione (FANIN alto)
M6 0.750 rientra
M7 0.800 rientra
M8 0.833 rientra
M9 0.800 rientra
M10 0.750 rientra
M11 0.800 rientra
M12 0.750 rientra
M13 0.833 rientra
M14 0.750 rientra
M15 0.857 rientra
M16 0.833 rientra
M17 0.857 rientra
M18 0.800 rientra
M19 0.857 rientra
M20 0.833 rientra
M21 0.857 rientra
M22 0.888 0.028
M23 0.500 rientra
M24 0.958 eccezione (FANIN alto)
M25 0.981 eccezione (FANIN alto)
M26 0.857 rientra
M27 0.800 rientra
M28 0.800 rientra
M29 0.800 rientra
M30 0.947 eccezione (modulo di controllo)
M31 0.800 rientra
M32 0.750 rientra
M33 0.800 rientra
M34 0.800 rientra
M35 0.800 rientra
M36 0.800 rientra
M37 0.833 rientra
M38 0.958 eccezione (modulo di controllo)
M39 0.750 rientra
M40 0.750 rientra
M41 0.750 rientra
M42 0.750 rientra
M43 0.750 rientra
M44 0.750 rientra
M45 0.750 rientra
M46 0.750 rientra
M47 0.750 rientra
M48 0.666 rientra
M49 0.666 rientra
M50 0.500 rientra
M51 0.750 rientra
M52 0.750 rientra
M53 0.750 rientra
M54 0.750 rientra
M55 0.750 rientra
M56 0.857 rientra
M57 0.857 rientra
M58 0.800 rientra
M59 0.800 rientra
M60 0.857 rientra
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 1 nessuna
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 1 nessuna
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 1 nessuna
M27 1 nessuna
M28 1 nessuna
M29 1 nessuna
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 1 nessuna
M44 1 nessuna
M45 1 nessuna
M46 1 nessuna
M47 1 nessuna
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
M51 1 nessuna
M52 1 nessuna
M53 1 nessuna
M54 1 nessuna
M55 1 nessuna
M56 1 nessuna
M57 1 nessuna
M58 1 nessuna
M59 1 nessuna
M60 1 nessuna
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 1 nessuna
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 0 rientra
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 1 nessuna
M27 1 nessuna
M28 1 nessuna
M29 1 nessuna
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 1 nessuna
M44 1 nessuna
M45 1 nessuna
M46 1 nessuna
M47 1 nessuna
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
M51 1 nessuna
M52 1 nessuna
M53 1 nessuna
M54 1 nessuna
M55 1 nessuna
M56 1 nessuna
M57 1 nessuna
M58 1 nessuna
M59 1 nessuna
M60 1 nessuna
VALORE
RILEVATO Distanza
S1 1 nessuna
S2 1 nessuna
S3 4 nessuna
S4 1 nessuna
S5 1 nessuna
S6 1 nessuna
S7 1 nessuna
S8 1 nessuna
S9 1 nessuna
S10 1 nessuna
S11 1 nessuna
S12 1 nessuna
S13 1 nessuna
S14 1 nessuna
S15 1 nessuna
S16 1 nessuna
S17 1 nessuna
S18 1 nessuna
S19 1 nessuna
S20 1 nessuna
S21 1 nessuna
S22 1 nessuna
S23 1 nessuna
S24 1 nessuna
S25 1 nessuna
S26 2 nessuna
S27 1 nessuna
S28 1 nessuna
S29 1 nessuna
S30 1 nessuna
S31 1 nessuna
S32 1 nessuna
S33 1 nessuna
S34 1 nessuna
S35 1 nessuna
S36 1 nessuna
S37 1 nessuna
S38 1 nessuna
S39 1 nessuna
S40 1 nessuna
S41 1 nessuna
S42 1 nessuna
S43 1 nessuna
S44 1 nessuna
S45 1 nessuna
S46 1 nessuna
S47 1 nessuna
S48 1 nessuna
S49 1 nessuna
S50 1 nessuna
S51 1 nessuna
S52 1 nessuna
S53 1 nessuna
S54 1 nessuna
S55 1 nessuna
VALORE
RILEVATO Distanza
CREATE_IMP 2 rientra
db_request 1 rientra
db_result 48 eccezione (vedere note)
JoinTab 3 rientra
INS_RIC 1 rientra
Metadati 4 rientra
MOD_CANC_RIC 1 rientra
RIC 1 rientra
TipoValuta 1 rientra
NOTE: il valore 48 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
VALORE DISTANZA
RILEVATO
Finanziamenti 0 nessuna
Entrate 0 nessuna
Prenotazioni 0 nessuna
Impegni 0 nessuna
Pagamenti 0 nessuna
Finanziamenti Entrate 0 nessuna
Finanziamenti Prenotazioni 0 nessuna
Prenotazioni Impegni 0 nessuna
Impegni Pagamenti 0 nessuna
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema.
• Per la metrica ACC, avendo rilevato nuovamente valori peggiori della precedente baseline hypothesis per un unico
modulo, si ritiene che la sua nuova baseline hypothesis possa essere sostituita con:
ACC: massimo 0.860 per tutti i moduli esclusi i moduli di servizio e quelli di controllo per i quali valori vicini a 1
sono accettabili; compreso strettamente tra 0.860 e 0.900 per massimo il 2% dei moduli di sistema (esclusi
i moduli prima citati)
NOTE:
Questa versione dei fogli metrici è stata prodotta durante l'esecuzione dell'attività 1.4 (Produrre i fogli metrici) a causa
della presenza delle Ipotesi di variazione dei fogli metrici
- Riusabilità:
ACC: massimo 0.860 per tutti i moduli esclusi i moduli di servizio e quelli di la maggiore esperienza nel ripartire la struttura del sistema secondo le funzioni principali
svolte, comporta una migliore distribuzione della tipologia dei moduli (basso valore di TM);
controllo per i quali valori vicini a 1 sono accettabili; compreso
in particolare, delegando l'accesso ai dati a una sola tipologia di moduli si riduce al minimo il
strettamente tra 0.860 e 0.900 per massimo il 2% dei moduli di sistema numero di moduli che conoscono le singole componenti della base di dati (MTS)
(esclusi i moduli prima citati)
la maggiore esperienza nel nascondere i dettagli del sistema in componenti separate
CI: massimo 1 per il 2% dei moduli del sistema comporta un basso numero di segreti nascosti dallo stesso modulo (SN) oltre che
pari a 0 per il restante 98%; l'abbassamento del numero di moduli che conoscono lo stesso segreto (MNS)
CO: pari a 0 per tutti i moduli del sistema;
la maggiore esperienza nel progettare moduli che implementano una singola funzione
GD: pari a 0 per tutti i moduli del sistema; comporta la diminuzione dell'interconnessione tra i moduli, e quindi dell'accoppiamento
GC: pari a 0 per tutti i moduli del sistema; (ACC), in particolare diminuisce la necessità dell'uso di dati di controllo (CO, CI e GC)
TM: pari a 1 per tutti i moduli del sistema; la maggiore esperienza nell'identificare nei moduli del sistema funzioni ricorrenti più volte,
nell'estrarre queste funzioni e nell'inserire ognuna di esse in singoli moduli, comporta
l'aumento del fan-in di questi moduli (FANIN)
MNS: massimo 4 per tutti i segreti;
• esperienza del team di progetto nella progettazione delle interfacce tra le singole componenti del
MDS: massimo 4 per tutte le strutture dati escluse quelle che fanno parte sistema
dell'interfaccia delle componenti riusabili del sistema;
la maggiore esperienza nel limitare le interazioni tra i moduli al semplice passaggio di
MTS: pari a 0 per tutte le tavole del sistema; controllo (mediante chiamata/sincronizzazione) o allo scambio (in input/output) dei soli dati
necessari, comporta la diminuzione dell'accoppiamento dei moduli (ACC). Inoltre se i dati
scambiati sono dati elementari e non strutture dati, si ottiene la diminuzione del numero di
SN: massimo 1 per tutti i moduli del sistema; moduli che conoscono una struttura dati (MDS) in quanto localizzata a pochi moduli
PT5NF: pari a 1; la maggiore esperienza nel limitare la possibilità di scambio di dati tra i moduli al solo uso
della loro interfaccia, comporta la diminuzione della necessità di usare variabili globali (GD
- Riusabilità: e GC) e quindi la diminuzione dell'accoppiamento dei moduli (ACC)
Rilevare le misure
1.6
Interpretare le misure
2.1
Individuare i punti di
debolezza
2.2
Individuare i fattori di
variazione
3.1
STOP
NOTE:
I manufatti Sistema software e Sistema software migliorato sono presenti in formato elettronico nel CD-ROM allegato.
Il Sistema software nella directory GEFIN-2, il Sistema software migliorato nella directory GEFIN-2 in quanto non è
stato sottoposto a interventi
TAV lista delle tavole presenti nel database usato dal sistema
MxTAV per ogni modulo, la o le tavole di cui il modulo conosce la struttura (tabella cross-reference)
Interpretazione: il valore di ACC è compreso tra 0 e 1. Il valore 0 corrisponde a basso accoppiamento, mentre il
valore 1 corrisponde ad alto accoppiamento. Per ogni modulo, il valore ACC deve essere il più vicino possibile a
0 e comunque non deve salire al di sopra di 0.850 (fanno eccezione i moduli di servizio per i quali FANIN
elevato aumenta ACC ma non è indice di cattiva modularità, e i moduli di controllo per i quali è normale un
valore elevato di FANOUT). Valori vicini a 0 indicano un alto grado di indipendenza del modulo dagli altri e
quindi che l'impatto di una modifica sul modulo sia localizzata e interessi un numero molto basso, se non nullo,
di moduli. Il valore di GD e GC deve essere pari a 0 per tutti i moduli, in caso contrario l'impatto di una modifica
su un modulo che usa una variabile globale potrebbe estendersi agli altri moduli che usano la stessa variabile
globale. Il valore di CO deve essere 0 per tutti i moduli per evitare che decisioni prese in un modulo interessino
moduli che non appartengono alla sua portata del controllo. Il valore di CI deve essere il più vicino possibile a 0
Interpretazione: il valore di TM deve essere pari a 1 per ogni modulo. Un valore maggiore di 1 indica che il
modulo svolge più funzioni principali del sistema e questo implica difficoltà nel collaudo, manutenzione ed
estensione del sistema, oltre che una difficoltà nel capire la responsabilità del modulo e le funzioni da esso svolte.
MNS per ogni segreto, il numero di moduli che conoscono questo segreto
Interpretazione: per ogni segreto, il valore di MNS non deve superare il valore 5 e comunque deve essere un
valore vicino a 3. In caso contrario l'impatto della modifica di un dettaglio (segreto) si estenderebbe a tutti i
moduli che conoscono lo stesso dettaglio (segreto). Valori bassi di MNS indicano quindi una maggiore
localizzazione degli interventi di manutenzione.
MDS per ogni struttura dati, il numero di moduli che conoscono questa struttura
Interpretazione: per ogni struttura dati, il valore di MDS non deve superare il valore 4 e comunque deve essere il
più vicino possibile a 3. Per moduli che conoscono una struttura dati, si intendono quei moduli che usano dati
contenuti in essa per eseguire una elaborazione (non vanno considerati i moduli che scrivono dati nella struttura);
quindi un alto valore di MDS implica che una modifica alla struttura dati si estenderebbe a tutti i moduli che
usano i dati in essa contenuta per eseguire un'elaborazione.
MTS per ogni tavola del database, il numero di moduli che conoscono la sua struttura
Interpretazione: per ogni tavola, il valore di MTS deve essere non superiore a 1. In caso contrario una modifica
alla struttura della tavola avrebbe impatto su tutti i moduli che la conoscono.
Interpretazione: il valore di SN deve essere non superiore a 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
NT5NF numero di tavole in quinta forma normale (5NF) presenti nel database
NT numero di tavole presenti nel database
PT5NF = NT5NF / NT
Interpretazione: il valore di PT5NF è compreso tra 0 e 1. Il valore di PT5NF deve essere uguale a 1, in caso
contrario è possibile che più moduli che svolgono funzioni diverse accedano alla stessa tavola e quindi questa
tavola aumenti l'accoppiamento dei moduli suddetti, oppure che un modulo effettui più funzioni diverse sulla
stessa tavola, diminuendo così l'indipendenza funzionale.
Interpretazione: il valore di SN deve essere non superiore a 1 per tutti i moduli. Un valore maggiore di 1 indica
una bassa indipendenza funzionale del modulo, diminuisce le possibilità di riusare il modulo, diminuisce la
manutenibilità del modulo in quanto complesso da capire, difficile da estendere, rischioso da modificare.
Interpretazione: il valore di FANIN indica il grado di riusabilità interna al sistema del modulo: a un valore alto di
FANIN corrisponde un modulo che svolge una precisa funzione richiesta da altri moduli, quindi si tratta di un
modulo di servizio. Inoltre moduli con alto FANIN presenti a un livello inferiore della structure chart, con molta
probabilità presentano anche riusabilità esterna.
Modello di conferma
Q1,7 Qual è l'impatto delle modifiche ?
MxMMODRIUS scheda dei moduli del vecchio sistema, modificati e riusati per il nuovo sistema
(tabella cross-reference)
NMRIUS numero di moduli del vecchio sistema modificati per il nuovo
NMMOD numero di moduli del vecchio sistema riusati nel nuovo
PERMMOD = NMMOD / NMOD
PERMRIUS = NMRIUS / NMOD
Interpretazione: i valori di PERMMOD e PERMRIUS sono compresi tra 0 e 1. Il valore di PERMMOD deve
essere il più vicino possibile a 0, non deve superare il valore 0.05 per garantire una struttura che localizza le
informazioni. Il valore di PERMRIUS deve essere il più vicino possibile a 1, non deve essere inferiore al valore
0.95 per garantire che il sistema sia stato modificato riusando la maggior parte delle componenti della versione
precedente
NMOD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• contare il numero di moduli distinti presenti in essa
Controlli da effettuare nessuno
S
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
Come misurare documenti di progetto
• individuare e riportare i segreti (dettagli) distribuiti tra i moduli presenti in essa
Controlli da effettuare nessuno
MxS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed S
• considerare i valori rilevati con le metriche M ed S e la structure chart del sistema
(o anche la call graph) presente nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e i segreti elencati in
Come misurare
S
• usando la structure chart, per ogni modulo nella tabella, contrassegnare con una
"x" le caselle in corrispondenza dei segreti che nasconde
Controlli da effettuare ogni segreto nella tabella deve essere nascosto in almeno un modulo
T
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare la structure chart del sistema (o anche la call graph) presente nei
documenti di progetto
Come misurare
• individuare e riportare le tipologie di moduli presenti nella structure chart (moduli
efferenti, afferenti, di controllo, ecc…)
Controlli da effettuare nessuno
SD
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare il dizionario dei dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le strutture di dati distinte presenti in esso
Controlli da effettuare nessuno
SDxM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M ed SD
• considerare i valori rilevati con le metriche M ed SD e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le strutture dati
elencate in SD
Come misurare
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle strutture dati di cui conosce la struttura (per individuarle,
usare la specifica del modulo e verificare se il modulo usa dati in essa contenuti
per eseguire un'elaborazione)
Controlli da effettuare ogni struttura dati nella tabella deve essere usata in almeno un modulo
TAV
Chi deve misurare ingegnere del software
Quando misurare all'inizio dell'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare
• raccogliere e riportare le tavole presenti in esso
Controlli da effettuare nessuno
MxTAV
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
le metriche M e TAV
• considerare i valori rilevati con le metriche M e TAV e le specifiche dei moduli
presenti nei documenti di progetto
• riportare in una tabella cross-reference i moduli elencati in M e le tavole elencate
Come misurare in TAV
• per ogni modulo nella tabella, contrassegnare con una "x" le caselle in
corrispondenza delle tavole di cui conosce la struttura (per individuarle, usare la
specifica del modulo)
Controlli da effettuare nessuno
DO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato da elaborare"
Controlli da effettuare nessuno
CI
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in input del
tipo "dato di controllo"
Controlli da effettuare nessuno
CO
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente i parametri di interfaccia e contare il numero di parametri in output del
tipo "dato di controllo"
Controlli da effettuare nessuno
GD
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e le specifiche dei moduli presenti
nei documenti di progetto
Come misurare • per ogni modulo elencato in M, individuare nella sua specifica la sezione
contenente le variabili usate dal modulo e contare il numero di variabili di tipo
globale usate come dato da elaborare (usare la specifica del modulo)
Controlli da effettuare nessuno
FANIN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nelle specifiche dei moduli) che richiamano il modulo suddetto
il valore di FANIN deve essere maggiore o uguale a 1, tranne per il modulo di
Controlli da effettuare
livello 1 della structure chart
FANOUT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica M
• considerare i valori rilevati con la metrica M e la structure chart del sistema (o la
call graph o le specifiche dei moduli) presente nei documenti di progetto
Come misurare
• per ogni modulo elencato in M, contare il numero di moduli presenti nella
structure chart (o nella specifica del modulo) richiamati dal modulo suddetto
Controlli da effettuare nessuno
TM
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxT
• per ogni modulo elencato nella tabella MxT, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di TM deve essere maggiore o uguale a 1
MNS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni segreto elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare il valore di MNS deve essere maggiore o uguale a 1
MTS
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxTAV
• per ogni tavola elencata nella tabella MxTAV, contare il numero di caselle, ad essa
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
SN
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica MxS
• per ogni modulo elencato nella tabella MxS, contare il numero di caselle, ad esso
Come misurare
relative, contrassegnate con una "x"
Controlli da effettuare nessuno
NT5NF
Chi deve misurare ingegnere del software
Quando misurare durante l'attività di raccolta delle misure (attività 1.6)
• considerare lo schema della base di dati presente nei documenti di progetto
Come misurare • contare il numero di tabelle in quinta forma normale contenute nello schema della
base di dati
Controlli da effettuare nessuno
NT
Chi deve misurare ingegnere del software
durante l'attività di raccolta delle misure (attività 1.6), dopo aver raccolto le misure per
Quando misurare
la metrica TAV
Come misurare • contare il numero di tabelle elencate in TAV
Controlli da effettuare nessuno
NMRIUS
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "riusato"
Controlli da effettuare nessuno
NMMOD
Chi deve misurare ingegnere del software
al termine della fase di esecuzione del processo di miglioramento (fase 4), dopo aver
Quando misurare
raccolto le misure per la metrica MxMMODRIUS
Come misurare • contare il numero di "x" corrispondenti al tipo di modulo "modificato"
Controlli da effettuare nessuno
- Riusabilità:
ACC: massimo 0.860 per tutti i moduli esclusi i moduli di servizio e quelli di la maggiore esperienza nel ripartire la struttura del sistema secondo le funzioni principali
svolte, comporta una migliore distribuzione della tipologia dei moduli (basso valore di TM);
controllo per i quali valori vicini a 1 sono accettabili; compreso
in particolare, delegando l'accesso ai dati a una sola tipologia di moduli si riduce al minimo il
strettamente tra 0.860 e 0.900 per massimo il 2% dei moduli di sistema numero di moduli che conoscono le singole componenti della base di dati (MTS)
(esclusi i moduli prima citati)
la maggiore esperienza nel nascondere i dettagli del sistema in componenti separate
CI: massimo 1 per il 2% dei moduli del sistema comporta un basso numero di segreti nascosti dallo stesso modulo (SN) oltre che
pari a 0 per il restante 99%; l'abbassamento del numero di moduli che conoscono lo stesso segreto (MNS)
CO: pari a 0 per tutti i moduli del sistema;
la maggiore esperienza nel progettare moduli che implementano una singola funzione
GD: pari a 0 per tutti i moduli del sistema; comporta la diminuzione dell'interconnessione tra i moduli, e quindi dell'accoppiamento
GC: pari a 0 per tutti i moduli del sistema; (ACC), in particolare diminuisce la necessità dell'uso di dati di controllo (CO, CI e GC)
TM: pari a 1 per tutti i moduli del sistema; la maggiore esperienza nell'identificare nei moduli del sistema funzioni ricorrenti più volte,
nell'estrarre queste funzioni e nell'inserire ognuna di esse in singoli moduli, comporta
l'aumento del fan-in di questi moduli (FANIN)
MNS: massimo 4 per tutti i segreti;
• esperienza del team di progetto nella progettazione delle interfacce tra le singole componenti del
MDS: massimo 4 per tutte le strutture dati escluse quelle che fanno parte sistema
dell'interfaccia delle componenti riusabili del sistema;
la maggiore esperienza nel limitare le interazioni tra i moduli al semplice passaggio di
MTS: pari a 0 per tutte le tavole del sistema; controllo (mediante chiamata/sincronizzazione) o allo scambio (in input/output) dei soli dati
necessari, comporta la diminuzione dell'accoppiamento dei moduli (ACC). Inoltre se i dati
scambiati sono dati elementari e non strutture dati, si ottiene la diminuzione del numero di
SN: massimo 1 per tutti i moduli del sistema; moduli che conoscono una struttura dati (MDS) in quanto localizzata a pochi moduli
PT5NF: pari a 1; la maggiore esperienza nel limitare la possibilità di scambio di dati tra i moduli al solo uso
della loro interfaccia, comporta la diminuzione della necessità di usare variabili globali (GD
- Riusabilità: e GC) e quindi la diminuzione dell'accoppiamento dei moduli (ACC)
GOAL: G1
QUESTION: Q1,1
METRICA: M
VALORE RILEVATO:
CODICE MODULO
M1 Aggiornare Disponibilità Finanziaria e Disponibilità di Cassa
M2 Calcolare Disponibilità di Cassa Non Impegnata
M3 Calcolare Prenotazione Non Impegnata
M4 Calcolare Situazione Eco./Fin.
M5 Consolidare Automaticamente Prenotazione
M6 Consolidare Entrate
M7 Consolidare Manualmente Finanziamento
M8 Consolidare Manualmente Prenotazione
M9 Controllare Consistenza Cancellazione Entrata
M10 Controllare Consistenza Cancellazione Finanziamento
M11 Controllare Consistenza Cancellazione Impegno
M12 Controllare Consistenza Cancellazione Prenotazione
M13 Controllare Consistenza Creazione Entrata
M14 Controllare Consistenza Creazione Finanziamento
M15 Controllare Consistenza Creazione Impegno
M16 Controllare Consistenza Creazione Prenotazione
M17 Controllare Consistenza Modifica Entrata
M18 Controllare Consistenza Modifica Finanziamento
M19 Controllare Consistenza Modifica Impegno
M20 Controllare Consistenza Modifica Prenotazione
M21 Controllare Consistenza Creazione Pagamento
M22 Inserire Pagamento Maggiore
M23 Controllare Scadenze
M24 Convertire Valuta
M25 Data Banker
M26 Data Banker Create
M27 Data Banker Delete
M28 Data Banker Read
M29 Data Banker Update
M30 Gestire Schermate
M31 Inserire Entrata
M32 Inserire Finanziamento
M33 Inserire Impegno
M34 Inserire Pagamento
M35 Inserire Pagamento Prenotazione Esaurita
M36 Inserire Prenotazione
M37 Leggere Metadati
M38 Main
M39 Modificare/Cancellare Entrata
M40 Modificare/Cancellare Finanziamento
M41 Modificare/Cancellare Impegno
M42 Modificare/Cancellare Prenotazione
M43 Navigare Entrate
M44 Navigare Finanziamenti
M45 Navigare Impegni
M46 Navigare Pagamenti
M47 Navigare Prenotazioni
M48 Selezionare Finanziamento da Consolidare
M49 Selezionare Prenotazione da Consolidare
M50 Trattare Errori
M51 Acquisire Parametri Navigazione Finanziamenti
M52 Acquisire Parametri Navigazione Entrate
M53 Acquisire Parametri Navigazione Prenotazioni
M54 Acquisire Parametri Navigazione Impegni NOTE: viene indicato anche il
M55 Acquisire Parametri Navigazione Pagamenti codice in modo da rendere più
M56 Inserire Pagamento Minore leggibili le tabelle delle
M57 Inserire Pagamento Uguale successive metriche, nelle quali
M58 Generare Chiave Automaticamente
M59 Consolidare Automaticamente Finanziamento verrà usato il codice al posto del
M60 Controllare Consistenza Creazione Impegno Senza Prenotazione nome del modulo
GOAL: G1
QUESTION: Q1,1
METRICA: NMOD
VALORE RILEVATO: 60
GOAL: G1
QUESTION: Q1,3
METRICA: T
VALORE RILEVATO:
TIPOLOGIA
Controllo
Afferente
Efferente
Trasformazione
Data Banker
GOAL: G1
QUESTION: Q1,4
METRICA: TAV
VALORE RILEVATO:
TAVOLA
Finanziamenti
Entrate
Prenotazioni
Impegni
Pagamenti
Finanziamenti Entrate
Finanziamenti Prenotazioni
Prenotazioni Impegni
Impegni Pagamenti
GOAL: G1
QUESTION: Q1,4
METRICA: SD
VALORE RILEVATO:
STRUTTURA DATI
CREATE_IMP
db_request
db_result
JoinTab
INS_RIC
Metadati
MOD_CANC_RIC
RIC
TipoValuta
GOAL: G1
QUESTION: Q1,2
METRICA: S
VALORE RILEVATO:
CODICE SEGRETO
S1 algoritmo di conversione valuta (Euro-Lire)
S2 algoritmo per la generazione automatica della chiave di un record
S3 D.B.M.S. usato
S4 gestione della situazione di un aumento di un impegno e della prenotazione che non riesce a coprirlo
S5 gestione dell'interfaccia grafica
S6 gestione messaggistica di errore
S7 metodo per il calcolo della disponibilità di cassa non impegnata
S8 metodo per il calcolo della parte di prenotazione non impegnata
S9 metodo per il calcolo della situazione economica e finanziaria
S10 metodo per il consolidamento automatico di un finanziamento
S11 metodo per il consolidamento automatico di una entrata
S12 metodo per il consolidamento automatico di una prenotazione
S13 metodo per il consolidamento manuale di un finanziamento
S14 metodo per il consolidamento manuale di una prenotazione
S15 metodo per la cancellazione di un finanziamento
S16 metodo per la cancellazione di un impegno
S17 metodo per la cancellazione di una entrata
S18 metodo per la cancellazione di una prenotazione
S19 metodo per la modifica di un finanziamento
S20 metodo per la modifica di un impegno
S21 metodo per la modifica di una entrata
S22 metodo per la modifica di una prenotazione
S23 metodo per l'aggiornamento della situazione economica e finanziaria
S24 metodo per l'individuazione delle scadenze
S25 metodo per l'inserimento di un nuovo finanziamento
S26 metodo per l'inserimento di un nuovo impegno
S27 metodo per l'inserimento di un nuovo pagamento quando l'importo è uguale all'impegno
S28 metodo per l'inserimento di un nuovo pagamento quando l'importo è maggiore dell'impegno
S29 metodo per l'inserimento di un nuovo pagamento quando l'importo è minore dell'impegno
S30 metodo per l'inserimento di una nuova entrata
S31 metodo per l'inserimento di una nuova prenotazione
S32 modalità di presentazione dati richiesti per la navigazione degli impegni
S33 modalità di presentazione dati richiesti per la navigazione dei finanziamenti
S34 modalità di presentazione dati richiesti per la navigazione dei pagamenti
S35 modalità di presentazione dati richiesti per la navigazione delle entrate
S36 modalità di presentazione dati richiesti per la navigazione delle prenotazioni
S37 modalità di presentazione dati richiesti per la variazione degli impegni
S38 modalità di presentazione dati richiesti per la variazione dei finanziamenti
S39 modalità di presentazione dati richiesti per la variazione delle entrate
S40 modalità di presentazione dati richiesti per la variazione delle prenotazioni
S41 modalità di presentazione dati richiesti per l'inserimento degli impegni
S42 modalità di presentazione dati richiesti per l'inserimento dei finanziamenti
S43 modalità di presentazione dati richiesti per l'inserimento dei pagamenti
S44 modalità di presentazione dati richiesti per l'inserimento delle entrate
S45 modalità di presentazione dati richiesti per l'inserimento delle prenotazioni
S46 modalità di presentazione finanziamenti consolidabili manualmente
S47 modalità di presentazione prenotazioni consolidabili manualmente
S48 operazioni da eseguire al lancio del sistema
S49 ricerca entrate e modalità di presentazione risultati
S50 ricerca finanziamenti e modalità di presentazione risultati
S51 ricerca impegni e modalità di presentazione risultati
S52 ricerca pagamenti e modalità di presentazione risultati
S53 ricerca prenotazioni e modalità di presentazione risultati
S54 accesso ai metadati
S55 accesso ai servizi offerti dal data banker
NOTE: viene indicato anche il codice in modo da rendere più leggibili le tabelle delle successive metriche, nelle quali
verrà usato il codice al posto del nome del segreto
GOAL: G1
QUESTION: Q1,2
METRICA: MxS
VALORE RILEVATO: (le righe contengono i segreti, le colonne i moduli)
M10
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M11
M1
M2
M3
M4
M5
M6
M7
M8
M9
S1 x
S2
S3
S4
S5
S6
S7 x
S8 x
S9 x
S10
S11 x
S12 x
S13 x
S14 x
S15 x
S16 x
S17 x
S18 x
S19 x
S20 x
S21 x
S22 x
S23 x
S24 x
S25 x
S26 x
S27
S28 x
S29
S30 x
S31 x
S32
S33
S34
S35
S36
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M38
M39
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49
M50
S1
S2
S3 x x x x
S4 x
S5 x
S6 x
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
S28
S29
S30
S31
S32
S33
S34
S35
S36
S37 x
S38 x
S39 x
S40 x
S41 x
S42 x
S43 x
S44 x
S45 x
S46 x
S47 x
S48 x
S49 x
S50 x
S51 x
S52 x
S53 x
S54 x
S55 x
M52
M53
M54
M55
M56
M57
M58
M59
M60
S1
S2 x
S3
S4
S5
S6
S7
S8
S9
S10 x
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26 x
S27 x
S28
S29 x
S30
S31
S32 x
S33 x
S34 x
S35 x
S36 x
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
GOAL: G1
QUESTION: Q1,3
METRICA: MxT
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tipologie)
Controllo Afferente Efferente Trasformazione Data Banker
M1 x
M2 x
M3 x
M4 x
M5 x
M6 x
M7 x
M8 x
M9 x
M10 x
M11 x
M12 x
M13 x
M14 x
M15 x
M16 x
M17 x
M18 x
M19 x
M20 x
M21 x
M22 x
M23 x
M24 x
M25 x
M26 x
M27 x
M28 x
M29 x
M30 x
M31 x
M32 x
M33 x
M34 x
M35 x
M36 x
M37 x
M38 x
M39 x
M40 x
M41 x
M42 x
M43 x
M44 x
M45 x
M46 x
M47 x
M48 x
M49 x
M50 x
M51 x
M52 x
M53 x
M54 x
M55 x
M56 x
M57 x
M58 x
M59 x
M60 x
GOAL: G1
QUESTION: Q1,4
METRICA: SDxM
VALORE RILEVATO: (le righe contengono i moduli, le colonne le strutture dati)
db_reques
TipoValut
CANC_R
CREATE
INS_RIC
db_result
Metadati
JoinTab
MOD_
_IMP
RIC
IC
a
t
M1 x
M2 x
M3 x
M4 x
M5 x
M6 x
M7 x
M8 x
M9 x
M10 x
M11 x
M12 x
M13 x
M14 x
M15 x x
M16 x
M17 x
M18 x
M19 x
M20 x
M21
M22 x
M23 x
M24 x
M25 x
M26 x x
M27 x
M28 x x
M29 x x
M30 x x
M31 x
M32 x
M33 x
M34 x
M35 x
M36 x
M37
M38 x
M39 x
M40 x
M41 x
M42 x
M43 x
M44 x
M45 x
M46 x
M47 x
M48 x
M49 x
M50
M51 x
M52 x
M53 x
M54 x
M55 x
M56 x
M57 x
M58
M59 x
GOAL: G1
QUESTION: Q1,4
METRICA: MxTAV
VALORE RILEVATO: (le righe contengono i moduli, le colonne le tavole)
menti
Finanzia
Entrate
oni
Prenotazi
Impegni
i
Pagament
Entrate
menti
Finanzia
oni
Prenotazi
menti
Finanzia
Impegni
oni
Prenotazi
i
Pagament
Impegni
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
M11
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39
M40
M41
M42
M43 NOTE: l'assenza di
M44 corrispondenze è dovuta
M45 all'uso del data banker
M46 per l'accesso ai dati nel
M47
M48 sistema: infatti, il data
M49 banker è implementato
M50 in modo da costruire
M51 automaticamente, sulla
M52 base dei metadati, le
M53
M54
richieste per l'accesso al
M55 database.
M56
M57
M58
M59
GOAL: G1
QUESTION: Q1,5
METRICA: DI
VALORE RILEVATO:
M1 3
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 2
M14 1
M15 1
M16 2
M17 3
M18 2
M19 3
M20 3
M21 2
M22 2
M23 0
M24 1
M25 1
M26 3
M27 2
M28 2
M29 1
M30 0
M31 0
M32 0
M33 0
M34 0
M35 2
M36 0
M37 1
M38 0
M39 0
M40 0
M41 0
M42 0
M43 1
M44 1
M45 1
M46 1
M47 1
M48 0
M49 0
M50 1
M51 0
M52 0
M53 0
M54 0
M55 0
M56 2
M57 2
M58 2
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: DO
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 0
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 0
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 2
M32 2
M33 2
M34 2
M35 1
M36 2
M37 1
M38 0
M39 1
M40 1
M41 1
M42 1
M43 0
M44 0
M45 0
M46 0
M47 0
M48 1
M49 1
M50 0
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: CI
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 1
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: CO
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: GD
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5
METRICA: GC
VALORE RILEVATO:
M1 0
M2 0
M3 0
M4 0
M5 0
M6 0
M7 0
M8 0
M9 0
M10 0
M11 0
M12 0
M13 0
M14 0
M15 0
M16 0
M17 0
M18 0
M19 0
M20 0
M21 0
M22 0
M23 0
M24 0
M25 0
M26 0
M27 0
M28 0
M29 0
M30 0
M31 0
M32 0
M33 0
M34 0
M35 0
M36 0
M37 0
M38 0
M39 0
M40 0
M41 0
M42 0
M43 0
M44 0
M45 0
M46 0
M47 0
M48 0
M49 0
M50 0
M51 0
M52 0
M53 0
M54 0
M55 0
M56 0
M57 0
M58 0
M59 0
M60 0
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: FANIN
VALORE RILEVATO:
M1 9
M2 3
M3 4
M4 1
M5 3
M6 1
M7 1
M8 2
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 2
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 20
M25 48
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 4
M38 0
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 2
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: FANOUT
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 2
M5 3
M6 1
M7 2
M8 2
M9 2
M10 1
M11 2
M12 1
M13 2
M14 1
M15 4
M16 1
M17 2
M18 1
M19 2
M20 1
M21 3
M22 5
M23 1
M24 0
M25 4
M26 2
M27 1
M28 1
M29 2
M30 17
M31 2
M32 1
M33 2
M34 2
M35 1
M36 2
M37 0
M38 24
M39 2
M40 2
M41 2
M42 2
M43 2
M44 2
M45 2
M46 2
M47 2
M48 1
M49 1
M50 0
M51 2
M52 2
M53 2
M54 2
M55 2
M56 3
M57 3
M58 0
M59 2
M60 4
GOAL: G1
QUESTION: Q1,5
METRICA: ACC
VALORE RILEVATO:
M1 0.928
M2 0.857
M3 0.857
M4 0.666
M5 0.875
M6 0.750
M7 0.800
M8 0.833
M9 0.800
M10 0.750
M11 0.800
M12 0.750
M13 0.833
M14 0.750
M15 0.857
M16 0.833
M17 0.857
M18 0.800
M19 0.857
M20 0.833
M21 0.857
M22 0.888
M23 0.500
M24 0.958
M25 0.981
M26 0.857
M27 0.800
M28 0.800
M29 0.800
M30 0.947
M31 0.800
M32 0.750
M33 0.800
M34 0.800
M35 0.800
M36 0.800
M37 0.833
M38 0.958
M39 0.750
M40 0.750
M41 0.750
M42 0.750
M43 0.750
M44 0.750
M45 0.750
M46 0.750
M47 0.750
M48 0.666
M49 0.666
M50 0.500
M51 0.750
M52 0.750
M53 0.750
M54 0.750
M55 0.750
M56 0.857
M57 0.857
M58 0.800
M59 0.800
M60 0.857
GOAL: G1
QUESTION: Q1,5
METRICA: TM
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 1
M22 1
M23 1
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5, Q1,6
METRICA: SN
VALORE RILEVATO:
M1 1
M2 1
M3 1
M4 1
M5 1
M6 1
M7 1
M8 1
M9 1
M10 1
M11 1
M12 1
M13 1
M14 1
M15 1
M16 1
M17 1
M18 1
M19 1
M20 1
M21 0
M22 1
M23 1
M24 1
M25 1
M26 1
M27 1
M28 1
M29 1
M30 1
M31 1
M32 1
M33 1
M34 1
M35 1
M36 1
M37 1
M38 1
M39 1
M40 1
M41 1
M42 1
M43 1
M44 1
M45 1
M46 1
M47 1
M48 1
M49 1
M50 1
M51 1
M52 1
M53 1
M54 1
M55 1
M56 1
M57 1
M58 1
M59 1
M60 1
GOAL: G1
QUESTION: Q1,5
METRICA: MNS
VALORE RILEVATO:
S1 1
S2 1
S3 4
S4 1
S5 1
S6 1
S7 1
S8 1
S9 1
S10 1
S11 1
S12 1
S13 1
S14 1
S15 1
S16 1
S17 1
S18 1
S19 1
S20 1
S21 1
S22 1
S23 1
S24 1
S25 1
S26 2
S27 1
S28 1
S29 1
S30 1
S31 1
S32 1
S33 1
S34 1
S35 1
S36 1
S37 1
S38 1
S39 1
S40 1
S41 1
S42 1
S43 1
S44 1
S45 1
S46 1
S47 1
S48 1
S49 1
S50 1
S51 1
S52 1
S53 1
S54 1
S55 1
GOAL: G1
QUESTION: Q1,5
METRICA: MDS
VALORE RILEVATO:
CREATE_IMP 2
db_request 1
db_result 48
JoinTab 3
INS_RIC 1
Metadati 4
MOD_CANC_RIC 1
RIC 1
TipoValuta 1
NOTE: il valore 48 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
GOAL: G1
QUESTION: Q1,5
METRICA: MTS
VALORE RILEVATO:
Finanziamenti 0
Entrate 0
Prenotazioni 0
Impegni 0
Pagamenti 0
Finanziamenti Entrate 0
Finanziamenti Prenotazioni 0
Prenotazioni Impegni 0
Impegni Pagamenti 0
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema: infatti, il data banker
è implementato in modo da costruire automaticamente, sulla base dei metadati, le richieste per l'accesso al database.
GOAL: G1
QUESTION: Q1,5
METRICA: NT5NF
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: NT
VALORE RILEVATO: 9
GOAL: G1
QUESTION: Q1,5
METRICA: PT5NF
VALORE RILEVATO: 1
NOTE:
• una distanza pari a 0 indica il raggiungimento della baseline hypothesis; un valore diverso invece quantifica la
distanza tra il valore rilevato e la baseline hypothesis
• una distanza pari a rientra indica che il valore rilevato è migliore di quello indicato nella baseline hypothesis
• le distanze segnate in grassetto indicano le metriche che non hanno raggiunto le baseline hypothesis (cioè il valore
rilevato è peggiore)
• per alcune metriche è indicato eccezione, ovvero il valore rilevato è peggiore della baseline hypothesis ma si ritiene
che la metrica abbia dato risultati positivi per i motivi spiegati nelle note o tra le distanze stesse
VALORE
DISTANZA
RILEVATO
M1 0 0
M2 0 0
M3 0 0
M4 0 0
M5 0 0
M6 0 0
M7 0 0
M8 0 0
M9 0 0
M10 0 0
M11 0 0
M12 0 0
M13 0 0
M14 0 0
M15 0 0
M16 0 0
M17 0 0
M18 0 0
M19 0 0
M20 0 0
M21 0 0
M22 0 0
M23 0 0
M24 1 1
M25 0 0
M26 0 0
M27 0 0
M28 0 0
M29 0 0
M30 0 0
M31 0 0
M32 0 0
M33 0 0
M34 0 0
M35 0 0
M36 0 0
M37 0 0
M38 0 0
M39 0 0
M40 0 0
M41 0 0
M42 0 0
M43 0 0
M44 0 0
M45 0 0
M46 0 0
M47 0 0
M48 0 0
M49 0 0
M50 0 0
M51 0 0
M52 0 0
M53 0 0
M54 0 0
M55 0 0
M56 0 0
M57 0 0
M58 0 0
M59 0 0
M60 0 0
NOTE: il numero di moduli con CI pari a 1 è uguale a 1, quindi essendo al di sotto del 2% dei moduli del sistema, la
baseline hypothesis è stata raggiunta.
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 0 nessuna
M2 0 nessuna
M3 0 nessuna
M4 0 nessuna
M5 0 nessuna
M6 0 nessuna
M7 0 nessuna
M8 0 nessuna
M9 0 nessuna
M10 0 nessuna
M11 0 nessuna
M12 0 nessuna
M13 0 nessuna
M14 0 nessuna
M15 0 nessuna
M16 0 nessuna
M17 0 nessuna
M18 0 nessuna
M19 0 nessuna
M20 0 nessuna
M21 0 nessuna
M22 0 nessuna
M23 0 nessuna
M24 0 nessuna
M25 0 nessuna
M26 0 nessuna
M27 0 nessuna
M28 0 nessuna
M29 0 nessuna
M30 0 nessuna
M31 0 nessuna
M32 0 nessuna
M33 0 nessuna
M34 0 nessuna
M35 0 nessuna
M36 0 nessuna
M37 0 nessuna
M38 0 nessuna
M39 0 nessuna
M40 0 nessuna
M41 0 nessuna
M42 0 nessuna
M43 0 nessuna
M44 0 nessuna
M45 0 nessuna
M46 0 nessuna
M47 0 nessuna
M48 0 nessuna
M49 0 nessuna
M50 0 nessuna
M51 0 nessuna
M52 0 nessuna
M53 0 nessuna
M54 0 nessuna
M55 0 nessuna
M56 0 nessuna
M57 0 nessuna
M58 0 nessuna
M59 0 nessuna
M60 0 nessuna
VALORE
DISTANZA
RILEVATO
M1 9 nessuna (r.i.)
M2 3 nessuna (r.i.)
M3 4 nessuna (r.i.)
M4 1 nessuna (g.)
M5 3 nessuna (r.i.)
M6 1 nessuna (g.)
M7 1 nessuna (g.)
M8 2 nessuna (g.)
M9 1 nessuna (g.)
M10 1 nessuna (g.)
M11 1 nessuna (g.)
M12 1 nessuna (g.)
M13 1 nessuna (g.)
M14 1 nessuna (g.)
M15 1 nessuna (g.)
M16 2 nessuna (g.)
M17 1 nessuna (g.)
M18 1 nessuna (g.)
M19 1 nessuna (g.)
M20 1 nessuna (g.)
M21 1 nessuna (g.)
M22 1 nessuna (g.)
M23 1 nessuna (g.)
M24 20 nessuna (r.e.)
M25 48 nessuna (r.e.)
M26 1 nessuna (g.)
M27 1 nessuna (g.)
M28 1 nessuna (g.)
M29 1 nessuna (g.)
M30 1 nessuna (g.)
M31 1 nessuna (g.)
M32 1 nessuna (g.)
M33 1 nessuna (g.)
M34 1 nessuna (g.)
M35 1 nessuna (g.)
M36 1 nessuna (g.)
M37 4 nessuna (r.i.)
M38 0 nessuna (g.)
M39 1 nessuna (g.)
M40 1 nessuna (g.)
M41 1 nessuna (g.)
M42 1 nessuna (g.)
M43 1 nessuna (g.)
M44 1 nessuna (g.)
M45 1 nessuna (g.)
M46 1 nessuna (g.)
M47 1 nessuna (g.)
M48 1 nessuna (g.)
M49 1 nessuna (g.)
M50 1 nessuna (g.)
M51 1 nessuna (g.)
M52 1 nessuna (g.)
M53 1 nessuna (g.)
M54 1 nessuna (g.)
M55 1 nessuna (g.)
M56 1 nessuna (g.)
M57 1 nessuna (g.)
M58 2 nessuna (g.)
M59 1 nessuna (g.)
M60 1 nessuna (g.)
NOTE: Le sigle r.i., r.e. e g. sono le abbreviazioni di riusabile internamente, riusabile esternamente e generico
VALORE
DISTANZA
RILEVATO
M1 0.928 eccezione (FANIN alto)
M2 0.857 rientra
M3 0.857 rientra
M4 0.666 rientra
M5 0.875 eccezione (FANIN alto)
M6 0.750 rientra
M7 0.800 rientra
M8 0.833 rientra
M9 0.800 rientra
M10 0.750 rientra
M11 0.800 rientra
M12 0.750 rientra
M13 0.833 rientra
M14 0.750 rientra
M15 0.857 rientra
M16 0.833 rientra
M17 0.857 rientra
M18 0.800 rientra
M19 0.857 rientra
M20 0.833 rientra
M21 0.857 rientra
M22 0.888 rientra nel 2%
M23 0.500 rientra
M24 0.958 eccezione (FANIN alto)
M25 0.981 eccezione (FANIN alto)
M26 0.857 rientra
M27 0.800 rientra
M28 0.800 rientra
M29 0.800 rientra
M30 0.947 eccezione (modulo di controllo)
M31 0.800 rientra
M32 0.750 rientra
M33 0.800 rientra
M34 0.800 rientra
M35 0.800 rientra
M36 0.800 rientra
M37 0.833 rientra
M38 0.958 eccezione (modulo di controllo)
M39 0.750 rientra
M40 0.750 rientra
M41 0.750 rientra
M42 0.750 rientra
M43 0.750 rientra
M44 0.750 rientra
M45 0.750 rientra
M46 0.750 rientra
M47 0.750 rientra
M48 0.666 rientra
M49 0.666 rientra
M50 0.500 rientra
M51 0.750 rientra
M52 0.750 rientra
M53 0.750 rientra
M54 0.750 rientra
M55 0.750 rientra
M56 0.857 rientra
M57 0.857 rientra
M58 0.800 rientra
M59 0.800 rientra
M60 0.857 rientra
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 1 nessuna
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 1 nessuna
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 1 nessuna
M27 1 nessuna
M28 1 nessuna
M29 1 nessuna
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 1 nessuna
M44 1 nessuna
M45 1 nessuna
M46 1 nessuna
M47 1 nessuna
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
M51 1 nessuna
M52 1 nessuna
M53 1 nessuna
M54 1 nessuna
M55 1 nessuna
M56 1 nessuna
M57 1 nessuna
M58 1 nessuna
M59 1 nessuna
M60 1 nessuna
VALORE
DISTANZA
RILEVATO
M1 1 nessuna
M2 1 nessuna
M3 1 nessuna
M4 1 nessuna
M5 1 nessuna
M6 1 nessuna
M7 1 nessuna
M8 1 nessuna
M9 1 nessuna
M10 1 nessuna
M11 1 nessuna
M12 1 nessuna
M13 1 nessuna
M14 1 nessuna
M15 1 nessuna
M16 1 nessuna
M17 1 nessuna
M18 1 nessuna
M19 1 nessuna
M20 1 nessuna
M21 0 rientra
M22 1 nessuna
M23 1 nessuna
M24 1 nessuna
M25 1 nessuna
M26 1 nessuna
M27 1 nessuna
M28 1 nessuna
M29 1 nessuna
M30 1 nessuna
M31 1 nessuna
M32 1 nessuna
M33 1 nessuna
M34 1 nessuna
M35 1 nessuna
M36 1 nessuna
M37 1 nessuna
M38 1 nessuna
M39 1 nessuna
M40 1 nessuna
M41 1 nessuna
M42 1 nessuna
M43 1 nessuna
M44 1 nessuna
M45 1 nessuna
M46 1 nessuna
M47 1 nessuna
M48 1 nessuna
M49 1 nessuna
M50 1 nessuna
M51 1 nessuna
M52 1 nessuna
M53 1 nessuna
M54 1 nessuna
M55 1 nessuna
M56 1 nessuna
M57 1 nessuna
M58 1 nessuna
M59 1 nessuna
M60 1 nessuna
VALORE
RILEVATO Distanza
S1 1 nessuna
S2 1 nessuna
S3 4 nessuna
S4 1 nessuna
S5 1 nessuna
S6 1 nessuna
S7 1 nessuna
S8 1 nessuna
S9 1 nessuna
S10 1 nessuna
S11 1 nessuna
S12 1 nessuna
S13 1 nessuna
S14 1 nessuna
S15 1 nessuna
S16 1 nessuna
S17 1 nessuna
S18 1 nessuna
S19 1 nessuna
S20 1 nessuna
S21 1 nessuna
S22 1 nessuna
S23 1 nessuna
S24 1 nessuna
S25 1 nessuna
S26 2 nessuna
S27 1 nessuna
S28 1 nessuna
S29 1 nessuna
S30 1 nessuna
S31 1 nessuna
S32 1 nessuna
S33 1 nessuna
S34 1 nessuna
S35 1 nessuna
S36 1 nessuna
S37 1 nessuna
S38 1 nessuna
S39 1 nessuna
S40 1 nessuna
S41 1 nessuna
S42 1 nessuna
S43 1 nessuna
S44 1 nessuna
S45 1 nessuna
S46 1 nessuna
S47 1 nessuna
S48 1 nessuna
S49 1 nessuna
S50 1 nessuna
S51 1 nessuna
S52 1 nessuna
S53 1 nessuna
S54 1 nessuna
S55 1 nessuna
VALORE
RILEVATO Distanza
CREATE_IMP 2 rientra
db_request 1 rientra
db_result 48 eccezione (vedere note)
JoinTab 3 rientra
INS_RIC 1 rientra
Metadati 4 rientra
MOD_CANC_RIC 1 rientra
RIC 1 rientra
TipoValuta 1 rientra
NOTE: il valore 48 per la struttura dati db_result sebbene elevato, è giustificato dal fatto che questa struttura dati è usata
dal data banker per restituire i dati ai moduli che richiedono un servizio ad esso, quindi facendo parte dell'interfaccia del
data banker, la struttura di db_result deve essere necessariamente conosciuta da tutti i moduli che richiedono un servizio
al data banker.
VALORE
DISTANZA
RILEVATO
Finanziamenti 0 nessuna
Entrate 0 nessuna
Prenotazioni 0 nessuna
Impegni 0 nessuna
Pagamenti 0 nessuna
Finanziamenti Entrate 0 nessuna
Finanziamenti Prenotazioni 0 nessuna
Prenotazioni Impegni 0 nessuna
Impegni Pagamenti 0 nessuna
NOTE: il valore 0 per ogni tavola è dovuto all'uso del data banker per l'accesso ai dati nel sistema.
INDICE:
NOTE:
Di seguito viene riportato il processo di sviluppo software originale. Per ottenere il processo di sviluppo software
migliorato è necessario seguire le indicazioni presenti nei manufatti "Miglioramento del processo di sviluppo software"
al fine di ottenere la versione definitiva.
PIANO METRICO
DOCUMENTI DI
COMPONENTI CONFIGURATE REQUISITI UTENTE SVILUPPO
DOCUMENTI ANALISI DEI REQUISITI
PIANO METRICO
STANDARD
Analisi PIANO DI TEST DI SISTEMA
DOCUMENTI DI PROGETTO
REQUISITI INFORMATICI
PIANO METRICO
Progetto DIFETTI E MISURE (PROGETTO)
CODICE
DOCUMENTI DEL TESTING
Testing
PIANO DI TEST
4
Scegliere il piano di
sviluppo del
software
0.3 Definire il piano
metrico
0.4
REQUISITI UTENTE
Costruire il modello
e-r Costruire i DFD
1.1 1.4
PIANO DI TEST DI
SISTEMA
DIFETTI E MISURE
(ANALISI)
DFD FUSO
Costruire la
structure chart
2.2
STRUCTURE CHART
Definire il
diagramma delle
dipendenze e delle
tabelle normalizzate
Definire le specifiche 2.4
dei moduli
2.3 TAVOLE E PERCORSI DI DIAGRAMMA
NAVIGAZIONE DELLE
SPECIFICHE DEI MODULI DIPENDENZE
DOCUMENTI INTERNI DI
PIANO METRICO
PROGETTO STANDARD
Pianificare la
realizzazione dei Validare Verificare Rilevare le misure di
requisiti utente qualità
2.10 2.12 2.11 2.9
REQUISITI A RISCHIO VINCOLI DI DIFETTI DA DIFETTI DA VERIFICA
PROGRAMMAZIONE
VALIDAZIONE (PROGETTO) MISURE
(PROGETTO) (PROGETTO)
2.13 DOCUMENTI DI
PROGETTO
DOCUMENTI DI PROGETTO
Implementare il
VINCOLI DI progetto
PROGRAMMAZIONE
3.1
CODICE SORGENTE
Compilare il
programma
3.2
CODICE
STANDARD
PIANO METRICO
RISCHIO
(CODIFICA)
MISURE
(CODIFICA)
PIANO DI TEST DI
UNITÀ
DIFETTI E MISURE
(CODIFICA)
PIANO DI TEST
PIANO DI TEST DI
UNITÀ
PIANO DI TEST DI
PIANO DI TEST DI ACCETTAZIONE
CODICE PIANO DI TEST DI
INTEGRAZIONE
SISTEMA
0 Problema
Procedura:
1. Descrivere il problema in testo libero dando tutti i riferimenti necessari per poter eseguire l'analisi
Procedura:
1. Descrivere gli obiettivi di business e quelli qualitativi dando tutti i riferimenti necessari per poter
definire il piano metrico
Output: Obiettivi
Procedura:
1. Sulla base delle caratteristiche del progetto, scegliere il modello di processo più adeguato (di
seguito è descritto il classico Waterfall)
Procedura:
Procedura:
Procedura:
Procedura:
Procedura:
1. Individuare tutti gli agenti esterni e/o depositi di dati che forniscono i dati di ingresso primari del
sistema e/o ricevono i dati di uscita primari da esso
2. Rappresentare il sistema a livello 0 attraverso un DFD composto da un'unica funzione che
trasforma i dati di ingresso primari nei corrispondenti dati di uscita primari
3. Al livello i (i=0,1,…) individuare le funzioni non elementari candidate ad essere esplose al livello
successivo con i relativi flussi di dati
4. Per ciascuna funzione non elementare individuata a livello i (i=0,1,…) costruire un DFD di livello
i+1 che descrive in maggior dettaglio il suo significato in termini di altre, più semplici funzioni, e
che preserva la continuità del flusso di informazioni
5. Eseguire iterativamente i passi 3 e 4 fino ad ottenere solo funzioni elementari
Output: DFDs
Procedura:
Procedura:
Procedura:
Input: Obiettivi
Procedura:
1. Definire tutti i requisiti dell'applicazione che non sono esprimibili attraverso le specifiche
funzionali ed informazionali
2. Classificare i requisiti non funzionali individuati in obbligatori ed opzionali
3. Esprimere il rango in termini di valore che i requisiti obbligatori hanno per il committente
1.9 Verificare
I.S.C.: Prodotti di input disponibili
Procedura:
1. Applicare le euristiche per migliorare i parametri di qualità che non sono conformi allo standard
prestabilito
1.10 Validare
I.S.C.: Prodotti di input disponibili
Procedura:
Procedura:
1. Definire il piano di test di sistema tenendo conto che tutti i requisiti, funzionali e non devono essere
coperti. Il numero di casi di test per requisiti deve essere il risultato della mediazione tra costo del
test ed affidabilità richiesta al sistema software. La mediazione deve essere fatta per ogni requisito
Input: DFDs
Procedura:
Procedura:
Procedura:
Procedura:
Procedura:
Input: Specifiche dei moduli aggiornate, Tavole e percorsi di navigazione, Dizionario dei dati (analisi)
Procedura:
Output: Definizione delle strutture dei file esterni e dei dati globali
Input: Dizionario dei dati (analisi), Diagramma delle dipendenze, Requisiti informatici
Procedura:
Procedura:
1. Costruire la matrice Cross Reference per stabilire in quale parte del progetto è implementato
ciascun requisito
Procedura:
Procedura:
2.11 Verificare
I.S.C.: Prodotti di input disponibili
Procedura:
1. Applicare le euristiche per migliorare i parametri di qualità che non sono conformi allo standard
prestabilito
2.12 Validare
I.S.C.: Prodotti di input disponibili
Procedura:
Procedura:
1. Definire il piano di test di integrazione tenendo conto che tutte le cause di rischio che i requisiti non
siano rispettati, devono essere coperte
Procedura:
1. Realizzare il codice
2. Realizzare la base di dati
Procedura:
1. Compilare il programma
2. Se esistono errori sintattici
2.1 Correggere gli errori
2.2 Ripetere dal passo 1
Procedura:
Procedura:
3.5 Verificare
I.S.C.: Prodotti di input disponibili
Procedura:
1. Applicare le euristiche per migliorare i parametri di qualità che non sono conformi allo standard
prestabilito
3.6 Validare
I.S.C.: Prodotti di input disponibili
Input: Codice
Procedura:
Procedura:
1. Definire il piano di test di unità tenendo conto che tutte le cause di rischio che i vincoli non siano
rispettati, devono essere coperte
Procedura:
Procedura:
Procedura:
Procedura:
• Attributi e funzionalità di ciascuna relazione: descrizione dei legami logici tra le diverse entità del modello E-R
e delle eventuali caratteristiche dei suddetti legami
• Codice sorgente corretto: codice sorgete rielaborato in modo da eliminare gli errori sintattici
• Definizione delle strutture dei file esterni e dei dati globali: struttura logica, record logici e modalità di accesso
per ogni file esterno; struttura di ciascun dato globale; matrice Cross Reference file esterno/dato globale x modulo
che li usa
• Descrizione del problema: informazioni necessarie per poter eseguire la fase di analisi con i riferimenti alla fonte
• DFDs: descrizione dei requisiti funzionali dell'applicazione software. Ogni funzione deve essere identificata; le
funzioni possono essere articolate per livelli di dettaglio successivi. Le funzioni di livello più basso sono quelle
elementari
• Diagramma delle dipendenze: diagramma in cui sono indicati, per ciascun dato della base di dati, le dipendenze
rispetto agli altri dati
• Difetti (analisi): risultati delle attività di verifica e validazione dei documenti di analisi dei requisiti
• Difetti (progetto): risultati delle attività di verifica e validazione dei documenti di progetto
• Difetti da validazione (analisi): difformità dei documenti di analisi dei requisiti dai requisiti dell'utente
• Difetti da validazione (codifica): difformità del codice dai requisiti del progetto
• Difetti da validazione (progetto): difformità dei documenti di progetto dai requisiti dell'analisi
• Difetti da verifica (analisi): difformità dei documenti di analisi dei requisiti dallo standard prestabilito
• Difetti da verifica (progetto): difformità dei documenti di progetto dallo standard prestabilito
• Difetti e misure (analisi): difetti e misure dei documenti dell'analisi dei requisiti
• Dizionario dei dati (analisi): descrizione testuale dei flussi dei DFD, dei depositi e delle entità esterne
• Dizionario dei dati (progetto): descrizione delle strutture e dei dati usati nelle specifiche dei moduli
• Documenti analisi dei requisiti: documentazione ottenuta come risultato dell'analisi dei requisiti del software e
del sistema
Composizione: DFDs +
Dizionario dei dati (analisi) +
Specifica delle funzioni elementari +
Modello E-R +
Attributi di ciascuna entità +
Attributi e funzionalità di ciascuna relazione
• Documenti del testing: documentazione ottenuta come risultato dell'esecuzione della fase di testing incluso il data
base necessario alla riesecuzione del testing
• Documenti interni di progetto: documenti prodotti durante la fase di progetto, ad uso interno
• Fonti dei requisiti: idee del committente, letteratura del dominio applicativo e applicazioni simili o concorrenti già
sul mercato
• Matrice Cross Reference RexDS: matrice usata per stabilire in quale parte del progetto è implementato ciascun
requisito
• Misure (analisi): risultati dell'esecuzione del piano metrico applicato ai documenti di analisi dei requisiti
• Misure (progetto): risultati dell'esecuzione del piano metrico applicato ai documenti di progetto
• Modello E-R: descrizione dei requisiti informativi dell'applicazione software: diagramma entità (E) – relazioni
(R). Esprime il contenuto informativo dell'applicazione dal punto di vista dell'utilizzatore finale
• Obiettivi: obiettivi di business e qualitativi con riferimenti per la loro migliore comprensione
• Piano di sviluppo del software: caratterizzazione del progetto e modello di processo di sviluppo scelto
• Piano di test di accettazione: specifiche dei casi di test necessari ad eseguire il test di accettazione
• Piano di test di integrazione: specifiche dei casi di test necessari ad eseguire il test di integrazione
• Piano di test di sistema: specifiche dei casi di test necessari ad eseguire il test di sistema
• Piano di test di unità: specifiche dei casi di test necessari ad eseguire il test di unità
• Piano metrico: Goal Question Metrics (GQM): insieme degli obiettivi (Goal) a cui il processo tende definendo dei
quesiti operativi (Question) che a loro volta richiedono misure quantitative e qualitative di processo e di prodotto,
definendo delle metriche (Metrics) utilizzate per dare risposte (misure) alle domande poste
• Requisiti non funzionali: requisiti dell'applicazione software che non sono esprimibili attraverso le specifiche
funzionali e informazionali
• Requisiti utente: descrizione in qualunque forma di quello che l'utente intende ottenere dal prodotto software
• Specifiche dei moduli: definizione dettagliata delle operazioni che ciascun modulo software deve eseguire
• Specifiche dei moduli aggiornata: rifinitura delle specifiche dei moduli necessaria all'allineamento con la
Structure Chart aggiornata
• Specifiche delle funzioni elementari: descrizione dettagliata delle operazioni di ciascuna funzione elementare dei
DFD
• Structure Chart: espressione gerarchica delle relazioni fra i moduli e delle interfacce fra ogni coppia di essi
• Structure Chart aggiornata: rifinitura della Structure Chart utilizzando le euristiche e i principi dell'Information
Hiding
• Tavole e percorsi di navigazione: struttura dell'organizzazione della base di dati e insieme di percorsi logici per
navigarla
• Vincoli di programmazione a rischio: vincoli di programmazione il cui non soddisfacimento è un rischio per la
non conformità dell'applicazione software ai requisiti di qualità
[BAS94] Basili, V.R., C.Caldiera, H.D. Rombach, 'Goal Question Metric Paradigm', Encyclopedia of
Software Engineering (Marciniak, J.J., editor), Volume 1, John Wiley & Sons, 1994a, pp. 528-532;
[FRAN96] Fraunhofer Einrichtung Experimentelles Software Engineering, The PERFECT Handbook Volume 2
infrastructure technologies, "Goal-Oriented Measuremente Using GQM" booklet;
[PAR72] Parnas, D.L., "On Criteria To Be Used in Decomposing Systems into Modules", Communications of
the ACM 15(12) 1053-1058, 1972;
[PAR83] D.L. Parnas, P.C. Clements and D.M. Weiss, "Enhancing Reusability with Information Hiding", ITT
proceedings of the Workshop on Reusability in Programming, Newport, R.I., 1983;
[PRESM] R. S. Pressman, “Principi di Ingegneria del software”, Seconda Edizione, Mc Graw Hill;
[VIS99] G. Visaggio, dispense del corso di Ingegneria del Software I, A.A. 1999/2000;
[VIS00] G.Visaggio, dispense del corso di Ingegneria del Software II, A.A. 2000/2001;
[VSB99] Rini van Solingen, Egon Berghout, "The Goal/Question Metric Method", Mc Graw Hill, 1999