Publicado el 14 de Enero del 2017
1.994 visualizaciones desde el 14 de Enero del 2017
2,1 MB
43 paginas
Creado hace 15a (18/01/2010)
INGENIERÍA DEL SOFTWARE I
Tema 13
Arquitectura Física del Sistema
(en desarrollo OO)
Univ. Cantabria – Fac. de Ciencias
Francisco Ruiz
Objetivos del Tema
• Presentar los conceptos básicos de UML 2 para el
modelado de las vistas de implementación 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.
Francisco Ruiz - IS1
13.2
Contenido
• Introducción
• Componentes
Organización
Puertos
Estructura Interna
Subsistemas
• Diagramas de Componentes
Consejos
• Artefactos
Tipos
Estereotipos
• Nodos
Organización
• Diagramas de Despliegue
Consejos
• Diagramas de Artefactos
Consejos
• Modelado
Clase Estructurada
API
Dispositivos Físicos
Distribución de Artefactos
Ejecutables y Bibliotecas
Versiones Ejecutables
Tablas, Archivos y Documentos
Base de Datos Física
Código Fuente
Sistema Embebido
Sistema Cliente/Servidor
Sistema Distribuido
Francisco Ruiz - IS1
13.3
Bibliografía
• Básica
Booch, Rumbaugh y Jacobson (2006): El Lenguaje
Unificado de Modelado. 2ª edición.
Caps. 15, 26, 27, 30 y 31.
• Complementaria
Rumbaugh, Jacobson y Booch (2007): El Lenguaje
Unificado de Modelado. Manual de Referencia. 2ª edición.
Caps. 5 y 10.
Miles y Hamilton (2006): Learning UML 2.0.
Caps. 12 y 15.
Francisco Ruiz - IS1
13.4
Introducción
• Modelado Arquitectónico …
Nos referimos a la arquitectura física del sistema
No a la OTRA arquitectura.
• Mundo Real
En la construcción de un edificio, los planos son muy
importantes … pero finalmente, lo más importante es
dar lugar a una construcción REAL
• UML nos ofrece dos clases de elementos para
modelar la arquitectura física de un sistema:
Componentes
Nodos
Francisco Ruiz - IS1
13.5
Componentes
• Un Componente es una parte física reemplazable de un
sistema que conforma y proporciona la implementación de un
conjunto de interfaces.
Se utiliza para modelar elementos físicos 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 términos de interfaces requeridas y proporcionadas.
Es una unidad reemplazable que se puede sustituir en tiempo de
diseño o ejecución por otro componente que ofrezca la misma
funcionalidad en base a la compatibilidad de sus interfaces.
Francisco Ruiz - IS1
13.6
Componentes
• Propiedades de un Componente.
• Tres Principales:
Es una parte de un sistema.
Es reemplazable.
Conforma y proporciona la realización de un conjunto de interfaces.
• Adicionales:
Es una unidad de despliegue independiente.
Puede ser conectado con otros componentes.
En una aplicación dada existirá una única copia.
Realiza una función bien definida (cohesión física y lógica).
Abarca más de una colaboración de clases.
Existe en el contexto de una arquitectura bien definida.
Presupone una infraestructura tecnológica que se piensa utilizar.
Francisco Ruiz - IS1
13.7
Componentes
• Componentes. Notación.
Gráficamente se representan como un rectángulo con un icono
especial en la esquina superior derecha.
Normalmente se dibujan mostrando sólo 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}
agenteRiesgos.dll
Realiza
AgenteRiesgos
PoliticaRiesgos
Notación
UML 1.x
Francisco Ruiz - IS1
13.8
Componentes - Organización
• Los componentes se pueden agrupar en paquetes.
• También se pueden organizar mediante relaciones
entre ellos de:
Dependencia, generalización, asociación (incluida
agregación) y realización.
Un componente se puede construir a partir de otros
componentes (agregación).
Francisco Ruiz - IS1
13.9
Componentes vs Clases
• Se parecen a las clases en que:
tienen nombres, realizan interfaces, pueden participar en relaciones,
• Pero se diferencian en que:
Las Clases
Son abstracciones lógicas
Tienen operaciones y atributos
Los Componentes
Son fragmentos físicos del sistema
Tienen interfaces
Componente1
Componente
Int erfaz1
Int erfaz2
componente
agenteRiesgos.dll
Componente implementa
clases (relación de
dependencia)
clases
Francisco Ruiz - IS1
13.10
Componentes - Interfaz
• La relación entre componente e interfaz es importante.
Unos componentes implementan las interfaces y otros acceden a los
servicios proporcionados por esas interfaces.
Estas relaciones se pueden mostrar en forma icónica o expandida:
Componente usa el
interfaz
Componente realiza
el interfaz
Francisco Ruiz - IS1
13.11
Componentes - Interfaz
• Ejemplo de interfaces requeridas y proporcionadas.
Notación icónica (piruleta).
AsignacionItem
Seguimiento
<<component>>
Pedido
Persona
Factura
Interfaces
proporcionadas
ItemPedido
Interfaces
requeridas
Francisco Ruiz - IS1
13.12
Componentes - Interfaz
• Ejemplo de interfaces requeridas y proporcionadas.
Notación extendida.
<<Interface>>
Persona
findByNombre()
create()
getDetalles()
Interfaz
proporcionada
<<component>>
Pedido
<<Interface>>
ItemPedido
create()
validarDetalles()
addLineaPedido()
Interfaz
requerida
Francisco Ruiz - IS1
13.13
Componentes
• Conceptos de Componentes en UML 2:
Interfaz. Colección de operaciones que especifican un servicio
proporcionado o solicitado por una clase o componente.
Puerto. Una ventana específica de un componente encapsulado, que
acepta mensajes hacia y desde el componente, que son conformes
con las interfaces especificadas.
Estructura Interna. Implementación de un componente a través de
un conjunto de partes conectadas de una manera específica.
Parte. Especificación de un rol que forma parte de la implementación
de un componente.
Conector. Relación de comunicación entre dos partes o puertos
dentro del contexto de un componente.
Francisco Ruiz - IS1
13.14
Componentes - Puertos
• Un Puerto es una ventana explícita dentro de un
componente encapsulado.
En un componente encapsulado, todas las interacciones dentro y
fuera pasan a través de sus puertos.
Representa un punto de interacción entre una instancia de un
clasificador (clase, componente) con su entorno o con las instancias
que contiene (estructura interna).
Cuando se crea una instancia de un componente, se crean instancias
de sus puertos.
La instancia de un puerto es un objeto de una clase que implementa las
interfaces proporcionadas.
Un puerto tiene
Identidad (nombre).
Multiplicidad (número posible de instancias de un puerto dentro de una
instancia de componente). => Vector de Instancias del Puerto.
Francisco Ruiz - IS1
13.15
Componentes - Puertos
• Ejemplo. Puertos de un componente.
nombre de interfaz
Reservar
puerto
nombre de puerto
Cargar
espectáculos
Tarjetas de Crédito
interfaz requerida
ventas
normales
Venta Entradas
Vendedor Entradas
Venta Entradas
espectáculos
cobros
declaración de componente
ventas
prioritarias
interfaz proporcionada
Francisco Ruiz - IS1
13.16
Componentes – Estructura Interna
• La estructura interna de un componente está
formada por las partes que componen su
implementación junto con las conexiones entre
ellas.
Las partes pueden ser componentes conectados a través
de sus puertos.
Una parte es una unidad de implementación de un
componente, que tiene un nombre y un tipo.
Una instancia de un componente tiene una o más
instancias de cada una de sus partes.
Las partes tienen multiplicidad.
Francisco Ruiz - IS1
13.17
Componentes – Estructura Interna
• Ejemplo de Estructura Interna de un Compilador.
Compilador
lex:AnalizadorLexico
parse: Parser
tipo de la parte
parte
gen: Generador
DeCodigo
opt:Optimizador [1..3]
interfaz externa
Compilar
multiplicidad de la
parte
nombre de la parte
componente cuya estructura se define
Francisco Ruiz - IS1
13.18
Componentes – Estructura Interna
• Las partes en un componente juegan un papel similar a los
atributos de una clase.
Venta Billetes de Avión
:AsignacionDe
Asiento
ventasNormales:
Ventas
:GestionDeInventario
ventasPrioritarias:
Ventas
dos partes con
igual tipo
Francisco Ruiz - IS1
13.19
Componentes – Estructura Interna
• Una conexión entre dos puertos se denomina
conector y denota un enlace en una instancia del
componente.
Los componentes pueden ser conectados:
Directamente (mediante una línea entre ellos o sus puertos), o
Porque tienen interfaces compatibles (mediante junta circular).
Un conector de delegación (delegate) conecta un
puerto interno a uno externo.
Se representa mediante una flecha desde el puerto interno al
externo.
Actua como si el puerto interno fuese el externo, es decir,
cualquier mensaje llegado al puerto externo es transmitido
inmediatamente al puerto interno.
Francisco Ruiz - IS1
13.20
Componentes – Estructura Interna
• Ejemplo con conectores.
Ventas por Catálogo
Inventario
Realización
con
Comentarios de: INGENIERÍA DEL SOFTWARE I - Tema 13 - Arquitectura Física del Sistema (en desarrollo OO) (0)
No hay comentarios