PROCESO UNIFICADO Es un proceso de desarrollo de

  • Slides: 42
Download presentation

PROCESO UNIFICADO Es un proceso de desarrollo de software PROCESO DE DESARROLLO DE SOFTWARE

PROCESO UNIFICADO Es un proceso de desarrollo de software PROCESO DE DESARROLLO DE SOFTWARE Conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema software

Está basado en componentes, lo cual quiere decir que el sistema software en construcción

Está basado en componentes, lo cual quiere decir que el sistema software en construcción está formado por componentes software interconectados a través de interfaces bien definidas Utiliza Lenguaje Unificado de Modelado (UML) para preparar todos los esquemas de un sistema software.

Dirigido por casos de uso Centrado en la arquitectura Iterativo e incremental Los verdaderos

Dirigido por casos de uso Centrado en la arquitectura Iterativo e incremental Los verdaderos aspectos definitorios del Proceso Unificado se resumen en 3 frases claves

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso USUARIO

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso USUARIO Alguien o algo como otro sistema fuera del sistema en consideración que interactúa con el sistema que estamos desarrollando

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso ØCAPTURA

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso ØCAPTURA DE REQUISITOS: ücuál es el problema? ØANÁLISIS: üqué debe hacerse? qué sistema debemos construir? ØDISEÑO: ücómo podemos solucionar el problema? ØCODIFICACIÓN: ütrasladar el diseño a programas. . . ØPRUEBAS: ü. . . que funcionen. . . ØIMPLANTACIÓN: ü. . . en un entorno productivo. . . ØMANTENIMIENTO: ü. . . y que pueden estar sujetos a posibles modificaciones o mejoras posteriores!

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso CASOS

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso CASOS DE USO Ø Es un fragmento de funcionalidad del sistema que proporciona el usuario un resultado importante Ø Representan los requisitos funcionales Ø Todos los casos de uso juntos representan un modelo de casos de uso el cual describe la funcionalidad total del sistema ¿ Que debe hacer el sistema para cada usuario? Pensar en términos de importancia para el usuario

Centrado en la arquitect ura Iterativo e Dirigido por casos de uso incremental Dirigido

Centrado en la arquitect ura Iterativo e Dirigido por casos de uso incremental Dirigido por casos de uso CASOS DE USO Los casos de uso no son solo una herramienta para especificar los requisitos de un sistema. GUÍAN EL PROCESO DE DESARROLLO IMPLEMENTACIÓN PRUEBA SU DISEÑO TAMBIÉN GUÍAN

Centrado en la arquitect ura PROCESO UNIFICADO Iterativo e Dirigido por casos de uso

Centrado en la arquitect ura PROCESO UNIFICADO Iterativo e Dirigido por casos de uso incremental Dirigido por casos de uso CASOS DE USO Desarrolladores Basándose en casos de uso crean una serie de modelos de diseño e implementación que lleva a cabo los casos de uso y revisan cada uno de los sucesivos modelos para que sean conformes al modelo de casos de uso. Los ingenieros de prueba Prueban la implementación para garantizar que los componentes del modelo de implementación implementan correctamente los casos de uso, es decir construyen sus casos de prueba a partir de los casos de uso

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso CASOS

Centrado en la arquitect ura Iterativo e incremental Dirigido por casos de uso CASOS DE USO Ø Inician el proceso de desarrollo Ø Guían el proceso de desarrollo Ø Se desarrollan a la vez que la arquitectura del sistema y esta influye en la selección de los casos de uso

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE La arquitectura software es parecido al papel que juega la arquitectura en la construcción de edificios, ya que permite al constructor ver la imagen completa antes de que comience la construcción

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE Ø Incluye los aspectos estáticos y dinámicos más significativos Ø Siguiere las necesidades de la empresa, como las perciben los usuarios y los inversores y se refleja en los casos de uso Ø Es una vista del diseño completo con las características más importantes resaltadas, dejando los detalles de lado

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE Ø Se ve influida por muchos factores como: v La plataforma en que tiene que funcionar el software v Los bloques de construcción de que se dispone consideraciones de implantación v Sistemas heredados y requisitos no funcionales

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE El valor de una arquitectura depende de las personas que se hayan responsabilizado de su creación este proceso ayuda al arquitecto a centrarse en los objetivos adecuados, como la: ØComprensibilidad ØLa capacidad de adaptación al cambio ØLa reutilización

Dirigido por casos de uso Iterativo e Centrado en la arquitectura incremental Centrado en

