Sull’importanza dei diagrammi UML in PHP

Mercoledì 23 Settembre 2009 - 08:34

di Gabriele Romanato

PHP e Open Source

Sto leggendo con estremo interesse il libro “Professional PHP 5″ della Wrox. In questo volume si fa un abbondante uso dei diagrammi UML per descrivere le relazioni intercorrenti tra classi e componenti in vari progetti PHP.

Personalmente trovo che l’uso di UML sia da incoraggiare ovunque sia possibile, e questo per varie ragioni. La prima è la praticità: è più semplice descrivere visivamente una classe piuttosto che limitarsi ad un abbozzo mentale del suo funzionamento e dei suoi membri, specie quando si ha a che fare con progetti di una certa ampiezza. La seconda è la riusabilità del codice: un modello può essere esportato ed adattato in un altro progetto, ovviamente tenendo conto delle differenze esistenti tra un progetto e l’altro.

Per esempio, una classe ContactFormValidator che implementa il metodo validate() di un’interfaccia Validator può essere riutilizzato in vari contesti. Sarò sincero: credevo che UML si applicasse solo a linguaggi tradizionali come C++ o Java (le mie nostalgiche origini!), invece scopro con piacere la sua effettiva universalità di linguaggio per modelli applicabile a qualsiasi linguaggio orientato agli oggetti. Che dire, a 31 anni scopro di avere una mentalità piuttosto “antica”… Alla prossima!

Tags:

Categoria: PHP e Open Source | Permalink

Commenti

1

non vorrei fare l’antipatico ma UML si puo’ applicare a qualsiasi linguaggio, volendo anche a javascript.

# - postato da Matteo - 23 Settembre 2009 - 09:30

2

A dire il vero i concetti di classe, oggetto, etc possono essere applicati a qualsiasi dominio (anche non informatico) quindi UML può essere utilizzato per descrivere quasi qualsiasi cosa. In un DB le classi sono la struttura delle tabelle e gli oggetti i records che contengono per esempio (vedi Estensione per i DB).

# - postato da Danilo - 23 Settembre 2009 - 10:18

3

Che UML sia applicabile a qualsiasi linguaggio (mica solo ad oggetti!) mi pare ovvio e contemporaneamente importante da ribadire visto il titolo di questo post (perche’ non chiamarlo semplicemente “Sull’importanza di usare UML”?).

Il punto mi pare di capire e’ che UML e’ poco conosciuto: magari uno lo ha usato solo per disegnare classi in C e non sa che puo’ essere usato per disegnare casi d’uso per Flex o diagrammi d’attivita’ per applicazioni web…
E’ semplicemente un modo di fare diagrammi, non ha praticamente niente di “nativo” rispetto ad un particolare linguaggio. Semmai come si evince dal commento di Danilo alcuni trai tanti diagrammi UML sono piu’ adatti ad alcuni concetti (in questo caso tipici di tutti i linguaggi ad oggetti).

UML Distilled (terza edizione, lo stavo sfogliando ieri) e’ un ottimo libro.

# - postato da pbattino - 23 Settembre 2009 - 11:20

4

Limitare UML ai soli diagrammi di classe è tanto restrittivo quanto limitarlo ad un solo linguaggio.

Per come la vedo io, UML non solo è indipendente dal linguaggio ma dovrebbe essere utilizzato senza preoccuparsi di quale linguaggio sarà utilizzato.

UML serve a descrivere i bisogni degli utenti, i casi d’uso del sistema, gli oggetti che compongono il sistema, gli stati in cui il sistema può trovarsi, le attività che il sistema deve svolgere per soddisfare ai casi d’uso, le interazioni e le comunicazioni fra le parti del sistema, come strutturare e realizzare il sistema.

UML in definitiva serve a modellare un sistema, limitarlo alla programmazione e legarlo ai linguaggi è sbagliato dal punto di vista concettuale e riduttivo dal punto di vista pratico.

Chi ha avuto modo di utilizzare un poco UML non può, infine, non aver notato come UML sia del tutto indipendente dal contesto informatico e può essere utilizzato con successo nell’automazione industriale, in campo medico (si pensi ai protocolli di pronto intervento), in cucina (come preparare la torta della nonna) e in qualsiasi altro contesto richieda la modellazione di un sistema complesso.

# - postato da gianluca - 23 Settembre 2009 - 11:28

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento