Ciclos de Vida por Prototipos

24
Ciclo de Vida por Ciclo de Vida por Prototipos Prototipos

description

Diapositivas hachas por el M. en C. Alejandro Valdes Marrero. Perteneciente a la clase de Ingeniería del Software I, de la Universidad del Mar (UMAR),campus Puerto Escondido.

Transcript of Ciclos de Vida por Prototipos

Page 1: Ciclos de Vida por Prototipos

Ciclo de Vida por PrototiposCiclo de Vida por Prototipos

Page 2: Ciclos de Vida por Prototipos

Descripción del modeloDescripción del modelo Una alternativa de enfoque para la definición de los Una alternativa de enfoque para la definición de los

requerimientos consiste en capturar un conjunto inicial requerimientos consiste en capturar un conjunto inicial de necesidades e implementarlas rápidamente con la de necesidades e implementarlas rápidamente con la intención declarada de expandirlas y refinarlas intención declarada de expandirlas y refinarlas iterativamente al ir aumentando la compresión que del iterativamente al ir aumentando la compresión que del sistema tienen los usuarios y quien lo desarrolla.sistema tienen los usuarios y quien lo desarrolla.

La definición del sistema se realiza por el La definición del sistema se realiza por el descubrimiento evolutivo y gradual y no a través de la descubrimiento evolutivo y gradual y no a través de la previsión omnisciente... Ofrece una alternativa atractiva previsión omnisciente... Ofrece una alternativa atractiva y practicable a los métodos de especificación para tratar y practicable a los métodos de especificación para tratar mejor la incertidumbre, la ambigüedad y la volubilidad de mejor la incertidumbre, la ambigüedad y la volubilidad de los proyectos reales. los proyectos reales.

Page 3: Ciclos de Vida por Prototipos

Herramientas de softwareHerramientas de software

Dentro del enfoque de prototipos se pretende que el Dentro del enfoque de prototipos se pretende que el modelo sea operante, es decir, una colección de modelo sea operante, es decir, una colección de programas de computadora que simulan algunas o programas de computadora que simulan algunas o todas las funciones que el usuario desea.todas las funciones que el usuario desea.

Un diccionario de datos integrado. Un diccionario de datos integrado. Un generador de pantallas. Un generador de pantallas. Un generador de reportes no guiado por procedimientos. Un generador de reportes no guiado por procedimientos. Un lenguaje de programación de cuarta generación.Un lenguaje de programación de cuarta generación. Un lenguaje de consultas no guiado por procedimientos. Un lenguaje de consultas no guiado por procedimientos. Medios poderosos de administración de base de datos.Medios poderosos de administración de base de datos.

Page 4: Ciclos de Vida por Prototipos

Modelo de prototiposModelo de prototipos

Page 5: Ciclos de Vida por Prototipos

Características de buenos Características de buenos candidatoscandidatos

El usuario no puede o no está dispuesto a examinar modelos El usuario no puede o no está dispuesto a examinar modelos abstractos en papel, tales como diagramas de flujo de datos.abstractos en papel, tales como diagramas de flujo de datos.

El usuario no puede o no está dispuesto a articular sus El usuario no puede o no está dispuesto a articular sus requerimientos de ninguna forma y sólo se pueden determinar sus requerimientos de ninguna forma y sólo se pueden determinar sus requerimientos mediante un proceso de tanteo, o ensayo y error.requerimientos mediante un proceso de tanteo, o ensayo y error.

Se tiene la intención de que el sistema sea en línea y con operación Se tiene la intención de que el sistema sea en línea y con operación total por la pantalla, en contraposición con los sistemas de edición, total por la pantalla, en contraposición con los sistemas de edición, actualización y reportes operados por lote.actualización y reportes operados por lote.

El sistema no requiere la especificación de grandes cantidades de El sistema no requiere la especificación de grandes cantidades de detalles algorítmicos, ni de muchas especificaciones de procesos detalles algorítmicos, ni de muchas especificaciones de procesos para describir los algoritmos con los cuales se obtienen resultados. para describir los algoritmos con los cuales se obtienen resultados.

Page 6: Ciclos de Vida por Prototipos

PSP/TSP y modelo CMMPSP/TSP y modelo CMM

Page 7: Ciclos de Vida por Prototipos

Capability Maturity Model (CMM)Capability Maturity Model (CMM)

Elaborado por el SEI (Software Engineering Elaborado por el SEI (Software Engineering Institute) de la Universidad de Carnegie Mellon, Institute) de la Universidad de Carnegie Mellon, Pittsburgh PA (80’s – 90’s).Pittsburgh PA (80’s – 90’s).

Contiene las mejores prácticas organizacionales Contiene las mejores prácticas organizacionales para el desarrollo de software.para el desarrollo de software.

Define 5 niveles para medir la madurez de los Define 5 niveles para medir la madurez de los procesos en una empresa (certificación).procesos en una empresa (certificación).

