PROCESOS PARA LA INGENIERÍA DE SOFTWARE - Universidad Veracruzana

Transcription

PROCESOS PARA LAINGENIERÍA DESOFTWAREFacultad de Estadística e Informática

Bibliografía Pressman, R.S., Ingeniería del Software. Un enfoque práctico, quintaedición, 2002, España. Parte 2Facultad de Estadística e Informática

Clase 7. 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 desoftware Proceso de softwareSe define proceso del software como unaestructura para las actividades, accionesy tareas que se requieren a fin deconstruir software de alta calidad.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware¿Por qué es importante?Porque da estabilidad, control y organización a unaactividad que puede volverse caótica si sedescontrola.Sin embargo, un enfoque moderno de ingeniería desoftware debe ser “ágil”.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware¿Por qué es importante?Debe incluir sólo aquellas actividades, controles yproductos del trabajo que sean apropiados para elequipo del proyecto y para el producto que se buscaobtener.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware Proceso de softwareSe define proceso del software como unaestructura para las actividades, accionesy tareas que se requieren a fin deconstruir software de alta calidad.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware Cada una de las actividades, acciones y tareas seencuentra dentro de una estructura o modelo quedefine su relación tanto con el proceso como entre sí.Facultad de Estadística e Informática

Modelos de procesos dedesarrollo de software Modelo general deprocesoFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware La estructura general para la ingeniería de softwaredefine cinco actividades estructurales:comunicación, planeación, modelado, construcción ydespliegue.Facultad de Estadística e Informática

DESPLIEGUECONSTRUCCIÓNMODELADOActividades SombrillaCOMUNICACIÓNPLANEACIÓNModelos de procesos dedesarrollo de softwareActividades EstructuralesFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware Flujo del proceso de las actividades estructuralesFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwarePor qué se crearon los Modelos deProcesoFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware Los modelos de proceso fueron propuestosoriginalmente para poner orden en el caos deldesarrollo de software. Otorgan cierta estructura útil al trabajo deingeniería de software y constituyen un maparazonablemente eficaz para los equipos de software.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware Los Modelos deproceso prescriben un conjunto de elementos del proceso: Actividades estructurales Acciones de ingeniería de software, Tareas, Productos del trabajo, Aseguramiento de la calidad y Mecanismos de control del cambio para cada proyecto. Cada modelo del proceso también prescribe un flujo del proceso (también llamado flujo detrabajo) (la manera en la que los elementos del proceso se relacionan entre sí)Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware Todos los modelos del proceso del software puedenincluir las actividades estructurales generalesdescritas anteriormente, pero cada una pone distintoénfasis en ellas y define en forma diferente el flujo deproceso 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 desoftwareModelos de procesos de desarrollo desoftware existentesFacultad de Estadística e Informática

Modelo en cascadaFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftware Modelo en cascada o ciclo de vida clásicoFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásico Enfoque sistemático y secuencial. Comienza con la especificación de los requerimientos porparte del cliente y avanza a través de planeación,modelado, construcción y despliegue, para concluir con elapoyo del software terminadoFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásico Los requerimientos para cierto problema se comprendenbien. El trabajo desde la comunicación hasta el despliegue fluyeen forma razonablemente lineal.Adaptaciones o mejoras bien definidas a un sistema yaexistenteFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásico Variante del modelo en cascada “Modelo en V” Acciones de aseguramiento de la calidadFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásicoModelo en VFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásicoProblemas:1. Es raro que los proyectos reales sigan el flujo secuencialpropuesto por el modelo. Aunque el modelo lineal aceptarepeticiones, lo hace en forma indirecta. Como resultado,los cambios generan confusión conforme el equipo delproyecto avanza.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásicoProblemas:2. Es difícil para el cliente enunciar en forma explícitatodos los requerimientos.El modelo en cascada necesita que se haga y tienedificultades para aceptar la incertidumbre natural queexiste al principio de muchos proyectos.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásicoProblemas:3. El cliente debe tener paciencia. No se dispondrá de unaversión funcional del(de los) programa(s) hasta que elproyecto esté muy avanzado. Un error grande seríadesastroso si se detectara hasta revisar el programa enfuncionamiento.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásicoLa naturaleza lineal del ciclo de vida clásico llega a“estados de bloqueo” en los que ciertos miembros delequipo de proyecto deben esperar a otros a fin determinar tareas interdependientesFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelo en cascada o ciclo de vida clásicoEl trabajo de software es acelerado y está sujeto a unacorriente sin fin de cambios (en las características,funciones y contenido de información).Facultad de Estadística e Informática

