Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software...

35
Tema 3: El Proceso Unificado de desarrollo de software Departamento de Lenguajes y Sistemas Informáticos II www.kybele.urjc.es

Transcript of Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software...

Page 1: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

Tema 3:

El Proceso Unificado de desarrollo de software

Departamento de Lenguajes y Sistemas Informáticos II

www.kybele.urjc.es

Page 2: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Introducción

Realidad actual: sistemas más complejos y más grandes

Objetivo:Desarrollo más rápido menor tiempo de salida al mercadoSoftware de calidadMejor adaptación del software a las necesidades del cliente

Solución: un proceso de desarrollo que integre todas las facetas de un desarrollo software

Dé una guía para ordenar las actividades del equipoDirija las tareas individuales y del equipoEspecifique los productos (artefactos) que hay que desarrollarOfrezca criterios para monitorizar y medir los productos y actividades

Page 3: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Introducción

Historia:80’s: Éxito de paradigma orientado a objetos

Surgimiento de metodologías de desarrollo Método de Booch

OMT (James Rumbaugh)

Objectory (Jacobson)

Rational

UML

IBM

Page 4: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

El Proceso Unificado

Inicio Elaboración Construcción TransiciónFases

Iteración #1

Iteración #2

Iteración #...

Iteración #nIteraciones

Requisitos

Análisis

Diseño

Implementación

Pruebas

Flujos de trabajo

Alcances y Objetivos

Arquitectura Versión Beta Versión Final

Entregas internas

…Siguiente ciclo…

Page 5: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

El Proceso Unificado

Es un proceso de desarrollo softwareConjunto de actividades para transformar los requisitos de usuario en un sistema software

Basado en componentes:Formado por componentes software conectados a través de interfaces

Principios básicos:Dirigido por casos de usoCentrado en la arquitecturaIterativo e incrementalUsa UML (Unified Modeling Language) como notación para los modelos del proceso de desarrolloOtros: enfocado a riesgos, impulsa la calidad, es configurable, etc.

Page 6: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoDirigido por casos de uso

Ideas:

Cualquier interacción del sistema con el usuario es un caso de uso

Actor: alguien o algo

Def.: caso de uso

Es una función del sistema que da al usuario un resultado útil

Captura los requisitos funcionales

¿Qué debe hacer el sistema para cada actor?

Modelo de casos de uso

Page 7: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoDirigido por casos de uso

7

Cliente

Sacar Dinero

Ingresar Dinero

Hacer Transferencia

Page 8: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoDirigido por casos de uso

Conducen el proceso de desarrollo:La mayoría de las actividades (análisis, diseño, pruebas…) se llevan a cabo partiendo de los casos de uso: Los desarrolladores crean modelos de diseño e implementación

que realizan los casos de uso

Los casos de uso se especifican, se diseñan y sirven de base para construir los casos de prueba

Los encargados de pruebas aseguran que los componentes implementan los casos de uso

Se desarrollan junto a la arquitectura del sistema. Ambos evolucionan en paralelo

Trazabilidad de los casos de uso a través de los diferentes elementos del resto de modelos (proporciona comprensibilidad y la propagación de los cambios)

Page 9: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Modelo de análisis

Modelo de diseño

Modelo de despliegue Modelo de

implementación

Modelo de pruebas

Modelo de casos de uso

Especificado porRealizado por

Distribuido porImplementado por

Verificado por

Principios del Proceso UnificadoDirigido por casos de uso

Page 10: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoCentrado en la Arquitectura

Arquitectura:Vista del diseño completo que hace visibles las características principales

La arquitectura puede definir el sw desde diferentes vistas

Relación entre casos de uso y arquitecturaCasos de uso Funcionalidad del sistema

Arquitectura Forma

Casos de uso clave

Otras influencias Plataforma, aspectos legales, componentes reusables disponibles...

Page 11: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoCentrado en la Arquitectura

Pasos:

Crear una arquitectura inicial no específica de los casos de uso

Trabajar con un conjunto seleccionado de casos de uso que representan las tareas clave del sistema.

Caso de uso subsistemas, clases y componentes

Evolución a lo largo del proceso de desarrollo concepto de “vista arquitectónica”

Page 12: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoIterativo e incremental

Desarrollar software en pasos pequeños que podamos manejar con facilidad:

Planificar un pocoEspecificar, diseñar e implementar un pocoIntegrar, probar y ejecutar un poco cada iteración.

División del proyecto en “hitos” obtenidos como consecuencia de la repetición de iteraciones de trabajo (mini-proyectos)

Una iteración produce un incrementoCada fase e iteración se centra en disminuir algún riesgo y concluye con un hito bien definido

Todas las iteraciones son planificadas y controladas

Page 13: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoIterativo e incremental

Alcance de una iteración. Factores que influyen:

La iteración trata un grupo de casos que extienden la funcionalidad

La iteración trata los riesgos más importantes

Elementos contemplados en cada iteración:

Casos de uso relevantes

Diseño guiado por arquitectura

Actividades de implementación y verificación