Dirigido por casos de uso Iterativo e Centrado en la arquitectura incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE ARQUITECTURA y CASOS DE USO Cada uno tiene una función y una forma Ninguna es suficiente por sí misma Las dos deben equilibrarse Debe existir interacción entre ellos Los casos de uso deben encajar en la arquitectura cuando se llevan a cabo y por otro lado la arquitectura debe permitir el desarrollo de todos los casos de uso requeridos ahora y en el futuro Ø Deben evolucionar en paralelo Ø Ø Ø

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE

Dirigido por casos de uso Iterativo e incremental Centrado en la arquitectura ARQUITECTURA SOFTWARE De manera resumida podemos decir que el arquitecto: Ø Crea un esquema de borrador de la arquitectura, comenzando por la parte de la arquitectura que no es específica de los casos de uso. Aun que esta parte de la arquitectura es independiente de los casos de uso, el arquitecto debe poseer una comprensión general de los casos de uso antes de comenzar la creación del esquina arquitectónico Ø A continuación , el arquitecto trabaja con un subsistema de los casos de uso especificados, con aquellos que representen las funciones clave del sistema en desarrollo. Cada caso de uso seleccionado se especifica en detalle y se realiza en términos de subsistemas ESTE PROCESO CONTINÚA HASTA QUE SE CONSIDERE QUE LA ARQUITECTURA ES ESTABLE

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES Es práctico dividir el esfuerzo de desarrollo de un proyecto de software en partes mas pequeñas o mini proyectos. Cada mini proyecto es una iteración que resulta en un incremento. Las iteraciones hace referencia a pasos en el flujo de trabajo, y los incrementos a crecimientos en el producto. Las iteraciones deben estar controladas. Esto significa que deben seleccionarse y ejecutarse de una forma planificada.

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES Los desarrolladores basan la selección de lo que implementarán en cada iteración en dos cosas: • La iteración trata en grupo de casos de uso que juntos amplían la utilidad del producto desarrollado hasta ahora 1 2 • La iteración trata los riesgos más importantes

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES En cada iteración los desarrolladores identifican y especifican los casos de uso relevantes, crean un diseño utilizando la arquitectura seleccionada como guía, para implementar dichos casos de uso. Si la iteración cumple sus objetivos, se continúa con la próxima. Sino deben revisarse las decisiones previas y probar un nuevo enfoque.

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES Las actividades se encadenan en una mini-cascada con un alcance limitado por los objetivos de la iteración

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES Ø Captura de requisitos: Modelo de casos de uso, Modelo de Dominio, . . . Ø Análisis: Diagrama de secuencia del sistema, Contratos, Modelo Conceptual. . . Ø Diseño: Diagramas de interacción, Diagrama de Clases Ø Implementación: Código fuente (Clases y métodos) Ø Pruebas: verificación de la implementación

ITERACIÓN Y ENTREGAS Ø Captura de requisitos: Modelo de casos de uso, Modelo de

ITERACIÓN Y ENTREGAS Ø Captura de requisitos: Modelo de casos de uso, Modelo de Dominio, . . . Ø Análisis: Diagrama de secuencia del sistema, Contratos, Modelo Conceptual. . . Ø Diseño: Diagramas de interacción, Diagrama de Clases Ø Implementación: Código fuente (Clases y métodos) Ø Pruebas: verificación de la implementación

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES BENEFICIOS DEL ENFOQUE ITERATIVO Ø La iteración controlada reduce el riesgo a los costes de un solo incremento. Ø Reduce el riesgo de retrasos en el calendario atacando los riesgos mas importantes primero. Ø Acelera el desarrollo. Los trabajadores trabajan de manera más eficiente al obtener resultados a corto plazo. Ø Tiene un enfoque más realista al reconocer que los requisitos no pueden definirse completamente al principio.

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES RECOMENDACIONES Utilizar iteraciones cortas de 2 a 4 semanas incrementa la productividad del proyecto, dado que el equipo trabaja de forma más eficiente cuando tiene objetivos a corto plazo. Así mismo, con iteraciones cortas la precisión de las estimaciones aumenta. El tamaño depende de: Los condicionantes del proyecto. La necesidad de tener feedback más o menos rápido. Que no se degrade la relación trabajo útil / gestión operativa (por ejemplo reuniones, actividades necesarias que no producen valor directo, etc. ). Utilizar iteraciones regulares, de manera que todas sean un timebox de la misma duración.

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES RECOMENDACIONES El equipo aprende a calcular la velocidad de desarrollo, la cantidad de trabajo que puede hacer en una iteración (sin tener que hacer extrapolaciones si las iteraciones no fuesen regulares). El cliente puede proyectar cuantas iteraciones se necesitan para tener cada entrega, en función de la velocidad de desarrollo del equipo (el trabajo que pudo completar en iteraciones anteriores del mismo tamaño), y tomar decisiones al respecto.

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES

