Composite Structure Diagram: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 5:
UML 2.0 introduce un nuovo stile per rappresentare la ''composizione'', ovvero relazioni parte-tutto fra classi. Il seguente [[Class Diagram|diagramma delle classi]] UML mostra la struttura di due diversi tipi di impianti sonori usando la notazione standard per la composizione (rappresentata graficamente dal [[rombo]] pieno).
[[Image:UML esempio compostruct 1.gif|center|Composizione in UML 1.x]]
Il diagramma indica che un sistema [[hi-fi]] standard è composto da un [[amplificatore]] e due [[altoparlante|altoparlanti]], mentre un sistema [[home theater]] è composto da un [[amplificatore]] e sei altoparlanti (fra cui un [[subwoofer]]). Il diagramma indica anche che gli altoparlanti sono controllati attraverso le uscite dell'amplificatore.
Di per sé, il diagramma non include alcuni vincoli fondamentali. Il seguente [[Object Diagram|diagramma degli oggetti]] mostra una combinazione di oggetti completamente consistente con il modello proposto, in cui però i collegamenti fra altoparlanti e amplificatori sono fatti in modo evidentemente scorretto:
[[Image:UML esempio compostruct 3.gif|center|Scenario non valido ma corretto]]
Quest'ultimo diagramma contraddice l'ovvia regola che gli altoparlanti di un certo sistema hi-fi sono collegati all'amplificatore ''di quello stesso'' sistema hi-fi, e non di un altro. Nel caso specifico, questa regola potrebbe essere aggiunta, a completamento del modello, nella forma di un vincolo [[Object Constraint Language|OCL]]:
Riga 17 ⟶ 19:
Tuttavia, a fronte di strutture composte complesse, i corrispondenti vincoli OCL tenderebbero a diventare sempre più numerosi e intricati. UML 2.0 consente di rappresentare questi vincoli graficamente come segue:
[[Image:UML esempio compostruct 2.gif|center|Diagramma UML 2.0]]
Nel diagramma, gli elementi che si trovano all'interno della classe <code>SistemaHifi</code> sono detti ''parti'' (da intendersi nel senso di "parte in una recita", e non nel senso di "pezzo"). Sono caratterizzati da un nome (opzionale) e, dopo i due punti, il nome della classe i cui oggetti possono ricoprire quel ruolo.
|