---
title: "Parte 2: Analisi di un'applicazione legacy con Altova UModel"
date: "2009-04-24"
tags: 
  - "c"
  - "java"
  - "missionkit"
  - "software-modeling"
  - "uml"
  - "uml-tool"
  - "umodel"
description: Questo articolo tratta della creazione di diagrammi di casi d'uso per un'applicazione ATM obsoleta, utilizzando Altova UModel, concentrandosi sulle interazioni con l'utente e sui miglioramenti previsti.
---
Status: #blog

Tags:  #c #java #missionkit #software-modeling #uml #uml-tool #umodel

Categories: [Altova](/blog/it/category/altova.md) 
# Parte 2: Analisi di un'applicazione legacy con Altova UModel

Nella [Parte 1](https://www.altova.com/blog/2009/04/analyzing-legacy-application-with.html) della serie "Analisi di un'applicazione legacy", abbiamo presentato la nostra applicazione di simulazione di sportelli automatici, abbiamo importato il codice sorgente Java in un progetto [UModel](https://www.altova.com/it/products/umodel/uml_tool.html) e abbiamo perfezionato un diagramma di classi per ottenere una panoramica delle classi dell'applicazione e delle loro relazioni. In questo articolo, creeremo dei [diagrammi di casi d'uso](https://www.altova.com/it/features_use_case.html) per documentare le funzionalità attuali della nostra applicazione di simulazione di sportelli automatici e aggiungeremo elementi a un diagramma di caso d'uso per pianificare un miglioramento futuro. Come abbiamo visto nella Parte 1, quando un utente esegue la nostra simulazione di sportello automatico, gli viene richiesto di accedere con un numero di conto e un PIN, e successivamente gli viene presentato un menu di transazioni che riassume tutte le interazioni disponibili con l'applicazione: 

[![Menu delle transazioni di simulazione per bancomat](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSDHQ4GSI/AAAAAAAAAEM/jvo19yCSOQo/transaction%20menu_thumb%5B2%5D.gif?imgmax=800 "ATM Simulation transaction menu")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSC3HfXsI/AAAAAAAAAEI/b8fsi30qDyg/s1600-h/transaction%20menu%5B4%5D.gif) 

Utilizzando il menu "Transazioni" come riferimento, possiamo creare un diagramma dei casi d'uso che illustra le interazioni degli utenti con la simulazione del bancomat: 

[![Panoramica del caso d'uso per la simulazione di un bancomat (diagramma)](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSEJlkKRI/AAAAAAAAAEU/zZp4OlbX7Ms/usecase1_thumb%5B1%5D.gif?imgmax=800 "ATM Simulation overview use case diagram")](http://lh3.ggpht.com/_REdrfeVqYdU/SfHSDuArD2I/AAAAAAAAAEQ/pb26wYjQWWA/s1600-h/usecase1%5B3%5D.gif)

Se conoscete la notazione UML, la prima cosa che potreste aver notato è che l'attore nel nostro diagramma non assomiglia alla tipica figura stilizzata utilizzata in UML. UModel permette ai modellatori software di assegnare qualsiasi file immagine .bmp di Windows per rappresentare un attore in un diagramma dei casi d'uso. Abbiamo utilizzato la finestra di supporto "Proprietà" per assegnare un'immagine dalla libreria fornita con UModel.

[![Finestra delle proprietà di Altova UModel](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSEq2AYoI/AAAAAAAAAEc/qDV7VjIP0p4/PropertiesWindow_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Properties Window")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSEfzVyeI/AAAAAAAAAEY/1m5PRtMuCHg/s1600-h/PropertiesWindow%5B3%5D.gif) 

Un diagramma dei casi d'uso non è il luogo appropriato per definire il flusso dell'applicazione o le classi orientate agli oggetti, ma serve semplicemente a documentare come un utente (un "attore" nella terminologia UML) interagisce con il sistema. Possiamo creare diagrammi dei casi d'uso aggiuntivi per mostrare maggiori dettagli su ciascuna interazione. Espandere ogni interazione in un diagramma separato migliora la chiarezza, mantenendo ogni schema semplice e ordinato, e lascia spazio sufficiente per sperimentare diverse opzioni. 

[![Diagramma dei casi d'uso dettagliato per l'accesso degli utenti](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSFKI29WI/AAAAAAAAAEk/AFJI7u3ywco/usecase2_thumb%5B1%5D.gif?imgmax=800 "Detailed user sign in use case diagram")](http://lh5.ggpht.com/_REdrfeVqYdU/SfHSE60c0kI/AAAAAAAAAEg/Lg11jQtejFM/s1600-h/usecase2%5B3%5D.gif) 

Abbiamo aggiunto la verifica del numero di conto e del PIN in una nota, invece di rappresentarla come un caso d'uso, perché l'utente dell'ATM non è l'attore che esegue quella specifica operazione. Basandoci sull'esperienza reale con gli ATM, possiamo ipotizzare (anche se non abbiamo ancora esaminato il codice) che un prelievo verrà annullato se l'importo richiesto è superiore al saldo disponibile sul conto. Tuttavia, il confronto tra l'importo del prelievo e il saldo del conto non viene eseguito dall'utente, quindi anche questa attività non è rappresentata in un diagramma di caso d'uso. 

[![Diagramma dei casi d'uso per il prelievo di contanti](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSF209eRI/AAAAAAAAAEs/eB3dPyG57PI/usecase3_thumb%5B1%5D.gif?imgmax=800 "Withdraw cash use case diagram")](http://lh5.ggpht.com/_REdrfeVqYdU/SfHSFm6llBI/AAAAAAAAAEo/xn6UYTTGn7I/s1600-h/usecase3%5B3%5D.gif) 

La freccia all'interno del caso d'uso "Prelievo contanti" indica un collegamento ipertestuale. UModel permette di associare uno o più collegamenti ipertestuali a qualsiasi elemento dei vostri diagrammi. Un collegamento ipertestuale può fare riferimento a un URL, a un file esterno o a un altro diagramma. La finestra di dialogo per i collegamenti ipertestuali consente anche di definire un testo di supporto per i vostri collegamenti. 

[![Dialogo delle ipercollegamenti in Altova UModel](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSGYeH0rI/AAAAAAAAAE0/36DgzV_Yl-0/hyperlinksdialog_thumb%5B1%5D.gif?imgmax=800 "Altova UModel hyperlinks dialog")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSGFUiWVI/AAAAAAAAAEw/ZZU8p5k9ks4/s1600-h/hyperlinksdialog%5B3%5D.gif) 

[![Testo visualizzato a comparsa per gli iperlink nei diagrammi di casi d'uso](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSHKYq3HI/AAAAAAAAAE8/fw1H_zlU6Vo/usecase4_thumb%5B1%5D.gif?imgmax=800 "Hyperlink pop-up text in use case diagram")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSGu60M4I/AAAAAAAAAE4/qrle7DV5PXw/s1600-h/usecase4%5B3%5D.gif) 

Se si definiscono più di un collegamento ipertestuale, il testo di supporto si trasforma in un menu a comparsa. Supponiamo di dover modificare la simulazione esistente del bancomat per addebitare una commissione per ogni prelievo. Se l'importo del prelievo è inferiore a 100 dollari, la commissione sarà di 2 dollari. Se l'importo del prelievo è di 100 dollari o superiore, la commissione sarà di 4 dollari. Poiché il bancomat non è rifornito di banconote da un dollaro, la commissione deve essere addebitata sul conto, e non detratta direttamente dal prelievo di contanti. La commissione verrà visualizzata prima di qualsiasi erogazione di contanti e l'utente potrà annullare la transazione. Possiamo aggiungere questo nuovo requisito al nostro diagramma dei casi d'uso per il prelievo al bancomat. 

[![Diagramma dei casi d'uso migliorato per il prelievo di contanti](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSHjveWdI/AAAAAAAAAFE/etX3ZjlAsQM/usecase5b_thumb%5B1%5D.gif?imgmax=800 "Enhanced Withdraw Cash use case diagram")](http://lh3.ggpht.com/_REdrfeVqYdU/SfHSHRdwdII/AAAAAAAAAFA/3zBX6tvvOAM/s1600-h/usecase5b%5B3%5D.gif) 

Abbiamo modificato il colore dell'ovale relativo al caso d'uso "Approvazione della commissione" per indicare che si tratta di una funzionalità pianificata, ma non ancora implementata. Alcuni sviluppatori potrebbero sostenere che la nota associata all'ovale "Approvazione della commissione" è ridondante, poiché la semplice indicazione di "inclusione" implica già che "Approvazione della commissione" è una componente necessaria per il prelievo di contanti. Tuttavia, molte persone sono confuse sulla differenza tra "inclusione" ed "estensione", quindi è meglio essere assolutamente chiari. Possiamo anche sfruttare la funzionalità "Livelli" di UModel per posizionare tutti gli elementi relativi alla nuova funzionalità su un livello separato.

[![Menu contestuale "Assegna livello" in Altova UModel](https://lh5.ggpht.com/_REdrfeVqYdU/SfHSIi2xicI/AAAAAAAAAFM/ScNlckyeir4/layersAssign_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Assign Layer context menu")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSIBpiEzI/AAAAAAAAAFI/CcWmv9OlLxs/s1600-h/layersAssign%5B3%5D.gif)

Ora, la finestra di aiuto "Livelli" ci permette di visualizzare o nascondere la funzionalità prevista nella nostra vista del diagramma. 

[![Finestra di supporto per il livello in Altova UModel](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSJdL7XKI/AAAAAAAAAFU/3N3VfK_DHpM/layersview_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Layer helper window")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSI19nEtI/AAAAAAAAAFQ/uwwdU85SDgo/s1600-h/layersview%5B3%5D.gif) 

L'esperienza reale con i bancomat ci indica che una transazione manca nella simulazione attuale. Il menu delle transazioni non offre l'opzione di trasferire fondi tra conti. Dagli schemi che abbiamo già creato, possiamo constatare che la progettazione originale dell'applicazione renderà difficile l'implementazione di un'operazione di trasferimento. L'accesso dell'utente è basato sul numero di conto, e sembra che l'applicazione attuale non comprenda il concetto di un singolo cliente bancario che possiede sia un conto corrente che un conto di risparmio. Se il nostro responsabile richiederà la funzionalità di trasferimento di fondi, dovremo confrontarci con l'architetto del software aziendale della nostra azienda. Sarà necessario implementare un ID utente collegato a più conti, non solo nella nostra app di simulazione dei bancomat, ma anche nel database della banca. 

The [Premiato con il premio Jolt](https://www.altova.com/it/JOLTAward_MissionKit_031809.html) Altova [MissionKit per gli architetti di sistemi aziendali](https://www.altova.com/it/products/missionkit/software_architect_tools.html) Si tratta di una raccolta di otto strumenti XML, di database e UML, pensata per l'architetto software aziendale che potrebbe aver bisogno di strumenti di modellazione UML e di gestione di database, oltre a funzionalità avanzate di XML, servizi web e integrazione dei dati. 

[Clicca qui per scaricare una versione di prova completamente funzionante, valida per 30 giorni.](https://www.altova.com/it/download/missionkit/software_development_tools_enterprise.html) Nella prossima parte, analizzeremo la simulazione ATM da una prospettiva completamente diversa, in preparazione all'analisi del codice. 
