Composite Structure Diagram: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 3:
 
==Composizione==
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|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|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]]:
 
:<code><bold>context<bold> SistemaHifi</code></br>
:<code><bold>inv</bold> amplificatore.altoparlanti = casse</code>
 
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|Diagramma UML 2.0]]
 
==Collegamenti esterni==