Modelo incrementalFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso incrementalFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso incremental Modelo de proceso diseñado para producir elsoftware en incrementos.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso incremental Requerimientos iniciales del softwarerazonablemente bien definidos, pero el alcancegeneral del esfuerzo de desarrollo imposibilita unproceso lineal.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso incremental Necesidad imperiosa de dar rápidamente ciertafuncionalidad limitada de software a los usuarios yaumentarla en las entregas posteriores de software.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso incremental El primer incremento es el producto fundamental. Se abordan los requerimientos básicos, pero no seproporcionan muchas características suplementarias(algunas conocidas y otras no). El cliente usa el producto fundamental (o lo somete a unaevaluación detallada).Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso incremental Como resultado del uso y/o evaluación se desarrolla un planpara el incremento que sigue. El plan incluye la modificación del producto fundamental paracumplir mejor las necesidades del cliente, así como la entregade características adicionales y más funcionalidad. Este proceso se repite después de entregar cada incremento,hasta terminar el producto final.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso incremental En cada incremento se entrega un producto que yaopera. Útil en particular cuando no se dispone de personalpara la implementación completa del proyecto en elplazo establecido por el negocio.Facultad de Estadística e Informática

Modelo evolutivoFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosModelo de proceso diseñado explícitamentepara adaptarse a un producto que evolucionacon el tiempo.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosLos sistemas complejos evolucionanEs frecuente que los requerimientos del negocio y delproducto cambien conforme avanza el desarrollo.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivos Plazos apretados Se comprende bien el conjunto de requerimientos oel producto básico Los detalles del producto o extensiones del sistemaaún están por definirse.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosoLos modelos evolutivos son iterativos. Prototipo EspiralFacultad de Estadística e Informática

Modelo evolutivo.PrototipoFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipo El cliente define un conjunto de objetivos generales. No identifica los requerimientos detallados para lasfunciones y características.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipo El desarrollador no está seguro de la eficiencia deun algoritmo, la adaptabilidad de un sistemaoperativo o de la interacción humano-computadora.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipoEl modelado se centra en la representación deaquellos aspectos del software que seránvisibles para los usuarios finalesFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipoEl ideal es que el prototipo sirva como mecanismopara identificar los requerimientos del software.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipo¿Qué hacer con el prototipo cuando ya sirvió para elpropósito descrito?Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipoBrooks: En la mayoría de proyectos es raro que el primersistema 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 desoftwareModelos de proceso evolutivosPrototipo. Problemas Los participantes ven lo que parece ser una versiónfuncional del software, pero no se consideró la calidad, lafacilidad de mantenimiento, por la prisa. Los usuariosexigen el prototipo como producto funcional.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipo. Problemas Se toman decisiones que inicialmente son las adecuadas(con el fin de lograr el prototipo rápidamente): Lenguajede programación conocido, algoritmo ineficiente. Estaelección formará parte del sistema final.Facultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareModelos de proceso evolutivosPrototipo. Paradigma exitoso si Se definen desde el principio las reglas del juego.El prototipo sirve como el mecanismo para definir losrequerimientos. Después se descartará (al menos en parte) yse hará la ingeniería del software real con la mirada puestaen la calidad.Facultad de Estadística e Informática

EjemploFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareVideojuegoFacultad de Estadística e Informática

Modelos de procesos de desarrollo desoftwareVideojuego Pac-Man Desarrollo Modelo en Cascada Desarrollo Modelo Incremental(Tiempo de desarrollo, definición de requerimientos, cantidad de personal,producto final)Facultad de Estadística e Informática

GRACIAS POR SU ATENCIÓNFacultad de Estadística e Informática

Pressman, R.S., Ingeniería del Software. Un enfoque práctico, quinta edición, 2002, España. Parte 2. Facultad de Estadística e Informática Clase 7. Agenda . razonablemente eficaz para los equipos de software. Facultad de Estadística e Informática Modelos de procesos de desarrollo de software