Języki

Erudis - your road to knowledge
Diagram strukturalny (composite structures) (UML 2.0)

Diagram strukturalny pojawił się w UML wersji 2.0. Jest przeznaczony do tego, by modelować współpracę klas, interfejsów, komponentów, które są zaangażowane w pewne zadanie. Diagram ten jest nieco podobny do diagramu klas, z tą różnicą, że diagram klas przedstawia statyczny obraz fragmentu systemu, a diagram strukturalny obrazuje elementy systemu wykonujące wykonujące wspólne zadanie, typowe sposoby użycia elementów systemu, związki między tymi elementami, które może być trudno przedstawić na innych diagramach.

Zobaczmy, jak można efektywnie wykorzystać diagram strukturalny.

Na diagramie poniżej widzimy typowy sposób przedstawienia związku między fakturą a jej częściami:

Diagram strukturalny - prosty przykład

Linie z wypełnionymi rombami na końcach oznaczają kompozycję. Kompozycja, podobnie jak agregacja, oznacza relację część-całość między elementami diagramu, tylko, że w przypadku kompozycji zniknięcie całości automatycznie oznacza zniknięcie jej części.

Diagram ten może w zupełności wystarczyć, jednak ma on pewną wadę. Może się okazać, że wcale nie chcemy, aby Naglowek i Dane były oddzielnymi klasami – chcemy tylko podkreślić fakt, że Faktura składa się z takich części jednak bez potrzeby specyfikowania detali. Właśnie w takim przypadku pomocny jest diagram strukturalny:

Diagram strukturalny - typowy przykład

Faktura jest w tym przypadku modelowana jako klasa, zaś Naglowek i Dane jako części (parts w terminologii UML 2.0). Łącznik (connector w UML 2.0) pokazuje związek między częściami, krotności mówią nam, że każda faktura ma jeden nagłówek i co najmniej jedno pole z danymi (reprezentujące np. pojedynczy towar).

Inny sposób pokazania związku strukturalnego kilku klas można osiągnąć używając elementu współpracy (collaboration):

Diagram strukturalny i diagram współpracy

lub, jeśli ktoś woli inną notację:

Diagram strukturalny i współpracy - alternatywna notacja

Elipsa narysowana przerywaną linią oznacza element współpracy, z którym połączone (lub wewnątrz którego leżą) współdziałające klasy.

Innym możliwym zastosowaniem diagramu strukturalnego jest połączenie jego z diagramem przypadku użycia, który jest przez niego realizowany:

Diagram strukturalny i diagram przypadków użycia

Widzimy, że diagram przypadku użycia reprezentujący zapisanie się na kurs jest realizowany przez klasy połączone w jedną strukturę. Taki zapis jest o wiele czytelniejszy od wcześniej stosowanego łączenia klas z przypadkiem użycia.