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.