UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 1
GUIA 12
DIAGRAMAS DE COMPONENTES
UML
Yasmín Otálora
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de tecnología de Programación de Software
Soacha, Cundinamarca, 06 de Abril 2015
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 2
GUIA 10
DIAGRAMAS DE COMPONETES
UML
Yasmín Otálora
Presentado a:
Ernesto Garzón
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 3
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de tecnología de Programación de Software
Soacha, Cundinamarca, 06 de abril 2015
ContenidoDIGRAMAS DE COMPONENTES........................................41. INTRODUCCIÓN...............................................42. OBJETIVO:..................................................43. OBJETIVOS ESPECIFICOS:.....................................44. JUSTIFICACIÓN:.............................................55. MAPA CONCEPTUAL............................................56. QUE ES UN COMPONENTE.......................................66.1 COMPONENTES E INTERFACES..................................76.1.1. COMPONENTE.............................................76.1.2 INTERFAZ................................................86.1.3. SUSTITUCIÓN Y REUTILIZACIÓN............................96.2. TIPOS DE COMPONENTES.....................................96.3 ¿QUÉ ES DIAGRAMA DE COMPONENTES?..........................96.3.1. REPRESENTACIÓN DE UN COMPONENTE.......................106.3.2 COMO REPRESENTAR LAS INTERFACES........................117. APLICACION DE LOS DIAGRAMAS DE COMPONENTES................128. DIAGRAMAS DE COMPONENTES EN EL PANORAMA..................159. ACTIVIDAD DE CLASE.......................................1610. ACTIVIDAD EXTRACURRICULAR................................17
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 4
11. GLOSARIO DE TÉRMINOS.....................................18BIBLIOGRAFÍA..................................................18REFERENCIAS...................................................19
DIGRAMAS DE COMPONENTES
1. INTRODUCCIÓNLos componentes representan todos los tipos de elementos
software que entran en la fabricación de aplicaciones
informáticas. Pueden ser simples archivos, paquetes de Ada,
bibliotecas cargadas dinámicamente, etc. Las relaciones de
dependencia se utilizan en los diagramas de componentes para
indicar que un componente utiliza los servicios ofrecidos por
otro componente.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 5
2. OBJETIVO:Representar lo correspondiente a un diagrama UML, que
representa a una entidad real un componente de Software.
3. OBJETIVOS ESPECIFICOS:Conceptuar que es un componente
Establecer componentes e interfaces
Analizar que es un diagrama de componentes
Estructurar los diagramas de componentes en el panorama UML
4. JUSTIFICACIÓN:Se utilizan para modelar la vista estática de un sistema.
Muestra la organización y las dependencias entre un conjunto de
componentes. No es necesario que un diagrama incluya todos los
componentes del sistema, normalmente se realizan por partes. Cada
diagrama describe un apartado del sistema.
Uno de los usos principales es que puede servir para ver que
componentes pueden compartirse entre sistemas o entre diferentes
partes de un sistema.
5. MAPA CONCEPTUAL
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 6
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 7
6. QUE ES UN COMPONENTEUn componente de software es una parte física de un sistema, y
se encuentra en la computadora.
¿Qué puede tomarse como un componente?
Una tabla, archivo de datos, ejecutable, biblioteca de vínculos
dinámicos y cosas por el estilo.
¿Cuál es la relación entre un componente y una clase?
Imagine a un componente como la personificación en software de
una clase. La clase es la abstracción de un conjunto de atributos
y operaciones.
Un componente puede ser la implementación de más de una clase.
Se debe modelar componentes y sus relaciones para que:
1. los clientes puedan ver la estructura del sistema
finalizado.
2. los desarrolladores cuenten con una estructura con la cual
trabajar en adelante.
3. quienes escriban las notas técnicas y la documentación
puedan entender de qué escribirán.
Uno de los aspectos más importantes de los componentes es el
potencial que tienen de volver a ser utilizados.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 8
6.1 COMPONENTES E INTERFACES • Una interfaz contiene una colección de operaciones y se
utiliza para especificar los servicios de una clase o de un
componente.
• Una interfaz se conecta al componente que la implementa a
través de una relación de realización, y al componente que
utiliza sus servicios con una dependencia.
Interfaz de exportación: interfaz realizada por un componente,
servicio que ofrece a otros componentes.
Interfaz de Importación: interfaz usada por un componente.
La ventaja de usar interfaces es que se rompe la dependencia
directa entre componentes.
Un componente que usa una interfaz puede funcionar
adecuadamente independientemente del componente que la realiza.
6.1.1. COMPONENTELos componentes de Software son todo aquel recurso desarrollado
para un fin concreto y que puede formar solo o junto con otros,
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 9
un entorno funcional requerido por cualquier proceso predefinido.
Son independientes entre ellos, y tienen su propia estructura e
implementación. Si fueran propensos a la degradación debieran
diseñarse con métodos internos propios de refresco y
actualización. Son partes intangibles (que no se pueden tocar) de
una computadora el cual lee los datos del hardware
introduciéndolos en la PC.
Es una parte física reemplazable de un sistema que empaqueta su
implementación y es conforme a un conjunto de interfaces a las
que proporciona su realización.
Algunos componentes tienen identidad y pueden poseer entidades
físicas, que incluyen objetos en tiempo de ejecución, documentos,
bases de datos, etc. Los componentes existentes en el dominio de
la implementación son unidades físicas en los computadores que se
pueden conectar con otros componentes, sustituir, trasladar,
archivar, etc.
Los componentes tienen dos características: Empaquetan el
código que implementa la funcionalidad de un sistema, y algunas
de sus propias instancias de objetos que constituyen el estado
del sistema. Los llamados últimos componentes de la identidad,
porque sus instancias poseen identidad y estado.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 10
6.1.2 INTERFAZ
Una interfaz es una especificación de comportamiento
que los implementadores acordaron. Es un contrato. Implementando
una interfaz las clases garantizan soportar un comportamiento
requerido, lo cual permite al sistema tratar elementos no
relacionados de la misma manera, a través de una interfaz común.
Las interfaces se pueden dibujar de un modo similar a una
clase, con las operaciones especificadas, como se muestra abajo.
Ellas también se pueden dibujar como un círculo sin los detalles
de las operaciones. Use el botón derecho y en el menú contextual
elija la opción Configuraciones Avanzadas y usar notación de
Círculo para cambiar entre ambos estilos. Cuando dibuje como
círculo, la realización se dibuja sin la flecha al destino.
6.1.3. SUSTITUCIÓN Y REUTILIZACIÓN Las interfaces se destacan de forma importante en los conceptos
primordiales de sustitución y reutilización de componente. Puede
sustituir un componente con otro si el nuevo contiene las mismas
interfaces que el anterior. Se podara reutilizar un componente en
otro sistema si este puede acceder al componente reutilizado
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 11
mediante sus interfaces. Puede simplificar la vida de un
desarrollador que intente sustituir o realizar un componente si
la información de su interfaz se encuentra disponible como un
modelo.
6.2. TIPOS DE COMPONENTES Existen básicamente tres tipos de componentes: Componentes de distribución: componentes necesarios para
formar un sistema ejecutable (por ejemplo: DLL. Ejecutables, controles ActiveX y Java Beans).
Componentes producto del trabajo: productos que quedan al final del proceso de desarrollo ( archivos de bases de datos y de código)
Componentes de ejecución: se crean como consecuencia de un sistema en ejecución
6.3 ¿QUÉ ES DIAGRAMA DE COMPONENTES?Un diagrama de componentes representa las dependencias entre
componentes software, incluyendo componentes de código fuente,
componentes del código binario, y componentes ejecutables. Un
módulo de software se puede representar como componente. Algunos
componentes existen en tiempo de compilación, algunos en tiempo
de enlace y algunos en tiempo de ejecución, otros en varias de
éstas.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 12
Un componente de sólo compilación es aquel que es significativo
únicamente en tiempo de compilación. Un componente ejecutable es
un programa ejecutable.
Un diagrama de componentes tiene sólo una versión con
descriptores, no tiene versión con instancias. Para mostrar las
instancias de los componentes se debe usar un diagrama de
despliegue.
Un diagrama de componentes muestra clasificadores de
componentes, las clases definidas en ellos, y las relaciones
entre ellas. Los clasificadores de componentes también se pueden
anidar dentro de otros clasificadores de componentes para mostrar
relaciones de definición.
Un diagrama que contiene clasificadores de componentes y de
nodo se puede utilizar para mostrar las dependencias del
compilador, que se representa como flechas con líneas
discontinuas (dependencias) de un componente cliente a un
componente proveedor del que depende. Los tipos de dependencias
son específicos del lenguaje y se pueden representar como
estereotipos de las dependencias.
El diagrama también puede usarse para mostrar interfaces y las
dependencias de llamada entre componentes, usando flechas con
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 13
líneas discontinuas desde los componentes a las interfaces de
otros componentes.
6.3.1. REPRESENTACIÓN DE UN COMPONENTEEL símbolo principal de un diagrama de componentes en un
rectángulo que tiene dos sobrepuestos en su lado izquierdo. El
nombre del componente dentro del símbolo. El nombre es una
cadena.
Adición de
información al
símbolo del
Símbolo que
representa un
componente
Símbolos de las relaciones entre un componente y
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 14
6.3.2 COMO REPRESENTAR LAS INTERFACESExisten dos formas para representan a un componente y sus
interfaces: la primera muestra la interfaz como un rectángulo que
contiene la información que se relaciona, se conecta al
componente por la línea discontinua y una punta de flecha
representada por un triángulo sin rellenar que visualiza la
realización
Representar una
interfaz con un pequeño
círculo, conectado al
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 15
7. APLICACION DE LOS DIAGRAMAS DE COMPONENTESa) Modelado de Código Fuente
Los diagramas de componentes se pueden utilizar para modelar la
gestión de la configuración de los archivos de código fuente,
tomando como productos de trabajo precisamente estos ficheros.
Esto resulta bastante útil por ejemplo cuando se han implementado
unas partes con Java otras con C, etc. El resultado de esta
implementación pueden ser multitud de ficheros ejecutables con
características particulares, de manera que la mejor forma de
controlarlos es estableciendo gestión de configuración.
Para poder llevar a cabo esta gestión con éxito será necesario
definir los estereotipos de ficheros que se quieren tener bajo
control así como las relaciones entre dichos tipos de ficheros.
Para modelar el código fuente de un sistema:
Una interfaz que
realiza un componente
y otra de la que
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 16
• Hay que identificar el conjunto de archivos de código fuente
de interés y modelarlos como componentes estereotipados como
archivos.
• Si el sistema es muy grande es necesario utilizar los
paquetes para agrupar los archivos de código fuente.
• Es necesario identificar la versión del componente.
b) Modelado de una versión ejecutable y bibliotecas.
La utilización de los componentes para modelar versiones
ejecutables se centra en la definición de todos los elementos que
componen lo que se conoce como versión ejecutable, es decir la
documentación, los ficheros que se entregan etc.
Para modelar una versión ejecutable es preciso:
• Identificar el conjunto de componentes que se pretende
modelar.
• Identificar el estereotipo de cada componente del conjunto
seleccionado.
• Para cada componente de este conjunto hay que considerar las
relaciones con los vecinos. Esto implica definir las interfaces
importadas por ciertos componentes y las exportadas por otros.
c) Modelado de una base de datos física
Para modelar una base de datos física es necesario:
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 17
• Identificar las clases del modelo que representan el esquema
lógico de la base de datos.
• Seleccionar una estrategia para hacer corresponder las clases
con tablas. Así como la distribución física de la/s base/s de
datos.
• Para poder visualizar, especificar, construir y documentar
dicha correspondencia es necesario crear un diagrama de
componentes que tenga componentes estereotipados como tablas.
• Donde sea posible es aconsejable utilizar herramientas que
ayuden a transformar diseño lógico en físico.
Diagrama para el
juego de dados basado
en la Web de Rogers
Cadenhead.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 18
El
diagrama de
componentes
para una
página Web
Modelado de
TweakUl en el
paquete Paquete
PowerToys.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 19
8. DIAGRAMAS DE COMPONENTES EN EL PANORAMAElementos estructurales
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 20
9. ACTIVIDAD DE CLASECuestionario
1. ¿Cuáles son los tres tipos de componentes?
Servidor, estaciones de trabajo y cableado.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 21
2. ¿Cómo llamaría a la relación entre un componente y su
interfaz?
Se llama realización
3¿Cuáles son las dos formas de representar a esta relación?
La representación de un componente es un rectángulo con otros
dos rectángulos pequeños sobre puestos en su lado izquierdo.
Puede representar una interfaz de dos formas: la primera es un
rectángulo que contiene información de la interfaz y se conecta
con el componente mediante una línea discontinua con una punta de
flecha representada por un triángulo sin relleno. La otra es un
pequeño círculo conectado al componente con una línea continua.
Ambos tipos de conexión pretenden mostrar una relación de
realización.
4. ¿Qué es una interfaz de exportación?
La exportación de una interfaz se puede representar de dos
formas. Si se utiliza la forma expandida de la interfaz para
hacer explícitas sus operaciones, la exportación se representa
como una relación de realización.
5¿Qué es interfaz de importación?
Es una Interfaz flexible que permite importar datos de data
loggers de diferentes fabricantes, pudiéndose monitorizar tanto a
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 22
través del portal sefer’Sun como del VCOM (Centro de Control
Virtual)
10. ACTIVIDAD EXTRACURRICULAREjercicios
1 . Diagrama de componentes de la pagina web de Pearson
Educación.
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 23
11. Glosario de términosClasificador: Un elemento del modelo que describe
características de comportamiento y estructurales. Los tipos de
clasificador incluyen a actores, asociaciones, comportamientos,
clases, colaboraciones, componentes, tipos de datos, interfaces,
nodos, señales, subsistemas (como estereotipos), casos de uso.
Invocación: Petición de ejecución de un elemento de
comportamiento parametrizado designado o de una característica de
comportamiento.
Invariante: Restricción que debe ser verdadera en todo
momento(o al menos en todo momento en que ninguna operación este
incompleta), o al menos en todo momento durante intervalo de
UNIVERSIDAD DE CUNDINAMARCA
FACULTAD DE INGENIERÍA
Programa de Tecnología de Programación de
Software
PROGRAMACION II
Fecha:
06/04/2015
Página 24
tiempo especificado o cuando las condiciones específicas son
verdaderas
BIBLIOGRAFÍA
Joseph Schmuller, Aprender UML en 24 horas, Prentice Hall.
Raúl Alarcón, Diseño orientado a objetos Eidos.
Booch Jacobson Runbauhg, el lenguaje unificado de modelado
manual de referencia, Pearson Addisson Wesley.
REFERENCIAS
http://es.slideshare.net/BorisSalleg/modelamiento-con-uml-
definiciones