proceso unificado: implementación · proceso unificado: implementación marcos lópez sanz...
TRANSCRIPT
1
Tema 9: Tema 9: Proceso Unificado: Proceso Unificado:
ImplementaciónImplementación
Marcos López SanzMarcos López SanzIngeniería del Software de Gestión
Ingeniería del Software de Gestión - 2009/2010
ÍndiceÍndice� Visión general
� Artefactos◦ Componentes◦ Subsistemas de implementación◦ Interfaces◦ Descripción de la arquitectura (vista del modelo de implementación)◦ Plan de integración de construcciones
� Actividades◦ Implementación de la arquitectura◦ Integrar el sistema◦ Implementar un subsistema◦ Implementar una clase◦ Realizar pruebas de unidad
2
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
Visión generalVisión general
Requisitos
Diseño
Implementación
Prueba
Análisis
PlanificaciónAnál. RiesgosPreparación
Elaboración ConstrucciónVerificación
Transición
FasesFlujos de trabajo
Iteración(es)Inicial(es)
Iter. #1
Iter. #2
Iter. #3
Iter. #4
Iter. #5
Iter. #6
Iter. #7
(Adaptado de Jacobson, 1999)
Ingeniería del Software de Gestión - 2009/2010
Modelo de análisis
Modelo de diseño
Modelo de despliegue
Modelo de implementación
Modelo de pruebas
Modelo de casos de uso
ImplementaciónImplementación
Visión generalVisión general
3
Ingeniería del Software de Gestión - 2009/2010
Requisitos
Pruebas
Implementación
Diseño
Análisis
Modelo deDespliegue
Modelo deAnálisis
Modelo deDiseño
Modelo deImplementación
Modelo dePruebas
Modelo deCasos de Uso
Dependencia de traza
ImplementaciónImplementación
Visión generalVisión general
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
Diagramas UMLDiagramas UML
Modelo de
Diseño
Modelo de
Pruebas
Modelo de
Despliegue
Modelo de Implementación
Diagramas de Casos de Uso
Diagramas de Clases
Diagramas de Componentes
Diagramas de Secuencia
Diagramas de Colaboración
Diagramas de Estados
Diagramas de Actividad
Diagramas de Objetos
Incluidos paquetes
Modelo de
Casos de Uso
Diagramas de
Interacción
Modelo de
Análisis
4
Ingeniería del Software de Gestión - 2009/2010
� El modelo de implementación describe cómo los elementos de diseño se implementan en componentes (ficheros de código fuente, de código binario, ejecutable, scripts)
� Objetivo fundamental: ◦ Desarrollar la arquitectura y el sistema como un todo
� Objetivos del flujo de trabajo de implementación:◦ Planificar integraciones del sistema◦ Distribuir el sistema en nodos
� Se basa en las clases activas encontradas en diseño
◦ Implementar clases y subsistemas� En particular las clases se implementan como componentes de fichero que contienen código fuente
◦ Probar componentes individualmente� Integrarlos compilándolos y enlazándolos en uno o más ejecutables
ImplementaciónImplementación
Visión generalVisión general
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ArtefactosArtefactos� Modelo de implementación:
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
*
Modelo deimplementación
*1
Sistema de implementación Subsistema de implementación
Componente Interfaz
* ***
Arquitectura
5
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ArtefactosArtefactos� Componentes
◦ Es el empaquetamiento físico de los elementos del modelo de diseño
◦ Estereotipos estándar:� <<executable>>, <<file>>, <<library>>, <<table>>, <<document>>
◦ Relación de traza con las clases de diseño
◦ Un componente puede implementar varios elementos
◦ Proporcionan las mismas interfaces que los elementos que implementan
◦ Dependencias de compilación
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
9TransferenciaTransferencia
<<file>>TransferenciaEntreCuentas.java
Tranferencia entre cuentas
Modelo de diseño Modelo de implementación
<<trace>>
<<executable>>TransferenciaEntreCuentas.class
<<compilation>>
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ArtefactosArtefactos� Subsistemas de implementación◦ Organizan los elementos del modelo de implementación
◦ Se entienden como “mecanismos de empaquetamiento” del lenguaje de implementación� paquete en Java, proyecto en VisualBasic, directorio de ficheros en C++, paqueteen Rational Rose,...
◦ Los subsistemas de implementación tienen una relación de traza 1 a 1 con los subsistemas de diseño
◦ El subsistema de implementación debe:� Definir dependencias sobre otros subsistemas o interfaces de otros subsistemas
� Proporcionar las interfaces que han de ser proporcionadas por el sistema
� Definir qué componentes, u otros subsistemas de implementación, deben proporcionar las interfaces proporcionadas por el subsistema.
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
6
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ArtefactosArtefactos� Subsistemas de implementación
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
<<desing subsystem>> <<implementation subsystem>>
<<file>>
<<file>>
<<trace>> (1:1)
<<trace>>
alfa alfabeta beta
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ArtefactosArtefactos� Interfaces◦ Operaciones implementadas por componentes y subsistemas de implementación
◦ Dependencias de uso
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
Subsistema de implementación
Componente
Interfaz *
*�realiza
�realiza
Subsistemas de diseño*
Clases de diseño
Interfaz*
realiza
realiza
DISEÑO IMPLEMENTACIÓN
7
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ArtefactosArtefactos� Descripción de la arquitectura◦ Descomposición del modelo en subsistemas, sus interfaces y dependencias entre ellos
◦ Componentes clave:� Traza de las clases de diseño significativas para la arquitectura
� Componentes ejecutables
� Componentes generales y centrales de los que dependen muchos otros
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
Ingeniería del Software de Gestión - 2009/2010
� Diagramas de componentes
◦ Se utilizan para modelar la vista de implementación estática de un sistema
◦ Contienen:� Componentes
� Interfaces
� Relaciones de dependencia, generalización, asociación y realización
� Notas y restricciones
� Paquetes o subsistemas
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
ImplementaciónImplementación
ArtefactosArtefactos
Diagrama de componentes que muestra la
versión ejecutable de un robot autónomo
Detalles del interfaz
exportado omitidos
8
Ingeniería del Software de Gestión - 2009/2010
� Diagramas de despliegue (diseño):
◦ Se utilizan para modelar los aspectos físicos de los sistemas orientados a objetos
◦ Muestra la configuración de nodos que participan en la ejecución y de los componentes que residen en ellos
◦ Contienen:� Nodos
� Relaciones de dependencia y asociación
� Notas y restricciones
� Componentes que residen en algún nodo
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
ImplementaciónImplementación
ArtefactosArtefactos
Diagrama de despliegue de un sistema cliente/servidor
Multiplicidades explícitas
Nodos
estereotipados
servidoresclientes
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ArtefactosArtefactos� Plan de integración de construcciones◦ El software se construye en pequeños incrementos o pasos para tener pequeños problemas de integración y pruebas.� Concepto de “Construcción”: versión ejecutable del sistema� Varias construcciones en una iteración� Cada construcción es somete a pruebas de integración � Es necesario Control de versiones por si la construcción falla, volver a la anterior
◦ Beneficios del enfoque incremental:� Versión ejecutable muy pronto para enseñar y discutir� Más fácil localizar defectos� Pruebas de integración tienden a ser más minuciosas
◦ Plan de integración describe construcciones necesarias en una iteración:� Funcionalidad esperada: lista de casos de uso o escenarios o parte de ellos. � Requisitos adicionales� Subsistemas y componentes necesarios para implementar esa funcionalidad
Componentes
Subsistemas
Interfaces
Actividades
Modelo de implementación
Artefactos
Ejemplo
Plan de integración
Arquitectura
9
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Actividades del flujo de trabajo de implementación◦ Implementación de la arquitectura
◦ Integrar el sistema
◦ Implementar un subsistema
◦ Implementar una clase
◦ Realizar prueba de unidad
Integrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Implementación de la arquitectura◦ Identificar componentes significativos. 1 a 1
◦ Asignar componentes ejecutables a nodos: clases activasIntegrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad
Modelo de diseño:nodo y sus objetos activos
Modelo de implementación: nodo y sus instancias de componentes
:Tranferencia
:Nombre del nodo
<<executable>>:Transferencia
:Nombre del nodo
implica
10
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Integrar el sistema◦ Objetivos:
� Crear plan de integración de construcciones
� Integrar cada construcción antes de pruebas de integración
◦ Pasos:� Planificación de una construcción
� Integración de una construcción
Integrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Integrar el sistema◦ Planificación de una construcción
� Criterios de creación de una construcción:� Debe añadir funcionalidad implementando casos de uso o escenarios. � No debe incluir demasiados componentes nuevos o refinados� Las construcciones deben expandirse hacia arriba y hacia los lados en la jerarquía de subsistemas � La 1ª construcción debe empezar en las capas inferiores (intermedia y de software del sistema), después hacia las capas general de aplicación y específica de aplicación.
� Para cada caso de uso:1. Considerar el diseño del caso de uso (traza)2. Identificar subsistemas y clases de diseño que participan en la realización
del caso de uso-diseño3. Identificar subsistemas y componentes de implementación que siguen la
traza de los de diseño.4. Considerar el impacto de implementar estos subsistemas y componentes
Integrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad
11
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Integrar el sistema◦ Integración de una construcción
� Recopilar versiones correctas de subsistemas de implementación y componentes
� Compilarlos y enlazarlos
� La construcción pasa después a las pruebas de integración
Integrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Implementar un subsistema◦ Objetivos:
� Asegurar que los requisitos (escenarios o casos de uso) implementados en la construcción se implementan correctamente por componentes u otros subsistemas
◦ Pasos:� Cada clase implementada por un componente
� Cada interfaz del subsistema de diseño debe ser proporcionada por el subsistema de implementación
� Debe existir un componente que proporcione la interfaz
Integrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad
12
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Implementar una clase◦ Objetivos:
� Implementar una clase de diseño en un componente fichero/físico
◦ Pasos:� Esbozo de componente fichero <<file>> que contendrá el código fuente� Generar código fuente a partir de la clase de diseño y de las relaciones en que participa
� Implementar operaciones de la clase de diseño como métodos� Asociaciones como referencias/atributos cuyo nombre es el nombre del rol del extremo opuesto de la asociación
� La multiplicidad del extremo opuesto indica si es un puntero simple o una colección de punteros
� Comprobar que el componente proporciona las mismas interfaces que la clase de diseño
� Reparación de defectos
◦ Importante� Cuidar que el código de la clase cumple con el diagrama de estados asociado (si existe)
Integrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad
Ingeniería del Software de Gestión - 2009/2010
ImplementaciónImplementación
ActividadesActividades� Realizar prueba de unidad◦ Objetivo:
� Probar los componentes implementados como unidades individuales:
◦ Tipos de pruebas� Pruebas de especificación o caja negra: verifican el comportamiento de la unidad observable externamente sin tener en cuenta como se implementa ese comportamiento
� Pruebas de estructura o caja blanca: verifican la implementación interna de la unidad
� Otras pruebas: de rendimiento, utilización de memoria, carga y capacidad
◦ Pruebas posteriores� De integración
� De sistema
Integrar sistema
Implementar subsistemaImplementar
clase
Actividades
Implementar arquitectura
Artefactos
Ejemplo
Prueba de unidad