Abbonati ora!

UML Tutorial – StarUML un software per la generazione di diagrammi

Nella precedente puntata sono stati descritti tutti i building-block utilizzati in tutti i diagrammi UML. Noti gli oggetti e le relazioni tra di essi si può rappresentare un problema nella maniera più appropriata. In questa terza punta sarà mostrato come utilizzare un software, StarUML, per la generazione di diagramma UML in maniera semplice ed intuitiva.

StarUML è uno strumento per creare diagrammi delle classi e altri tipi di diagrammi secondo Unified Modeling Language (UML). StarUML è uno strumento per la generazione automatica di codice Java a partire dalla sua rappresentazione UML; è possibile, inoltre, effettuare l’operazione inversa (reverse engineer) del codice Java sorgente per produrre il diagramma UML corrispondente. In questa e nella successiva puntata si utilizzerà  il software StarUML per la progettazione del “programma Pizza”, evidenziando  i passi principali per creare il diagramma  UML (mostrato in figura 1), generare  il codice che rappresenta la struttura della classe ed eventualmente aggiungere il codice che serve per l’implementazione della classe stessa.

Figura 1: diagramma UML realizzato con il software StartUML.

Figura 1: diagramma UML realizzato con il software StarUML.

Creazione del progetto

Dopo aver installato ed avviato il  programma StarUML, è mostrata la finestra New Project by Approach, come riportato in figura 2.

Figura 2: avviando il software StartUML è mostrata la finestra che permette di selezionare il tipo di progetto da creare.

Figura 2: avviando il software StarUML è mostrata la finestra che permette di selezionare il tipo di progetto da creare.

Per questo caso specifico, selezionare Empty Project e premere OK. E’ consigliato non selezionare l’opzione Set As Default Approach. Nella sezione Model Explorer selezionare il progetto appena creato (Untitled). Quindi Model  Add  Design Model. Per maggiori dettagli fare riferimento alla figura 3.

Figura 3: aggiunta di un nuovo modello al progetto creato.

Figura 3: aggiunta di un nuovo modello al progetto creato.

A questo punto è necessario aggiungere il  primo diagramma, specificandone la tipologia. Per fare questo, cliccare con il tasto destro del mouse su Model1 in Model Explorer e selezionare Add Diagram, come mostrato in figura 4.

Figura 4: aggiunta di un diagramma

Figura 4: aggiunta di un diagramma

Poiché sarà utilizzato StarUML anche per la generazione di codice a partire dal diagramma delle classi, è indispensabile scegliere il tipo di profilo usato nel progetto, ossia la sintassi utilizzata da un particolare linguaggio di programmazione. Per fare questo è necessario selezionare Model  Profile. Sarà mostrata la schermata riportata in figura 5; per quest’applicazione fare click su Java Profile, in questo modo saranno utilizzare le regole sintattiche proprie del linguaggio Java per la creazione delle classi.

Figura 5: aggiunta di un profilo.

Figura 5: aggiunta di un profilo.

Salvare il progetto, selezionando File  Save e specificando la posizione sull’hard disk. A questo punto il progetto SmartUML apparirà come quello mostrato in figura 6.

Figura 6: progetto SmartUML dopo aver eseguito le operazioni preliminari di configurazione.

Figura 6: progetto SmartUML dopo aver eseguito le
operazioni preliminari di configurazione.

Inserimento degli elementi

La prima operazione è quella di creare un classe generica. Per fare questo selezionare l’icona Class nella toolbox presente nella parte sinistra della schermata principale. Fare click con il tasto sinistro su un qualsiasi punto della finestra del diagramma. Rinominare la classe facendo doppio click su di essa: assegnare  il nome Circle. Aggiungere un attributo alla classe Circle, facendo click con il tasto destro del mouse e seleziono Add Attribute. Rinominare l’attributo inserito come _radius, utilizzare double come tipo (double) e la private come proprietà dell’attributo; tali impostazioni sono accessibili dalla sezione Property, posizionata nella parte inferiore destra della finestra. Ripetere la stessa procedura per la classe Rectangle, aggiungendo gli attributi _width (private) e _height (private), entrambi di tipo double. A questo punto è necessario creare l’interfaccia IShape. Dalla toolbox, selezionare Interface e fare click con il tasto sinistro del mouse per inserirla. Modificare il nome generico con IShape. Nella toolbar superiore selezionare l’icona Stereotipe Display ed impostare il valore a None. In questo modo si modifica la forma dell’oggetto interfaccia da circolare a rettangolare. Se, ad esempio, si volesse aggiungere il metodo getArea a questa interfaccia, sarà sufficiente fare click con il tasto destro del mouse su IShape e selezionare Add  Operation:  inserire il relativo nome. Per impostare il tipo restituito dal metodo getArea, espandere IShape in Model Explorer e facendo click con il tasto destro selezionare Add Parameter. Nella finestra Properties, impostare nessun nome per il parametro,  come DirectionKind RETURN e come tipo double. Trattandosi di una interfaccia è necessario specificare sia per IShape che per il suo metodo getArea tipo astratto: quindi nel pannello Property selezionare l’opzione IsAbstract.

Definizione delle  relazioni

Dopo aver visto come inserire gli elementi UML, inserire i relativi attributi e metodi e modificarne le loro proprietà, è necessario definire le relazioni esistenti tra essi. Poiché sia Circle che Rectangle implementano l’interfaccia IShape, bisogna definire tale concetto. Selezionare la relazione Realization dalla toolbox, fare click su Circle e trascinare  il mouse fino a IShape. Ripetere la stessa operazione per Rectangle. Poiché queste due classi hanno lo stesso comportamento dell’interfaccia IShape, bisogna copiare  il metodo getArea anche in Circle e Rectangle. Quest’ultime sono però delle implementazioni dell’interfaccia IShape, quindi è necessario deselezionare (per entrambe) l’opzione IsAbstract.

Conclusioni

In questa puntata è stato introdotto l’uso di un comodo strumento open-sorce per la realizzazione di diagrammi UML, si è mostrato come creare gli elementi base e come interconnetterli tra loro. Si è messo in pratica quello che è stato descritto in teoria nella prime due puntate del corso. Nella prossima puntata si vedrà come complicare il diagramma  che è stato preso in esame, aggiungendogli altri oggetti e relazioni; sarà poi mostrato come generare automaticamente codice Java a partire da tale diagramma.

 

 

2 Commenti

  1. Marco Giancola Marco Giancola 24 giugno 2018

Scrivi un commento

EOS-Academy