Hay varios modelos que atienden aspectos de Hay varios modelos que atienden aspectos de Ingeniería de sistemas (SE-CMM), desarrollo de Ingeniería de sistemas (SE-CMM), desarrollo de productos integrados (IPD-CMM), adquisición de productos integrados (IPD-CMM), adquisición de software (SA-CMM) y recursos humanos software (SA-CMM) y recursos humanos (People CMM). (People CMM).

Page 8: Ciclos de Vida por Prototipos

Personal Software Process (PSP)Personal Software Process (PSP)

Elaborado por Watts Humprey del SEI.Elaborado por Watts Humprey del SEI. Debido a que el costo de personal es el 70% Debido a que el costo de personal es el 70%

aprox. del costo del desarrollo de software, las aprox. del costo del desarrollo de software, las habilidades y hábitos de trabajo de los habilidades y hábitos de trabajo de los ingenieros determinan los resultados del ingenieros determinan los resultados del proceso de desarrollo del software.proceso de desarrollo del software.

Aplica los principios del CMM a las prácticas de Aplica los principios del CMM a las prácticas de desarrollo de software de un solo desarrollador.desarrollo de software de un solo desarrollador.

Es un proceso CMM nivel 5.Es un proceso CMM nivel 5.

Page 9: Ciclos de Vida por Prototipos

Qué muestra a los ingenieros ?Qué muestra a los ingenieros ?

Cómo administrar la calidad de sus proyectos. Cómo administrar la calidad de sus proyectos. Cómo hacer compromisos que puedan cumplir.Cómo hacer compromisos que puedan cumplir. Cómo mejorar la estimación y la planeación. Cómo mejorar la estimación y la planeación. Cómo reducir los defectos en sus productos.Cómo reducir los defectos en sus productos.

Puede ser usado como una guía para una Puede ser usado como una guía para una metodología disciplinada y estructurada para metodología disciplinada y estructurada para desarrollar software.desarrollar software.

Page 10: Ciclos de Vida por Prototipos

En que fases se aplica ?En que fases se aplica ?

Desarrollo de programas pequeños.Desarrollo de programas pequeños.Definición de requerimientos.Definición de requerimientos.Escritura de documentos. Escritura de documentos. Pruebas del sistema.Pruebas del sistema.Mantenimiento de sistemas.Mantenimiento de sistemas.Mejora de sistemas de software grandes. Mejora de sistemas de software grandes.

Page 11: Ciclos de Vida por Prototipos

Que herramientas utiliza ?Que herramientas utiliza ?

Reportes de actividades (tiempos).Reportes de actividades (tiempos).Reporte de trabajos (tiempos, LOC).Reporte de trabajos (tiempos, LOC).Bitácora de tiempos.Bitácora de tiempos.Bitácora de defectos.Bitácora de defectos.Etc.Etc.

Page 12: Ciclos de Vida por Prototipos

Team Software Process (TSP)Team Software Process (TSP)

Elaborado por Watts Humprey del SEI.Elaborado por Watts Humprey del SEI. Aplica los principios del CMM a las prácticas de Aplica los principios del CMM a las prácticas de

desarrollo de software de un equipo de desarrollo de software de un equipo de desarrollo.desarrollo.

Es un proceso CMM nivel 5.Es un proceso CMM nivel 5. Realizado para dar soporte a las prácticas de Realizado para dar soporte a las prácticas de

PSP.PSP. Ayuda a una organización a establecer prácticas Ayuda a una organización a establecer prácticas

de ingeniería maduras y disciplinadas, que de ingeniería maduras y disciplinadas, que producirán software seguro y confiable.producirán software seguro y confiable.

Page 13: Ciclos de Vida por Prototipos

Para que sirve ?Para que sirve ?

Ayuda a los ingenieros de alto desempeño a:Ayuda a los ingenieros de alto desempeño a: Asegurar productos de software con calidad.Asegurar productos de software con calidad. Crear productos de software seguros.Crear productos de software seguros. Mejorar la administración de proyectos en una Mejorar la administración de proyectos en una

organización.organización.

Usando TSP, una organización puede construir equipos Usando TSP, una organización puede construir equipos auto-dirigidos que planean y hacen seguimiento de su auto-dirigidos que planean y hacen seguimiento de su trabajo, establecen metas, y poseen sus propios trabajo, establecen metas, y poseen sus propios procesos y planes. Estos equipos pueden ser de puros procesos y planes. Estos equipos pueden ser de puros ingenieros de software o multidisciplinarios de 3 a 20 ingenieros de software o multidisciplinarios de 3 a 20 personas. personas.

Page 14: Ciclos de Vida por Prototipos

Cómo funciona ?Cómo funciona ?

