Semantica di modellazione UML

3

Nella lezione odierna sulle tecniche di modellazione rispetto a MDD usando UML il docente ha affermato che è assolutamente necessario fornire una (possibilmente) descrizione testuale sulla semantica di ciascun diagramma che produci.

Secondo me non è necessario descrivere la semantica degli elementi del diagramma che sono già standardizzati da UML. Posso vedere che è del tutto appropriato se estendi l'UML standard da stereotipi / valori taggati per qualsiasi motivo.

Al contrario, penso che la standardizzazione abbia nel caso ordinario l'intenzione di permettere alle persone di ragionare e parlare di diagrammi senza la necessità di spiegare la semantica ogni volta. L'unico presupposto è naturalmente che tutti si basano sulla stessa specifica UML.

Un altro punto riguardante MDD è che l'utilizzo di semantica diversa di volta in volta per lo stesso tipo di diagramma rende difficile la generazione del codice e la trasformazione automatica del modello alla fine.

  1. Ho ragione su questo concetto?
  2. Ci sono alcune ambiguità di interpretazione intrinseche in UML per renderlo più generale utilizzabile?
posta McMannus 24.05.2013 - 10:25
fonte

3 risposte

2

In my opinion it's not necessary to describe semantics of diagram elements which are already standardized by UML.

Sì, non sarebbe necessario descrivere la semantica degli elementi del diagramma quando quella semantica sarebbe correttamente definita da qualche parte nello standard UML. Il problema è che, specialmente con MDD, la semantica completa dipende dalla generazione del codice per questi elementi e poiché non esiste uno standard ampiamente accettato per la mappatura UML-to-code, lo standard UML non semplicemente non definisce l'intera semantica per i suoi elementi. Infatti, anche i paragrafi "Semantica UML" nello standard riguardano principalmente la sintassi UML e fornisce solo una nozione molto informale sulla semantica.

Ovviamente, quando si esegue MDD e si dispone dei generatori di codice, è possibile creare una meta-descrizione solo una volta, indicando quale semantica si applica a voi / al vostro team / al vostro progetto / alla vostra azienda, invece di distribuire lo stesso descrizione con ogni diagramma ancora e ancora.

Ecco un documento scientifico che si occupa del problema che la semantica UML è per lo più informale . Una ricerca su google per "uml semantic rules" ti porterà più articoli a discutere approfonditamente di questo argomento.

    
risposta data 24.05.2013 - 12:36
fonte
1

Hai ragione nel dire che gli stereotipi non dovrebbero aver bisogno di spiegazioni esplicite (a parte la loro definizione, se usi qualche stereotipo personalizzato per qualche motivo); questo è il punto di usare uno stereotipo. Questo di solito non significa che tu possa evitare di descrivere le cose, dato che è raro che il software sia solo un coordinamento di stereotipi. Alcune descrizioni, anche sulle parti che fanno qualcosa di interessante (come l'emissione di un ID o l'esecuzione di un calcolo) possono salvare un sacco di complessità altrove. Si noti che il testo in una lingua leggibile dall'uomo non è l'unico modo per farlo; a seconda di ciò che si sta facendo, equazioni matematiche, annotazioni semantiche da un'ontologia o anche collegamenti a documenti accademici appropriati possono essere più adatti. Tutto dipende.

È possibile scrivere virtualmente un intero programma usando UML e la generazione di codice appropriata. Probabilmente non vorrai farlo per niente di reale, dato che la difficoltà di gestire la complessità delle dimensioni dei diagrammi richiesti per descrivere un programma di dimensioni medie renderà l'uso di modelli di progettazione grafica come UML piuttosto poco pratico. UML è buono per l'architettura, il cui scopo reale deve essere mostrato ai programmatori in modo che capiscano l'immagine più grande, ma non è adatto al lavoro dettagliato. (Rabbrividisco a pensare alla complessità dei miei programmi a livello di UML se espongo tutto ...)

    
risposta data 24.05.2013 - 10:47
fonte
1

Non penso che il punto del docente sia che i commenti dovrebbero insegnare più e più volte su ciò che rappresenta UML. Invece, interpreto la tua domanda come un caso speciale di: Devo commentare il mio codice? Se sì, come? .

La solita controversia riguarda il fatto che la tua produzione (essendo codice o UML) sia auto-documentante senza bisogno di commenti, o se i commenti in realtà aggiungano un valore alla tua produzione o se i commenti siano coerenti con la tua produzione.

    
risposta data 24.05.2013 - 14:41
fonte

Leggi altre domande sui tag