Dirigido por casos de uso Centrado en la arquitectu ra Iterativo e incremental ITERACIONES RECOMENDACIONES Permite gestionar y sincronizar de manera sencilla las necesidades del proyecto con respecto a las de otros proyectos (integración con el trabajo realizado por otros equipos, compartición de personas que son difíciles de asignar a un único equipo). Las iteraciones coincidiendo con mese naturales permiten sincronizar el trabajo del equipo con el de otros departamentos y con el resto de la organización (por ejemplo, la organización puede tener medidas de resultados y objetivos a nivel trimestral o cuatrimestral).

El Proceso Unificado se repite a lo largo de una serie de ciclos que

El Proceso Unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema. Cada ciclo constituye una versión del sistema. FASES Cada ciclo constas de cuatro fases: inicio, elaboración, construcción, y transición.

EL PRODUCTO Ø Cada ciclo produce una nueva versión del sistema, y casa versión

EL PRODUCTO Ø Cada ciclo produce una nueva versión del sistema, y casa versión es un producto preparado para su entrega. Ø Consta de un cuerpo de código fuente incluido en componentes que puede compilarse y ejecutarse, además de manuales y otros productos asociados Ø Debe ajustarse a las necesidades de los usuarios es decir de toda la gente que trabajará con el producto. Ø El producto terminado incluye los requisitos, casos de uso, especificaciones no funcionales y casos de prueba Ø Incluye un modelo de prueba y el modelo visual

FASES DENTRO DE UN CICLO Cada fase se subdivide en iteraciones. En cada iteración

FASES DENTRO DE UN CICLO Cada fase se subdivide en iteraciones. En cada iteración se desarrolla en secuencia un conjunto de disciplinas o flujos de trabajos.

FASES DENTRO DE UN CICLO HITOS Cada fase finaliza con un hito. Cada hito

FASES DENTRO DE UN CICLO HITOS Cada fase finaliza con un hito. Cada hito se determina por la disponibilidad de un conjunto de artefactos, es decir un conjunto de modelos o documentos que han sido desarrollados hasta alcanzar un estado predefinido. Los hitos tienen muchos objetivos. El más crítico es que los directores deben tomar ciertas decisiones antes de que el trabajo continúe con la siguiente fase. Los hitos también permiten controlar la dirección y progreso del trabajo. Al final se obtiene un conjunto de datos a partir del seguimiento del tiempo y esfuerzo consumidos en cada fase. Estos datos son útiles para la estimaciones en futuros proyectos.

FASES DENTRO DE UN CICLO FASE DE INICIO Durante la fase de inicio se

FASES DENTRO DE UN CICLO FASE DE INICIO Durante la fase de inicio se desarrolla una descripción del producto final, y se presenta el análisis del negocio. Esta fase responde las siguientes preguntas: Ø ¿Cuáles son las principales funciones del sistema para los usuarios mas importantes? Ø ¿Cómo podría ser la mejor arquitectura del sistema? Ø ¿Cuál es el plan del proyecto y cuanto costará desarrollar el producto? En esta fase se identifican y priorizan los riesgos mas importantes. El objetivo de esta fase es ayudar al equipo de proyecto a decidir cuales son los verdaderos objetivos del proyecto. Las iteraciones exploran diferentes soluciones posibles, y diferentes arquitecturas posibles. Puede que todo el trabajo físico realizado en esta fase sea descartado. Lo único que normalmente sobrevive a la fase de inicio es el incremento del conocimiento en el equipo.

FASES DENTRO DE UN CICLO FASE DE INICIO Los artefactos que típicamente sobreviven a

FASES DENTRO DE UN CICLO FASE DE INICIO Los artefactos que típicamente sobreviven a esta fase son: - Un enunciado de los mayores requerimientos planteados generalmente como casos de uso. - Un boceto inicial de la arquitectura. - Una descripción de los objetivos del proyecto. - Una versión muy preliminar del plan del proyecto. - Un modelo del negocio. La fase de inicio finaliza con el Hito de Objetivos del Ciclo de Vida. Este hito es alcanzado cuando el equipo de proyectos y los stakeholders llegan a un acuerdo sobre: - Cuál es el conjunto de necesidades del negocio, y que conjunto de funciones satisfacen estas necesidades. - Una planificación preliminar de iteraciones. - Una arquitectura preliminar.