Page 14: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoIterativo e incremental

Beneficios:Reduce el coste del riesgo a los costes de un solo incremento

Reduce el riesgo de no tener el producto en la fecha comprometida. Reducir los riesgos en etapas tempranas cuesta mucho menos que solucionarlos al final del proyecto, cuando además, tenemos mayores tensiones en la planificación

Acelera el ritmo del esfuerzo de desarrollo puesto que los desarrolladores son más eficientes cuando tienen que cumplir con “pocos” compromisos en el corto plazo, en lugar de un calendario extenso que genera continuas dilataciones.

Trabaja de una forma más natural al reconocer que los requisitos de los usuarios generalmente se pueden definir en etapas tempranas del proyecto

Page 15: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoIterativo e incremental

Ciclo de vida del software:Varios ciclos de desarrollo que concluyen con un producto evolucionadoEl paso a través de las 4 fases principales constituye un ciclo de desarrollo produce una generación del software Primera pasada desarrollo inicial Siguientes evolución del sistema

Entregas: código fuente ejecutables manuales Documentos

Hitos por fases

...

Entrega

Ciclos

Concepción Elaboración TransiciónConstrucciónIter.

1Iter.

2 ... ...... ... ... ...Iter.

n

Fases

Iterac.

Page 16: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoLas 4 “P”

Las cuatro “P” en el desarrollo de software

Personas Proyecto

Proceso

Producto

HerramientasParticipantes

Plantilla

Resultado

Automatización

Page 17: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoLas 4 “P”

Personas: Los principales autores de un proyecto de software son los arquitectos, desarrolladores, ingenieros de prueba y el personal de gestión que les da soporte, además de los usuarios, clientes, y otros interesadosLas personas son realmente seres humanos, a diferencia del termino abstracto “trabajadores”

Proyecto: Elemento organizativo a través del cual se gestiona el desarrollo de software.El resultado de un proyecto es una versión de un producto

Producto: Artefactos que se crean durante la vida del proyecto, como los modelos, código fuente, ejecutables, y documentaciónEl resultado de llevar a cabo un proceso software dentro de un proyecto concreto

Proceso: Un proceso de ingeniería de software es una definición del conjunto de actividades necesarias para transformar los requisitos de usuario en un productoPlantilla para crear proyectos

Herramientas:Software que se utiliza para automatizar las actividades definidas en el proceso

Page 18: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Requisitos

Diseño

Implementación

Prueba

Análisis

Inicio / Concepción

Elaboración Construcción Transición

FASES

Flujos de trabajo

Iteración(es)Inicial(es)

… … … … … Iter. #n-1

Iter. #n

(Adaptado de Jacobson, 1999)

Principios del Proceso UnificadoProceso

Page 19: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Fase: intervalo de tiempo entre dos hitos importantes del proceso durante el cual se cumple un conjunto bien definido de objetivos, se completan artefactos y se toman decisiones sobre si pasar a la siguiente fase

4 fases:Inicio (inception): Establecer la visión, el alcance y el plan inicial del proyecto

Elaboración (elaboration): Diseñar, implementar y probar una arquitectura correcta, y completar el plan del proyecto

Construcción (construction): Desarrollar el sistema (construir la primera versión operativa)

Transición (transition): Proporcionar el sistema a sus usuarios finales

Page 20: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

En la fase de Inicio el criterio esencial es la viabilidad. ¿Cómo alcanzarlo?

Identificación y reducción de los riesgos críticos para la viabilidad del sistema.

Creación de una arquitectura candidata a partir del desarrollo de un subconjunto clave de los requisitos, utilizando para ello el modelo de casos de uso.

Creación de una estimación inicial de coste, esfuerzo, calendario y calidad del producto con límites amplios.

Inicio del análisis del negocio por el que parece que resulta económicamente rentable continuar con el desarrollo más allá del punto en que nos encontramos.

Page 21: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

En la fase de elaboración el criterio esencial es la capacidad de construir el sistema dentro de un marco de trabajo económico. ¿Cómo alcanzarlo?

Identificación y reducción de los riesgos que afectan de manera significativa a la construcción del sistema.Especificación de los casos de uso que representan un porcentaje elevado de la funcionalidad que ha de desarrollarse.Extensión de la arquitectura candidata (definida en la fase de inicio) hasta las proporciones de una línea basePreparando un plan de proyecto con suficiente detalle como para guiar la fase de construcción.Realizando una estimación con unos límites suficientemente ajustados como para justificar la inversión.La terminación del análisis del negocio

Page 22: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

En la fase de construcción, el criterio esencial es un sistema capaz de una operatividad inicial en el entorno del usuario. ¿Cómo lo conseguimos?

Un conjunto de iteraciones, que llevan a incrementos y entregas periódicos, de forma que a lo largo de esta fase, la viabilidad del sistema siempre es evidente en la forma de ejecutables

En la fase de transición el criterio esencial es un sistema que alcanza una operatividad final. ¿Cómo lo conseguimos?

Mediante la modificación del producto para subsanar problemas que no se identificaron en fases anteriores.Mediante la corrección de defectos

