proceso unificado: implementación · proceso unificado: implementación marcos lópez sanz...

12
1 Tema 9: Tema 9: Proceso Unificado: Proceso Unificado: Implementación Implementación Marcos López Sanz Marcos López Sanz Ingenierí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

Upload: others

Post on 20-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 2: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 3: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 4: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 5: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 6: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 7: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 8: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 9: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 10: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 11: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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

Page 12: Proceso Unificado: Implementación · Proceso Unificado: Implementación Marcos López Sanz Ingeniería del Software de Gestión Ingeniería del Software de Gestión - 2009/2010 Índice

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