2. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
Un componente es una parte física y reemplazable de un
sistema que conforma con un conjunto de interfaces
(conjunto de operaciones que sirven para especificar un
servicio de una clase o un componente) y proporciona la
realización de dicho conjunto. Los componentes se
utilizan para modelar elementos físicos tales como
ejecutables, bibliotecas, tablas, archivos y documentos
3. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
Normalmente un componente representa el
empaquetamiento físico de elementos que por el contrario
son lógicos, tales como clases, interfaces y colaboraciones.
Los buenos componentes definen abstracciones precisas
con interfaces bien definidas, permitiendo reemplazar
fácilmente los componentes más viejos con otros más
nuevos y compatibles
4. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
Se puede definir a los diagramas de componentes
como aquella representación de un sistema de software en
la cual se hacen divisiones en elementos y se muestran las
dependencias de dichos elementos. Estos elementos o
componentes incluyen archivos, cabeceras, bibliotecas
compartidas, módulos, ejecutables, paquetes. Estos
diagramas son usados para modelar la arquitectura del
sistema
5. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
UML proporciona una representación gráfica de un
componente. Esta notación permite visualizar un componente
de forma independiente de cualquier sistema operativo o
lenguaje de programación. Gráficamente, un componente se
representa como un rectángulo con pestañas
6. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
Cada componente debe tener un nombre que lo distinga del
resto de los componentes. Un nombre es una cadena de
texto y pueden ser simples o de camino (consta del nombre
del componente precedido del nombre del paquete en el
que se encuentra). Normalmente un componente se dibuja
mostrando sólo su nombre. Al igual que las clases, los
componentes se pueden adornar con valores etiquetados o
con compartimientos adicionales que muestran sus detalles
8. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
Los componentes son como las clases: ambos tienen
nombres, ambos pueden realizar un conjunto de interfaces;
ambos pueden participar en relaciones de
dependencia, generalización y asociación; ambos pueden
tener instancias. Sin embargo, hay algunas diferencias
significativas entre los componentes y las clases
9. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
Las clases representan abstracciones lógicas; los
componentes representan elementos físicos
Los componentes representan el empaquetamiento físico
de elementos que, son lógicos y se encuentran a distinto
nivel de abstracción
Las clases pueden tener atributos y operaciones
directamente accesibles. En general, los componentes sólo
tienen operaciones alcanzables a través de interfaces
10. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
Se pueden distinguir tres tipos de componentes:
• Componentes de despliegue: Estos son los componentes
necesarios y suficientes para formar un sistema ejecutable
(DLLs, y EXEs)
• Componentes producto del trabajo: son básicamente
productos que quedan al final del proceso de desarrollo
(archivos de código fuente y archivos de datos a partir de
los cuales se crean los componentes de despliegue)
11. Unidad 5
Modelo de implementación
5.1 Diagramas de componentes
• Componentes de ejecución: Estos componentes se crean
como consecuencia de un sistema de ejecución, tales como
un objeto COM+, el cual se instancia a partir de una DLL
13. Unidad 5
Modelo de implementación
5.2 Diagramas de despliegue
Los diagramas de despliegue son un tipo de diagrama
UML que se utilizan para modelar hardware utilizado en los
sistemas de software y las relaciones de sus componentes.
Los diagramas de despliegue se basan en nodos. Un
nodo es un elemento físico que existe en tiempo de
ejecución y representa un recurso computacional, que
generalmente tiene algo de memoria, y a
menudo, capacidad de procesamiento
14. Unidad 5
Modelo de implementación
5.2 Diagramas de despliegue
Los nodos se utilizan para modelar la topología de
hardware sobre el que se ejecuta el sistema. Un nodo
representa típicamente un procesador o un dispositivo
sobre el que se pueden desplegar componentes. Cuando se
diseña un sistema con gran cantidad de software, hay que
considerar tanto su dimensión lógica como la física
15. Unidad 5
Modelo de implementación
5.2 Diagramas de despliegue
En la parte lógica aparecen cosas como
clases, interfaces, colaboraciones, interacciones. En la parte
física se encuentran los componentes (que representan los
empaquetamientos físicos de esos elementos) y los nodos
(que representan el hardware sobre el que se despliegan y
ejecutan esos componentes). Gráficamente, un nodo se
representa como un cubo
16. Unidad 5
Modelo de implementación
5.2 Diagramas de despliegue
ventas
Despliega
pos.exe
contactos.exe
servidor
servidor::copiaDeSeguridad
17. Unidad 5
Modelo de implementación
5.2 Diagramas de despliegue
Las principales diferencias entre los nodos y componentes se
enlistan a continuación:
• Los componentes son elementos que participan en la
ejecución de un sistema; los nodos son los elementos donde
se ejecutan los componentes
• Los componentes representan el empaquetamiento físico de
los elementos lógicos; los nodos representan el despliegue
físico de componentes
18. Unidad 5
Modelo de implementación
5.2 Diagramas de despliegue
Los nodos se pueden organizar agrupándolos en
paquetes, de la misma forma que se pueden organizar las
clases y los componentes. Los nodos también se pueden
organizar especificando relaciones de
dependencia, generalización y asociación entre ellos. El tipo
más común de relación entre nodos es la asociación y
representa una conexión física entre nodos (conexión
Ethernet, un bus compartido, etc.)
19. Unidad 5
Modelo de implementación
5.2 Diagramas de despliegue
<<Ethernet>>
terminal
servidor unidad
RAID
consola
<<RS-232>>
20. Unidad 5
Modelo de implementación
5.3 Modelos de pruebas
El software se prueba para descubrir errores cometidos sin
darse cuenta al realizar su diseño y construcción. El jefe de
proyecto, los ingenieros de software o los especialistas en
pruebas son quienes desarrollan la estrategia para la prueba
del software. La prueba es un conjunto de actividades que
se planean con anticipación y se realizan de manera
sistemática
21. Unidad 5
Modelo de implementación
5.3 Modelos de pruebas
El proceso de ingeniería de software empieza con el análisis
de requisitos (se establece el
dominio, función, comportamiento, desempeño, restriccione
s). Después se llega hasta el diseño y por último a la
codificación. El grado de abstracción disminuye en cada paso.
Las pruebas para el software van en la dirección opuesta: se
comienza con los componentes(lo que se implementó en
código), después se prueba el diseño y arquitectura y se
validan los requisitos establecidos. Por último, la prueba del
sistema
22. Unidad 5
Modelo de implementación
5.3 Modelos de pruebas
El proceso de pruebas consiste en una serie de cuatro
pasos que se implementan de manera secuencial:
Prueba de unidad: se asegura que los componentes
individuales funcionen de manera apropiada como unidad
Prueba de integración: se integran los componentes para
formar el paquete de software completo. Se centran en
entradas y salidas, así como rutas o caminos de control
23. Unidad 5
Modelo de implementación
5.3 Modelos de pruebas
Prueba de alto nivel: se evalúan los criterios establecidos
durante el análisis de requisitos
Prueba de sistema: verifica que todos los elementos
(HW, personas, bases de datos) encajen apropiadamente y
se logre la función y el desempeño general del sistema