Analysis
Concetti di Base dell'Analisi del Software
Artefatti
L'analisi del software si riferisce a vari documenti e artefatti di codice.
Caratteristiche dell'Analisi del Software
L'analisi del software è diretta sia verso documenti che verso il codice sorgente come artefatti chiave.
Attività nell'Analisi del Software
Comprende attività diverse senza eseguire il software.
Mira a trovare difetti piuttosto che fallimenti, facilitando la rilevazione anticipata dei difetti.
Esistono vari tipi di revisioni e complementa i test del software, svolgendo anche un ruolo durante il debug.
Vantaggi dell'Analisi del Software
Economica per rilevare e risolvere i difetti in anticipo.
Si concentra sull'identificazione delle cause profonde piuttosto che sui sintomi.
Condotta prima della fase di test e applicabile a tutti gli artefatti software.
Favorisce lo scambio di conoscenze tra membri del team e supporta la qualità come responsabilità collettiva.
I dati delle revisioni possono aiutare nel miglioramento dei processi.
Tecniche Manuali per le Revisioni
Tipi di Tecniche Manuali:
Ispezione
Revisioni tra Pari
Walkthrough
Programmazione in Coppia
Revisioni Ad-Hoc
Revisioni
Definizione
Una revisione è una valutazione volta a identificare discrepanze rispetto allo stato pianificato di un prodotto o progetto, raccomandando miglioramenti. Qualsiasi artefatto software, inclusi documenti di rilascio e codice, può essere revisionato.
Attività Principali
Preparazione individuale che porta a una riunione di revisione.
Attività di follow-up post-revisione, inclusa la rifinitura e la documentazione dei risultati.
Obiettivi Tipici delle Revisioni
Identificare deviazioni standard, requisiti e difetti di design.
Concentrarsi principalmente sulla rilevazione dei difetti piuttosto che sulla correzione.
Attività di Revisione
Preparazione: Selezione dei revisori e definizione dei criteri di entrata/uscita.
Riunion di Kick-off: Obiettivi e procedure sono comunicati, e i criteri sono verificati.
Riunion di Revisione: La discussione dei risultati documentati porta all'identificazione di difetti e raccomandazioni.
Follow-up: Assicura che i difetti siano trattati e che la soddisfazione dei criteri di uscita sia verificata.
Protocollo della Riunione di Revisione
Regole di Base
Mantenere la professionalità; evitare conflitti di ego.
Tenere le riunioni piccole (3-7 partecipanti);
Limitarle a due ore, concentrandosi sull'identificazione dei problemi piuttosto che sulle soluzioni.
Ruoli in una Riunione di Revisione
Moderatore: Guida la revisione e cattura prospettive diverse.
Scrivano: Documenta risultati e problematiche.
Rifinitura e Follow-Up
Rifinitura: L'autore affronta e corregge i difetti identificati.
Follow-Up: Conferma che i difetti siano stati risolti adeguatamente e che gli obiettivi di revisione siano stati raggiunti.
Dati sui Risultati della Revisione
Tassi di Lettura:
Codice sorgente: 100-150 NCLOC/ora
Documenti di testo: 1-5 pagine/ora
Tassi di Difetti:
Le ispezioni formali producono circa 16-20 difetti/KLOC; le revisioni informali producono circa 3 difetti/KLOC.
Diversi Gradi di Formalità nelle Revisioni
Varia da revisioni informali ad-hoc a ispezioni sistematiche con ruoli e procedure stabiliti. Ogni tipo varia nella pianificazione, preparazione, verifica e processi di follow-up.
Processo di Ispezione
Panoramica
Tipo di revisione più rigoroso, procedura documentata con ruoli definiti. Guidata da un moderatore formato, spesso revisionata da pari fino al raggiungimento degli obiettivi.
Ispezioni di Codice di Fagan
Un approccio strutturato che incorpora preparazione individuale, pianificazione, riunioni di ispezione, rifinitura e follow-up, concentrandosi sulla ricerca di quanti più difetti possibile.
Importanza delle Checklists
Essenziale per mantenere standard prescritti, garantire che la revisione copra tutti gli aspetti necessari e facilitare ispezioni dettagliate. Checklists come le linee guida della NASA aiutano a identificare difetti nella struttura e nello stile del codice.
Revisioni di Design Attive
Assicurano che i revisori siano coinvolti. L'approccio enfatizza il coinvolgimento degli esperti e il dialogo durante la revisione per risultati migliori.
Tecniche Automatiche nella Revisione
Supportano tecniche manuali attraverso l'analisi statica del codice, identificando difetti comuni e migliorando l'efficienza.
Difetti Comuni nel Codice
Violazioni di sintassi, variabili non dichiarate, incoerenza nelle interfacce, vulnerabilità di sicurezza, ecc.
Conclusione
L'analisi del software gioca un ruolo essenziale nel mantenimento della qualità del software, fornendo metodi sistematici per trovare e correggere difetti precocemente nel ciclo di vita. Ogni tipo di revisione o ispezione offre diversi benefici e può essere selezionato in base al contesto e alle esigenze del progetto.