Estas 4 fases se dividen en iteraciones (número variable dependiendo de cada proyecto). Cada iteración produce resultados (hitos menores): artefactos del modelo

Page 23: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Iteración: representa un ciclo de desarrollo completo, desde la captura de requisitos en el análisis hasta la implementación y pruebas, que produce una versión (interna o externa) de un producto ejecutable, que constituye un subconjunto del producto final en desarrollo

Iteración genérica (similar al modelo en cascada):PlanificaciónFlujos de trabajo fundamentales: requisitos, análisis, diseño, implementación y pruebasEvaluación

Dependiendo de la iteración y de la fase en la que se encuentre el proyecto, el énfasis se pone más en unos u otros flujos de trabajo

El contenido varía para adaptarse al objetivo de cada fase

Page 24: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Todas las iteraciones transcurren a lo largo de los 5 flujos de trabajo

Cada iteración pone el énfasis en determinados flujos

A grandes rasgos, dos partes:

Inicio + elaboración: el esfuerzo principal se lo lleva la captura de los requisitos y a un análisis y diseño preliminares

Construcción + transición: el esfuerzo principal está en el diseño detallado, la implementación y la prueba

Page 25: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Requisitos

Diseño

Implementación

Prueba

Análisis

Inicio / Concepción

Elaboración Construcción Transición

FASES

Flujos de trabajo

Iteración(es)Inicial(es)

… … … … … Iter. #n-1

Iter. #n

(Adaptado de Jacobson, 1999)

Iteración en Fase de Elaboración

Estructura del Proceso UnificadoFases y flujos de trabajo

Page 26: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Flujos de trabajo:

Requisitos

Análisis

Diseño

Implementación

Pruebas

Page 27: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Flujos de trabajo:

Requisitos

Objetivo: asegurar que los desarrolladores construyan el sistema correcto:

• Descripción objetiva, clara y precisa para que cliente y desarrolladores puedan ponerse de acuerdo

• El cliente debe comprender claramente los requisitos

Análisis

Diseño

Implementación

Pruebas

Page 28: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Flujos de trabajo:

Requisitos

Análisis

Objetivo: examinar y refinar los requisitos• Comprensión detallada para correcto desarrollo y mantenimiento

• Especificado en el lenguaje del desarrollador

Diseño

Implementación

Pruebas

Page 29: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Flujos de trabajo:

Requisitos

Análisis

Diseño

Objetivo: refinar el análisis• Hasta que los programadores puedan implementar

• Algunos requisitos pueden completarse (p.e., PL, reutilización)

Implementación

Pruebas

Page 30: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Flujos de trabajo:

Requisitos

Análisis

Diseño

Implementación

Implementar el sistema

El programador lo prueba

Pruebas

Page 31: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Estructura del Proceso UnificadoFases y flujos de trabajo

Flujos de trabajo:

Requisitos

Análisis

Diseño

Implementación

Pruebas

Pruebas de unidad

Pruebas de integración (tras cada iteración)

Pruebas de producto

Pruebas de aceptación

Page 32: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Elementos del Proceso UnificadoArtefactos y Modelos

Las actividades del proceso unificado destacan en la creación y mantenimiento de modelos más que de documentos en papel

Modelo: representación abstracta y simplificada de la realidad, creada para comprender mejor el sistema que se está desarrollando

Del negocioDel dominioDe casos de usoDe análisisDe diseñoDe despliegueDe implementaciónDe pruebas…

Page 33: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Principios del Proceso UnificadoOtras características

Soporta las técnicas orientadas a objetos:Los modelos definidos como artefactos del proceso son orientados a objetosLos modelos se basan en la definición de clases, objetos y las relaciones entre ellosSe utiliza UML como notación común

Enfocado a riesgos: La gestión del riesgo está incluida en el procesoLos riesgos se identifican y se acometen al principio del proceso de desarrollo (a tiempo)

Impulsa un control de la calidad:La evaluación de la calidad está contenida en el proceso (trazabilidad)Implica a todos los participantes mediante medidas y criterios objetivosNo se trata como algo a posteriori o una actividad separada

Es un proceso configurable:Puede adaptarse a proyectos de diferente envergadura (medianos-grandes)Se adapta a las necesidades de desarrollo de la organización

Page 34: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Adaptaciones

Rational Unified Process (RUP), IBM / Rational

Open Unified Process (OpenUP), versión abierta, soportada en Eclipse

Agile Unified Process (AUP), versión simplificadapara desarrollos ágiles

Enterprise Unified Process (EUP), extensión de RUP

Oracle Unified Method (OUM)

34

Page 35: Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software Conjunto de actividades para transformar los requisitos de usuario en un sistema

El Proceso Unificado www.kybele.urjc.es

Bibliografía

The unified software development process. Ivar Jacobson, Grady Booch, James Rumbaugh, Ed. Addison Wesley, 1999

El proceso unificado de desarrollo.Ivar Jacobson, Grady Booch, James Rumbaugh, Ed. Addison Wesley, 1999