Composite Structure Diagram: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(27 versioni intermedie di 18 utenti non mostrate)
Riga 1:
I '''Composite Structurestructure Diagramdiagram''' ("diagrammi di struttura composta") sono un nuovo tipo di [[diagramma]] introdotto nella versione 2.0 del [[linguaggio di modellazione]] [[Paradigma object-oriented|object-oriented]] [[Unified Modeling Language|UML]]. Consentono la rappresentazione della struttura interna di [[classe (informatica)|classi]] e altri [[componente software|componenti software]]. Possono inoltre essere usati per rappresentare ''[[design pattern]]'' attraverso la simbologia grafica delle [[collaborazione (UML)|collaborazioni]].
{{stub}}
 
I '''Composite Structure Diagram''' ("diagrammi di struttura composta") sono un nuovo tipo di [[diagramma]] introdotto nella versione 2.0 del [[linguaggio di modellazione]] [[Paradigma object-oriented|object-oriented]] [[Unified Modeling Language|UML]]. Consentono la rappresentazione della struttura interna di [[classe (informatica)|classi]] e altri [[componente software|componenti software]]. Possono inoltre essere usati per rappresentare ''[[design pattern]]'' attraverso la simbologia grafica delle [[collaborazione (UML)|collaborazioni]].
==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 (geometria)|rombo]] pieno).
 
[[Immagine: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:
 
[[Immagine: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]]:
 
:<code>'''context''' SistemaHifi</code><br>
:<code>'''inv''' 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:
 
[[Immagine: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. Le parti possono essere legate da linee dette ''connettori''. Affinché un connettore possa connettere due parti, dovrebbe esistere una [[associazione (modelli a oggetti)|associazione]] fra le due classi corrispondenti; questa associazione viene indicata dopo i due punti (nel caso specifico, i connettori sono lasciati anonimi, e solo il nome dell'associazione è mostrato).
 
Le parti di una classe possono essere rappresentate come ''porte'' (ed essere poste graficamente sul bordo del rettangolo principale) nel caso in cui si voglia consentire che siano raggiunte da connettori provenienti dall'esterno. In questo senso, le parti dette porte rappresentano punti di interazione distinti dell'oggetto composto. Nel caso specifico, le uscite sono parti di un amplificatore ma rappresentano anche il suo punto di interazione con gli altoparlanti.
 
== Voci correlate ==
* [[Component diagram]]
* [[Class diagram]]
* [[Object Constraint Language]]
 
== Altri progetti ==
{{interprogetto|commons=Composite structure diagram}}
 
==Collegamenti esterni==
* [http://www.jot.fm/issues/issue_2004_11/column5 Articolo] di [[Conrad Bock]] su ''[[Journal of Object Technology]]''
 
{{portale|ingegneria}}
[[Categoria:UML]]
 
[[Categoria:Diagrammi UML]]