Diagrama d'estructura composta

De Viquipèdia
Salta a la navegació Salta a la cerca

Un diagrama d'estructura composta és un diagrama que mostra l'estructura interna d'una classe, així com les col·laboracions que permet. A més, permet descriure els objectes i rols que conformen el comportament de la classe que els conté. És semblant a un diagrama de classes, però mostra parts individuals en lloc de classes senceres.

Aquest diagrama pot incloure parts internes, ports a través dels quals les parts interactuen entre elles o bé les instàncies de la classe interactuen amb les parts i els elements exteriors, i connectors entre parts i ports. Un port també pot especificar els serveis que una classe requereix del seu entorn, així com els que proporciona. Una estructura composta és un conjunt d'elements interconnectats que col·laboren en temps d'execució per aconseguir algun objectiu.

Elements principals d'un diagrama d'estructura composta[modifica]

Classe[modifica]

Una classe descriu un conjunt d'objectes que comparteixen les mateixes especificacions de característiques, restriccions i semàntica. Una classe és un tipus de classificador les característiques del qual són mètodes i atributs.

Propietats d'una classe:

Classe3.PNG
Nom Nom de la classe
Element pare Element que conté la classe
Documentació Descriu la classe.
Abstracció Si és abstracta, la classe no té una declaració completa i, en general, no pot ser instanciada. La intenció de fer una classe abstracta és que pugui ser utilitzada per altres classes.
Fulla Indica si és possible especialitzar més la classe. Si el valor és cert, la classe no es pot especialitzar més.
Arrel Indica si la classe té o no antecessors. Si el valor és cert, la classe no té cap antecessor (element pare).
Activa Determina si un objecte especificat per la classe és actiu o no. Si el valor és cert, la classe es considera activa. Per contra, si el valor és fals la classe es considera passiva.
Atributs Propietats que són atributs directes (no són heretats ni importats) de la classe.
Mètodes Accions i funcions pròpies de la classe.

Port[modifica]

Un port és una propietat d'una classe que especifica un punt d'interacció entre una classe i el seu entorn o bé entre la classe i les seves parts internes. Els ports es connecten a les propietats de la classe mitjançant connectors a través dels quals es poden fer peticions per invocar els mètodes de la classe. Un port pot especificar els serveis que una classe ofereix al seu entorn, així com els que el requereix.

Propietats d'un port:

PortUML2.PNG
Nom Nom del port
Documentació Descriu el port.
Fulla Indica si és possible especialitzar més el port. Si el valor és cert, el port no es pot especialitzar més.
Atributs Es refereix a totes les propietats que són atributs directes (no són heretats ni importats) de la classe.
Tipus El tipus de dades al qual pertany aquest port.
Estàtic Especifica si s'està instanciant una instància de la classe (fals) o la classe en si (cert).
Servei Si és cert, indica que aquest port s'utilitza per proporcionar la funcionalitat pública d'una classe. Si és fals, en canvi, indica que el port s'utilitza per implementar la classe però no forma part de la seva funcionalitat essencial (vist des de fora).

Connector[modifica]

Especifica un enllaç que possibilita la comunicació entre dues o més instàncies. Així, aquestes poden interactuar en temps d'execució.

Propietats d'un connector:

ConnectorUML.PNG
Nom Nom del connector
Documentació Descriu el connector.
Fulla Indica si és possible especialitzar més el connector. Si el valor és cert, el connector no es pot especialitzar més.
Origen La font del connector
Destí El destí del connector

Part[modifica]

Una part representa un paper representat en temps d'execució per una instància o un conjunt d'instàncies d'una classe. Una part pot anomenar el paper, una superclasse abstracta o bé una classe concreta.

Propietats d'una part:

PartUML.PNG
Nom Nom de la part
Documentació Descriu la part.
Abstracció Si és abstracta, la part no té una declaració completa i, en general, no pot ser instanciada. La intenció de fer una part abstracta és que pugui ser utilitzada per altres classes.
Classificador Referencia la classe que conté la part.
Valor inicial Valor inicial de l'atribut quan s'inicia la seva classe
Tipus El tipus de dades que conté aquesta part
Àmbit Determina si la part és una instància o una classe.

Generalització[modifica]

Una generalització és una relació taxonòmica entre dos classificadors, un de més general i un de més específic. Cada instància del classificador específic és també una instància del classificador general. Per tant, el classificador específic hereta les característiques del classificador més general.

Propietats d'una generalització:

Generalització.PNG
Nom Nom de la generalització
General Classificador general a la relació de generalització
Específic Classificador específic a la relació de generalització
Documentació Descriu la generalització.
Substituïble Indica si el classificador específic pot ser utilitzat en qualsevol cas en què puguem fer servir el classificador general. Si és cert, les traces d'execució del classificador específic seran un subconjunt de les traces d'execució del classificador general.

Dependència[modifica]

Una dependència és una relació que significa que un element o un conjunt d'elements necessita altres elements per a la seva especificació o implementació. Això significa que la semàntica completa dels elements dependents és semànticament o estructural dependent de la definició dels elements dels quals depenen.

Propietats d'una dependència:

Dependència.PNG
Nom Nom de la dependència
Proveïdor Element o conjunt d'elements que proporciona una semàntica i/o estructura de la qual depèn l'element o conjunt d'elements de l'altra banda de la relació de dependència. En algunes relacions de dependència en el context d'un disseny de classes orientat a objectes (OO), la intenció és que l'element més abstracte tingui aquest rol.
Documentació Descriu la dependència.
Client Element o conjunt d'elements dependent del proveïdor

Realització[modifica]

La realització és una relació d'abstracció especialitzada entre dos conjunts d'elements model, un que representa una especificació (proveïdor) i un altre que representa una implementació del primer (client). La realització es pot utilitzar per modelar gradualment optimitzacions, transformacions, patrons, síntesis de models, etc.

Propietats d'una realització:

Nom Nom de la realització
Proveïdor Element o conjunt d'elements que proporciona quelcom que necessita l'element o conjunt d'elements de l'altra banda de la relació de realització. En algunes relacions d'importació en el context d'un disseny de classes orientat a objectes (OO), la intenció és que l'element més abstracte tingui aquest rol.
Documentació Descriu la realització.
Client Element o conjunt d'elements que importa membres del proveïdor
Esquematització Composició d'una expressió que defineix la relació d'abstracció entre el proveïdor i el client. En alguns casos, com ara la derivació, és generalment formal i unidireccional, però en d'altres sol ser informal i bidireccional. L'expressió d'esquematització (mapping) és opcional i es podria ometre si la relació concreta entre els dos elements no està especificada.

Restricció[modifica]

Una condició o restricció té com a objectiu declarar alguna de les semàntiques d'un element.

Restricció.PNG

Propietats d'una restricció:

Nom Nom de la restricció
Expressió La condició que, en ser avaluada, ha de ser certa per tal que la restricció es compleixi.
Documentació Descriu la restricció.

Comentari[modifica]

Un comentari permet afegir diverses observacions als elements. No té cap importància semàntica, però pot contenir informació útil per al modelador.

Comentari.PNG

Propietats d'un comentari:

Nom Nom del comentari
Documentació Especifica una cadena de caràcters (string) que conté el comentari.

Enllaços externs[modifica]