UML: linguggio di modellazione unificato

Lo scopo di questo articolo non è quello di dare nozioni approfondite sul mondo dell'UML ma piuttosto quello di incuriosire il lettore e quindi per far divulgare questa metodologia di progettazione.

 
UML, acronimo di Unified Modeling Language, è un linguaggio di modellazione basato su object-oriented che ha lo scopo di strutturare la progettazione del software (ma anche per la progettazione in altri campi se opportunamente adattato).
Come dice la definizione è un linguaggio di modellazione che fornisce al progettista, strumenti utili per la raccolta delle informazioni inerenti il progetto, strumenti utili per la progettazione del prodotto, metodologie utili per guidare il progettista nell'eseguire i giusti avanzamenti sul progetto e documenti per la rappresentazione del software.
Chiaramente essendo stato concepito per la progettazione di software ad alto livello (per la programmazione ad oggetti) sarà scolpito ad hoc per questo tipo di progetti ma se si inizia ad entrare nel vivo dell'UML si capisce facilmente che può essere usato anche per altri tipi di progettazioni facendo le dovute considerazioni.
 
Perché usare l'UML?
Quando ci si trova a dover sviluppare il software è uso comune mettersi davanti al PC e iniziare di getto a scrivere il codice, suddividendo mentalmente il progetto in piccole parti e quindi scriverne le relative funzioni. Purtroppo però, vuoi perché non sempre ci si azzecca nello scrivere il software, vuoi perché non sempre si interpreta bene le richieste e in fine perché spesso chi richiede il progetto cambia idea, ci si trova a dover rimetter mano al codice a tal punto che alle volte è più conveniente ricominciare da zero.
Immaginiamo che siamo riusciti a districarci tra le mille modifiche fatte e siamo arrivati a compimento del progetto, sicuramente capiterà che dopo diverso tempo ci viene richiesto di rimettere mano al software per apportare delle modifiche o per correggere dei bachi. Solitamente qua sorge il problema di non ricordarsi di come sia stato strutturato il software o peggio ancora di non sapere dove mettere le mani perché magari questo software è stato sviluppato da un'altra persona.
È proprio per risolvere questi problemi che l'UML nasce: ottimizza i tempi di progettazione, fornisce una metodologia per strutturare il software in modo che sia più robusto possibile e fornisce degli strumenti per la documentazione del software.
In tutto questo ho omesso la parte che riguarda il test che solitamente è lunga dolorosa; anche in questo caso l'UML fornisce delle metodologie per strutturare i test riducendone i tempi e i costi.
 
UML
 
Descrizione
Il linguaggio di modellazione UML si può considerare come una serie di passi che il progettista deve fare per poter arrivare alla stesura del software nel modo più "lineare" possibile e senza sprecare troppo tempo nel momento in cui ci si accorge che le esigenze del cliente cambiano o non sono state ben capite. Proprio per quest'ultimo motivo questo linguaggio di modellazione ha una struttura di tipo evolutiva ossia che ad ogni step c'è la verifica di quanto ottenuto e quindi la possibilità di ritornare a valutare i passi appena eseguiti. Essendo l'UML una procedura da seguire, possiamo suddividerla nei seguenti passi:
 
  • Pianificazione: bisogna stabilire gli obbiettivi generali dell'iterazione, basandosi su i risultati delle precedenti iterazioni se ce ne sono e la stima attuale dei costi e dei rischi.
  • Definizione degli Stakeholder ossia (come dice la parola stessa) stabilire le persone interessate, attraverso una serie di domande formulate appositamente.
  • Raccolta e analisi dei Requisiti: attività difficile e non standardizzabile in quanto utenti diversi possono fornire informazioni diverse. Eseguita la fase di raccolta dei requisiti si passa alla fase di analisi che viene eseguita attraverso la costruzione di un glossario e quindi alla loro classificazione.
  • Costruzione dei Diagrammi dei Casi d'Uso: servono a capire che cosa esiste al di fuori del sistema e che cosa dovrebbe essere fatto dal sistema in seguito agli stimoli ricevuti dall'esterno.
  • Costruzione dei Diagrammi del Flusso dei Dati: rappresenta come i dati vengono trasformati e come si muovono attraverso il sistema.
  • Costruzione dei Diagrammi delle Classi:  rappresenta come i dati vengono strutturati, quali sono i loro attributi, i loro metodi e le loro relazioni.
  • Costruzione dei Diagrammi delle Collaborazioni, dei Diagrammi delle sequenze, dei Diagrammi di Stato e dei Diagrammi delle Attività: rappresenta come devono essere svolte le operazioni associate ai dati e come i dati interagiscono tra loro.
  • Costruzione dei Diagrammi dei Comportamenti e dei Diagrammi di Dislocamento: servono a rappresentare la struttura generale e l'organizzazione del software, quindi, come decomporre il sistema in componenti, quali sono i principali componenti, quali sono le relazioni fra i componenti e i vincoli che devono essere rispettati.
  • Procedura di Convalida e Verifica: attività svolte ad assicurare che il software sia conforme ai requisiti dell'utente (convalida) e ad assicurare che il software sia conforme alle specifiche dell'analista (verifica).
  • Procedura di Testing: questa procedura è tanto utile quanto "ignorata" da molti programmatori. È il processo di valutazione di un sistema attraverso strumenti manuali o automatici col fine di determinare se il sistema soddisfa i requisiti specificati oppure se il suo comportamento attuale differisce da quello atteso.
 

Riassunto schematizzato di quello che è il mondo dell'UML ma potrebbe essere un occasione per "stuzzicare la curiosità" di tutti coloro che sviluppano software.

Scarica subito una copia gratis

3 Commenti

  1. Avatar photo fra83 4 Ottobre 2011
  2. Avatar photo stefano88 5 Ottobre 2011
  3. Avatar photo Panda95 12 Ottobre 2011

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend