Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 13
Arquitectura Fsica del Sistema (en desarrollo OO) Univ. Cantabria Fac. de Ciencias
Francisco Ruiz
modelado de las vistas de implementacin y despliegue: componentes, nodos y artefactos. Aprender a usar los diagramas de componentes y de despliegue para tal fin, conociendo los principales usos de tales diagramas y conceptos.
13.2
Contenido
Introduccin Componentes
Organizacin Puertos Estructura Interna Subsistemas
Diagramas de Artefactos
Consejos
Modelado
Clase Estructurada API Dispositivos Fsicos Distribucin de Artefactos Ejecutables y Bibliotecas Versiones Ejecutables Tablas, Archivos y Documentos Base de Datos Fsica Cdigo Fuente Sistema Embebido Sistema Cliente/Servidor Sistema Distribuido
13.3
Diagramas de Componentes
Consejos
Artefactos
Tipos Estereotipos
Nodos
Organizacin
Diagramas de Despliegue
Consejos
Bibliografa
Bsica
Booch, Rumbaugh y Jacobson (2006): El Lenguaje Unificado de Modelado. 2 edicin.
Caps. 15, 26, 27, 30 y 31.
Complementaria
Caps. 5 y 10.
Rumbaugh, Jacobson y Booch (2007): El Lenguaje Unificado de Modelado. Manual de Referencia. 2 edicin. Miles y Hamilton (2006): Learning UML 2.0.
Caps. 12 y 15.
13.4
Introduccin
Modelado Arquitectnico
Nos referimos a la arquitectura fsica del sistema
Mundo Real
No a la OTRA arquitectura. En la construccin de un edificio, los planos son muy importantes pero finalmente, lo ms importante es dar lugar a una construccin REAL
13.5
Componentes
Un Componente es una parte fsica reemplazable de un sistema que conforma y proporciona la implementacin de un conjunto de interfaces.
Se utiliza para modelar elementos fsicos que pueden hallarse en un nodo
ejecutables, bibliotecas (DLLs), tablas, archivos, documentos, ...
Es una parte modular de un sistema que encapsula el estado y comportamiento de un conjunto de clasificadores (p.e. clases). Especifica un contrato de los servicios que proporciona y de los que requiere en trminos de interfaces requeridas y proporcionadas. Es una unidad reemplazable que se puede sustituir en tiempo de diseo o ejecucin por otro componente que ofrezca la misma funcionalidad en base a la compatibilidad de sus interfaces.
Francisco Ruiz - IS1 13.6
Componentes
Adicionales:
Es una unidad de despliegue independiente. Puede ser conectado con otros componentes. En una aplicacin dada existir una nica copia. Realiza una funcin bien definida (cohesin fsica y lgica). Abarca ms de una colaboracin de clases. Existe en el contexto de una arquitectura bien definida. Presupone una infraestructura tecnolgica que se piensa utilizar.
13.7
Componentes
Componentes. Notacin.
Grficamente se representan como un rectngulo con un icono especial en la esquina superior derecha. Normalmente se dibujan mostrando slo su nombre. Se pueden adornar con valores etiquetados o con compartimentos adicionales. Pueden ser estereotipados.
Agente.java
system::dialog.dll {version=3.0.2.11}
13.8
Componentes - Organizacin
Los componentes se pueden agrupar en paquetes. Tambin se pueden organizar mediante relaciones
entre ellos de:
Dependencia, generalizacin, asociacin (incluida agregacin) y realizacin. Un componente se puede construir a partir de otros componentes (agregacin).
13.9
Componentes vs Clases
Componente
Int er faz 2
Los Componentes
Son fragmentos fsicos del sistema Tienen interfaces
agenteRiesgos.dll
componente
Componente implementa clases (relacin de dependencia)
clases
13.10
Componentes - Interfaz
13.11
Componentes - Interfaz
AsignacionItem
<<component>>
Persona
Seguimiento
Pedido
Factura
ItemPedido
Interfaces proporcionadas
Francisco Ruiz - IS1
Interfaces requeridas
13.12
Componentes - Interfaz
<<component>>
Pedido
Interfaz proporcionada
Interfaz requerida
13.13
Componentes
13.14
Componentes - Puertos
Un puerto tiene
Identidad (nombre). Multiplicidad (nmero posible de instancias de un puerto dentro de una instancia de componente). => Vector de Instancias del Puerto.
Francisco Ruiz - IS1 13.15
Componentes - Puertos
puerto
nombre de puerto
ventas normales
Venta Entradas
espectculos
Vendedor Entradas
Tarjetas de Crdito
cobros ventas prioritarias
Venta Entradas
interfaz requerida
declaracin de componente
interfaz proporcionada
13.16
formada por las partes que componen su implementacin junto con las conexiones entre ellas.
Las partes pueden ser componentes conectados a travs de sus puertos. Una parte es una unidad de implementacin de un componente, que tiene un nombre y un tipo. Una instancia de un componente tiene una o ms instancias de cada una de sus partes.
Las partes tienen multiplicidad.
13.17
interfaz externa
lex:AnalizadorLexico parse: Parser Compilar
tipo de la parte
opt:Optimizador [1..3]
nombre de la parte
Francisco Ruiz - IS1
Las partes en un componente juegan un papel similar a los atributos de una clase.
Venta Billetes de Avin
:AsignacionDe Asiento
ventasNormales: Ventas
:GestionDeInventario
ventasPrioritarias: Ventas
13.19
Realizacin
Inventario
:EncontrarArtculos
:EnviarArtculos
conector directo
:PasarPedidos cobros:Crdito :EntradaDe Pedidos
:CapturaDePedidos
GestinDePedidos
Componentes Subsistemas
IGU
<<subsystem>>
LgicaDe Negocio
13.22
Diagramas de Componentes
Contienen:
Componentes Interfaces Relaciones de dependencia, generalizacin, asociacin y realizacin.
<<activeX>> Visualizador Bode VistaRespuesta Frecuencia
Diagramas de Componentes
13.24
Diagramas de Componentes
Ejemplo. Pgina Web con un Subprograma Java
Se genera un applet que ejecuta el juego de dados Craps en una pgina Web, y emplea una clase Die para crear los dados. La pgina Web se llama Craps.html, el cdigo fuente del applet se encuentra en el archivo Craps.java y el cdigo objeto en el Craps.class. El cdigo fuente de la clase Die se encuentra en Die.java y el cdigo objeto en Die.class.Todos los archivos se encuentran en el mismo directorio
Craps.html depende de Crap.class y Die.class, cada uno de estos archivos es un componente. Craps.java y Die.java importan java.awt. Craps.java es un applet que hereda de la clase java.appler.Applet. Craps.java importa a java.awt.event e implementa la interface ActionListener (para responder a eventos generados por el usuario como el clic de ratn); esta interfaz proporciona un botn para que se tiren los dados con un click (la clase AWTEventMulticaster implementa esta interfaz)
13.25
Diagramas de Componentes
Ejemplo. Pgina Web con controles ActiveX
La pgina Web contiene un control Timer ActiveX, dos cuadros combinados ActiveX y tres botones ActiveX. La pgina Web permite al usuario establecer los parmetros para animar el movimiento de una esfera (imagen.gif) por pantalla. Un botn iniciar el movimiento, otro lo detendr y el tercero restaurara la esfera a su posicin inicial. El cronmetro mover la esfera cuando pase la cantidad de milisegundos elegida por el usuario. Los controles ActiveX se encuentran en un componente separado conocido como Disposicin(Layout). La pgina HTML y la disposicin se encuentran en el mismo directorio
13.26
Diagramas de Componentes
Ejemplo. PowerToys
PowerToys es un paquete de Microsoft que permite eliminar las horribles flechas que se encuentran en la esquina inferior izquierda de cada icono de acceso directo en Win32 y hacer varias otras cosas con la GUI mediante la aplicacin TweakUI que es parte del paquete. La descompresin del paquete contiene varios archivos .dll, as como uno de ayuda y otro .CNT. Haciendo clic en el de ayuda se generar un archivo .GID, utilizando la caracterstica Buscar crear un archivo .FTS. En la figura se puede ver el diagrama de componentes que modela a TweakUI en el paquete PowerToys, as como las dependencias entre sus componentes
13.27
13.28
Asegurarse de que los subcomponentes interactan slo a travs de los puertos y conectores definidos. Determinar los subcomponentes que interactan directamente con el exterior modelando sus conectores de delegacin.
13.29
Dar nombres a los subcomponentes y a los puertos si su significado no est claro a partir de sus tipos o si hay varias partes del mismo tipo. Ocultar los detalles innecesarios.
No mostrar todos los detalles de implementacin.
13.30
Artefactos
que existe a nivel de la plataforma de implementacin. Es una implementacin fsica de un conjunto de elementos lgicos tales como clases y componentes:
Relacin de dependencia estereotipada con manifest.
13.31
Artefactos
Notacin.
Se representa con el estereotipo artifact. El nombre puede ser simple o cualificado. Se pueden adornar con valores etiquetados o compartimentos adicionales. artifact agente.java artifact agenteFraudes.dll manifest AgenteFraudes PolticaFraudes PatrnBsqueda artifact system::dialog.dll
13.32
Artefactos
Artefactos
manifest
manifest
Venta
Francisco Ruiz - IS1
Contrato
13.34
Artefactos
13.35
Artefactos - Tipos
Despliegue
Necesarios y suficientes para formar un sistema ejecutable.
DLL, EXE, .NET, CORBA, EJB, scripts, ..
Ejecucin
Artefactos - Estereotipos
Todos los mecanismos de extensibilidad de UML se pueden aplicar a los artefactos. UML 2 ofrece varios estereotipos predefinidos para artefactos:
Document
Fichero genrico que no es cdigo fuente o ejecutable. Subclase de File.
Executable
Artefacto que se puede ejecutar en un nodo. Subclase de File.
File
Archivo fsico en el contexto del sistema desarrollado.
Library
Fichero de una biblioteca de objetos esttica o dinmica. Subclase de File.
Source
Fichero de cdigo fuente.
13.37
Nodos
13.38
Nodos
Notacin.
Un nodo se representa como un cubo.
13.39
Nodos
Nodos vs Artefactos
Parecido:
Tienen nombres, pueden participar en relaciones de dependencia, generalizacin y asociacin, pueden anidarse, pueden tener instancias, pueden participar de interacciones.
Diferencias:
Los artefactos son los elementos que participan en la ejecucin de un sistema; los nodos son los elementos donde se ejecutan los artefactos. Los artefactos representan el empaquetamiento fsico de los elementos lgicos; los nodos representan el despliegue fsico de los componentes.
13.40
Nodos
Nodos vs Artefactos
13.41
Nodos
13.42
Nodos
13.43
Nodos - Organizacin
Nodos - Organizacin
<<RS-232>> consola
conexiones
13.45
Diagramas de Despliegue
El hardware sobre el que se ejecutar el sistema y cmo el software se despliega en ese hardware. La configuracin de los nodos que participan en la ejecucin y de los artefactos que residen en los nodos.
estticos de los nodos fsicos y sus relaciones y para especificar sus detalles para la construccin.
13.46
Diagramas de Despliegue
Diagramas de Despliegue
Contenido:
Nodos. Relaciones de dependencia y asociacin entre nodos. Opcionalmente, tambin pueden contener: Notas y restricciones. Artefactos, cada uno dentro de un nodo. Paquetes y subsistemas, utilizados para agrupar en bloques ms grandes. Instancias (para visualizar un caso concreto de una familia de topologas hardware).
13.48
Diagramas de Despliegue
Notacin.
La nube con que se representa Internet no es parte de la simbologa de UML pero es til para clarificar el modelo
13.49
Diagramas de Despliegue
<<RDSI>>
Control
<<RDSI>>
13.50
13.51
13.52
13.53
Mostrar, si los hay, slo los atributos y operaciones necesarios para comprender el significado del nodo en el contexto dado.
13.54
Contiene slo aquellos elementos esenciales para comprender el aspecto modelado. Proporciona detalles de forma consistente con el nivel de abstraccin, mostrando slo los adornos esenciales para su comprensin. No olvida alguna informacin importante.
Francisco Ruiz - IS1 13.55
13.56
Diagramas de Artefactos
Contienen
Artefactos Relaciones de dependencia, generalizacin, asociacin y realizacin. Notas y restricciones (opcionalmente).
13.57
Diagramas de Artefactos
13.58
13.59
MODELADO
Los Componentes, Nodos y Artefactos, y sus diagramas UML 2 (de componentes, de despliegue, de artefactos) se pueden emplear para modelar:
Una Clase Estructurada Una API (Interfaz de proggramacin de aplicaciones) Dispositivos Fsicos Distribucin de Artefactos Ejecutables y Bibliotecas Tablas, Archivos y Documentos Cdigo Fuente Un Sistema Embebido Un Sistema Cliente/Servidor Un Sistema Distribuido
13.61
13.62
13.63
Ejemplo.
13.64
Modelado API
3. Modelar la realizacin de la API slo cuando sea importante para mostrar la configuracin de una implementacin especfica.
13.65
Identificar los elementos computacionales de la vista de despliegue del sistema y modelar cada uno como un nodo. Si estos elementos representan procesadores y dispositivos genricos, hay que estereotiparlos con los estereotipos estndar. Considerar los atributos y operaciones aplicables a cada uno.
Francisco Ruiz - IS1 13.66
13.67
Para modelar la distribucin de artefactos entre los dispositivos fsicos del sistema:
1. Ubicar cada artefacto significativo del sistema en un determinado nodo. 2. Tener en cuenta la duplicacin de localizaciones.
1. El mismo tipo de artefactos puede residir simultneamente en varios nodos.
13.68
13.69
3. Si es importante manejar las lneas de separacin del sistema, modelar las interfaces importantes que algunos artefactos utilizan y otros realizan. 4. Si es necesario para comunicar el objetivo, modelar las relaciones entre los ejecutables, bibliotecas e interfaces.
Habitualmente se representan las dependencias.
Francisco Ruiz - IS1 13.70
13.71
Los diagramas de artefactos sirven tambin para modelar las versiones ejecutables, incluyendo los artefactos de despliegue que forman cada versin y las relaciones entre dichos artefactos. Para modelar una versin ejecutable:
1. Identificar el conjunto de artefactos de despliegue que forman la versin, y el nodo o nodos donde estn desplegados. 2. Establecer el estereotipo de cada artefacto del conjunto. 3. Considerar las relaciones entre los artefactos.
Interfaces exportadas (realizadas) e importadas (utilizadas). Modelar explcitamente dichas interfaces si interesa representar las lneas de separacin del sistema.
13.72
13.73
A veces existen archivos importantes que no son ejecutables ni bibliotecas: ficheros de datos, documentos de ayuda, scripts, logs, etc. Para modelar este tipo de tablas, archivos y documentos:
1. Identificar los artefactos auxiliares que forman parte de la implementacin fsica del sistema. 2. Modelar estas cosas como artefactos. 3. Si es necesario para comunicar el objetivo, modelar las relaciones entre dichos artefactos auxiliares y los dems ejecutables, bibliotecas e interfaces del sistema.
Normalmente se representan las dependencias (para control de cambios).
13.74
13.75
Los diagramas de artefactos tambin permiten representar una base de datos fsica, indicando los contenedores de datos (tablas normalmente) existentes. Para modelar una base de datos fsica:
1. Identificar las clases del modelo que representan el esquema lgico de la BD. 2. Elegir un patrn de transformacin para asociar dichas clases con tablas. 3. Establecer la distribucin fsica de la base de datos. 4. Crear un diagrama de artefactos con artefactos estereotipados como tablas.
Cada artefacto puede indicar como atributos las columnas de la tabla. Las operaciones pueden utilizarse para denotar procedimientos almacenados.
13.76
13.77
13.78
13.79
13.80
Al desarrollar sistemas embebidos los diagramas de despliegue facilitan la comprensin entre los ingenieros hardware y los ingenieros software. Para modelar un sistema embebido:
1. Identificar los dispositivos y nodos propios del sistema. 2. Proporcionar seales visuales mediante los mecanismos de extensibilidad de UML para los dispositivos especiales.
Elegir estereotipos e iconos adecuados. Distinguir entre procesadores (que contienen artefactos software) y los dispositivos (no tienen software de nuestro sistema).
4. En los dispositivos en que sea necesario, modelar su estructura con un diagrama de despliegue adicional ms pormenorizado.
Francisco Ruiz - IS1 13.81
13.82
Los diagramas de despliegue de UML 2 se pueden emplear para visualizar, especificar y documentar las decisiones sobre la topologa de un sistema cliente/servidor.
Para ello, es preferible emplear varios diagramas:
Uno general para el sistema. Otros ms detallados para las partes del sistema.
1. Identificar los nodos que representan los procesadores cliente y servidor. 2. Destacar los dispositivos relacionados con el comportamiento del sistema.
Ej: lectores de input, visualizadores de informacin, ..
3. Incluir seales visuales para los citados procesadores y dispositivos mediante estereotipos. 4. Modelar la topologa de los nodos en un diagrama de despliegue.
Incluir las relaciones entre artefactos y nodos.
13.83
13.84
Los diagramas de despliegue de UML 2 son tiles para razonar acerca de la topologa de un sistema distribuido. Para modelar un sistema distribuido:
1. Identificar los dispositivos y procesadores del sistema. 2. Modelar los dispositivos de comunicaciones al nivel de detalle necesario.
Para razonar sobre el rendimiento de la red o el impacto en el sistema de cambios en ella.
3. Especificar mediante paquetes las agrupaciones lgicas de nodos. 4. Modelar los dispositivos y procesadores mediante uno o varios diagramas de despliegue. 5. Si es necesario modelar dinmica del sistema, usar diagramas de casos de uso para los tipos de comportamientos del sistema y, despus, extender dichos casos de uso mediante diagramas de interaccin.
Francisco Ruiz - IS1 13.85
13.86