Domare la complessità

by Luca Baldini on 13 aprile 2010

clock

Programmare è un’operazione complessa e la complessità aumenta quando si sviluppano applicazioni di una certa dimensione. Un programma software è come un orologio: composto di molti ingranaggi. Ogni ingranaggio si incastra con altri ingranaggi e alla fine, se tutto è stato montato a dovere, l’orologio funziona correttamente.

La difficoltà non sta tanto nello scrivere il codice di un singolo modulo così come non è difficile produrre un singolo ingranaggio. Ma quando tutti gli ingranaggi vengono messi insieme diventa complicato tenere sotto controllo i vari collegamenti tra i moduli. Gli ambienti di sviluppo che normalmente utilizzo non aiutano più di tanto. Il meglio che riescono a fare è quello di elencare tutti i punti in cui un oggetto è stato utilizzato in maniera diretta. Ma, per esempio, sapere quali classi sono utilizzate da una videata o quali tabelle del dabase sono utilizzate all’interno di una particolare classe non è cosa facile.

Nella versione 9.0 di Instant Developer, rilasciata qualche settimana fa, è presente una funzionalità che, a mio parere, può rispondere a questa esigenza. La funzionalità si chiama “grafico dei collegamenti“. Tale grafico è stato implementato per facilitare la componentizzazione di applicazioni già sviluppate ma può fornire un valido aiuto per analizzare le relazioni tra gli oggetti dell’applicazione anche quando la componentizzazione non interessa.

Per esempio è possibile, data una classe del progetto, sapere quali altre classi utilizza, quali tabelle del database, tabelle in memoria, variabili globali:

gr1

La classe ORDINE, mostrata in blu al centro del grafico, utilizza quattro classi (in arancione), due tabelle del database (in giallo), una tabella in memoria (in verde) ed una procedura globale. Sono riportati, accanto alle freccie, il numero di riferimenti contenuti nella classe ORDINE al centro del grafico. Alcuni oggetti possono essere aperti premendo sull’icona + per analizzare cosa loro utilizzano e questa operazione può proseguire fino a quando siano presenti collegamenti tra gli oggetti.

Il grafico può essere molto utile anche per conoscere come sono collegate tra loro le videate di un’applicazione. Partendo da una particolare videata è possibile sapere quali altre videate utilizza:

gr2

Il grafico mostra che la videata Assistenze, in basso a destra, utilizza ed è utilizzata dalla videata Modifiche: questo perché a partire da una richiesta di assistenza si può risalire all’eventuale modifica programmata per risolvere l’assistenza. Allo stesso modo a partire da una determinata modifica è possibile sapere quale richiesta di assistenza l’ha generata.

Vi invito a provare ad utilizzare questa funzionalità per guardare come sono collegati tra loro gli oggetti presenti nelle vostre applicazioni. Sono certo possa aiutarvi nello sviluppo dei vostri progetti.

L’avete già utilizzata? Ne avete ricavato qualcosa di interessante? Sono curioso di conoscere il vostro parere.

Image: khkgears

Leave a Comment

Previous post:

Next post: