3. estrategias de integración incremental

Anuncio
Instituto Nacional
de Tecnologías
de la Comunicación
GUÍA PARA LA INTEGRACIÓN
DE SOFTWARE
Departamento/Proyecto/ Subtítulo
Mes 2008
Instituto Nacional
de Tecnologías
de la Comunicación
HISTÓRICO DE CAMBIOS
Fecha
Versión
Descripción
Autor
Departamento/Proyecto/ Subtítulo
2
Instituto Nacional
de Tecnologías
de la Comunicación
Departamento/Proyecto/ Subtítulo
3
Instituto Nacional
de Tecnologías
de la Comunicación
ÍNDICE
1.
INTRODUCCIÓN
5
2.
ALCANCE
6
3.
ESTRATEGIAS DE INTEGRACIÓN INCREMENTAL
7
3.1.
Integración Top-Down
7
3.2.
Integración Bottom-Up
8
3.3.
Integración Sandwich
8
3.4.
Integración orientada a riesgos
9
3.5.
Integración orientada a funcionalidades
9
4.
BUENAS PRÁCTICAS
10
5.
REFERENCIAS
11
Departamento/Proyecto/ Subtítulo
4
Instituto Nacional
de Tecnologías
de la Comunicación
1.
INTRODUCCIÓN
El término integración se refiere a las actividades de desarrollo de producto software donde
se combinan componentes de software separados en un único sistema. El esfuerzo
destinado a la integración de producto puede oscilar entre unas horas y varios meses,
dependiendo del tamaño del producto. La integración conlleva la prueba del componente
integrado como un todo y la corrección de los defectos encontrados.
La integración mediante el ensamblado de todos los componentes del producto a la vez al
final de las fases de diseño y construcción se llama “Integración Big Bang”. Es muy difícil
aislar las causas de los errores encontrados en las pruebas si un producto se integra
utilizando este enfoque. Además, la “Integración Big Bang” no puede comenzar hasta un
momento avanzado del proyecto porque requiere que todos los módulos o sub-módulos del
producto hayan sido desarrollados y probados de forma unitaria. Por tanto, excepto cuando
se trate de un producto integrado muy pequeño, no se recomienda seguir este enfoque.
La integración incremental es un enfoque donde el producto se construye y se prueba en
segmentos pequeños, donde los errores son más fáciles de aislar y corregir; las interfaces
se pueden probar de forma completa, y se puede aplicar un enfoque de pruebas
sistemáticas.
Departamento/Proyecto/ Subtítulo
5
Instituto Nacional
de Tecnologías
de la Comunicación
2.
ALCANCE
El propósito de estas pruebas es descubrir los defectos de las interconexiones y de la
interacción entre sistemas o componentes integrados. Puede haber más de un nivel de
integración y las pruebas pueden realizarse sobre objetos de tamaño variable. Por ejemplo:
-
Las pruebas de integración de componentes prueban la interconexión entre
componentes de software, y se ejecutan después de las pruebas unitarias. Este tipo
de pruebas de integración las realizan los desarrolladores.
-
Las pruebas de integración de sistemas prueban la interconexión entre distintos
sistemas y se ejecutan después de las pruebas de sistema de cada sistema
individual. Este tipo de pruebas de integración las realizan técnicos de pruebas.
Departamento/Proyecto/ Subtítulo
6
Instituto Nacional
de Tecnologías
de la Comunicación
3.
ESTRATEGIAS DE INTEGRACIÓN INCREMENTAL
Antes de realizar cualquier prueba de integración, es necesario establecer una estrategia y
decidir cómo unir las distintas partes de un sistema.
La integración incremental requiere una buena planificación de la secuencia de integración.
La mayoría de los sistemas integran unos componentes antes que otros. La planificación de
esta integración también afecta a la planificación de la construcción (desarrollo); el orden en
que se construyen los componentes tiene que soportar el orden en que se van a integrar.
A continuación, se describen algunas de las estrategias estándar para la integración
incremental:
3.1.
INTEGRACIÓN TOP-DOWN
El sistema se construye por fases empezando por los componentes que llaman a otros
componentes.
Figura 1.Integración Top-Down
1
2
4
3
5
6
7
Módulo reemplazado por un stub
Stub
A medida que se integran los módulos, se realizan pruebas de regresión para capturar y
corregir nuevos errores.
Ventajas




La lógica de control del sistema se prueba relativamente pronto.
Los grandes problemas conceptuales de diseño se identifican rápidamente.
Se puede obtener un sistema que funcione parcialmente en un momento temprano
del proyecto.
La codificación puede comenzar antes de que los detalles de diseño a bajo nivel
estén completos.
Inconvenientes

Los problemas de interfaces a bajo nivel se detectan tarde.
Departamento/Proyecto/ Subtítulo
7
Instituto Nacional
de Tecnologías
de la Comunicación


3.2.
Gran número de stubs1 a mantener.
No se puede aplicar en diseños orientados a objetos y sistemas interactivos.
INTEGRACIÓN BOTTOM-UP
Los componentes se integran en el sentido contrario al caso anterior, primero los
componentes que son llamados por otros.
Figura 2.Integración Bottom-Up
Módulo reemplazado por un driver
1
Driver
2
4
3
5
6
7
Ventajas

Ejecuta interfaces a bajo nivel potencialmente problemáticas en un momento
temprano
Inconvenientes


3.3.
Problemas conceptuales de diseño a alto nivel se detectan tarde. Corregir esos
problemas puede implicar desechar o realizar mucho re-trabajo en módulos a bajo
nivel.
Requiere que el diseño de todo el sistema esté completo antes de comenzar la
integración.
INTEGRACIÓN SANDWICH
Primero, se integran los módulos de alto nivel y de control. Después, los módulos de bajo
nivel. La integración de los módulos de nivel intermedio se hace al final.
Ventajas


Evita la rigidez de las integraciones top-down y bottom-up.
Integra los módulos más problemáticos primero y permite minimizar los drivers2 y
stubs.
Implementación esquemática o con un propósito especial de un componente software, usado para desarrollar
o probar un componente que llama o depende de él. Reemplaza al componente llamado
1
Departamento/Proyecto/ Subtítulo
8
Instituto Nacional
de Tecnologías
de la Comunicación
3.4.
INTEGRACIÓN ORIENTADA A RIESGOS
Se identifica el nivel de riesgo asociado a cada módulo. Los módulos de riesgo alto se
integran primero y los módulos de menor riesgo se integran más tarde.
Ventajas


3.5.
Evita la rigidez de las integraciones top-down y bottom-up.
Integra los módulos más problemáticos primero y permite minimizar los drivers y
stubs.
INTEGRACIÓN ORIENTADA A FUNCIONALIDADES
Los módulos se integran en grupos que constituyen una funcionalidad identificada.
Ventajas



Minimiza el uso de drivers y stubs.
Cada grupo nuevo integrado proporciona un incremento en funcionalidad.
Funciona bien para sistemas orientados a objetos.
Componente software o herramienta de prueba que reemplaza un componente que se encarga del control y/o
de la llamada a un componente o sistema
2
Departamento/Proyecto/ Subtítulo
9
Instituto Nacional
de Tecnologías
de la Comunicación
4.
BUENAS PRÁCTICAS
La secuencia y número de pasos requeridos en la integración dependen de la ubicación de
las interconexiones de alto riesgos dentro de la arquitectura. La mejor opción es empezar la
integración por aquellas conexiones que se espera que causen mayores problemas. De esta
forma, se evitan encontrar los mayores defectos al final de la etapa de pruebas de
integración. Con el objetivo de reducir este riesgo es aconsejable no usar la integración Bigbang.
También se recomienda que las personas que lleven a cabo las pruebas entiendan la
arquitectura y realicen una buena planificación.
Departamento/Proyecto/ Subtítulo
10
Instituto Nacional
de Tecnologías
de la Comunicación
5.
REFERENCIAS
Es importante que se haga unos buenos planes de integración del software y de pruebas de
integración. Para ello la organización puede contar con plantillas para realizar dichos planes
como pueden ser las plantillas:
-
Plan de integración del software: plantilla para generar el plan de integración del
software, describiendo el alcance y la estrategia que se va a seguir para integrar los
distintos módulos o componentes.
-
Plan de pruebas de integración: plantilla para generar el plan de las pruebas de
integración del software, especificando el entorno a utilizar, casos de prueba,
criterios de salida, estrategias entre otros aspectos.
Departamento/Proyecto/ Subtítulo
11
Descargar