Parte 5: Analisi di un'applicazione legacy con Altova UModel

In precedenza, nelle parti 1, 2, 3 e 4 di questa serie, abbiamo utilizzato le funzionalità di reverse engineering di Altova UModel per creare diagrammi UML per un'applicazione di simulazione di un bancomat. Dopo aver analizzato l'architettura esistente, abbiamo pianificato e implementato una nuova funzionalità: la commissione per il prelievo. Anche in una versione ridotta, il nostro diagramma di sequenza aggiornato per la transazione di prelievo rappresenta in modo grafico la struttura logica interna del codice sorgente.

Stamattina, per caso, ho incontrato il responsabile dei prodotti ATM alla macchina del caffè. "Lavorate a quel codice per gli ATM da più di un mese," ha detto. "Quando potrò vedere cosa avete realizzato?" Possiamo sfruttare UModel Genera la documentazione Questa funzionalità è stata progettata per soddisfare questa richiesta. UModel creerà automaticamente una documentazione personalizzata per il nostro progetto, in formato HTML, Microsoft Word o RTF. La scheda "Includi" nella finestra di dialogo "Genera documentazione" ci permette di scegliere quali tipi di diagrammi includere e di specificare il livello di dettaglio del nostro report, consentendoci di espandere ogni tipo di elemento del diagramma.

Per un rapporto di panoramica, possiamo selezionare tutti i tipi di diagramma. Selezioneremo anche "classe" dall'elenco degli elementi per visualizzare ulteriori informazioni sulle classi presenti nella nostra applicazione. UModel ci chiede inoltre se desideriamo aggiungere anche gli elementi derivati dalle classi.

Una volta selezionati o modificati gli altri parametri del documento, inclusi i font e le dimensioni, UModel genera il rapporto in pochi secondi. In cima alla prima pagina, il rapporto inizia con un indice dei diagrammi e un indice separato degli elementi. Ogni elemento presente negli indici è collegato tramite un collegamento ipertestuale a un segnalibro all'interno del documento.

Indipendentemente dal formato scelto, il rapporto risultante è completamente modificabile. Ad esempio, possiamo aggiungere un'intestazione che includa i numeri di pagina e una dicitura che indichi la data di creazione del documento. Possiamo utilizzare la dicitura creata da UModel per creare la nostra intestazione.

La nostra relazione completa contiene tutti i diagrammi UML che descrivono l'applicazione ATM esistente, con diagrammi di classe dettagliati che mostrano le proprietà e le operazioni delle classi. Inoltre, ogni classe è accompagnata da un diagramma di gerarchia che illustra le relazioni tra le classi, e da un elenco di tutte le associazioni tra le classi. In futuro, man mano che il nostro progetto si evolve, potremo facilmente generare una versione aggiornata della relazione. Potremmo anche sfruttare le funzionalità della riga di comando di UModel o l'API di UModel per automatizzare la creazione della documentazione del progetto, oppure potremmo allegare la versione .html della relazione alla wiki del nostro team di sviluppo. Per ora, tutto ciò che dobbiamo fare è inviare la relazione via email al responsabile del prodotto ATM.

Conclusione

Speriamo che abbiate apprezzato questo esercizio sull'analisi di un'applicazione legacy con Altova UModel. Sebbene concludiamo qui questa serie, nel mondo reale c'è ancora molto lavoro da fare sulla nostra applicazione per gli sportelli automatici. Ad esempio, la funzionalità che permette agli utenti di accettare le commissioni o annullare un prelievo deve ancora essere implementata. Oppure, potremmo aggiornare il codice legacy con funzionalità più recenti del linguaggio Java, come i generics, le annotazioni e le enumerazioni.

Se avete già esperienza con UML, speriamo di avervi mostrato qualche trucco nuovo. Se siete sviluppatori che non hanno mai provato UML, abbiamo voluto darvi un'idea dei vantaggi e delle potenzialità della modellazione visiva del software. In ogni caso, se siete pronti a approfondire l'utilizzo di UML nel vostro progetto, cliccate qui per scaricare una versione di prova gratuita e completamente funzionante di Altova UModel.