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.
Attività su Ada
Spazio IT ha sviluppato il SonarQube Ada Plugin, consentendo a SonarQube di effettuare l’analisi statica del codice e di gestire la qualità del codice per i progetti Ada.
-
Analisi statica e metriche: Sfrutta Libadalang di AdaCore (API Java/JNI) per il parsing, le metriche principali e l’evidenziazione della sintassi, oltre all’importazione dei report da AdaControl (
adactl) di Jean-Pierre Rosen e da AdaLang_Analyzer di Spazio IT per applicare standard di codifica personalizzati e controlli sulle regole. - Architettura moderna: Sviluppato su Java 21 e sull’ultima API Sonar Plugin per un’integrazione fluida e ad alte prestazioni con gli ambienti server e scanner SonarQube più recenti.

Spazio IT Ada Plugin in azione
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.
Spazio IT ha dato questa presentazione sul “Bounded Model Checking and Abstract Interpretation” al “4th IEEE International Workshop on Metrology for Aerospace 2017”.
Spazio IT ha dato questa presentazione sulle “MISRA and CERT Guidelines” alla conferenza Ada-Europe 2018.
Spazio IT ha dato questa presentazione sul compilatore Clang ed i suoi analizzatori statici alla conferenza Ada-Europe 2019.
Spazio IT ha dato questa presentazione sull’Analisi Statica applicata a diversi Linguaggi di Programmazione lla conferenza Ada-Europe 2021.

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

SonarQube ed il plugin C/C++ di Spazio IT su Java 17 e PostgreSQL 14.6

Il C/C++ Plugin di Spazio IT integrato con SonarQube 26.7.
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.






