Propuesta mejora proceso desarrollo Software (2002) (Diaz Arnesto, Araújo)
Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software...
Transcript of Tema 3: El Proceso Unificado de desarrollo de software … · Es un proceso de desarrollo software...
Tema 3:
El Proceso Unificado de desarrollo de software
Departamento de Lenguajes y Sistemas Informáticos II
www.kybele.urjc.es
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
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
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…
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.
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
El Proceso Unificado www.kybele.urjc.es
Principios del Proceso UnificadoDirigido por casos de uso
7
Cliente
Sacar Dinero
Ingresar Dinero
Hacer Transferencia
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)
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
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...
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”
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
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
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
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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…
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
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
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