Documentos de Académico
Documentos de Profesional
Documentos de Cultura
M Estructural PDF
M Estructural PDF
Master de Computacin
Elena Mediavilla
Clase: Descripcin abstracta de un grupo de objetos con propiedades similares (atributos), comportamiento comn (operaciones), relaciones comunes con otros objetos y semntica comn.
2
Elena Mediavilla
Elena Mediavilla
: Persona
Atributos
Las clases tienen atributos que representan alguna propiedad de la clase que comparten todos los objetos de esa clase. Un atributo es una propiedad nombrada de una clase, que describe un rango de valores que puede tomar esa propiedad en las instancias.
Por ejemplo, nombre, edad o peso son atributos de objetos Persona.
Cada nombre de atributo es nico dentro de una clase, pero cada atributo tiene un valor para cada instancia de la clase.
Diferentes instancias de objetos pueden tener los mismos o distintos valores para un atributo dado. La identidad implcita del objeto permite distinguir objetos en que todos los valores de los atributos sean idnticos.
II.3 UML: Modelado estructural Elena Mediavilla 5
Atributos
Un atributo debera ser un valor de datos puro, no un objeto.
Los valores de datos puros, a diferencia de los objetos, no tienen identidad.
Persona
nombre: string edad: integer
Juan: Persona
nombre = "Juan" edad = 24
Marcos: Persona
nombre = "Marcos" edad = 52
Elena Mediavilla
Operaciones
Una operacin es una funcin o transformacin que puede ser aplicada por o sobre objetos de una clase.
Todos los objetos de una clase comparten las mismas operaciones. Una operacin es la implementacin de un servicio que puede requerirse de cualquier objeto de la clase.
Cada operacin tiene a un objeto determinado como argumento implcito y el comportamiento de la operacin depende de la clase de este objeto.
Un objeto conoce su clase y, por tanto, la implementacin correcta de la operacin.
Elena Mediavilla
Operaciones
Operacin polimrfica: la misma operacin toma formas diferentes sobre clases diferentes.
Por ejemplo, la operacin mover para una figura de dos dimensiones y para una figura de tres dimensiones.
Mtodo: implementacin de una operacin para una clase. Cuando una operacin tiene mtodos para diferentes clases es importante que todos ellos tengan la misma signatura (nmero y tipo de argumentos y tipo de resultado).
Los argumentos son parmetros de la operacin pero no afectan a la eleccin del mtodo. El mtodo slo depende de la clase del objeto sobre el que acta.
Elena Mediavilla
Operaciones
Las operaciones en una clase definen lo que la clase puede hacer y pueden considerarse como la interfase de la clase. Operacin pregunta (query): es aqulla operacin que nicamente calcula un valor funcional sin modificar ningn objeto.
Las preguntas sin argumentos, salvo el objeto al que se aplican, pueden considerarse como atributos derivados.
Persona nombre edad cambiar de trabajo( ) cambiar de direccion( ) Fichero nombre fichero tamao en bytes ultima actualizacion
Objeto geometrico color posicion mover (delta: vector) seleccionar (p:punto): Boolean rotar (angulo)
imprimir( )
Elena Mediavilla
Resumen de notacin
Una clase se representa con un recuadro dividido en tres regiones, que contienen, de arriba a abajo:
Nombre de la clase Nombre_de_atributo_1: tipo_de _dato_1 = valor_por_defecto_1 Nombre_de_atributo_2: tipo_de _dato_2 = valor_por_defecto_2 ... Nombre_de_operacin_1 (lista_de_argumentos_1): tipo_de_resultado_1 Nombre_de_operacin_2 (lista_de_argumentos_2): tipo_de_resultado_2 ...
Los atributos y operaciones pueden mostrarse o no, dependiendo del nivel de detalle deseado.
Elena Mediavilla
10
10
Resumen de notacin
Los atributos y las operaciones pueden tener diferentes niveles de visibilidad.
Pblico: visible por todos los clientes de la clase. Protegido: visible por las subclases de la clase. Privado: visible slo para la clase. Paquete: visible para cualquier clase del mismo paquete. Atributos y operaciones estticos (static) o de clase: son propios de la clase, no de la instancia. Son visibles por todos los objetos de la clase.
Nombre de la clase + Atributo pblico # Atributo protegido - Atributo privado ~Atributo de paquete Atributo de clase + Operacin pblica() # Operacin protegida() - Operacin privada() ~Operacin de paquete Operacin de clase()
Elena Mediavilla
11
11
Elena Mediavilla
12
12
dependencia Evento
Dialogo
Control
13
13
Enlaces y asociaciones
Los enlaces y las asociaciones son los medios de establecer relaciones entre objetos y clases, respectivamente. Enlace: es una conexin fsica o conceptual entre instancias de objetos.
Matemticamente, un enlace se define como una tupla, es decir, una lista ordenada de instancias de objetos.
Un enlace
Elena Mediavilla
14
Enlaces y asociaciones
Una asociacin puede tener un nombre que describe la naturaleza de la relacin. Las asociaciones son bidireccionales.
La direccin en que se lee el nombre de una asociacin binaria es la direccin directa y la direccin opuesta es la direccin inversa. La direccin del nombre puede indicarse con un pequeo tringulo slido. En ciertos casos, slo es til una direccin de navegacin; esto se representa con una flecha orientada.
Usa Autor 0..* 1..* Computador
Elena Mediavilla
15
15
Enlaces y asociaciones
Las asociaciones pueden ser binarias, ternarias o de ms alto orden.
Una asociacin ternaria o de orden mayor es una unidad atmica y no puede subdividirse en asociaciones binarias sin prdida de informacin.
Proyecto Persona Lenguaje
C: Lenguaje
Cobol: Lenguaje
16
16
Multiplicidad
La multiplicidad especifica cuntas instancias de una clase pueden relacionarse con una instancia simple de una clase asociada. Por tanto, limita el nmero de objetos relacionados.
En general, la multiplicidad es un subconjunto (posiblemente infinito) de los nmeros enteros no negativos.
En los diagramas de clases se indica la multiplicidad con smbolos especiales en los extremos de las lneas de las asociaciones.
1 0.. 1 Uno y slo uno Cero o uno De M a N (enteros naturales) De cero a varios De cero a varios De uno a varios
17
17
Clase Asociacin
Una asociacin puede modelarse como una clase; en ese caso, cada enlace se convierte en una instancia de la clase. Es til modelar una asociacin como una clase cuando los enlaces pueden participar en asociaciones con otros objetos o cuando los enlaces estn sometidos a operaciones.
En la notacin UML, una clase asociacin se representa con el smbolo de clase conectado a la asociacin con una lnea punteada.
Usuario *
Autorizado en
* Computador
Autorizacin
prioridad privilegios sesin de inicio
directorio raz *
Directorio
Elena Mediavilla
18
18
Clase Asociacin
Una asociacin que contiene atributos sin participar en relaciones con otras clases se llama asociacin atribuida. El atributo de un enlace es una propiedad de los enlaces de una asociacin, que no se puede asociar a los objetos relacionados por el enlace.
Cada atributo de un enlace tiene un valor para cada enlace. El smbolo UML de un atributo de enlace es un caso especial de clase asociacin en el que aparecen uno o ms atributos del enlace.
Fichero
0..*
Usuario
Permiso de acceso
/etc/termcap (read) Juan /etc/termcap (read-write) Mara /usr/juan/.login (read-write) Juan
II.3 UML: Modelado estructural Elena Mediavilla 19
19
El nombre de un papel identifica de manera nica un extremo de una asociacin y describe el significado de la clase en trminos de la asociacin.
Cada papel en una asociacin binaria identifica un objeto o un conjunto de objetos asociados con un objeto en el otro extremo. El nombre del papel es un atributo derivado de la clase fuente, cuyo valor es el conjunto de los objetos relacionados. Los nombres de papeles se necesitan en asociaciones entre dos objetos de la misma clase y para distinguir dos asociaciones entre el mismo par de clases.
Conduce Persona Coche hijo padre
* Persona conductor
* coche de la empresa
Elena Mediavilla
20
20
Calificacin de asociaciones
Una asociacin calificada relaciona dos clases de objetos y un calificador. El calificador es un atributo especial que reduce la multiplicidad efectiva de una asociacin.
Las asociaciones uno a muchos y muchos a muchos deben ser calificadas. El calificador distingue entre el conjunto de objetos en el extremo muchos de una asociacin, especificando cmo identificar un objeto determinado. Una asociacin calificada puede considerarse tambin como una forma de asociacin ternaria. Un calificador se representa con un recuadro en el extremo de la asociacin cerca de la clase que califica.
Elena Mediavilla
21
Restricciones (constraints)
Las restricciones son relaciones funcionales entre entidades de un diagrama de clases o de objetos.
Una restriccin limita los valores que las entidades pueden tomar. El trmino entidad incluye objetos, clases, atributos, enlaces y asociaciones.
La notacin UML para las restricciones consiste en delimitarlas con llaves y colocarlas cerca de la entidad restringida.
Tambin se pueden mostrar en una nota conectada a la entidad a la que se aplican. Otras veces, una lnea punteada conecta diversas entidades restringidas.
Empleado
Salario
Ventana
Longitud Anchura {0.8 <= longitud/anchura <= 1.5}
Tarea
Prioridad {La prioridad no incrementa}
22
Elena Mediavilla
22
* Comite
Ventana
{ordered}
Presidente de *
Profesores 1..* Alumnos 1..*
Elena Mediavilla
Universidad
{or}
Persona
23
23
Agregacin
La Agregacin es un caso especial de asociacin. Es una relacin parte de en la que los objetos que representan los componentes de algo se asocian con un objeto que representa el agregado completo.
La propiedad ms significativa de la agregacin es la transitividad, es decir, si A es parte de B y B es parte de C, entonces A es parte de C. Tambin es antisimtrica, si A es parte de B, B no es parte de A. Algunas propiedades del agregado se propagan a los componentes, posiblemente con modificaciones locales. La agregacin se dibuja como la asociacin, excepto en que el extremo agregado de la relacin se indica con un pequeo rombo.
Documento
0..*
Prrafo
0..*
Sentencia
Elena Mediavilla
24
24
Agregacin
La relacin de agregacin se define como una conexin entre la clase agregada y una clase componente.
Un agregado con muchas clases de componentes corresponde a muchas relaciones de agregacin. Cada emparejamiento individual se define como una agregacin de modo que se puede especificar la multiplicidad de cada componente dentro del agregado. La agregacin puede tener un nmero de niveles arbitrario.
Microcomputador
1..*
0..1
Monitor
Ratn
Teclado
0..*
0..1
Chasis
II.3 UML: Modelado estructural
CPU
RAM
Ventilador
25
Elena Mediavilla
25
Agregacin
La multiplicidad en el lado del agregado puede ser superior a 1 Agregacin compartida (shared).
En una agregacin compartida los componentes pueden formar parte de diversos agregados.
Equipo
Miembro * *
Persona
Texto
* Contiene
Lista
Boton *
Menu
Una agregacin compuesta forma un rbol de componentes, mientras que una agregacin compartida forma una red.
Elena Mediavilla 26
26
Generalizacin y herencia
La generalizacin es la relacin entre una clase (superclase) y una o ms versiones especializadas (subclases) de la misma.
Los atributos y operaciones comunes a un grupo de subclases se asocian a la superclase y son compartidos por las subclases. Se dice que cada subclase hereda las caractersticas de su superclase, aunque tambin aade su propios atributos y operaciones especficos. La notacin UML para la generalizacin es una flecha que conecta la superclase con sus subclases, apuntando a la superclase. Junto a la punta de flecha en el diagrama pueden colocarse un discriminador, un atributo de tipo enumeracin que indica la propiedad de un objeto que se abstrae en una relacin de generalizacin particular.
II.3 UML: Modelado estructural Elena Mediavilla
Figura color posicion del centro grosor del lapiz tipo de lapiz mover( ) seleccionar( ) rotar( ) mostrar( ) Dimension
Dimension 0
27
27
Generalizacin y herencia
La generalizacin es una relacin de tipo es un, ya que cada instancia de una subclase es adems una instancia de la superclase. La generalizacin facilita el modelado estructurando clases y capturando lo que es similar y lo que es diferente entre las clases.
La herencia de operaciones resulta de ayuda durante la implementacin como un medio de reutilizacin de cdigo.
Los trminos herencia, generalizacin y especializacin se refieren a aspectos de la misma idea y a menudo se usan indistintamente.
Usamos generalizacin para hacer referencia a la relacin entre las clases. Herencia se refiere al mecanismo por el que se comparten atributos y operaciones usando la relacin de generalizacin. Generalizacin y especializacin son dos perspectivas diferentes de la misma relacin, observada desde la superclase o desde la subclase. La palabra generalizacin deriva de que la superclase generaliza a las subclases y especializacin se refiere a que las subclases perfeccionan o especializan a la superclase.
Elena Mediavilla
28
28
Elena Mediavilla
29
29
Redefinicin de caractersticas
Una subclase puede redefinir una caracterstica de una superclase definiendo una caracterstica con el mismo nombre, que la reemplaza.
Figura color posicion del centro grosor del lapiz tipo de lapiz mover( ) seleccionar( ) rotar( ) mostrar( ) Dimension Dimension 2 Dimension 0 Dimension 1 orientacion escalado( ) orientacion tipo de relleno escalado( ) rellenar( )
Punto mostrar( ) Linea puntos extremos mostrar( ) Arco radio angulo inicial angulo del arco mostrar( ) Linea quebrada puntos de control mostrar( ) Poligono numero de lados vertices mostrar( ) Circulo diametro mostrar( ) rotar( )
Elena Mediavilla
30
30
Redefinicin de operaciones
Redefinicin por extensin. La nueva operacin es la misma que la heredada, salvo en que aade algn nuevo comportamiento.
Por ejemplo, Ventana tiene una operacin dibujar que dibuja los lmites y el contenido de la ventana. Ventana podra tener una subclase llamada Ventana_etiquetada que tenga una operacin dibujar cuyo mtodo debera implementarse invocando al mtodo para dibujar una ventana y adems aadir cdigo para dibujar la etiqueta.
Redefinicin por optimizacin. Una implementacin puede tomar ventaja de las limitaciones impuestas por una restriccin para mejorar el cdigo de una operacin.
Por ejemplo, la superclase Conjunto_de_enteros podra tener una operacin para obtener el mximo entero que puede implementarse mediante bsqueda secuencial. La subclase Conjunto_ordenado_de_enteros debera proporcionar una implementacin ms eficiente de la operacin mximo, al estar ordenado el contenido del conjunto.
31
Herencia mltiple
La herencia mltiple o solapada (overlapping generalization) permite que una clase tenga ms de una superclase y herede caractersticas de todos sus padres. Una clase puede heredar caractersticas de ms de una superclase y en este caso se denomina clase unin.
Una caracterstica de la misma clase ancestro encontrada a travs de ms de un camino se hereda slo una vez; es la misma caracterstica.
Vehiculo Propulsion Coche Propulsion {solapadas} Barco
Anfibio
II.3 UML: Modelado estructural Elena Mediavilla 32
32
Herencia mltiple
Si una clase se puede refinar en varias dimensiones distintas e independientes, se usan las generalizaciones mltiples.
Las subclases de la generalizacin pueden ser o no disjuntas. Una clase puede heredar de forma mltiple desde distintas generalizaciones o desde distintas clases dentro de una relacin de generalizacin solapada, pero nunca desde dos clases en la misma generalizacin disjunta. El trmino herencia mltiple se puede referir tanto a la relacin conceptual entre clases (generalizacin) como al mecanismo del lenguaje que implementa esa relacin (herencia).
Empleado
Sueldo Pension
Por horas
Asalariado
Externo
Asegurado
No asegurado
33
Fluorescente
Incandescente
Base
Pantalla
Interruptor
Cable
Balasto
Soporte
Arranque
Enchufe
34
Elena Mediavilla
34
Clases abstractas
Una clase abstracta es una clase sin instancias directas pero cuyas clases descendientes tienen instancias directas.
El nombre de la clase abstracta se escribe en cursiva.
Una clase concreta es una clase instanciable (puede tener instancias directas).
Una clase concreta puede tener subclases abstractas (pero estas deben tener a su vez descendientes concretas). Slo las clases concretas pueden ser clases terminales en el rbol de herencia.
Operacin abstracta: Una clase abstracta puede definir el protocolo para una operacin sin dar el mtodo correspondiente.
Su nombre se escribe en cursiva. Cada subclase concreta debe proporcionar su propia implementacin.
Por horas tarifa por hora tarifa horas extra
calcular sueldo( )
35
Elena Mediavilla
35
Mquina
* Ensamblaje
* Pieza
/Offset compuesto
Offset
Offset
/ Offset
{offset = ensamblaje-maquina.offset X pieza-ensamblaje.offset}
Elena Mediavilla 36
36
Interfases
Una interfaz (interface) es un clasificador que contiene la declaracin de un conjunto de operaciones sin su implementacin correspondiente y se usa para especificar un servicio proporcionado por una clase o un componente.
Las interfases definen una separacin entre la especificacin (vista exterior) de lo que hace una abstraccin y la implementacin (vista interior) de cmo lo hace. Se representa con el smbolo de un clasificador (rectngulo), precediendo el nombre con el estereotipo <<interface>>, o con una lnea con un crculo en el extremo, etiquetado con el nombre de la interfaz. Una interfaz puede participar en relaciones de generalizacin, asociacin y dependencia.
Elena Mediavilla
37
37
Interfases
Una interfaz no tiene instancias, se realiza en una instancia de una clase o un componente.
La clase o el componente proporcionan un conjunto de mtodos que implementan apropiadamente las operaciones definidas en la interfaz. Si una clase realiza una interfaz pero no implementa todas las operaciones especificadas, la clase debe ser abstracta.
Una clase o un componente pueden realizar muchas interfases (provided interface) y depender de varias interfases (required interface).
Elena Mediavilla
38
38
Diagrama de paquetes
Los paquetes ofrecen un mecanismo general para la particin de los modelos y la organizacin de los elementos de modelado en grupos relacionados semnticamente.
Los paquetes ayudan a organizar los elementos en los modelos de modo que sean ms fciles de comprender, pero no tienen identidad (no pueden tener instancias). Cada paquete corresponde a un subconjunto del modelo y contiene clases, objetos, relaciones, componentes, nodos o casos de uso, as como los diagramas asociados y otros paquetes. Cada paquete debe tener un nombre que lo distingue de otros paquetes.
Elena Mediavilla
39
39
Diagrama de paquetes
Para controlar el acceso a los elementos del paquete, se puede indicar la visibilidad de un elemento del paquete precediendo el nombre del elemento por un smbolo de visibilidad (+ para pblico y - para privado).
Los elementos con visibilidad pblica son accesibles fuera del paquete y los elementos con visibilidad privada slo estn disponibles para elementos internos al paquete.
Elena Mediavilla
40
40
Diagrama de paquetes
Los paquetes pueden importar elementos de otros paquetes, a travs de una relacin de dependencia entre paquetes con el estereotipo <<import>>.
Una relacin de dependencia entre paquetes significa que al menos un elemento del paquete cliente utiliza los servicios ofrecidos por al menos un elemento del paquete proveedor. Cuando se importa un paquete, slo son accesibles sus elementos pblicos.
Paquete A
Paquete D
<<import>> Paquete E
<<access>> Paquete F
Elena Mediavilla
41
41
Diagrama de paquetes
La relacin de importacin puede ser pblica (por defecto, <<import>>) o privada (<<access>>).
Una importacin pblica significa que los elementos importados tienen visibilidad pblica en el paquete cliente. Una importacin privada significa que los elementos importados tienen visibilidad privada en el paquete cliente y no pueden usarse fuera de l, incluyendo cualquier otro paquete que lo importara.
Paquete A
Paquete D
<<import>> Paquete E
<<access>> Paquete F
Elena Mediavilla
42
42
Elena Mediavilla
43
43
Estructura interna
Para mostrar la estructura interna de una clase, los componentes (parts) que la clase contiene por composicin se dibujan dentro del smbolo de la clase contenedora.
Los componentes se especifican mediante el papel (rol) que representan en la clase, con el formato <roleName>: <type>. La multiplicidad se escribe en la parte superior derecha del componente o se indica entre corchetes despus del nombre y del tipo.
Las relaciones que existen entre los componentes se muestran dibujando un conector (connector) entre ellos, especificando la multiplicidad en cada extremo.
Un conector significa que puede existir comunicacin entre las instancias en tiempo de ejecucin de los componentes. Se puede dar nombre y tipo al conector.
Elena Mediavilla
44
44
Estructura interna
Adems de componentes, tambin se pueden mostrar propiedades (properties), cuyo rectngulo se dibuja con una lnea punteada.
Con una propiedad se especifica una instancia que la instancia de la clase contenedora no posee y puede estar compartida con otras estructuras.
Elena Mediavilla
45
45
Estructura interna
Si se representa una instancia de una clase con estructura interna, se muestran tambin las instancias de sus componentes y propiedades.
Las instancias de los componentes y propiedades se especifican con el formato {<name>} / <roleName>: <type> subrayado.
Elena Mediavilla
46
46
Puertos
Un puerto es un punto de interaccin entre una clase y su entorno.
Cada uso de una clase se representa con un puerto, que se dibuja como un pequeo rectngulo en el borde de la clase y se le da un nombre para indicar su propsito. Tambin se puede especificar multiplicidad y tipo para un puerto.
Las clases tienen interfases asociadas a los puertos para mostrar los servicios disponibles en el puerto (provided interfaces) o los servicios requeridos del entorno (required interfaces). Los puertos se conectan a la implementacin interna usando conectores.
Es posible tener mltiples conectores desde un puerto hasta diferentes elementos internos.
En la prctica, cuando se instancia un puerto, se representa con un clasificador que realiza las interfases ofrecidas (provided interfaces).
Cualquier comunicacin con este punto de interaccin consiste en pasar la informacin a los clasificadores internos que realizan ese comportamiento.
Elena Mediavilla
47
47
Colaboraciones
Una colaboracin describe una estructura de objetos que cooperan para conseguir una determinada funcionalidad.
Los objetos se definen por el papel que representan en esa situacin concreta y la comunicacin que existe entre ellos se muestra mediante conectores que los enlazan.
En una colaboracin se muestran solamente los aspectos que son necesarios para explicar un comportamiento particular, suprimiendo el resto.
Un objeto no est limitado al papel que representa en una colaboracin determinada, puede representar distintos papeles en distintas colaboraciones. Los objetos de una colaboracin no le pertenecen, pueden existir antes y despus de la colaboracin. Aunque los objetos de una colaboracin estn enlazados, no se comunican necesariamente fuera de la colaboracin.
Elena Mediavilla
48
48
Colaboraciones
Una colaboracin se representa con una elipse punteada con el nombre en su interior.
La estructura interna formada por los papeles de los objetos y los conectores se puede mostrar en un compartimento dentro de la elipse, nombrando a los objetos con el formato <role>: <type>.
Una notacin alternativa dibuja las clases de los objetos participantes fuera de la elipse, y las conecta a ella mediante una lnea etiquetada con el nombre del papel correspondiente.
49
Elena Mediavilla
49
Colaboraciones
Es posible asociar una colaboracin a una operacin o a un clasificador para mostrar cmo se aplica en un contexto determinado. En este caso, se crea un uso de la colaboracin (collaboration occurrence) que puede considerarse como una instancia de la colaboracin.
Puede haber mltiples usos de una colaboracin en un clasificador, cada uno con un conjunto diferente de elementos internos que representan los papeles de la colaboracin. La notacin para un uso de colaboracin es la elipse punteada, indicando el nombre del uso seguido de : y del tipo de la colaboracin. Para cada papel de la colaboracin original, se dibuja una lnea punteada entre el uso de la colaboracin y el elemento que representa ese papel, etiquetando la lnea con el nombre del papel.
II.3 UML: Modelado estructural Elena Mediavilla 50
50
Diagrama de componentes
El diagrama de componentes describe componentes software y sus dependencias.
En este diagrama, el sistema se organiza en mdulos reemplazables dentro de su entorno, con interfases bien definidas.
Entre los componentes debe existir un acoplamiento dbil, para que los cambios en uno de ellos no afecten al resto del sistema. Para ello, se accede a los componentes por medio de interfases.
51
Elena Mediavilla
51
Componentes
Un componente se muestra en UML como un rectngulo con el estereotipo <<component>> y un icono opcional en la esquina superior derecha.
El nombre del componente se escribe dentro del rectngulo. Se puede mostrar que el componente es un susbsistema de un sistema mayor reemplazando <<component>> con <<subsystem>>.
Los componentes interactan a travs de las interfases ofrecidas y requeridas, usando la misma notacin que con las clases.
Las interfases tambin se pueden mostrar como una lista dentro del smbolo de componente, separando las interfases ofrecidas y las requeridas.
Elena Mediavilla
52
52
Elena Mediavilla
53
53
Realizacin de un componente
Un componente normalmente contiene y usa otras clases para implementar su funcionamiento. Se dice que estas clases realizan al componente.
Se representa dibujando las clases y sus relaciones dentro del componente. Se pueden dibujar las clases fuera del componente, con flechas de dependencia conectando las clases y el componente. Otra posible representacin consiste en listar las clases en un compartimento <<realization>> dentro del componente.
II.3 UML: Modelado estructural Elena Mediavilla 54
54
Puertos en un componente
Un componente puede tener puertos para modelar las distintas formas de uso mediante las interfases conectadas al puerto. La interfaz ofrecida por un componente puede ser realizada por uno de sus elementos internos. Del mismo modo, una interfaz requerida por el componente puede ser usada por uno de sus elementos internos.
Para mostrar que los elementos internos del componente realizan o usan las interfases del componente, se usan conectores de delegacin (delegation connectors). Estos conectores muestran la direccin de la comunicacin y se representan con una flecha entre el puerto y el elemento interno.
Si el elemento realiza la interfaz, la flecha apunta desde el puerto al elemento. Si el elemento usa la interfaz, la flecha apunta desde el elemento hasta el puerto. Si se representan las interfases de los elementos internos, los conectores de delegacin se unen a la interfaz. Suele hacerse cuando un componente contiene a otros componentes.
Elena Mediavilla
55
55
Los nodos (nodes) son objetos fsicos (dispositivos) que tiene alguna clase de recurso de computacin (computadores con procesadores, impresoras, etc.). Los artefactos (artifacts) son ficheros fsicos que el software usa o ejecuta (ficheros ejecutables, libreras, ficheros fuente, de configuracin, etc.).
Elena Mediavilla
56
56
Nodos
Un nodo se usa para representar un recurso hardware o software, en el que puede residir el software ejecutable o los ficheros relacionados.
Un nodo se dibuja como un cubo con el nombre dentro. Para recalcar que se trata de un nodo hardware, se usa el estereotipo <<device>>, y para indicar que se trata de un entorno de ejecucin, el estereotipo <<executionEnvironment>>. Un entorno de ejecucin debe funcionar en un dispositivo concreto, lo que se muestra dibujando un nodo dentro de otro. Los servicios que ofrece el entorno de ejecucin se pueden listar en el interior de su smbolo. Un nodo puede mostrarse como una instancia usando la notacin name: type subrayada. El tipo describe las caractersticas de un procesador o dispositivo y la instancia representa existencias (mquinas) de ese tipo.
<<device>>
Mquina de Juan: Dell Pentium 466 MMX
Elena Mediavilla
57
57
<<device>>
Elena Mediavilla
58
58
Artefactos
El software que se ejecuta en los nodos se modela con artefactos (artifacts), que son ficheros fsicos que el software usa o ejecuta (libreras, ficheros fuente, ficheros ejecutables o ficheros de configuracin).
Un artefacto se representa mediante un rectngulo con el estereotipo <<artifact>> y un icono de documento en la esquina superior derecha.
Elena Mediavilla
59
59
Artefactos
Si un artefacto representa la versin compilada de un componente o de un paquete, en UML se dice que el artefacto manifiesta (manifest) a ese componente, paquete o clase.
Esta relacin se muestra con una flecha de dependencia desde el artefacto hasta el componente, con el estereotipo <<manifest>>.
La relacin de manifestacin proporciona el medio de modelar cmo se organizan los componentes software sobre el hardware del sistema. En el diagrama de componentes, se listan los artefactos que manifiestan a un componente dentro del smbolo del componente.
Elena Mediavilla
60
60
Especificaciones de despliegue
Una especificacin de despliegue (deployment specification) es una coleccin de propiedades que describen cmo se despliega un artefacto en un nodo, para que funcione adecuadamente en su entorno.
Es un artefacto especial que se representa mediante un rectngulo con el estereotipo <<deployment spec>>. Las propiedades se listan dentro del smbolo como atributos, usando la notacin name: type. Tanto los artefactos como las especificaciones de despliegue se pueden modelar como instancias, subrayando sus nombres. En la instancia de una especificacin de despliegue, se muestran los valores de sus propiedades en lugar de los tipos.
Elena Mediavilla
61
61
Especificaciones de despliegue
La relacin entre un artefacto y su especificacin de despliegue se muestra dibujando a ambos dentro del nodo y conectados con una flecha de dependencia desde la especificacin hasta el artefacto. Otra posible representacin consiste en conectar la especificacin a la flecha de despliegue (<<deploy>>) con una lnea punteada.
Elena Mediavilla
62
62
Permiten visualizar el estado actual de la estructura fsica del sistema y discutir diversas soluciones con el resto de los participantes en su desarrollo. Idealmente, el sistema ser flexible de modo que un artefacto especfico pueda moverse entre diferentes nodos.
Elena Mediavilla
63
63