Linguaggi di programmazione

Prevenzione degli errori

An ounce of prevention is worth a pound of cure

Questo proverbio fu citato da Benjamin Franklin durante la cerimonia di fondazione della prima brigata di pompieri a Filadelfia, nel 1736. Nella nostra lingua:

Meglio prevenire che curare.

Ci sono delle caratteristiche che alcuni linguaggi di programmazione hanno, e altri non hanno, che sono importanti ai fini della prevenzione degli errori, un aspetto che mi sta particolarmente a cuore e che ha un peso particolare nel caso di sistemi software destinati a essere utilizzati e manutenuti per un tempo prolungato.

Questo aspetto riveste particolare importanza in alcune fasi cruciali del ciclo di vita del software.


In fase di sviluppo

La domanda è questa: quante possibilità ci sono che una svista in fase di codifica passi inosservata fino al momento in cui il software viene eseguito, e a quel punto si manifesti con un malfunzionamento? Possiamo e vogliamo fare affidamento solo sulla fase di test per rilevare questo tipo di errori?


In fase di manutenzione

Spesso si sottovaluta il fatto che la fase di manutenzione è destinata a richiedere la maggior parte dell'impegno complessivo:

  • Manutenzione adattativa: negli anni, i sistemi operativi, e altri elementi di contorno, evolvono, e impongono adattamenti;
  • Manutenzione evolutiva: su richiesta degli utenti, o per rispondere alla concorrenza, si rendono opportune evoluzioni funzionali;
  • Manutenzione correttiva: emergono difetti e devono essere corretti.

La questione, di conseguenza, è questa: quante possibilità ci sono che nella realizzazione di modifiche il software manifesti delle regressioni? Possiamo e vogliamo fare affidamento solo sulla fase di test per rilevare questo tipo di errori?


Come può aiutarci il linguaggio

Nel seguito approfondirò alcune caratteristiche fondamentali di alcuni linguaggi moderni:

  • Memory safety;
  • Type safety;
  • Null safety.

L’obiettivo è mostrare come queste caratteristiche possano ridurre la probabilità di errori che sfuggono ai test e facilitare la manutenzione del software nel tempo.


Giorgio Barchiesi
Albo degli Ingegneri Sez. A, N. 4027 della Prov. di Trento
P.IVA 02370260222, C.F. BRC GRG 58L26 C794R

Copyright © 2015-2024 Giorgio Barchiesi - Tutti i diritti riservati