Los equipos usan TSP para aplicar conceptos de Los equipos usan TSP para aplicar conceptos de equipos integrados al desarrollo de sistemas. Un equipos integrados al desarrollo de sistemas. Un proceso de lanzamiento de cuatro días lleva a los proceso de lanzamiento de cuatro días lleva a los equipos y sus administradores a través de:equipos y sus administradores a través de:

Establecer metas.Establecer metas. Definir roles de los equipos.Definir roles de los equipos. Administrar riesgos.Administrar riesgos. Producir un plan de equipo.Producir un plan de equipo.

Después del lanzamiento, TSP provee un marco de Después del lanzamiento, TSP provee un marco de trabajo de procesos definidos para administrar, hacer trabajo de procesos definidos para administrar, hacer seguimiento y reportar el progreso del equipo.seguimiento y reportar el progreso del equipo.

Page 15: Ciclos de Vida por Prototipos

Extreme Programming XPExtreme Programming XP

Page 16: Ciclos de Vida por Prototipos

Extreme ProgrammingExtreme Programming

Creado por Kent Beck y Ward Cunningham.Creado por Kent Beck y Ward Cunningham. Es una disciplina de desarrollo de software Es una disciplina de desarrollo de software

basada en valores de simplicidad, basada en valores de simplicidad, comunicación, retroalimentación y valor.comunicación, retroalimentación y valor.

Funciona reuniendo a todo el equipo en Funciona reuniendo a todo el equipo en presencia de prácticas simples, con suficiente presencia de prácticas simples, con suficiente retroalimentación para permitir al equipo ver retroalimentación para permitir al equipo ver donde están, y para afinar las prácticas a donde están, y para afinar las prácticas a situaciones únicas.situaciones únicas.

Page 17: Ciclos de Vida por Prototipos

Reglas y Prácticas de XPReglas y Prácticas de XP

PlaneaciónPlaneación Se escriben historias del usuario. *Se escriben historias del usuario. * Una reunión de planeación de liberaciones crea el Una reunión de planeación de liberaciones crea el

cronograma de actividades. cronograma de actividades. Hacer pequeñas liberaciones frecuentemente. *Hacer pequeñas liberaciones frecuentemente. * Se mide la velocidad del proyecto.Se mide la velocidad del proyecto. El proyecto es dividido en iteraciones.El proyecto es dividido en iteraciones. La planeación de la iteración inicia cada iteración.La planeación de la iteración inicia cada iteración. Rotar al personal.Rotar al personal. Una reunión cada día para ver problemas y soluciones.Una reunión cada día para ver problemas y soluciones. Arreglar a XP cuando se necesite. Arreglar a XP cuando se necesite.

Page 18: Ciclos de Vida por Prototipos

Reglas y Prácticas de XPReglas y Prácticas de XP

ProgramaciónProgramación El usuario siempre está disponible. *El usuario siempre está disponible. * Código escrito en estándares predefinidos. *Código escrito en estándares predefinidos. * Se programa primero la prueba de unidad.Se programa primero la prueba de unidad. Toda la programación se hace por parejas. *Toda la programación se hace por parejas. * Sólo una pareja integra código a la vez.Sólo una pareja integra código a la vez. Integrar seguido. *Integrar seguido. * Usar propiedad colectiva del código. *Usar propiedad colectiva del código. * Dejar la optimización al final.Dejar la optimización al final. Sin tiempo extra. *Sin tiempo extra. *

Page 19: Ciclos de Vida por Prototipos

Reglas y Prácticas de XPReglas y Prácticas de XP

DiseñoDiseño Simplicidad. *Simplicidad. * Escoger una metáfora del sistema. *Escoger una metáfora del sistema. * Usar tarjetas CRC (Class-Responsabilities-Usar tarjetas CRC (Class-Responsabilities-

Collaboration) para las sesiones de diseño.Collaboration) para las sesiones de diseño. Crear soluciones rápidas para reducir riesgos.Crear soluciones rápidas para reducir riesgos. No se agrega funcionalidad antes de tiempo.No se agrega funcionalidad antes de tiempo. Refactorizar cuando y donde sea posible. *Refactorizar cuando y donde sea posible. *

Page 20: Ciclos de Vida por Prototipos

Reglas y Prácticas de XPReglas y Prácticas de XP

PruebasPruebasTodo el código tiene pruebas de unidad. *Todo el código tiene pruebas de unidad. *Todo el código debe pasar todas las Todo el código debe pasar todas las

pruebas de unidad antes de ser liberado.pruebas de unidad antes de ser liberado.Cuando se encuentra una falla, se crean Cuando se encuentra una falla, se crean

pruebas.pruebas.Se ejecutan pruebas de aceptación Se ejecutan pruebas de aceptación

seguido y el resultado es publicado.seguido y el resultado es publicado.

Page 21: Ciclos de Vida por Prototipos
Page 22: Ciclos de Vida por Prototipos
Page 23: Ciclos de Vida por Prototipos
Page 24: Ciclos de Vida por Prototipos