Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Facultad de Estadística e Informática PROCESOS PARA LA INGENIERÍA DE SOFTWARE Facultad de Estadística e Informática Bibliografía ▪ Pressman, R.S., Ingeniería del Software. Un enfoque práctico, quinta edición, 2002, España. Parte 2 ▪Sommerville I., Ingeniería de Software, Addison-Wesley, 6ª. Edición, 2002, México. Facultad de Estadística e Informática Agenda ▪ Unidad III. Modelos de procesos de desarrollo de software ◦Cascada ◦ Incremental ◦Evolutivo ◦Espiral ◦Prototipos ◦PUDS (Proceso Unificado de Desarrollo de Software) Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Proceso de software Se define proceso del software como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ¿Por qué es importante? Porque da estabilidad, control y organización a una actividad que puede volverse caótica si se descontrola. Sin embargo, un enfoque moderno de ingeniería de software debe ser “ágil”. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ¿Por qué es importante? Debe incluir sólo aquellas actividades, controles y productos del trabajo que sean apropiados para el equipo del proyecto y para el producto que se busca obtener. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Proceso de software Se define proceso del software como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Cada una de las actividades, acciones y tareas se encuentra dentro de una estructura o modelo que define su relación tanto con el proceso como entre sí. Facultad de Estadística e Informática ▪Modelo general de proceso Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ La estructura general para la ingeniería de software define cinco actividades estructurales: Comunicación, Planeación, Modelado, Construcción y Despliegue. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Actividades Estructurales C O M U N IC A C IÓ N P LA N EA C IÓ N M O D EL A D O C O N ST R U C C IÓ N D ES P LI EG U E Actividades Sombrilla Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Los Modelos de proceso describen: ▪Actividades estructurales. ▪Acciones de ingeniería de software. ▪Tareas. ▪Productos del trabajo. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Los Modelos de proceso describen: ▪Aseguramiento de la calidad y ▪Puntos de referencia del proyecto. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪Cada modelo del proceso también describe un flujo del proceso (también llamado flujo de trabajo) (la manera en la que los elementos del proceso se relacionan entre sí) Facultad de Estadística e Informática Modelos de proceso de desarrollo de software ▪ Flujo del proceso de las actividades estructurales Un flujo del proceso describe la manera en que están organizadas las actividades estructurales y las acciones y tareas que ocurren dentro de cada una con respecto de la secuencia y el tiempo. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Flujo del proceso lineal Ejecuta cada una de las cinco actividades estructurales en secuencia, comenzando por la comunicación y terminando con el despliegue. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Flujo del proceso iterativo Repite una o más de las actividades antes de pasar a la siguiente. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Realiza las actividades en forma “circular”. A través de las cinco actividades, cada circuito lleva a una versión más completa del software Flujo de proceso evolutivo Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Ejecuta una o más actividades en paralelo con otras (por ejemplo, el modelado de un aspecto del software tal vez se ejecute en paralelo con la construcción de otro aspecto del software). Flujo de proceso paralelo Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ¿Por qué se crearon los Modelos de Proceso? Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪modelo Del it. modello. 1. m. Arquetipo o punto de referencia para imitarlo o reproducirlo. 2. m. En las obras de ingenio y en las acciones morales, ejemplar que por su perfección se debe seguir e imitar. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Los modelos de proceso fueron propuestos originalmente para poner orden en el caos del desarrollo de software. ▪ Otorgan cierta estructura útil al trabajo de ingeniería de software y constituyen un mapa razonablemente eficaz para los equipos de software. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Todos los modelos del proceso del software pueden incluir las actividades estructurales generales descritas anteriormente. ▪Cada uno pone distinto énfasis en ellas y define en forma diferente el flujo de proceso que invoca cada actividad estructural (así como acciones y tareas de ingeniería de software). Facultad de Estadística e Informática Modelos de procesos de desarrollo de software existentes Facultad de Estadística e Informática Modelo en cascada Facultad de Estadística e Informática Modelos de procesos de desarrollo de software ▪ Modelo en cascada o ciclo de vida clásico Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico ▪Enfoque sistemático y secuencial. ▪ Comienza con la especificación de los requerimientos por parte del cliente y avanza a través de planeación, modelado, construcción y despliegue, para concluir con el apoyo del software terminado Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico ¿Cuándo se usa? Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico ▪Los requerimientos para cierto problema se comprenden bien. ▪El trabajo desde la comunicación hasta el despliegue fluye en forma razonablemente lineal. Adaptaciones o mejoras bien definidas a un sistema ya existente Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico Problemas: 1. Es raro que los proyectos reales sigan el flujo secuencial propuesto por el modelo. Aunque el modelo lineal acepta repeticiones, lo hace en forma indirecta. Como resultado, los cambios generan confusión conforme el equipo del proyecto avanza. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico Problemas: 2. Es difícil para el cliente enunciar en forma explícita todos los requerimientos. El modelo en cascada necesita que se haga y tiene dificultades para aceptar la incertidumbre natural que existe al principio de muchos proyectos. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico Problemas: 3. El cliente debe tener paciencia. No se dispondrá de una versión funcional del(de los) programa(s) hasta que el proyecto esté muy avanzado. Un error grande sería desastroso si se detectara hastarevisar el programa en funcionamiento. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico Problemas: 4. La naturaleza lineal del ciclo de vida clásico llega a “estados de bloqueo” en los que ciertos miembros del equipo de proyecto deben esperar a otros a fin de terminar tareas interdependientes Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico El trabajo de software es acelerado y está sujeto a una corriente sin fin de cambios (en las características, funciones y contenido de información). Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo en cascada o ciclo de vida clásico ▪ Variante del modelo en cascada “Modelo en V” ▪ Acciones de aseguramiento de la calidad Facultad de Estadística e Informática Modelo en cascada o ciclo de vida clásico. MODELO EN V ❖ No hay diferencias fundamentales entre el ciclo de vida clásico y el modelo en V. ❖ Proporciona una forma de visualizar el modo de aplicación de las acciones de verificación y validación al trabajo de ingeniería inicial. Facultad de Estadística e Informática Modelo incremental Facultad de Estadística e Informática Modelos de proceso incremental o Aplica secuencias lineales en forma escalonada a medida que avanza el calendario de actividades. o Cada secuencia lineal produce “incrementos” de software para entregarse. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelo de proceso incremental Diseñado para producir el software en incrementos. Requerimientos iniciales del software razonablemente bien definidos. Necesidad imperiosa de dar rápidamente cierta funcionalidad limitada de software a los usuarios y aumentarla en las entregas posteriores de software. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelo de proceso incremental El primer incremento es el producto fundamental. Se abordan los requerimientos básicos, pero no se proporcionan muchas características suplementarias (algunas conocidas y otras no). El cliente usa el producto fundamental (o lo somete a una evaluación detallada). Como resultado del uso y/o evaluación se desarrolla un plan para el incremento que sigue. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso incremental Modificación del producto fundamental para cumplir mejor las necesidades del cliente Características adicionales y más funcionalidad Plan Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso incremental En cada incremento se entrega un producto que ya opera. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelo de proceso incremental ¿Cuándo se usa? Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso incremental Necesidad imperiosa de dar rápidamente cierta funcionalidad limitada de software a los usuarios y aumentarla en las entregas posteriores de software. Útil en particular cuando no se dispone de personal para la implementación completa del proyecto en el plazo establecido por el negocio. 1 2 Facultad de Estadística e Informática Modelo evolutivo Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelo de proceso evolutivo Modelo de proceso diseñado explícitamente para adaptarse a un producto que evoluciona con el tiempo. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelo de proceso evolutivo Los sistemas complejos evolucionan. Es frecuente que los requerimientos del negocio y del producto cambien conforme avanza el desarrollo. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelo de proceso evolutivo Plazos apretados Se comprende bien el conjunto de requerimientos o el producto básico Los detalles del producto o extensiones del sistema aún están por definirse. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelo de proceso evolutivo Los modelos evolutivos son iterativos. Prototipo Espiral Facultad de Estadística e Informática Modelo evolutivo. Prototipo Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos El cliente define un conjunto de objetivos generales. No identifica los requerimientos detallados para las funciones y características. El desarrollador no está seguro de la eficiencia de un algoritmo, la adaptabilidad de un sistema operativo o de la interacción humano-computadora. Prototipo Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos Prototipo En la construcción, pueden utilizarse fragmentos de programas existentes o aplicar herramientas que permitan generar rápidamente programas que funcionen. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos Prototipo El modelado se centra en la representación de aquellos aspectos del software que serán visibles para los usuarios finales. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelos de proceso evolutivos Prototipo 1. Comienza con la comunicación. Reunión con participantes para definir objetivos generales , requerimientos conocidos, áreas por definir mejor. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software Modelos de proceso evolutivos Prototipo 2. Plan rápido, modelado y diseño rápido. Se planea rápidamente una iteración para hacer el prototipo, y se lleva a cabo el modelado (en forma de un “diseño rápido”). Facultad de Estadística e Informática Modelos de procesos de desarrollo de software.Modelos de proceso evolutivos Prototipo 3. Construcción y Despliegue El diseño rápido lleva a la construcción de un prototipo. Éste se entrega y es evaluado por los participantes, que dan retroalimentación para mejorar los requerimientos. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos Prototipo La iteración ocurre a medida que el prototipo es afinado para satisfacer las necesidades de distintos participantes, y al mismo tiempo permite entender mejor lo que se necesita hacer. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos El ideal es que el prototipo sirva como mecanismo para identificar los requerimientos del software. Prototipo Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos Prototipo ¿Qué hacer con el prototipo cuando ya sirvió para el propósito descrito? Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos Prototipo En la mayoría de proyectos es raro que el primer sistema elaborado sea utilizable. Muy lento, muy grande, difícil de usar o todo a la vez. No hay más alternativa que comenzar de nuevo. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos Prototipo. Problemas ✓Los participantes ven lo que parece ser una versión funcional del software, pero no se consideró la calidad, la facilidad de mantenimiento, por la prisa. Los usuarios exigen el prototipo como producto funcional. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software.Modelos de proceso evolutivos Prototipo. Problemas ✓Se toman decisiones que inicialmenteson las adecuadas (con el fin de lograr el prototipo rápidamente): Lenguaje de programación conocido, algoritmo ineficiente. Esta elección formará parte del sistema final. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software. Modelos de proceso evolutivos Prototipo. Paradigma exitoso si… Se definen desde el principio las reglas del juego. El prototipo sirve como el mecanismo para definir los requerimientos. Después se descartará (al menos en parte) y se hará la ingeniería del software real con la mirada puesta en la calidad. Facultad de Estadística e Informática GRACIAS POR SU ATENCIÓN
Compartir