Modelo PSP SEI Personal Software Process Gestión de Proyectos de Software - UNPA Prof. Lic. Osiris Sofia Contenidos de la Clase Nro. 1 Descripción de PSP Aplicación práctica de PSP 2 1 Personal Software Process PSP Tecnología desarrollada por Watts Humphrey que proporciona disciplina al proceso individual de cada desarrollador. Mejora la calidad del producto de software Incrementa la credibilidad de lo planificado en: • Tiempos • Costos Reduce el ciclo de vida de desarrollo Conjunto estructurado de formularios, guías y procedimientos Aplicación de CMM al proceso personal 3 SW-CMM y PSP CMM es desarrollado por el SEI CMM enfoca a toda la organización y a procesos a gran escala PSP es una aplicación de CMM PSP Es orientado al desarrollador CMM es el “¿ Qué ? PSP es el “Como” 4 2 CMM – Niveles 5 Enfoque de CMM 6 3 Objetivos de PSP Lograr una disciplina de mejora continua en el proceso de desarrollo Medir, estimar, planificar, seguir y controlar el proceso de desarrollo Mejorar la calidad del proceso de desarrollo En general, PSP provee calidad y productividad El tiempo ahorrado en el testeo en base a una mejor calidad ahorra entre un 20 a 40 % del desarrollo 7 ¿Qué es DISCIPLINA ? Es un ejercicio o actividad que desarrolla o mejora alguna habilidad. 8 4 Principios en que se basa PSP Planificar con datos personales El proceso de mejora es realizado a medida de cada desarrollador Solucionar los errores apenas se introducen Prevenir defectos es más eficiente que solucionarlos La forma correcta es la más económica y rápida forma de desarrollar 9 Principios en que se basa PSP (continuación) La calidad del software es definida por la calidad de los componentes La calidad de los componentes es definido por el conocimiento, disciplina y compromiso del desarrollador El desarrollador debe medir, seguir y analizar el proceso de software y comprometerse con la calidad de su trabajo. 10 5 Costo y beneficio de aplicar PSP Costos El tiempo requerido para conocerlo El costo emocional por mantener una disciplina El ego del cambio en las costumbres Beneficios La idea de que ganamos en talento y habilidad La estimulación por nuevas ideas Una estructura de trabajo de mejoramiento personal Tomar control del propio trabajo La sensación de logro Una base mejorada para el trabajo en grupo (TSP) La convicción de que es lo mejor que se puede hacer 11 Primera aproximación a PSP 7 pasos y 4 niveles de mejoramiento PSP0 + PSP0.1 Métrica y estandarización PSP1 + PSP1.1 Mejora la estimación y planificación PSP2 + PSP2.1 Incrementamos calidad PSP 3 Repetición para escalar a grandes desarrollos 12 6 Estructura evolutiva de PSP 13 Proyectos Organización N2 Repetible Administración de Requisitos Planificación del Software Seguimiento y Control del Software Gestión de Subcontratación del Software Garantía de Calidad del Software Gestión de Configuración del Software N3 Definido Enfoque del proceso de Software Definición del software Programa de formación Gestión de integración del software Ingeniería de productos software Integración entre módulos de software Revisión del software Calidad Mejora N4 Gestionado Gestión cuantitativa del proceso Gestión de calidad del software CMM N5 Optimizado Prevención de defectos Gestión de la tecnología Gestión de cambios en el proceso PSP 14 7 Esquema evolutivo de PSP 15 Resultados de alumnos en la Carnegie Mellon University Datos de un curso de 12 alumnos realizado en el año 1994 Se analiza Tiempo de compilación Defectos encontrados en las pruebas Productividad 16 8 Gráfico -Tiempo de compilación 17 Gráfico – Defectos encontrados 18 9 Gráfico - Productividad 19 Ingresando a la estructura de PSP 20 10 PSP 0 Establecer una base de información para medir el progreso y establecer las bases para la mejora del proceso de desarrollo. PSP 0 provee: • Estructura adecuada a pequeños desarrollos • Procedimiento para medir estos procesos • Una base para mejorar los procesos Las tareas • Definir el proceso de desarrollo actual PSP 0 • Registro del tiempo PSP 0 • Registro de defectos PSP 0 • Clasificación de defectos PSP 0 • Estandarización del proceso de desarrollo PSP 0.1 • Medición del código (LOC) PSP 0.1 • Propuesta de mejora del proceso PSP 0.1 21 PSP 0 -Definir el proceso de desarrollo actual Debemos identificar las fases que utilizamos para desarrollar software. Requerimientos Planificación Desarrollo Postmorten Comparación y Registro de datos 22 11 PSP 0 - Registro del tiempo El registro de tiempos es necesario para saber como distribuimos el tiempo en la fase de desarrollo. Nos servirá para armar nuestra base datos de tiempos que utilizaremos para mejorar futuras planificaciones 23 Formulario de Reg. De Tiempos 24 12 PSO – Registro de defectos Permite registrar cada defecto encontrado y corregido en el proceso de desarrollo. Nos servirá como información para elaborar nuestro propio proceso de depuración. El registro del tiempo del proceso de depuración de defectos nos permite conocer nuestra distribución de tiempos. 25 Formulario de Registro de Defectos 26 13 PSP 0.1 Clasificacion de defectos 27 PSP 0.1 – Estandarización del proceso de desarrollo Definir un estandar para el desarrollo de software. Encabezados Uso y reuso de código Identificación de variables Comentarios Procedimientos, funciones Espacios en blancos IF, Do While, Case, loop.... Etc. 28 14 PSP 0.1 – Medición del código Durante el proceso de planeamiento de software debemos definir el tamaño del código a desarrollar expresado en LOC Debemos definir un estandar para contar las LOC Lineas modificadas o eliminadas Comentarios o espacios en blanco Lineas con multiples sentencias Declaraciones Etiquetas Lineas con multiples sentencias 29 PSP 0.1 - Propuesta de mejora del proceso (PIP) Provee un registro de problemas encontrados y mejoras para el proceso Describe los problemas encontrados en cada proyecto Describe el impacto sobre el producto o proceso Describe la propuesta para la mejora del proceso Identificar el proceso a mejorar Donde es posible, relacionar la propuesta al problema Priorizar las propuestas de mejora Comentarios del proyecto Lecciones aprendidas Recordar condiciones de pobre desempeño 30 15 PSP 0- Resumen del Plan del Proyecto El Resumen del Plan de Proyecto mantiene los valores estimados y obtenidos del proyecto. LOC estimadas para el desarrollo LOC reales desarrolladas Estimacion de tiempo para cada fase Tiempo real de cada fase El número y % de defectos inyectados en cada fase El número y % de defectos removidos en cada fase. 31 Formulario Resumen de Plan del Proyecto- Project Plan Summary 32 16 Aplicación Práctica de PSP 1-Administrando el tiempo 2-Registrando como utilizamos el tiempo 3-Planificación de productos o períodos de tiempo 4-Planeamiento de producto 33 1-Administrando el tiempo La lógica que rige la administración del tiempo Como utilizo el tiempo esta semana será muy similar a la próxima. Para hacer un plan realista debemos conocer como utilizamos nuestro tiempo Para comprobar que nuestro plan es realista debemos documentar nuestra distribución del tiempo y ver que estamos haciendo Para hacer un plan seguro debemos identificar en donde fallamos y decidir como corregir esa situación • Cuando desarrollamos debemos registrar el tiempo consumido en cada fase de desarrollo Para administrar nuesto tiempo debemos elaborar el plan y cumplirlo 34 17 Beneficios de la Adm. de nuestro tiempo Al comienzo será dificil seguramente porque el plan es incorrecto Primer beneficio es que encontramos los errores y podemos mejorarlos Segundo beneficio es que comenzamos a hacer lo que planeamos. (disciplina) Aprender a hacer un plan es muy importante. Aprender a seguirlo es más importante aún. 35 2- Registrando como utilizamos el tiempo Identificar y crear las categorías más importantes Registrar el tiempo de esas categorías Utilizar una forma estandar Utilizar un formulario (notebook) 36 18 Ejemplo de Registración del Tiempo Alumno: Carlos Juncos Fecha 09-Sep 10-Sep Start Stop 09:00 09:50 12:40 01:18 02:45 03:53 06:25 07:45 11:06 12:19 Fecha: 9/9 Interrupcion 10 6+5 Delta Actividad Comentario C U Capitulo 1 y 2 X 2 Tarea 1, break, chat X 1 50 Clase Lectura 38 Prog. Tarea 1 58 Prog. Tarea 1 80 Lectura 62 Prog. 37 Manejando las interrupciones Las interrupciones no solo realizan un corte en nuestra tarea, lo más importante es que interfieren en nuestra concentración. Un beneficio muy importante de administrar el tiempo es poder controlar las interrupciones. 38 19 Resumen de Administración del tiempo Para administrar el tiempo hay que hacer un plan Para ello primero debemos conocer como utilizamos nuestro tiempo Comparar lo planeado con lo realizado para mejorar el plan Para registrar el tiempo identificar las actividades más importantes 39 3-Planificación de productos o períodos de tiempo Planificación de periodos de tiempo: es definir que vamos a hacer en los próximos días , semanas, meses, etc. Planificación de producto es distribuir el tiempo para hacer algo en particular, por ejemplo desarrollar un módulo de un sistema Nuestra vida esta regida por períodos de tiempo, dias, semanas, meses, años. Nuestro trabajo por el producto que generamos. Para poder realizar un plan exitoso de nuestro producto debemos planificar sobre nuestro tiempo. 40 20 Planificación de Periodos de Tiempo Para poder planificar nuestro tiempo debemos conocer nuestro patron de distribución de tiempos. Para ello sumarizamos y obtenemos tasas de promedio en base a las actividades semanales. Reg. Tiempos 1 Resumen Semanal Reg. Tiempos 2 Patron de tiempos 41 Ejemplo de Resumen de Actividad Semanal Fecha Tarea 23-Sep Clase Programa Examen Lectura Total Fecha D 15/9 L 0 50 M M 226 28 147 62 69 114 114 50 38 S Total 80 62 50 J V 96 88 134 150 341 134 Tiempos y tasas 134 146 0 Numero de semanas 771 1 Semanas anteriores Total 200 300 148 138 786 Promedio 200 300 148 138 786 Max 200 300 148 138 786 Min. 200 300 148 138 786 Semana actual Total 350 641 282 284 0 1557 Promedio 175 320,5 141 142 0 778,5 Max 200 341 148 146 0 835 Min. 150 300 134 142 0 726 42 21 4.-Planeamiento de producto El Plan de producto define las fechas de entrega y finalización de cada fase Nos ayuda a conocer el estado del trabajo Nos ayuda a evaluar el progreso del trabajo Un plan de producto para desarrollar software en pequeña escala contiene: El tamaño y las principales características del producto a desarrollar El tiempo estimado para hacer el trabajo Una planificación sobre el tiempo (Soft a mayor escala tendría: asignación de responsabilidades, especificaciones por cada proceso, condiciones de testeo y calidad, etc. 43 Formulario- Registro de tareas (Job Number Log) Fecha Tarea Fecha 1 2 3 4 5 6 7 8 09-Sep Descripcion: 09-Sep Descripcion: 11-Sep Descripcion: 11-Sep Descripcion: 12-Sep Descripcion: 13-Sep Descripcion: 16-Sep Descripcion: 17-Sep Descripcion: Proceso Estimado Actual En el tiempo Tiempo Unidad Tiempo Unidad Tasa Tiempo Unidad Prog. 100 1 158 1 158 158 1 Codificar prog. 1 Lectura 50 2 80 2 40 80 2 Leer capitulo 1 y 2 Prog. 158 1 69 1 69 227 2 Codificar prog. 2 Lectura 40 1 28 1 28 108 3 Leer capitulo 3 Prog. 114 1 114 1 114 341 3 Codificar prog. 3 Lectura 60 1 118 1 118 226 4 Leer capitulo 4 Prog. 114 1 93 1 93 434 4 Codificar prog. 4 Prog. 109 1 95 1 95 529 5 Codificar prog. 5 Tasa Max Min 158 158 158 40 40 40 113,50 158 69 36 40 28 113,7 158 69 56,5 118 28 108,5 158 69 158 69 105.8 44 22 Completando el Registro de Tareas Fecha 09-Sep 10-Sep Tarea Start Stop 09:00 09:50 12:40 01:18 02:45 03:53 06:25 07:45 11:06 12:19 Fecha Interrupcion 10 6+5 Delta Actividad Comentario C U Capitulo 1 y 2 X 2 Tarea 1, break, chat X 1 50 Clase Lectura 38 Prog. Tarea 1 58 Prog. Tarea 1 80 Lectura 62 Prog. Proceso Estimado Actual En el tiempo TiempoUnidad TiempoUnidad Tasa Tiempo Unidad Tasa Max Min 1 09-Sep Prog. 100 1 158 1 158 158 1 158 158 158 Descripcion: Codificar prog. 1 2 09-Sep Lectura 50 2 80 2 40 80 2 40 40 40 Descripcion: Leer capitulo 1 y 2 3 11-Sep Prog. 158 1 69 1 69 227 2 113,50 158 69 Descripcion: Codificar prog. 2 45 Acerca del Registro de Tareas (JNL) La importancia de este formulario es que nos permite acceder a gran cantidad de información histórica sobre la utilización de nuestros tiempos. Conocer nuestros tiempos nos permitirá realizar estimaciones seguras. Esta es la base de realizar un Plan de Producto realista. 46 23 Conclusiones sobre Plan de Producto Fecha Tarea Fecha 1 2 3 4 5 6 7 8 Proceso Estimado Actual En el tiempo Tiempo Unidad Tiempo Unidad Tasa Tiempo Unidad 09-Sep Prog. 100 1 158 1 158 158 1 Descripcion: Codificar prog. 1 09-Sep Lectura 50 2 80 2 40 80 2 Descripcion: Leer capitulo 1 y 2 11-Sep Prog. 158 1 69 1 69 227 2 Descripcion: Codificar prog. 2 11-Sep Lectura 40 1 28 1 28 108 3 Descripcion: Leer capitulo 3 12-Sep Prog. 114 1 114 1 114 341 3 Descripcion: Codificar prog. 3 13-Sep Lectura 60 1 118 1 118 226 4 Descripcion: Leer capitulo 4 16-Sep Prog. 114 1 93 1 93 434 4 Descripcion: Codificar prog. 4 17-Sep Prog. 109 1 95 1 95 529 5 Descripcion: Codificar prog. 5 Tasa Max Min 158 158 158 40 40 40 113,50 158 69 36 40 28 113,7 158 69 56,5 118 28 108,5 158 69 158 69 105.8 •Nos permite conocer el tiempo utilizado sobre cada tipo de tarea. •Nos permite estimar para la próxima semana con más exactitud. Por ejemplo podremos planificar codificar 2 programas y leer 4 capítulos nos llevaría 227 + 226 (minutos) . Aprox. 7,50 hs. 47 Práctico Nro. 1 – Elaborando un plan de producto El objetivo es elaborar un plan para realizar tareas tomando como base los tiempos de tareas anteriores. Se familiarizarán con el uso del formulario : Registro de Tiempos Resumen semanal Plan de Producto 48 24