PSP Literatura en Espanol
PSP Literatura en Espanol
PSP Literatura en Espanol
Objetivo General: Introducir al alumno a la Metodologa del PSP, as como conocer los conceptos acerca de mtricas en el desarrollo de Software.
ndice
I. Introduccin al Personal Software Process (PSP) II. Estructura del PSP
Antecedentes
Despus de la segunda guerra mundial, la estrategia de calidad en la mayora de las organizaciones industriales se basaba casi por completo en las pruebas. Las empresas establecieron departamentos especiales de la calidad para encontrar y arreglar problemas despus de la produccin de los productos. No fu sino hasta los aos 70 y los aos 80 que W. Edwards Deming y J.M. Juran convencieron a la industria estadounidense que se centrara en mejorar la forma en la que la gente haca sus trabajos y desarrollaban sus procesos. [ DEMING; 82 ], [ JURAN 88] En los siguientes aos, este enfoque a los procesos de trabajo, ha sido responsable de las mejoras importantes en la calidad de automviles, de la electrnica, o de casi cualquier otra clase de producto. La estrategia tradicional que haba de "prueba-y-arregla" ahora es reconocida como costosa, que desperdicia tiempo y que adems es ineficaz para el trabajo de la ingeniera y de la fabricacin.
Antecedentes
Aunque la mayora de las organizaciones industriales ahora han adoptado principios modernos de calidad, la comunidad del software ha continuado confiando en la prueba como el mtodo principal de la administracin de la calidad. Para el software, la primera medida principal en la direccin iniciada por Deming y Juran fu tomada por Michael Fagan cuando en 1976 l introdujo las inspecciones del software [ FAGAN; 86] Usando inspecciones, las organizaciones han mejorado substancialmente la calidad del software. Otra medida significativa en la mejora de calidad del software fu tomada con la introduccin del modelo de capacidad de madurez (CMM) en 1987. El enfoque principal de CMM estaba en el sistema que administraba la ayuda que se le proporcionaba a los ingenieros de desarrollo. CMM ha tenido un efecto positivo en el funcionamiento de las organizaciones del software [ HERBSLEB; 97] Otra medida significativa en la mejora de calidad del software fu tomada con la esencia del proceso personal del software (PSP) ya que PSP ampla el proceso de mejora a la gente que realiza el trabajo de desarrollo de software.
Antecedentes
PSP se concentra en las prcticas de trabajo de los ingenieros en una forma individual. El principio detrs de PSP es se, sirve para producir software de calidad, cada ingeniero debe trabajar en la necesidad de realizar trabajo de calidad.
PSP se dise para ayudar a profesionales del software para que utilicen constantemente prcticas sanas de ingeniera de software.
Asimismo les ensea a cmo planear y darle un seguimiento a su trabajo, a utilizar un proceso bien definido y medido, a establecer metas mesurables, y finalmente a la utilizacin del rastreo constante para alcanzar dichas metas. PSP les demuestra a los ingenieros a cmo manejar la calidad desde el principio del trabajo, a cmo analizar los resultados de cada trabajo, y a cmo utilizar los resultados para mejorar el proceso del proyecto siguiente. [SEI; 2000] .
Qu es PSP?
Un PSP es un proceso personal para desarrollar software.
pasos definidos formularios estndares
Un PSP es un marco de trabajo de medicin y anlisis que te ayuda a caracterizar tu proceso. Es tambin un procedimiento definido para ayudarte a mejorar tu rendimiento.
Introduccin
El PSP es un proceso diseado para uso individual, basado en una versin a escala de un proceso industrial. El principal objetivo del PSP es ayudar a los ingenieros software a hacer mejor su trabajo. EL PSP se ha diseado tambin para demostrar el valor del uso de un proceso definido y medido. Por ultimo, el PSP intenta ayudar a los ingenieros y a las organizaciones a que cumplan las demandas cada vez mas estrictas para el desarrollo de sistemas software de calidad
Introduccin
El PSP se aplica en tareas personales estructuradas:
Desarrollo de mdulos de programas. Definicin de requisitos o procesos. Realizacin de revisiones o pruebas. Escritura de documentacin, etc. El PSP se puede extender al desarrollo de sistemas software de gran tamao. Es un proceso de Nivel 5 para los individuos y es un prerrequisito para el TSP
Introduccin
PSP se introduce con siete pasos compatibles. Escribes uno o dos pequeos programas en cada paso. Recoges y analizas los datos de tu trabajo. Los usas y analizas para mejorar tu trabajo.
Estructura de PSP
Comenzando con los requerimientos, el primer paso en el proceso de PSP es la planificacin. Existe un script de planificacin que sirve de gua y un resumen del plan para registrar todos los datos del mismo. Mientras los desarrolladores van siguiendo el lineamiento de trabajo sugerido por los scripts, deben ir registrando los tiempos dedicados y los datos de defectos en los logs de tiempos y defectos. Al final de la tarea, durante la fase de postmortem (PM), deben resumir los datos de tiempo y defectos, medir el tamao del programa, e ingresar esos datos en el formulario de sumario del plan. Al finalizar, deben entregar el producto finalizado y el formulario de sumario del plan completado.
Estructura de PSP
Debido a que generalmente ciertos mtodos de PSP no son utilizados por los desarrolladores, los mtodos de PSP son presentados en una serie de siete versiones de procesos. Estas versiones son denominadas como PSP0 a PSP3. Cada versin tiene un mismo conjunto de logs, formularios, scripts, y standards. Los scripts de proceso definen los pasos de cada parte del proceso, los logs y formularios proveen templates para registrar y almacenar datos, y los standards guan a los desarrolladores a mientras hacen el trabajo. En otras palabras, PSP es un proceso que est diseado para ser utilizado.
Estructura de PSP
Est construido en un formato simple de utilizar con instrucciones simples y precisas. Si bien los scripts describen qu hacer, en realidad se parecen ms a checklists que a tutoriales. Estos no incluyen los materiales instructivos que seran necesarios para usuarios no entrenados. El propsito de los scripts es el de guiar a los desarrolladores en el uso consistente de los procesos, los cuales ellos conocen (mediante la asistencia a cursos de capacitacin en PSP o a travs de bibliografa introductoria en el uso de PSP).
Calidad Personal
Planificacin Personal
PSP 0 Proceso
Medicin Personal
PSP 1.1 Planeacin de tareas Planeacin de tiempos de actividades Estndar de tipos de defectos
PSP 0 Proceso actual Registro de tiempo Registro de defectos Estndar de tipos de defectos
PSP 0.1 Estndar de Codificacin Medicin de Tamao Propuesta de mejora del proceso
II.I.I. PSP0
El punto de partida de PSP
Calidad en el Desarrollo de Software
II.I.I. PSP0
El punto de partida de PSP
PSP0 es un proceso sencillo, definido y personal. Utiliza tus mtodos actuales de diseo y desarrollo. Recoge datos sobre tu trabajo:
tiempo gastado por fase defectos encontrados en compilacin y pruebas
II.I.I. PSP0
El punto de partida de PSP
El paso inicial en PSP consiste en establecer una base que incluya mediciones y un formato de reportes. Esto permite medir el progreso y define los cimientos para mejorar. Esencialmente, PSP0 es el proceso habitual con el que los desarrolladores escriben software, mejorado para proveer mediciones.
II.II. PSP1
Planeacin Personal
Calidad en el Desarrollo de Software
II.II. PSP1
PSP1 Planeacin personal PSP1 le agrega pasos de planeamiento a PSP0. El primer paso agrega estimaciones de tamao y recursos y un reporte de prueba. En PSP1.1 se introduce planeamiento de cronograma y seguimiento del proyecto. Los desarrolladores son enseados a:
II.II. PSP1
Entender la relacin entre el tamao de los programas que escriben y el tiempo que les toma desarrollarlos. Aprender a realizar compromisos que puedan cumplir. Preparar un plan ordenado para realizar su trabajo Establecer una base para realizar un seguimiento de su trabajo. Mientras que la importancia de estas tcnicas en proyectos grandes es comprendida, pocos desarrolladores las aplican a su trabajo personal. PSP demuestra el valor de estos mtodos en el nivel personal.
II.III. PSP2
Calidad Personal
Calidad en el Desarrollo de Software
II.III. PSP2
Un objetivo de PSP es ayudar a los desarrolladores a lidiar de manera realista y objetiva con los defectos que introducen. Los programadores por lo general se avergenzan de sus errores. El hecho de que la mayora de los errores sean tipogrficos o errores tontos hace que los desarrolladores sientan que pueden mejorar haciendo ms esfuerzo.
II.III. PSP2
El problema es que hacer ms esfuerzo por lo general hace que las cosas empeoren; las claves, como en otras actividades, son las habilidades inherentes y las capacidades. En PSP2 se enfoca en mejorar la habilidad del desarrollador para producir programas de calidad. La idea es hacer al trabajo de calidad ms natural y consistente. Mejoras significativas en la frecuencia de defectos de los desarrolladores no son posibles a menos que conozcan cuantos errores cometen y que comprendan sus causas y consecuencias.
II.III. PSP2
PSP2 agrega diseo personal y revisiones de cdigo a PSP1. Estas revisiones ayudan a encontrar defectos de manera temprana y a ver los beneficios que esto proporciona. Los desarrolladores analizan los defectos que encuentran en los primeros programas y usan estos datos para establecer checklists de revisin que estn hechos a medida de su experiencia de defectos personales.
II.III. PSP2
El proceso de diseo es contemplado en PSP2.1. El objetivo no es decirle a los desarrolladores como disear sino orientar el criterio para la finalizacin del diseo, es decir, cuando han terminado que es lo que deben haber obtenido. Se establece un criterio de completitud de diseo y se examinan varias tcnicas de verificacin y consistencia de diseo.
II.IV. PSP3
Proceso Personal Ciclico
Calidad en el Desarrollo de Software
II.IV. PSP3
Hasta este punto PSP se concentr en el proceso lineal para construccin de pequeos programas. PSP3 presenta mtodos para ser usados por individuos en la realizacin de programas de gran escala. De todas formas sigue enfocado en el individuo y no trata los problemas de comunicacin y coordinacin que son una parte importante del desarrollo de sistemas de gran escala.
II.IV. PSP3
Para escalar PSP2 a proyectos ms grandes la estrategia consiste en subdividir el proceso personal de desarrollo de grandes programas en elementos en la escala de PSP2. Estos programas son entonces diseados para ser desarrollados en pasos incrementales. La primera construccin consiste en un mdulo base o kernel que es ampliado en ciclos iterativos. En cada iteracin se utiliza un PSP2 completo, incluyendo diseo, codificacin, compilacin y pruebas.
. . .
. . .
Producto
II.IV. PSP3
El proceso cclico PSP3 puede ser un elemento efectivo en un proceso de desarrollo de gran escala solo si cada incremento sucesivo de software es de alta calidad. De esta manera los desarrolladores pueden concentrarse en la verificacin de la calidad del ltimo incremento sin preocuparse por defectos en ciclos anteriores. Si un incremento anterior tiene muchos defectos, la prueba ser ms compleja y los beneficios de escalar PSP se pierden. Esta es una razn para enfatizar revisiones de diseo y cdigo en los pasos anteriores de PSP.
Planeacin en PSP
Por qu hacer planes? Te permiten llegar a acuerdos que tu puedas cumplir Proporcionar las bases para acuerdo en tu trabajo Gua tu trabajo Te ayuda a seguir tu progreso Terminacin del proyecto
Planeacin PSP
La primera tarea consiste en definir los requerimientos, describiendo el trabajo a realizar en el mayor detalle posible. Como la etapa de planificacin es demasiado temprana como para hacer un diseo completo del producto, los desarrolladores realizan un diseo conceptual, mediante el cual se obtiene un primer acercamiento de cmo debe basarse el producto a ser construido en la etapa de desarrollo. La siguiente tarea consiste en la estimacin de tamao y de esfuerzo. La correlacin entre el tamao de un programa y tiempo de desarrollo es moderadamente buena para equipos de desarrollo; sin embargo, para un solo desarrollador, la correlacin es generalmente un poco mayor. Los desarrolladores realizan las estimaciones utilizando datos histricos personales de tamao y productividad. En PSP, las estimaciones se efectan mediante el mtodo PROBE (PROxy Based Estimating).
Planeacin PSP
Necesidad del usuario Define los requerimientos
Mtodo PROBE
Tareas
Items
Usuario
Estimar los recursos Base de Datos de Productividad
Producir Calendario
Recursos disponibles
Gestin
Entregar el producto
Desarrollar el producto
Analizar el proceso
Seguimiento de Reportes
Planeacin PSP
Una vez que los desarrolladores conocen el tiempo requerido para cada proceso, deben estimar el tiempo que van a dedicar al trabajo cada da de la semana, conformando entonces el calendario. Luego, durante la etapa de desarrollo del producto, los desarrolladores efectan el diseo detallado, la implementacin y las pruebas. Despus de completar el trabajo, los desarrolladores realizan un anlisis postmortem, en el cual se actualiza el sumario del plan con los datos reales de tiempos invertidos en cada etapa del desarrollo, defectos encontrados y removidos, etc, y se comparan los resultados obtenidos con lo planeado. Finalmente, los desarrolladores registran toda esta informacin en sus bases de datos histricas de tamao y productividad. Adems se examinan las Propuestas de Mejoras (PIP) para hacer ajustes en los procesos.
Planeacin PSP
La Medicin del trabajo personal es el primer paso por el que comienza el PSP. Es este primer paso los ingenieros deben aprender como aplicar los formularios del PSP y apuntar datos de su trabajo personal. Para hacer todo esto se mide el desarrollo del tiempo y de los defectos. Esto hace que los ingenieros recojan datos reales y prcticos y les proporciona una serie de marcar con las cuales ir midiendo el proceso. Para realizar un trabajo con PSP se debe empezar por el primer paso de medicin personal que incluye la gestin del tiempo y el siguiente rastreo del mismo.
Recoleccin de datos
En PSP, los desarrolladores utilizan informacin para monitorear su trabajo, la cual los ayuda a hacer mejores planes. Para esto, deben recolectar datos de los tiempos que dedican a cada fase del proceso, de los tamaos de los productos que producen, y de la calidad de esos productos. Las medidas bsicas de PSP son el tiempo que el ingeniero utiliza en cada fase del proceso, los defectos introducidos y encontrados en cada fase, y los tamaos de los productos desarrollados en lneas de cdigo (LOC). Estos datos se recopilan en cada fase del proceso y se resumen a la terminacin del proyecto. Todos estos datos se utilizan para proporcionar una familia de medidas de calidad de procesos que los ingenieros usan como gua en su trabajo.
Recoleccin de datos
Las principales medidas son: Tamao tiempo de estimacin de errores Coste de realizacin Defectos producidos y corregidos por hora Produccin del proceso Valoracin y calidad del coste de los fallos (COQ) Valoracin del rango de fallos (A/FR)
Desarrollo
Desarrollar el producto utilizando tus mtodos actuales.
Post-mortem
Completar el resumen del plan proyecto, con los tiempos gastados y defectos encontrados e inyectados en cada fase.
Compilacin Prueba
Registra los defectos en el Log de defectos y tiempos por fase en el Log de tiempos.
100.0
100
Defectos Removidos Planeacin Diseo Codificacin Compilacin Prueba Total Despus del Desarrollo
Actual 0 0 3 5 2
0
A la Fecha 0 0 3 5 2 10 0
A la Fecha % 0 0 30 50 20 10 100 0
Fecha
Indicar la fecha actual.
Inicio
Indicar el tiempo en minutos cuando empiezas una fase del proyecto.
Tiempo de interrupcin
Indicar el tiempo perdido por interrupciones desde el periodo de arranque a parada.
Comentarios
Descripcin de la interrupcin La tarea que estas haciendo Cualquier aspecto significativo que afecte a tu trabajo
Por ejemplo
Fecha 9/9 Inicio 9:00 12:40 2:45 6:25 10/9 11/9 11:06 9:00 1:15 4:18 12/9 6:42 Fin 9:50 1:18 3:53 7:45 12:19 9:50 2:35 5:11 9:04 3+8 25 10+6+12 6+5 10 Tiempo de Interrupcin Tiempo Delta 50 38 58 80 62 50 69 28 114 Actividad Planeacin Diseo Diseo Codificaci n Codificaci n Codificaci n Compilaci n Prueba Prueba Consulta de un libro Reunin con mi jefe Telfono, Bao, Telfono Bao, tom caf Telfono Comentarios
13/9
9:00
12:33
9:50
1:16
50
38
Prueba
Postmortem
Manejo de Interrupciones
Uno de los problemas que se presenta a la hora de gestionar el tiempo son las interrupciones. Es muy normal que nos interrumpan por llamadas de telfono, gente que viene a hablar con nosotros, o tenemos que parar porque necesitan nuestra ayuda. Cuando se producen estos casos se almacena este tiempo en el Registro de Almacenamiento de Tiempo anotndolo en la columna Tiempo de Interrupcin. Durante este periodo no solo se anota el tiempo de la interrupcin sino tambin porqu se ha producido en la columna de Comentarios.
Manejo de Interrupciones
Puesto que el tiempo de interrupcin no es un tiempo productivo para el trabajo, se debe llevar un registro de las interrupciones. El tiempo de las interrupciones suele ser variable, por lo tanto si no se mide, se debera aadir un nmero aleatorio para todos los datos de tiempo. Estos datos de tiempo pueden ser tiles para comprender mejor como es interrumpido el trabajo, ya que las interrupciones no solo gastan tiempo, sino que rompen la forma de trabajo y pueden provocar que se produzcan errores. Conocer como son las interrupciones podra ayudar a realizar un trabajo ms eficaz y de ms calidad.
Tamao
El tiempo en desarrollar un producto se encuentra altamente determinado por el tamao del mismo. En PSP, los desarrolladores primero estiman el tamao de los productos que planean desarrollar. Luego, al finalizar el producto, se mide el tamao real obtenido. Esta informacin permite a los desarrolladores realizar a futuro una estimacin de tamaos ms precisa. Sin embargo, para que esta informacin sea til, el tamao de las mediciones debe corresponderse con el tiempo de desarrollo del producto. En PSP, el tamao se mide en Lneas de Cdigo (LOC). Para realizar un seguimiento de la variacin del tamao de un programa durante el desarrollo, se deben considerar varias categoras de LOC.
Tamao
Estas son: Base (son los LOC iniciales del producto original) Agregadas (es el cdigo agregado a un programa base existente) Modificadas (es el cdigo base que es modificado en un programa existente) Eliminadas (es el cdigo base que es eliminado de un programa existente) Reutilizacin (es el cdigo tomado de una librera u utilizado, sin realizar ninguna modificacin, en un nuevo programa) Nueva Reutilizacin (esta medida cuenta los LOC que se agregan a una librera) Total (es tamao total del programa, independientemente del cdigo fuente).
Tamao
Luego, para medir el tamao total de un producto, el clculo es el siguiente: Total LOC = Base Eliminadas + Agregadas + Reutilizacin Las LOC modificadas y de nueva reutilizacin no son incluidas en el total; esto se debe a que las LOC modificadas pueden representarse por LOC eliminadas y agregadas, y las LOC de nuevo reutilizacin ya se encuentran contabilizadas en las LOC agregadas.
Remover CODIGO
Tiempo de Arreglo 1
Defecto Arreglado
Fecha Nmero Tipo Introducir Remover Tiempo de Arreglo 10/10/06 3 w0 CDIGO COMPILAR 1 Descripcin: Las comillas de la instruccin de impresin no existen
Fecha Nmero Tipo Introducir Remover Tiempo de Arreglo 10/10/06 4 10 CDIGO PRUEBA 39 Descripcin: Alinear y agregar instrucciones de impresin , mejorar la apariencia
Defecto Arreglado
Defecto Arreglado
Fecha
Indicar la fecha cuando encontraste y corregiste el defecto.
Nmero
Indicar un nmero nico para este defecto. Comienza cada proyecto con 1.
Introducido
Indicar la fase donde tu juzgas que el defecto fue inyectado o introducido.
Eliminado
Indicar la fase en la que encontraste y eliminaste el defecto.
Defecto Arreglado
Nota
Mediciones de Tiempo
Los desarrolladores utilizan el log de registro de tiempo para medir el tiempo que dedican a cada fase del proceso. En este log se anota la hora en que empezaron a trabajar en una tarea, la hora en que terminaron una tarea, y cualquier hora en que efectuaron una interrupcin y/o retomaron una tarea. Por ejemplo, una interrupcin podra ser una llamada telefnica, un descanso, o alguien interrumpiendo para hacer una pregunta. Tomando estos tiempos en forma precisa, los desarrolladores pueden conocer el esfuerzo que realmente se dedica a las tareas del proyecto. Debido a que los tiempos de interrupciones son esencialmente al azar, ignorar estos tiempos sera introducir un error de gran tamao en la informacin de tiempos que reducira la exactitud de las estimaciones.
Conclusiones
Conociendo los principios y las caractersticas de la metodologa de PSP, conformada por los procesos de planificacin, estimacin de tamao y esfuerzo, recoleccin de datos, manejo de calidad y especificaciones de diseo, se plantea la posibilidad de incorporar esta metodologa al contexto de una empresa pequea, o grupo de desarrollo de software pequeo analizando los factores operativos, econmicos y los riesgos a los que se expone Una vez implementada esta metodologa en el ambiente de trabajo, un siguiente paso consiste en enfocarse en la mejora de la eficiencia y de la dinmica de trabajo a nivel de equipos de desarrollo, mediante el mtodo conocido como TSP (Team Software Process).