Composite Structure Diagram

tipo di diagramma UML

Template:Stub informatica I Composite Structure Diagram ("diagrammi di struttura composta") sono un nuovo tipo di diagramma introdotto nella versione 2.0 del linguaggio di modellazione object-oriented UML. Consentono la rappresentazione della struttura interna di classi e altri componenti software. Possono inoltre essere usati per rappresentare design pattern attraverso la simbologia grafica delle collaborazioni.

Composizione

UML 2.0 introduce un nuovo stile per rappresentare la composizione, ovvero relazioni parte-tutto fra classi. Il seguente 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).

  Il diagramma indica che un sistema hi-fi standard è composto da un amplificatore e due 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 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:  

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 OCL:

<bold>context<bold> SistemaHifi
<bold>inv</bold> amplificatore.altoparlanti = casse

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:  

Collegamenti esterni