FASES DENTRO DE UN CICLO FASE DE INICIO Debe poder responderse las siguientes cuestiones:

FASES DENTRO DE UN CICLO FASE DE INICIO Debe poder responderse las siguientes cuestiones: - ¿Se ha determinado con claridad el ámbito del sistema? ¿Se ha determinado lo que va a estar dentro del sistema y fuera de el sistema? - ¿Se ha llegado a un acuerdo con todas las personas involucradas (stakeholders) sobre los requisitos funcionales del sistema? - ¿Se vislumbra una arquitectura que pueda soportar estas características? - ¿Se identifican los riesgos críticos? ¿Se prevé forma de mitigarlos? - ¿El uso del producto justifica la relación costo-beneficio? - ¿Es factible para su organización llevar adelante el proyecto? - ¿Están los inversores de acuerdo con los objetivos?

FASES DENTRO DE UN CICLO FASE DE ELABORACIÓN Durante la fase de elaboración se

FASES DENTRO DE UN CICLO FASE DE ELABORACIÓN Durante la fase de elaboración se especifican en detalle la mayoría de los casos de uso del producto y se diseña la arquitectura. Las iteraciones en la fase de elaboración: - Establecen una firme comprensión del problema a solucionar. - Establece la fundación arquitectural para el software. - Establece un plan detallado para las siguientes iteraciones. - Elimina los mayores riesgos. El resultado de esta fase es la línea base de la arquitectura. En esta fase se construyen típicamente los siguientes artefactos: - El cuerpo básico del sw en la forma de un prototipo arquitectural. - Casos de prueba - La mayoría de los casos de uso (80%) que describen la funcionalidad del sistema. - Un plan detallado para las siguientes iteraciones.

FASES DENTRO DE UN CICLO FASE DE ELABORACIÓN La fase de elaboración finaliza con

FASES DENTRO DE UN CICLO FASE DE ELABORACIÓN La fase de elaboración finaliza con el hito de la Arquitectura del Ciclo de Vida. Este hito se alcanza cuando el equipo de desarrollo y los stakeholders llegan a un acuerdo sobre: - Los casos de uso que describen la funcionalidad del sistema. - La línea base de la arquitectura - Los mayores riesgos han sido mitigados - El plan del proyecto Al alcanzar este hito debe poder responderse a preguntas como: - ¿Se ha creado una línea base de la arquitectura? ¿Es adaptable y robusta? ¿Puede evolucionar? - ¿Se han identificado y mitigado los riesgos más graves? - ¿Se ha desarrollado un plan del proyecto hasta el nivel necesario para respaldar una agenda, costes, y calidad realistas? - ¿Proporciona el proyecto, una adecuada recuperación de la inversión? - ¿Se ha obtenido la aprobación de los inversores?

DISCIPLINAS Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo) vinculadas a

DISCIPLINAS Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo) vinculadas a un área específica dentro del proyecto total. Las más importantes son: Requerimientos, Análisis, Diseño, Codificación, y Prueba. El agrupamiento de actividades en disciplinas es principalmente una ayuda para comprender el proyecto desde la visión tradicional en cascada.

v Libro: El proceso Unificado de Desarrollo de Software de Ivar Jcobson, Grandy booch,

v Libro: El proceso Unificado de Desarrollo de Software de Ivar Jcobson, Grandy booch, James Rumbaugh v http: //adimen. si. ehu. es/~rigau/teaching/EHU/ISHAS/Curs 20082009/Apunts/IS. 2. pdf v http: //www. proyectosagiles. org/desarrollo-iterativo-incremental v http: //www. ecomchaco. com. ar/UTN/disenodesistemas/apuntes/oo/Apunte. R UP. pdf v http: //kybele. escet. urjc. es/Documentos/ISI/Proceso%20 Unificado%20 I%20% 282006%29. pdf v http: //gabrielpizarro. files. wordpress. com/2008/07/uml_logopatterns. jpg v http: //dc. exa. unrc. edu. ar/nuevodc/materias/sistemas/2007/TEORICOS/TEO RIA_6_PU_CR_2007. pdf v http: //www. unibe. edu. do/carreras/tic/ingenieria. pdf