The space where software solutions take shape

Qualità del Codice

Decadimento del codice

Decadimento del codice
In svariati progetti software si sviluppano delle grandi quantità di codice sorgente che vengono poi tenute operative e mantenute per lunghi periodi di tempo. Durante questi periodi, a causa delle attività di manutenzione, la struttura interna dei codici sorgente si modifica, spesso degradando (come le rocce nella figura). Questo accade per molte ragioni, per esempio il codice viene modificato senza prestare la necessaria attenzione al “refactoring” (e quindi generando frammenti di codice duplicati) oppure senza verificare la coerenza di tali modifiche con la relativa documentazione a livello di requisiti e progettazione; come altro esempio, alcune porzioni di codice possono diventare così complicate nel tempo da non poter essere più facilmente capite e modificate; e così via…

Analisi Statica

L’analisi statica ed in particolare alcune metriche come la complessità ciclomatica, il numero di linee di codice per unità di compilazione o per sottoprogramma, così pure come la capacità di trovare frammenti di codice duplicati possono aiutare nell’identificare gli “hot-spots”, e cioè porzioni di codice che richiedono un’attenzione particolare. Seguire da vicino l’evoluzione nel tempo di questi “hot-spots” è la chiave per poter tenere sotto controllo una mole di codice sorgente considerevole.

Analisi Dinamica

L’Analisi Dinamica consiste di due diverse attività complementari:

  • testing – unit testing, integration testing and acceptance testing – e cioè verificare che il sistema software funziona come previsto
  • coverage analysis – e cioè verificare che durante il testing tutti gli statements ed i branches sono stati eseguiti

SonarQube è una piattaforma open source per la gestione della qualità del codice. SonarQube è un’applicazione web che produce reports sul codice duplicato, sugli standards di programmazione, i tests di unità, il code coverage, la complessità, i bugs potenziali, i commenti, la progettazione e l’architettura.
Il linguaggio primariamente supportato da SonarQube è Java.

Spazio IT

Spazio IT e Inopus hanno sviluppato per AIRBUS Helicopters un SonarQube Ada Plugin, e cioè un “ponte”, che permette a SonarQube di gestire codice scritto in Ada. Il plugin utilizza AdaCore GNAT Metric oppure SCITOOLS Understand per l’Analisi Statica ed utilizza AdaCore GNATtest (Aunit) oppure Atego Apex Testmate per l’Analisi Dinamica. Le seguenti immagini mostrano l’integrazione di GNAT, Understand e Apex Testmate con SonarQube. Spazio IT ha dato questa presentazione alla conferenza Ada-Europe 2015.

Integrazione di GNAT (Gcov) con SonarQube

Integrazione di GNAT (Gcov) con SonarQube

Integrazione di SonarQube con GNAT, Understand e Apex Testmate (dettagli architetturali)

L'Ada Plugin di Spazio IT integrato con SonarQube 6.6 (LTS).

L’Ada Plugin di Spazio IT integrato con SonarQube 6.7 (LTS).

L'Ada Plugin di Spazio IT può calcolare l'Indice di Mantenibilità secondo ISO/IEC 25010:2011

L’Ada Plugin di Spazio IT può calcolare l’Indice di Mantenibilità secondo ISO/IEC 25010:2011

Attività sul C/C++

Oltre a lavorare sull’Ada Plugin, Spazio IT ha anche personalizzato il C/C++ Plugin (community version) per rendere SonarQube una piattaforma adatta all’esecuzione di attività di “Independent Verification and Validation” (IVV) sul software spaziale scritto in C/C++. Questo progetto è stato eseguito nel contesto di un programma dell’Agenzia Spaziale Europea che lo ha finanziato. Questo articolo, di NASA JPL, descrive attività di analisi statica per la ricerca di violazioni alle linee guida MISRA simili a quelle che Spazio IT sta eseguendo in questo periodo. Questa presentazione descrive le attività di Spazio IT nel contesto dell’Ispezione del Codice. Questa pagina web (in inglese) mostra quanto sia importante avere uno strumento in grado “incoraggiare/forzare” l’adozione di Coding Standards e Guidelines. Spazio IT ha dato questa presentazione ai TEC-ED & TEC-SW Final Presentation Days 2014 December.

Il C++ Plugin modificato al lavoro

Il C++ Plugin modificato al lavoro

A partire dalla versione 2.1.2 il Plugin Ada di Spazio IT supporta i Progetti Multi-Module di SonarQube Runner

A partire dalla versione 2.1.2 il Plugin Ada di Spazio IT supporta i Progetti Multi-Module di SonarQube Runner

SonarQube ed i plugins Ada e C/C++ di Spazio IT su macchina virtuale Java SE 8

SonarQube ed i plugins Ada e C/C++ di Spazio IT su macchina virtuale Java SE 8

Attività su Java

Spazio IT promuove attivamente l’utilizzo di SonarQube anche nel Mondo Java. Questa presentazione spiega perché.

Contattate Spazio IT per sviluppare la Vostra piattaforma per il controllo della Qualità del Codice basata su SonarQube. (Linguaggi Supportati: Java, C, C++, C#, Ada)

Il codice di qualità, come la musica di qualità, richiede dedizione, disciplina, metodo e passione.

Leave a Reply

Your email address will not be published. Required fields are marked *