Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
UNIDAD II  Métricas y Procesos PSP Personal Software Process LCC. Marcela García Alonso
Objetivo General: <ul><li>Introducir al alumno a la Metodología del PSP, así como conocer los conceptos acerca de métricas...
Índice <ul><li>II.I. Introducción al Personal Software Process (PSP) </li></ul><ul><li>II.II. Estructura del PSP </li></ul...
II.I. Introducción al Personal Software Process (PSP)
II.I. Introducción al Personal Software Process (PSP) <ul><li>Objetivo: </li></ul><ul><li>Conocer los antecedentes, princi...
Antecedentes <ul><li>Después de la segunda guerra mundial, la estrategia de calidad en la mayoría de las organizaciones in...
Antecedentes <ul><li>Aunque la mayoría de las organizaciones industriales ahora han adoptado principios modernos de calida...
Antecedentes <ul><li>PSP se concentra en las prácticas de trabajo de los ingenieros en una forma individual. El principio ...
¿ Cómo fue desarrollado PSP? <ul><li>Después de que Watts S. Humphrey condujera el desarrollo inicial de CMM para software...
¿ Cómo fue desarrollado PSP? <ul><li>Durante los siguientes tres años, él desarrolló un total de 62 programas y definió ce...
¿ Cómo fue desarrollado PSP? <ul><li>Casi al mismo tiempo, Jim Over y Neil Reizer del SEI y Robert Powels de la compañía d...
¿ Qué es PSP? <ul><li>Un PSP es un proceso personal desarrollar software. </li></ul><ul><ul><li>pasos definidos </li></ul>...
II.I.I.Principios del PSP <ul><li>La calidad de un sistema software está  condicionada por la calidad del peor de sus comp...
II.I.I.Principios del PSP <ul><li>Como todo profesional software deberías conocer tu propio rendimiento. </li></ul><ul><li...
II.I.I.Principios del PSP <ul><li>El diseño de PSP se basa en los siguientes principios de planeación y de calidad [HUMPHR...
II.I.I. Principios del PSP <ul><li>•  Cuesta menos encontrar y arreglar errores en la etapa inicial del proyecto que encon...
II.I.I. Principios del PSP <ul><li>Para hacer un trabajo de ingeniería de software de la manera correcta, los ingenieros d...
II.I.I. Principios del PSP <ul><li>Para producir constantemente productos de calidad, los ingenieros deben planear, medir ...
II.II. Estructura del PSP
II.II. Estructura del PSP <ul><li>Objetivo: </li></ul><ul><li>Conocer las métricas de PSP. </li></ul><ul><li>Identificar l...
Introducción <ul><li>El PSP es un proceso diseñado para uso individual, basado en una versión a escala de un proceso indus...
Introducción <ul><li>El PSP se aplica en tareas personales estructuradas: </li></ul><ul><ul><li>Desarrollo de módulos de p...
Introducción <ul><li>PSP se introduce con siete pasos compatibles. </li></ul><ul><li>Escribes uno o dos pequeños programas...
Estructura de PSP <ul><li>Comenzando con los requerimientos, el primer paso en el proceso de PSP es la planificación.  </l...
Flujo del Proceso
Estructura de PSP <ul><li>Debido a que generalmente ciertos métodos de PSP no son utilizados por los desarrolladores, los ...
Elementos del Proceso
Estructura de PSP <ul><li>Está construido en un formato simple de utilizar con instrucciones simples y precisas. Si bien l...
Evolución del PSP PSP 3 Desarrollo Cíclico PSP 2 Revisión del código Revisión del diseño PSP 1 Estimación del Tamaño Infor...
Visión General de PSP <ul><li>PSP0 - estableces una línea base del rendimiento mensurable. </li></ul><ul><li>PSP1 - haces ...
II.II.I. Los 7 Pasos de PSP PSP 0 Proceso actual Registro de tiempo Registro de defectos Estándar de tipos de defectos PSP...
II.II.I.I. PSP0  El punto de partida de PSP
II.II.I.I. PSP0  El punto de partida de PSP <ul><li>PSP0 es un proceso sencillo, definido y personal. </li></ul><ul><li>Ut...
II.II.I.I. PSP0  El punto de partida de PSP <ul><li>El paso inicial en PSP consiste en establecer una base que incluya med...
II.II.I.I. PSP 0.1 <ul><li>Se pasa a PSP0.1 agregando un estándar de código, mediciones de tamaño y  el denominado PIP (Pr...
II.II.II. PSP1  Planeación Personal
II.II.II. PSP1 <ul><li>PSP1  Planeación personal </li></ul><ul><li>PSP1 le agrega pasos de planeamiento a PSP0. El primer ...
II.II.II. PSP1 <ul><li>Entender la relación entre el tamaño de los programas que escriben y el tiempo que les toma desarro...
II.II.III. PSP2 Calidad Personal
II.II.III. PSP2 <ul><li>Un objetivo de PSP es ayudar a los desarrolladores a lidiar de manera realista y objetiva con los ...
II.II.III. PSP2 <ul><li>El problema es que hacer más esfuerzo por lo general hace que las cosas empeoren; las claves, como...
II.II.III. PSP2 <ul><li>PSP2 agrega diseño personal y revisiones de código a PSP1. Estas revisiones ayudan a encontrar def...
II.II.III. PSP2 <ul><li>El proceso de diseño es contemplado en PSP2.1. El objetivo no es decirle a los desarrolladores com...
II.II.IV. PSP3 Proceso Personal Ciclico
II.II.IV. PSP3 <ul><li>Hasta este punto PSP se concentró en el proceso lineal para construcción de pequeños programas. PSP...
II.II.IV. PSP3 <ul><li>Para escalar PSP2 a proyectos más grandes la estrategia consiste en subdividir el proceso personal ...
Proceso Personal Cíclico Especificaciones Requerimientos Y Planificación Diseño de Alto nivel Integración Pruebas del sist...
II.II.IV. PSP3 <ul><li>El proceso cíclico PSP3 puede ser un elemento efectivo en un proceso de desarrollo de gran escala s...
Planeación en PSP <ul><li>¿Por qué hacer planes? </li></ul><ul><li>Te permiten llegar a acuerdos que tu puedas cumplir </l...
Planeación PSP <ul><li>La primera tarea consiste en  definir los   requerimientos , describiendo el trabajo a realizar en ...
Planeación PSP Entregar el  producto Define los  requerimientos Producir diseño  Conceptual Estimar el tamaño  del product...
Planeación PSP <ul><li>Una vez que los desarrolladores conocen el tiempo requerido para cada proceso, deben estimar el tie...
Planeación PSP <ul><li>La Medición del trabajo personal es el primer paso por el que comienza el PSP. Es este primer paso ...
Recolección de datos <ul><li>En PSP, los desarrolladores utilizan información para monitorear su trabajo, la cual los ayud...
Recolección de datos <ul><li>Las principales medidas son: </li></ul><ul><li>Tamaño tiempo de estimación de errores </li></...
Elementos del Proceso <ul><li>Elementos </li></ul><ul><ul><li>un guión de proceso </li></ul></ul><ul><ul><li>un formulario...
Flujo del Proceso
Guión del proceso Número de Fase Propósito Guiarte en el desarrollo de programas a nivel de módulo Entradas Necesarias <ul...
Guión del proceso <ul><li>Planificación  </li></ul><ul><ul><li>Estimar tiempo de desarrollo. </li></ul></ul><ul><li>Desarr...
Guión del proceso <ul><li>Diseño  </li></ul><ul><ul><li>Diseñar el programa, usando tus métodos de diseño actuales. </li><...
Resumen del Plan <ul><li>Estudiante: _Juan Luís Guerra_________ Fecha: _09/10/06__ </li></ul><ul><li>Programa:_Raíz Cuadra...
Resumen del Plan <ul><li>Encabezado </li></ul><ul><ul><li>Nombre, fecha, programa, instructor, lenguaje. </li></ul></ul><u...
Resumen del Plan <ul><li>Tiempo </li></ul><ul><ul><li>A la fecha: Indica el tiempo total gastado en cada fase hasta hoy. P...
Resumen del Plan <ul><li>Defectos </li></ul><ul><ul><li>A la fecha: Indica el total de defectos inyectados y eliminados en...
Log Registro del Tiempo Estudiante: ____________________ Fecha: __________ Instructor:______________________ Programa #: _...
Log Registro del Tiempo <ul><li>Encabezado </li></ul><ul><ul><li>Indicar nombre, fecha, instructor y número de programa. <...
Log Registro del Tiempo <ul><li>Fin  </li></ul><ul><ul><li>Indicar el tiempo en minutos cuando tu paraste tu trabajo en un...
Log Registro del Tiempo <ul><li>Fase </li></ul><ul><ul><li>Anotar la fase en la que estas trabajando. </li></ul></ul><ul><...
Por ejemplo Fecha Inicio Fin Tiempo de Interrupción Tiempo Delta Actividad Comentarios 9/9 9:00 9:50 50 Planeación 12:40 1...
Manejo de Interrupciones <ul><li>Uno de los problemas que se presenta a la hora de gestionar el tiempo son las interrupcio...
Manejo de Interrupciones <ul><li>Ya que el tiempo de interrupción no es un tiempo productivo para el trabajo, se debe llev...
Tamaño <ul><li>El tiempo en desarrollar un producto se encuentra altamente determinado por el tamaño del mismo. En PSP, lo...
Tamaño <ul><li>Estas son:  </li></ul><ul><li>Base  (son los LOC iniciales del producto original) </li></ul><ul><li>Agregad...
Tamaño <ul><li>Luego, para medir el tamaño total de un producto, el cálculo es el siguiente: </li></ul><ul><li>Total LOC =...
Estándar tipo de Defectos <ul><li>El estándar de tipos de defectos proporciona un conjunto general de categorías de defect...
Estándar tipo de Defectos
Log Registro Defectos <ul><li>Nombre: _______________________________ Fecha: ___ </li></ul><ul><li>Instructor: ___________...
Log Registro Defectos <ul><li>Encabezado  </li></ul><ul><ul><li>Indicar el nombre, fecha, instructor, y numero de programa...
Log Registro Defectos <ul><li>Tipo </li></ul><ul><ul><li>Indicar el tipo de defecto a partir del estándar de tipos de defe...
Log Registro Defectos <ul><li>Tiempo de Arreglo </li></ul><ul><ul><li>Indicar el tiempo que tomaste para corregir el defec...
Log Registro Defectos <ul><li>Finalmente, la manera más eficaz de encontrar y arreglar defectos es repasando el código fue...
Guía Personal de Revisión de Código Propósito Guía para realizar una revisión de código efectiva # # # 3 Para Fechar Para ...
Guía Personal de Revisión de Código Propósito Guía para realizar una revisión de código efectiva # # # 3 Para Fechar Para ...
Mediciones de Tiempo <ul><li>Los desarrolladores utilizan el log de registro de tiempo para medir el tiempo que dedican a ...
Administración del Tiempo <ul><li>Para la llevar a cabo una buena gestión del tiempo se pueden tener en cuenta los siguien...
Seguimiento del Tiempo <ul><li>Una vez que sabemos gestionar el tiempo, es necesario almacenar todos estos datos de alguna...
II.III. Métricas del PSP
II.III. Métricas del PSP <ul><li>Objetivo:  </li></ul><ul><li>Aplicar las métricas de PSP.  </li></ul><ul><li>Definir y ex...
Métricas del PSP <ul><li>Con datos de tamaño, tiempo y defectos, existen muchas formas de medir, evaluar, y manejar la cal...
Resumen del registro de Métricas <ul><li>Nombre:  Fecha: 18/10/96 </li></ul><ul><li>Programa Programa # 13 </li></ul><ul><...
Resumen del registro de Métricas <ul><li>Tiempo en fase (min.) Plan Actual Para Fecha Para Fecha % </li></ul><ul><li>Plani...
Resumen del registro de Métricas <ul><li>Introducción de defectos Plan Actual Para Fecha  Para Fecha % Def/Hora </li></ul>...
Resumen del registro de Métricas <ul><li>Eliminación de defectos Plan Actual Para Fecha Para Fecha %  Def/Hora </li></ul><...
Comparación de PSP Característica PSP Inspecciones CMM ISO900 Propósito Gerenciamiento y mejora de la calidad Mejora de la...
Conclusiones <ul><li>Conociendo los principios y las características de la metodología de PSP, conformada por los procesos...
Team Software Process TSP
Team Software Process <ul><li>El resultado final es que incluso aunque un equipo de ingenieros esté entrenado en PSP, toda...
Perspectiva de PSP PSP SM Construye capacidades individuales y disciplina de trabajo TSP SM Construye productos de calidad...
Introducción TSP <ul><li>PSPSM: Construye capacidades individuales y disciplina de trabajo </li></ul><ul><li>TSPSM: Constr...
Objetivos TSP <ul><li>En resumen, se puede decir que TSP tiene 5 objetivos principales: </li></ul><ul><li>Construir equipo...
Objetivos TSP <ul><li>La principal ventaja de TSP es que muestra a los ingenieros como producir productos de calidad por m...
Evolución de TSUP Lanzamiento Fase Inicial.  Creación de los Grupos y Requerimientos Relanzamiento Segunda Fase. Diseño Re...
Equipos de Trabajo <ul><li>El Software Engineering Institute (SEI) ha desarrollado el TSP para ayudar  a  equipos de ingen...
Equipos de Trabajo <ul><li>El TSP tiene 5 fases principales. </li></ul><ul><li>Requerimientos  </li></ul><ul><li>Diseño </...
Generación de Equipos con PSP y TSP <ul><li>Se puede decir que esta sería una fase preliminar a la hora de arrancar un pro...
Generación de Equipos con PSP y TSP <ul><li>Los miembros del grupo deben planificar una fase de implementación personal ut...
Generación de Equipos con PSP y TSP <ul><li>Al final de cada ciclo y cada grupo debe realizar una memoria de su trabajo y ...
Relación del TSP con CMMI y PSP <ul><li>Mientras que el CMMI se enfoca en lo que tienen que hacer las organizaciones, no e...
Relación del TSP con CMMI y PSP Individual Organización Equipo PSP TSP CMMI
PSP y TSP respecto a CMMI <ul><li>CMMI, PSP y TSP proporcionan un marco tridimensional para la mejora de los procesos. </l...
PSP y TSP respecto a CMMI Nivel Enfoque del Proceso Clase de Área de Proceso PSP TSP 5 Optimizado Mejora Continua del Proc...
Componentes del TSP <ul><li>Los equipos de TSP estiman proyectos con una aproximación arriba-abajo, utilizando todo el tam...
Componentes del TSP <ul><li>Las puestas en marcha de TSP no concluyen satisfactoriamente hasta que el equipo y la direcció...
Roles dentro del TSP <ul><li>TSP se ha utilizado con grupos de software y también con grupos donde se mezcla el hardware, ...
Roles dentro del TSP <ul><li>Al final de cada puesta en marcha, el equipo revisa los planes y los riesgos del proyecto con...
Bibliografía <ul><li>HUMPHREY WATTS S., A DISCIPLINE FOR SOFTWARE ENGINEERING.  (USA : ADDISON-WESLEY, 1995) </li></ul>
Deming: 14 Puntos <ul><li>1. CONSTANCIA </li></ul><ul><li>El propósito es mejorar constantemente los productos y servicios...
Deming: 14 Puntos <ul><li>4. LAS COMPRAS </li></ul><ul><li>Hay que eliminar la práctica de comprar basándose exclusivament...
Deming: 14 Puntos <ul><li>7. LIDERAZGO </li></ul><ul><li>Las organizaciones deben adoptar e instituir el liderazgo, de man...
Deming: 14 Puntos <ul><li>10. SLOGANS </li></ul><ul><li>Hay que borrar los slogans o las frases preestablecidas, estos no ...
Deming: 14 Puntos <ul><li>13. CAPACITACIÓN </li></ul><ul><li>Se debe establecer un programa interno de educación y automej...
Deming: 7 pecados capitales <ul><li>1. Carencia de constancia en los propósitos </li></ul><ul><li>2. Enfatizar ganancias a...
Juran <ul><li>Juran tiene una talla comparable a la de Deming, pero a diferencia de éste, creó una empresa de gran tamaño ...
Juran <ul><li>B) LOS DIEZ pasos: </li></ul><ul><li>Crear conciencia de la necesidad de mejorar </li></ul><ul><li>Establece...
Juran <ul><ul><li>EL PRINCIPIO ... </li></ul></ul><ul><li>También llamado 80/20. Lo enunció por primera vez el economista ...
Juran <ul><ul><ul><li>LA TRILOGÍA ... </li></ul></ul></ul><ul><ul><li>La administración de una empresa debe tener tres pro...
Juran <ul><ul><ul><li>Control de calidad . Esto requiere los siguientes pasos: </li></ul></ul></ul><ul><ul><ul><ul><li>Eva...
Upcoming SlideShare
Loading in …5
×

Csw02 ver2

1,787 views

Published on

  • Be the first to comment

  • Be the first to like this

Csw02 ver2

  1. 1. UNIDAD II Métricas y Procesos PSP Personal Software Process LCC. Marcela García Alonso
  2. 2. Objetivo General: <ul><li>Introducir al alumno a la Metodología del PSP, así como conocer los conceptos acerca de métricas en el desarrollo de Software. </li></ul>
  3. 3. Índice <ul><li>II.I. Introducción al Personal Software Process (PSP) </li></ul><ul><li>II.II. Estructura del PSP </li></ul><ul><li>III.III. Métricas del PSP </li></ul>
  4. 4. II.I. Introducción al Personal Software Process (PSP)
  5. 5. II.I. Introducción al Personal Software Process (PSP) <ul><li>Objetivo: </li></ul><ul><li>Conocer los antecedentes, principios y pasos del PSP. </li></ul><ul><li>Definir y explicar los orígenes de PSP </li></ul>
  6. 6. Antecedentes <ul><li>Después de la segunda guerra mundial, la estrategia de calidad en la mayoría 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 después de la producción de los productos. </li></ul><ul><li>No fué sino hasta los años 70 y los años 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 hacía sus trabajos y desarrollaban sus procesos. [ DEMING; 82 ], [ JURAN 88] </li></ul><ul><li>En los siguientes años, este enfoque a los procesos de trabajo, ha sido responsable de las mejoras importantes en la calidad de automóviles, de la electrónica, o de casi cualquier otra clase de producto. </li></ul><ul><li>La estrategia tradicional que había de &quot;prueba-y-arregla&quot; ahora es reconocida como costosa, que desperdicia tiempo y que además es ineficaz para el trabajo de la ingeniería y de la fabricación. </li></ul>
  7. 7. Antecedentes <ul><li>Aunque la mayoría de las organizaciones industriales ahora han adoptado principios modernos de calidad, la comunidad del software ha continuado confiando en la prueba como el método principal de la administración de la calidad. Para el software, la primera medida principal en la dirección iniciada por Deming y Juran fué tomada por Michael Fagan cuando en 1976 él introdujo las inspecciones del software [ FAGAN; 86] </li></ul><ul><li>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 introducción del modelo de capacidad de madurez (CMM) en 1987. </li></ul><ul><li>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] </li></ul><ul><li>Otra medida significativa en la mejora de calidad del software fué tomada con la esencia del proceso personal del software (PSP) ya que PSP amplía el proceso de mejora a la gente que realiza el trabajo de desarrollo de software. </li></ul>
  8. 8. Antecedentes <ul><li>PSP se concentra en las prácticas de trabajo de los ingenieros en una forma individual. El principio detrás de PSP es ése, sirve para producir software de calidad, cada ingeniero debe trabajar en la necesidad de realizar trabajo de calidad. </li></ul><ul><li>PSP se diseñó para ayudar a profesionales del software para que utilicen constantemente prácticas sanas de ingeniería de software. </li></ul><ul><li>Asimismo les enseña a cómo planear y darle un seguimiento a su trabajo, a utilizar un proceso bien definido y medido, a establecer metas mesurables, y finalmente a la utilización del rastreo constante para alcanzar dichas metas. </li></ul><ul><li>PSP les demuestra a los ingenieros a cómo manejar la calidad desde el principio del trabajo, a cómo analizar los resultados de cada trabajo, y a cómo utilizar los resultados para mejorar el proceso del proyecto siguiente. [SEI; 2000] . </li></ul>
  9. 9. ¿ Cómo fue desarrollado PSP? <ul><li>Después de que Watts S. Humphrey condujera el desarrollo inicial de CMM para software, se decidió a aplicar los principios de CMM a los programas pequeños. </li></ul><ul><li>Posteriormente, mucha gente preguntaba cómo aplicar CMM a las organizaciones pequeñas o al trabajo de los equipos pequeños de software. </li></ul><ul><li>Mientras que los principios de CMM se aplicaron a tales grupos, cada vez se volvía mas necesaria la asesoría para saber que hacer. Fué entonces cuando Humphrey decidió personalmente utilizar los principios de CMM para desarrollar programas modulares para ver si dicho enfoque podría funcionar para convencer a los ingenieros de software a que adoptaran tales prácticas. </li></ul><ul><li>Fué entonces en el desarrollo de estos programas modulares, cuando Humphrey utilizó personalmente todas las prácticas de CMM para que él subiera poco a poco hasta llegar al nivel 5. Poco después él comenzó a trabajar en el proyecto tiempo completo en abril de 1989, el Instituto de la Ingeniería de Software (SEI) hizo a Humphrey un colaborador del SEI, permitiéndole trabajar tiempo completo en la investigación detallada de PSP. </li></ul>
  10. 10. ¿ Cómo fue desarrollado PSP? <ul><li>Durante los siguientes tres años, él desarrolló un total de 62 programas y definió cerca de 15 versiones de PSP. Utilizó los siguientes lenguajes de programación: PASCAL y C++ , para desarrollar cerca de 25.000 líneas de código que ayudarían a darle la forma final a PSP. [SEI; 2002] </li></ul><ul><li>De esta experiencia, él concluyó que los principios de la administración de procesos que desarrolló Deming y de Juran eran totalmente aplicables tanto al trabajo de los ingenieros de software de manera individual como a ingenieros enfocados al trabajo en equipo, el resultado? Proceso en equipo de software (TSP) </li></ul><ul><li>Humphrey después escribió un libro que les proporcionó a varios asociados el material necesario para enseñar cursos de PSP. En septiembre de 1993, Howie Dow enseñó el primer curso de PSP a cuatro estudiantes graduados en la Universidad de Massachusetts. </li></ul><ul><li>Humphrey también enseñó el curso de PSP durante el semestre del invierno de 1993-1994 en la universidad de Carnegie Mellon, al igual que Nazim Madhavji en la Universidad McGill y Soheil Khajanoori lo enseñó en la Universidad Aeronáutica de Embry. De acuerdo con las experiencias y los datos que proporcionaron estos cursos, Humphrey realizó la revisión del libro de PSP y publicó la versión final a finales de 1994. [HUMPHREY; 95 ] </li></ul>
  11. 11. ¿ Cómo fue desarrollado PSP? <ul><li>Casi al mismo tiempo, Jim Over y Neil Reizer del SEI y Robert Powels de la compañía de Servicios Informativos Avanzados (AIS por sus siglas en inglés) desarrollaron el primer curso para entrenar a los instructores a enseñar el curso de PSP en la industria. Humphrey junto con el SEI han continuado trabajando en el desarrollo de PSP y asímismo han aplicado los mismos principios al Proceso en Equipo de Software o TSP. </li></ul>
  12. 12. ¿ Qué es PSP? <ul><li>Un PSP es un proceso personal desarrollar software. </li></ul><ul><ul><li>pasos definidos </li></ul></ul><ul><ul><li>formularios </li></ul></ul><ul><ul><li>estándares </li></ul></ul><ul><li>Un PSP es un marco de trabajo de medición y análisis que te ayuda a caracterizar tu proceso. </li></ul><ul><li>Es también un procedimiento definido para ayudarte a mejorar tu rendimiento. </li></ul>
  13. 13. II.I.I.Principios del PSP <ul><li>La calidad de un sistema software está condicionada por la calidad del peor de sus componentes. </li></ul><ul><li>La calidad de un componente software está condicionada por el individuo que lo desarrolló. </li></ul><ul><li>Está condicionada por tu: </li></ul><ul><ul><li>conocimiento </li></ul></ul><ul><ul><li>disciplina </li></ul></ul><ul><ul><li>compromiso </li></ul></ul>
  14. 14. II.I.I.Principios del PSP <ul><li>Como todo profesional software deberías conocer tu propio rendimiento. </li></ul><ul><li>Deberías medir, seguir y analizar tu trabajo. </li></ul><ul><li>Deberías aprender de tus variaciones de tu rendimiento. </li></ul><ul><li>Deberías incorporar esas lecciones a tu manera personal de hacer. </li></ul>
  15. 15. II.I.I.Principios del PSP <ul><li>El diseño de PSP se basa en los siguientes principios de planeación y de calidad [HUMPHREY; 95] </li></ul><ul><li>• Cada ingeniero es esencialmente diferente; para ser más precisos, los ingenieros deben planear su trabajo y basar sus planes en sus propios datos personales. </li></ul><ul><li>• Para mejorar constantemente su funcionamiento, los ingenieros deben utilizar personalmente procesos bien definidos y medidos. </li></ul><ul><li>• Para desarrollar productos de calidad, los ingenieros deben sentirse personalmente comprometidos con la calidad de sus productos. </li></ul>
  16. 16. II.I.I. Principios del PSP <ul><li>• Cuesta menos encontrar y arreglar errores en la etapa inicial del proyecto que encontrarlos en las etapas subsecuentes. </li></ul><ul><li>• Es más eficiente prevenir defectos que encontrarlos y arreglarlos. </li></ul><ul><li>• La manera correcta de hacer las cosas es siempre la manera más rápida y más barata de hacer un trabajo. </li></ul>
  17. 17. II.I.I. Principios del PSP <ul><li>Para hacer un trabajo de ingeniería de software de la manera correcta, los ingenieros deben planear de la mejor manera su trabajo antes de comenzarlo y deben utilizar un proceso bien definido para realizar de la mejor manera la planeación del trabajo. </li></ul><ul><li>Para que los desarrolladores lleguen a entender su funcionamiento de manera personal, deben medir el tiempo que pasan en cada proceso, los defectos que inyectan y remueven de cada proyecto y finalmente medir los diferentes tamaños de los productos que llegan a producir. </li></ul>
  18. 18. II.I.I. Principios del PSP <ul><li>Para producir constantemente productos de calidad, los ingenieros deben planear, medir y rastrear constantemente la calidad del producto y deben centrarse en la calidad desde el principio de un trabajo. </li></ul><ul><li>Finalmente, deben analizar los resultados de cada trabajo y utilizar estos resultados para mejorar sus procesos personales. </li></ul>
  19. 19. II.II. Estructura del PSP
  20. 20. II.II. Estructura del PSP <ul><li>Objetivo: </li></ul><ul><li>Conocer las métricas de PSP. </li></ul><ul><li>Identificar los objetivos de cada nivel de PSP. </li></ul>
  21. 21. Introducción <ul><li>El PSP es un proceso diseñado para uso individual, basado en una versión a escala de un proceso industrial. </li></ul><ul><li>El principal objetivo del PSP es ayudar a los ingenieros software a hacer mejor su trabajo. </li></ul><ul><li>EL PSP se ha diseñado también para demostrar el valor del uso de un proceso definido y medido. </li></ul><ul><li>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 </li></ul>
  22. 22. Introducción <ul><li>El PSP se aplica en tareas personales estructuradas: </li></ul><ul><ul><li>Desarrollo de módulos de programas. </li></ul></ul><ul><ul><li>Definición de requisitos o procesos. </li></ul></ul><ul><ul><li>Realización de revisiones o pruebas. </li></ul></ul><ul><ul><li>Escritura de documentación, etc. </li></ul></ul><ul><ul><li>El PSP se puede extender al desarrollo de sistemas software de gran tamaño. </li></ul></ul><ul><ul><li>Es un proceso de Nivel 5 para los individuos y es un prerrequisito para el TSP </li></ul></ul>
  23. 23. Introducción <ul><li>PSP se introduce con siete pasos compatibles. </li></ul><ul><li>Escribes uno o dos pequeños programas en cada paso. </li></ul><ul><li>Recoges y analizas los datos de tu trabajo. </li></ul><ul><li>Los usas y analizas para mejorar tu trabajo. </li></ul>
  24. 24. Estructura de PSP <ul><li>Comenzando con los requerimientos, el primer paso en el proceso de PSP es la planificación. </li></ul><ul><li>Existe un script de planificación que sirve de guía 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. </li></ul><ul><li>Al final de la tarea, durante la fase de postmortem (PM), deben resumir los datos de tiempo y defectos, medir el tamaño 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. </li></ul>
  25. 25. Flujo del Proceso
  26. 26. Estructura de PSP <ul><li>Debido a que generalmente ciertos métodos de PSP no son utilizados por los desarrolladores, los métodos de PSP son presentados en una serie de siete versiones de procesos. </li></ul><ul><li>Estas versiones son denominadas como PSP0 a PSP3. Cada versión tiene un mismo conjunto de logs , formularios, scripts , y standards. </li></ul><ul><li>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 guían a los desarrolladores a mientras hacen el trabajo. </li></ul><ul><li>En otras palabras, PSP es un proceso que está diseñado para ser utilizado. </li></ul>
  27. 27. Elementos del Proceso
  28. 28. Estructura de PSP <ul><li>Está construido en un formato simple de utilizar con instrucciones simples y precisas. Si bien los scripts describen qué hacer, en realidad se parecen más a checklists que a tutoriales. </li></ul><ul><li>Estos no incluyen los materiales instructivos que serían necesarios para usuarios no entrenados. El propósito 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 capacitación en PSP o a través de bibliografía introductoria en el uso de PSP). </li></ul>
  29. 29. Evolución del PSP PSP 3 Desarrollo Cíclico PSP 2 Revisión del código Revisión del diseño PSP 1 Estimación del Tamaño Informe de pruebas PSP 0 Proceso Medición Personal Planificación Personal Calidad Personal Proceso Personal Cíclico
  30. 30. Visión General de PSP <ul><li>PSP0 - estableces una línea base del rendimiento mensurable. </li></ul><ul><li>PSP1 - haces planes de tamaño, recursos y calendario. </li></ul><ul><li>PSP2 - Practicas gestión de defectos y rendimiento. </li></ul><ul><li>PSP3 - Amplias los métodos del PSP a proyecto mayores. </li></ul>
  31. 31. II.II.I. Los 7 Pasos de PSP PSP 0 Proceso actual Registro de tiempo Registro de defectos Estándar de tipos de defectos PSP 0.1 Estándar de Codificación Medición de Tamaño Propuesta de mejora del proceso PSP 1 Estimación de tamaño Reporte de pruebas PSP 1.1 Planeación de tareas Planeación de tiempos de actividades Estándar de tipos de defectos PSP 2 Revisión de Código Revisión de Diseño PSP 2.1 Formatos de Diseño PSP 3 Desarrollo Cíclico Proceso de Medición Personal Proceso de Planeación Personal Administración de Calidad Personal Proceso Personal Cíclico
  32. 32. II.II.I.I. PSP0 El punto de partida de PSP
  33. 33. II.II.I.I. PSP0 El punto de partida de PSP <ul><li>PSP0 es un proceso sencillo, definido y personal. </li></ul><ul><li>Utiliza tus métodos actuales de diseño y desarrollo. </li></ul><ul><li>Recoge datos sobre tu trabajo: </li></ul><ul><ul><li>tiempo gastado por fase </li></ul></ul><ul><ul><li>defectos encontrados en compilación y pruebas </li></ul></ul><ul><li>Proporciona un informe resumen. </li></ul>
  34. 34. II.II.I.I. PSP0 El punto de partida de PSP <ul><li>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. </li></ul>
  35. 35. II.II.I.I. PSP 0.1 <ul><li>Se pasa a PSP0.1 agregando un estándar de código, mediciones de tamaño y el denominado PIP (Process Improvement Proposal). </li></ul><ul><li>El PIP provee una manera estructurada de registrar problemas, experiencias y sugerencias para mejorar. </li></ul><ul><li>PSP0.1 también mejora las mediciones para contar separadamente métodos y procedimientos. </li></ul>
  36. 36. II.II.II. PSP1 Planeación Personal
  37. 37. II.II.II. PSP1 <ul><li>PSP1 Planeación personal </li></ul><ul><li>PSP1 le agrega pasos de planeamiento a PSP0. El primer paso agrega estimaciones de tamaño y recursos y un reporte de prueba. </li></ul><ul><li>En PSP1.1 se introduce planeamiento de cronograma y seguimiento del proyecto. Los desarrolladores son enseñados a: </li></ul>
  38. 38. II.II.II. PSP1 <ul><li>Entender la relación entre el tamaño de los programas que escriben y el tiempo que les toma desarrollarlos. </li></ul><ul><li>Aprender a realizar compromisos que puedan cumplir. </li></ul><ul><li>Preparar un plan ordenado para realizar su trabajo </li></ul><ul><li>Establecer una base para realizar un seguimiento de su trabajo. </li></ul><ul><li>Mientras que la importancia de estas técnicas en proyectos grandes es comprendida, pocos desarrolladores las aplican a su trabajo personal. PSP demuestra el valor de estos métodos en el nivel personal. </li></ul>
  39. 39. II.II.III. PSP2 Calidad Personal
  40. 40. II.II.III. PSP2 <ul><li>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 avergüenzan de sus errores. El hecho de que la mayoría de los errores sean tipográficos o errores tontos hace que los desarrolladores sientan que pueden mejorar haciendo más esfuerzo. </li></ul>
  41. 41. II.II.III. PSP2 <ul><li>El problema es que hacer más esfuerzo por lo general hace que las cosas empeoren; las claves, como en otras actividades, son las habilidades inherentes y las capacidades. </li></ul><ul><li>En PSP2 se enfoca en mejorar la habilidad del desarrollador para producir programas de calidad. </li></ul><ul><li>La idea es hacer al trabajo de calidad más 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. </li></ul>
  42. 42. II.II.III. PSP2 <ul><li>PSP2 agrega diseño personal y revisiones de código 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 revisión que estén hechos a medida de su experiencia de defectos personales. </li></ul>
  43. 43. II.II.III. PSP2 <ul><li>El proceso de diseño es contemplado en PSP2.1. El objetivo no es decirle a los desarrolladores como diseñar sino orientar el criterio para la finalización del diseño, es decir, cuando han terminado que es lo que deben haber obtenido. Se establece un criterio de completitud de diseño y se examinan varias técnicas de verificación y consistencia de diseño. </li></ul>
  44. 44. II.II.IV. PSP3 Proceso Personal Ciclico
  45. 45. II.II.IV. PSP3 <ul><li>Hasta este punto PSP se concentró en el proceso lineal para construcción de pequeños programas. PSP3 presenta métodos para ser usados por individuos en la realización de programas de gran escala. De todas formas sigue enfocado en el individuo y no trata los problemas de comunicación y coordinación que son una parte importante del desarrollo de sistemas de gran escala. </li></ul>
  46. 46. II.II.IV. PSP3 <ul><li>Para escalar PSP2 a proyectos más 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 diseñados para ser desarrollados en pasos incrementales. La primera construcción consiste en un módulo base o kernel que es ampliado en ciclos iterativos. En cada iteración se utiliza un PSP2 completo, incluyendo diseño, codificación, compilación y pruebas. </li></ul>
  47. 47. Proceso Personal Cíclico Especificaciones Requerimientos Y Planificación Diseño de Alto nivel Integración Pruebas del sistema Uso Postmortem Repaso al Diseño De Alto nivel Desarrollo Cíclico Ciclo específico Diseño detallado Y Repaso del diseño Pruebas Valorar de nuevo Y Reciclar Desarrollo de las pruebas Y repaso Implementación Y Repaso del código Compilación Producto . . . . . .
  48. 48. II.II.IV. PSP3 <ul><li>El proceso cíclico 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. </li></ul><ul><li>De esta manera los desarrolladores pueden concentrarse en la verificación de la calidad del último incremento sin preocuparse por defectos en ciclos anteriores. </li></ul><ul><li>Si un incremento anterior tiene muchos defectos, la prueba será más compleja y los beneficios de escalar PSP se pierden. Esta es una razón para enfatizar revisiones de diseño y código en los pasos anteriores de PSP. </li></ul>
  49. 49. Planeación en PSP <ul><li>¿Por qué hacer planes? </li></ul><ul><li>Te permiten llegar a acuerdos que tu puedas cumplir </li></ul><ul><li>Proporcionar las bases para acuerdo en tu trabajo </li></ul><ul><li>Guía tu trabajo </li></ul><ul><li>Te ayuda a seguir tu progreso </li></ul><ul><li>Terminación del proyecto </li></ul>
  50. 50. Planeación PSP <ul><li>La primera tarea consiste en definir los requerimientos , describiendo el trabajo a realizar en el mayor detalle posible. </li></ul><ul><li>Como la etapa de planificación es demasiado temprana como para hacer un diseño completo del producto, los desarrolladores realizan un diseño conceptual , mediante el cual se obtiene un primer acercamiento de cómo debe basarse el producto a ser construido en la etapa de desarrollo. </li></ul><ul><li>La siguiente tarea consiste en la estimación de tamaño y de esfuerzo . </li></ul><ul><li>La correlación entre el tamaño de un programa y tiempo de desarrollo es moderadamente buena para equipos de desarrollo; sin embargo, para un solo desarrollador, la correlación es generalmente un poco mayor. Los desarrolladores realizan las estimaciones utilizando datos históricos personales de tamaño y productividad. En PSP, las estimaciones se efectúan mediante el método PROBE (PROxy Based Estimating). </li></ul>
  51. 51. Planeación PSP Entregar el producto Define los requerimientos Producir diseño Conceptual Estimar el tamaño del producto Estimar los recursos Base de Datos de Tamaño Base de Datos de Productividad Recursos disponibles Tamaño, Recursos, Datos, Plazos Producir Calendario Usuario Necesidad del usuario Desarrollar el producto Analizar el proceso Seguimiento de Reportes Gestión Método PROBE Tareas Items
  52. 52. Planeación PSP <ul><li>Una vez que los desarrolladores conocen el tiempo requerido para cada proceso, deben estimar el tiempo que van a dedicar al trabajo cada día de la semana, conformando entonces el calendario . </li></ul><ul><li>Luego, durante la etapa de desarrollo del producto , los desarrolladores efectúan el diseño detallado, la implementación y las pruebas. </li></ul><ul><li>Después de completar el trabajo, los desarrolladores realizan un análisis 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. </li></ul><ul><li>Finalmente, los desarrolladores registran toda esta información en sus bases de datos históricas de tamaño y productividad. Además se examinan las Propuestas de Mejoras (PIP) para hacer ajustes en los procesos. </li></ul>
  53. 53. Planeación PSP <ul><li>La Medición 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 prácticos y les proporciona una serie de marcar con las cuales ir midiendo el proceso. </li></ul><ul><li>Para realizar un trabajo con PSP se debe empezar por el primer paso de medición personal que incluye la gestión del tiempo y el siguiente rastreo del mismo. </li></ul>
  54. 54. Recolección de datos <ul><li>En PSP, los desarrolladores utilizan información 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 tamaños de los productos que producen, y de la calidad de esos productos. </li></ul><ul><li>Las medidas básicas de PSP son el tiempo que el ingeniero utiliza en cada fase del proceso, los defectos introducidos y encontrados en cada fase, y los tamaños de los productos desarrollados en líneas de código (LOC). </li></ul><ul><li>Estos datos se recopilan en cada fase del proceso y se resumen a la terminación del proyecto. Todos estos datos se utilizan para proporcionar una familia de medidas de calidad de procesos que los ingenieros usan como guía en su trabajo. </li></ul>
  55. 55. Recolección de datos <ul><li>Las principales medidas son: </li></ul><ul><li>Tamaño tiempo de estimación de errores </li></ul><ul><li>Coste de realización </li></ul><ul><li>Defectos producidos y corregidos por hora </li></ul><ul><li>Producción del proceso </li></ul><ul><li>Valoración y calidad del coste de los fallos (COQ) </li></ul><ul><li>Valoración del rango de fallos (A/FR) </li></ul>
  56. 56. Elementos del Proceso <ul><li>Elementos </li></ul><ul><ul><li>un guión de proceso </li></ul></ul><ul><ul><li>un formulario resumen de plan proyecto </li></ul></ul><ul><ul><li>un registro tiempo </li></ul></ul><ul><ul><li>un registro de defectos </li></ul></ul><ul><ul><li>un estándar de tipos defecto </li></ul></ul>
  57. 57. Flujo del Proceso
  58. 58. Guión del proceso Número de Fase Propósito Guiarte en el desarrollo de programas a nivel de módulo Entradas Necesarias <ul><li>* Descripción del problema Formulario de Resumen del plan del Proyecto PSPO </li></ul><ul><li>Tablas de Registro de Tiempos y Defectos </li></ul><ul><li>Cronometro (opcional) </li></ul>1 Planificación <ul><li>Producir u obtener los requisitos </li></ul><ul><li>Estimar las LOC necesarias </li></ul><ul><li>Estimar el tiempo de desarrollo necesario </li></ul><ul><li>Indicar los datos del plan en el Resumen del Plan de Proyecto </li></ul><ul><li>Completar el Log de Registro de Tiempos </li></ul>2 Desarrollo <ul><li>Diseñar el programa </li></ul><ul><li>Implementar el diseño </li></ul><ul><li>Compilar el programa y corregir todos los defectos encontrados </li></ul><ul><li>Completar la Tabla de Registro de Tiempos </li></ul>3 Post-mortem * Completar el Resumen del plan del Proyecto con los datos actuales de tiempo, defectos y tamaño Criterios de salida Un programa probado Un resumen del Plan de Proyectos con los datos estimados y actuales Las tablas de Registro de Tiempos y Defectos Rellenos
  59. 59. Guión del proceso <ul><li>Planificación </li></ul><ul><ul><li>Estimar tiempo de desarrollo. </li></ul></ul><ul><li>Desarrollo </li></ul><ul><ul><li>Desarrollar el producto utilizando tus métodos actuales. </li></ul></ul><ul><li>Post-mortem </li></ul><ul><ul><li>Completar el resumen del plan proyecto, con los tiempos gastados y defectos encontrados e inyectados en cada fase. </li></ul></ul>
  60. 60. Guión del proceso <ul><li>Diseño </li></ul><ul><ul><li>Diseñar el programa, usando tus métodos de diseño actuales. </li></ul></ul><ul><li>Codificación </li></ul><ul><ul><li>Implementa el programa. </li></ul></ul><ul><li>Compilación </li></ul><ul><ul><li>Compila hasta que este libre defectos. </li></ul></ul><ul><li>Prueba </li></ul><ul><ul><li>Prueba el programa y corrige todos los defectos. </li></ul></ul><ul><li>Registra los defectos en el Log de defectos y tiempos por fase en el Log de tiempos. </li></ul>
  61. 61. Resumen del Plan <ul><li>Estudiante: _Juan Luís Guerra_________ Fecha: _09/10/06__ </li></ul><ul><li>Programa:_Raíz Cuadrada_____________ Programa #: _1A </li></ul><ul><li>Instructor: _XX_______________________ Lenguaje: ___C____ </li></ul><ul><li>Tamaño del programa (LOC) Plan Actual </li></ul><ul><li>Total (Nuevas&Modificadas) 50 33 </li></ul><ul><li>Tiempo en Fase (minutos) Plan Actual A la Fecha A la Fecha% </li></ul><ul><li>Planeación 2 2 1.6 </li></ul><ul><li>Diseño 0 0 0 </li></ul><ul><li>Codificación 53 53 44.2 </li></ul><ul><li>Compilación 20 20 16.7 </li></ul><ul><li>Prueba 25 25 20.8 </li></ul><ul><li>Postmortem 20 20 16.7 </li></ul><ul><li>Total 240 120 120 100.0 </li></ul><ul><li>Defectos Introducidos Actual A la Fecha A la Fecha% </li></ul><ul><li>Planeación 0 0 0 </li></ul><ul><li>Diseño 0 0 0 </li></ul><ul><li>Codificación 10 10 100 </li></ul><ul><li>Compilación 0 0 0 </li></ul><ul><li>Prueba 0 0 0 </li></ul><ul><li>Total 10 10 100 </li></ul><ul><li>Defectos Removidos Actual A la Fecha A la Fecha % </li></ul><ul><li>Planeación 0 0 0 </li></ul><ul><li>Diseño 0 0 0 </li></ul><ul><li>Codificación 3 3 30 </li></ul><ul><li>Compilación 5 5 50 </li></ul><ul><li>Prueba 2 2 20 </li></ul><ul><li>Total 10 10 100 </li></ul><ul><li>Después del Desarrollo 0 0 0 </li></ul>
  62. 62. Resumen del Plan <ul><li>Encabezado </li></ul><ul><ul><li>Nombre, fecha, programa, instructor, lenguaje. </li></ul></ul><ul><li>Tamaño del Programa </li></ul><ul><ul><li>Plan :Indica tu mejor estimación del tiempo total que tendrá el desarrollo. </li></ul></ul><ul><ul><li>Actual :Indica el tiempo actual en minutos gastado en cada fase. </li></ul></ul>
  63. 63. Resumen del Plan <ul><li>Tiempo </li></ul><ul><ul><li>A la fecha: Indica el tiempo total gastado en cada fase hasta hoy. Para programa 1A, es el tiempo gastado en el programa 1A. </li></ul></ul><ul><ul><li>A la fecha % :Indica el porcentaje del total tiempo hasta hoy que se gasto en cada fase. </li></ul></ul><ul><li>Defectos introducidos y removidos: </li></ul><ul><ul><li>Indicar el número actual de defectos inyectados y eliminados en cada fase. </li></ul></ul>
  64. 64. Resumen del Plan <ul><li>Defectos </li></ul><ul><ul><li>A la fecha: Indica el total de defectos inyectados y eliminados en cada fase hasta hoy. Para el programa 1A, son los defectos inyectados y eliminados en el programa 1A. </li></ul></ul><ul><ul><li>A la fecha % :Indicar el porcentaje sobre el total defectos inyectados y eliminados hasta hoy en cada fase. </li></ul></ul>
  65. 65. Log Registro del Tiempo Estudiante: ____________________ Fecha: __________ Instructor:______________________ Programa #: ______ Fecha Inicio Fin Tiempo de Interrupción Tiempo Delta Fase Comentarios
  66. 66. Log Registro del Tiempo <ul><li>Encabezado </li></ul><ul><ul><li>Indicar nombre, fecha, instructor y número de programa. </li></ul></ul><ul><li>Fecha </li></ul><ul><ul><li>Indicar la fecha actual. </li></ul></ul><ul><li>Inicio </li></ul><ul><ul><li>Indicar el tiempo en minutos cuando empiezas una fase del proyecto. </li></ul></ul>
  67. 67. Log Registro del Tiempo <ul><li>Fin </li></ul><ul><ul><li>Indicar el tiempo en minutos cuando tu paraste tu trabajo en una fase del proyecto, aun cuando tu no has terminado esa fase. </li></ul></ul><ul><li>Tiempo de interrupción </li></ul><ul><ul><li>Indicar el tiempo perdido por interrupciones desde el periodo de arranque a parada. </li></ul></ul><ul><li>Tiempo Delta time </li></ul><ul><ul><li>Indicar el tiempo transcurrido desde el inicio al tiempo de parada descontado el tiempo de interrupción. </li></ul></ul>
  68. 68. Log Registro del Tiempo <ul><li>Fase </li></ul><ul><ul><li>Anotar la fase en la que estas trabajando. </li></ul></ul><ul><ul><li>Use el nombre de cada fase. </li></ul></ul><ul><li>Comentarios </li></ul><ul><ul><li>Descripción de la interrupción </li></ul></ul><ul><ul><li>La tarea que estas haciendo </li></ul></ul><ul><ul><li>Cualquier aspecto significativo que afecte a tu trabajo </li></ul></ul>
  69. 69. Por ejemplo Fecha Inicio Fin Tiempo de Interrupción Tiempo Delta Actividad Comentarios 9/9 9:00 9:50 50 Planeación 12:40 1:18 38 Diseño 2:45 3:53 10 58 Diseño Teléfono 6:25 7:45 80 Codificación 10/9 11:06 12:19 6+5 62 Codificación Baño, tomé café 11/9 9:00 9:50 50 Codificación 1:15 2:35 3+8 69 Compilación Consulta de un libro 4:18 5:11 25 28 Prueba Reunión con mi jefe 12/9 6:42 9:04 10+6+12 114 Prueba Teléfono, Baño, Teléfono 13/9 9:00 9:50 50 Prueba 12:33 1:16 38 Postmortem
  70. 70. Manejo de Interrupciones <ul><li>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 teléfono, gente que viene a hablar con nosotros, o tenemos que parar porque necesitan nuestra ayuda. </li></ul><ul><li>Cuando se producen estos casos se almacena este tiempo en el Registro de Almacenamiento de Tiempo anotándolo en la columna Tiempo de Interrupción . Durante este periodo no solo se anota el tiempo de la interrupción sino también porqué se ha producido en la columna de Comentarios. </li></ul>
  71. 71. Manejo de Interrupciones <ul><li>Ya que el tiempo de interrupción 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 debería añadir un número aleatorio para todos los datos de tiempo. </li></ul><ul><li>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 podría ayudar a realizar un trabajo más eficaz y de más calidad. </li></ul>
  72. 72. Tamaño <ul><li>El tiempo en desarrollar un producto se encuentra altamente determinado por el tamaño del mismo. En PSP, los desarrolladores primero estiman el tamaño de los productos que planean desarrollar. Luego, al finalizar el producto, se mide el tamaño real obtenido. </li></ul><ul><li>Esta información permite a los desarrolladores realizar a futuro una estimación de tamaños más precisa. Sin embargo, para que esta información sea útil, el tamaño de las mediciones debe corresponderse con el tiempo de desarrollo del producto. En PSP, el tamaño se mide en Líneas de Código (LOC). </li></ul><ul><li>Para realizar un seguimiento de la variación del tamaño de un programa durante el desarrollo, se deben considerar varias categorías de LOC. </li></ul>
  73. 73. Tamaño <ul><li>Estas son: </li></ul><ul><li>Base (son los LOC iniciales del producto original) </li></ul><ul><li>Agregadas (es el código agregado a un programa base existente) </li></ul><ul><li>Modificadas (es el código base que es modificado en un programa existente) </li></ul><ul><li>Eliminadas (es el código base que es eliminado de un programa existente) </li></ul><ul><li>Reutilización (es el código tomado de una librería u utilizado, sin realizar ninguna modificación, en un nuevo programa) </li></ul><ul><li>Nueva Reutilización (esta medida cuenta los LOC que se agregan a una librería) </li></ul><ul><li>Total (es tamaño total del programa, independientemente del código fuente). </li></ul>
  74. 74. Tamaño <ul><li>Luego, para medir el tamaño total de un producto, el cálculo es el siguiente: </li></ul><ul><li>Total LOC = Base – Eliminadas + Agregadas + Reutilización </li></ul><ul><li>Las LOC modificadas y de “nueva reutilización” 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 reutilización” ya se encuentran contabilizadas en las LOC agregadas. </li></ul>
  75. 75. Estándar tipo de Defectos <ul><li>El estándar de tipos de defectos proporciona un conjunto general de categorías de defectos. </li></ul><ul><li>Aunque tu puedes reemplazar este estándar por el tuyo propio, es deseable que te manejes con estas definiciones simples de tipos hasta que tengas datos que te puedan guiar en las modificaciones. </li></ul>
  76. 76. Estándar tipo de Defectos
  77. 77. Log Registro Defectos <ul><li>Nombre: _______________________________ Fecha: ___ </li></ul><ul><li>Instructor: ______________________________ Programa :__ </li></ul><ul><li>Fecha Número Tipo Introducir Remover Tiempo de Arreglo Defecto Arreglado </li></ul><ul><li>10/10/06 1 40 CÓDIGO CODIGO 11 </li></ul><ul><li>Descripción: Agregar una variable a la estructura </li></ul><ul><li>Fecha Número Tipo Introducir Remover Tiempo de Arreglo Defecto Arreglado </li></ul><ul><li>10/10/06 2 20 CÓDIGO CODIGO 1 </li></ul><ul><li>Descripción: Variable multidefinida </li></ul><ul><li>Fecha Número Tipo Introducir Remover Tiempo de Arreglo Defecto Arreglado </li></ul><ul><li>10/10/06 3 w0 CÓDIGO COMPILAR 1 </li></ul><ul><li>Descripción: Las comillas de la instrucción de impresión no existen “” </li></ul><ul><li>Fecha Número Tipo Introducir Remover Tiempo de Arreglo Defecto Arreglado </li></ul><ul><li>10/10/06 4 10 CÓDIGO PRUEBA 39 </li></ul><ul><li>Descripción: Alinear y agregar instrucciones de impresión , mejorar la apariencia </li></ul>
  78. 78. Log Registro Defectos <ul><li>Encabezado </li></ul><ul><ul><li>Indicar el nombre, fecha, instructor, y numero de programa. </li></ul></ul><ul><li>Fecha </li></ul><ul><ul><li>Indicar la fecha cuando encontraste y corregiste el defecto. </li></ul></ul><ul><li>Número </li></ul><ul><ul><li>Indicar un número único para este defecto. Comienza cada proyecto con 1. </li></ul></ul>
  79. 79. Log Registro Defectos <ul><li>Tipo </li></ul><ul><ul><li>Indicar el tipo de defecto a partir del estándar de tipos de defectos. </li></ul></ul><ul><li>Introducido </li></ul><ul><ul><li>Indicar la fase donde tu juzgas que el defecto fue inyectado o introducido. </li></ul></ul><ul><li>Eliminado </li></ul><ul><ul><li>Indicar la fase en la que encontraste y eliminaste el defecto. </li></ul></ul>
  80. 80. Log Registro Defectos <ul><li>Tiempo de Arreglo </li></ul><ul><ul><li>Indicar el tiempo que tomaste para corregir el defecto. Tu puedes dar el tiempo exacto o usar tu mejor estimación. </li></ul></ul><ul><li>Defecto Arreglado </li></ul><ul><ul><li>Si este defecto fue inyectado durante la corrección de otro defecto, indicar el número de ese defecto o una X si lo desconoces. </li></ul></ul><ul><li>Nota </li></ul><ul><ul><li>Un defecto es cualquier cosa en el programa que debe ser cambiado para que sea desarrollado, mejorado o utilizado de manera adecuada. </li></ul></ul>
  81. 81. Log Registro Defectos <ul><li>Finalmente, la manera más eficaz de encontrar y arreglar defectos es repasando el código fuente del programa personalmente. Mientras esto puede parecer como una manera difícil de limpiar un programa defectuoso, resulta ser más rápido y más eficaz. Un método para realizar revisiones de código es la utilización de guías en las que se determina cuales son los defectos que mas frecuentemente se inyectan. </li></ul>
  82. 82. Guía Personal de Revisión de Código Propósito Guía para realizar una revisión de código efectiva # # # 3 Para Fechar Para Fechar % General Cuando se completa cada paso de revisión, anota el número de defectos del tipo encontrado in la caja de la derecha. Completa el catálogo para un programa, clase, objeto o método antes de empezar la próxima revisión Completa Verifica que todas las funciones del diseño están codificadas. Includes Verifica cada include que esté completo Inicialización Chequea las variables e inicialización de parámetros. Llamadas Chequea los formatos de llamadas de función: punteros, parámetros. Nombres Chequea los nombres y su uso: consistencia, declaraciones, y estructuras. Strings <ul><li>Chequea que los punteros están: </li></ul><ul><li>Identificados por punteros </li></ul><ul><li>Terminados en NULL </li></ul>Punteros <ul><li>Chequea que los punteros están: </li></ul><ul><li>Inicializados a NULL </li></ul><ul><li>Borrarlos después de crearlos </li></ul><ul><li>Borrarlos siempre después del uso </li></ul>
  83. 83. Guía Personal de Revisión de Código Propósito Guía para realizar una revisión de código efectiva # # # 3 Para Fechar Para Fechar % Formato de salida Cheque el formato de salda {} Parejas Asegurarse de que {} están cerrados Operadores lógicos Verificar el uso de ==, =, ||, etc. Chequea cada función entre () Chequeeo Línea por línea <ul><li>Chequea cada línea del código: </li></ul><ul><li>Sintaxis de las instrucciones </li></ul><ul><li>Puntuación </li></ul>Estándares Asegura que el código sigue el estándar de codificación Abrir y cerrar ficheros Verificar que todos los ficheros estas: Declarados Abiertos Declarados Global Realizar un escaneo global del programa para chequear el sistema e inspeccionar los problemas
  84. 84. Mediciones de Tiempo <ul><li>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 interrupción y/o retomaron una tarea. Por ejemplo, una interrupción podría ser una llamada telefónica, 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 sería introducir un error de gran tamaño en la información de tiempos que reduciría la exactitud de las estimaciones. </li></ul>
  85. 85. Administración del Tiempo <ul><li>Para la llevar a cabo una buena gestión del tiempo se pueden tener en cuenta los siguientes puntos: </li></ul><ul><li>Tener en cuenta que normalmente el tiempo se gasta de la misma forma. </li></ul><ul><li>Se debe realizar un seguimiento la forma en la que se gasta el tiempo. </li></ul><ul><li>Para chequear con exactitud las estimaciones del tiempo y la planificación, se debe documentar y más tarde compáralo con lo que actualmente se hace. </li></ul><ul><li>Para hacer planes más exactos, se deben determinar los planes previos erróneos y que deberíamos hacer mejor. </li></ul><ul><li>Planificar el tiempo y seguir un plan . </li></ul><ul><li>Todo esto se puede resumir mejor diciendo que la mejor forma de gestionar el tiempo es comprender como empleamos el tiempo y esto exige que sepamos catalogar las actividades, registrar el tiempo empleado en cada actividad y almacenar estos datos en un lugar conveniente. </li></ul>
  86. 86. Seguimiento del Tiempo <ul><li>Una vez que sabemos gestionar el tiempo, es necesario almacenar todos estos datos de alguna forma mediante un formulario. Es importante resaltar que utilizar como unidad de medida la hora no nos proporciona detalles para manejar o planificar el trabajo, es mucho más fácil en minutos. </li></ul>
  87. 87. II.III. Métricas del PSP
  88. 88. II.III. Métricas del PSP <ul><li>Objetivo: </li></ul><ul><li>Aplicar las métricas de PSP. </li></ul><ul><li>Definir y explicar: Los indicadores de medición del PSP. </li></ul>
  89. 89. Métricas del PSP <ul><li>Con datos de tamaño, tiempo y defectos, existen muchas formas de medir, evaluar, y manejar la calidad de un programa. PSP provee una serie de mediciones de calidad que ayudan a los desarrolladores a examinar la calidad de sus programas desde varias perspectivas. Como ninguna medición por sí sola puede indicar adecuadamente la calidad de un programa, el panorama que provee la utilización de todas estas mediciones es generalmente un indicador confiable de calidad. </li></ul><ul><li>Las principales mediciones de calidad son: </li></ul><ul><ul><li>Densidad de defectos </li></ul></ul><ul><ul><li>Índice de revisión </li></ul></ul><ul><ul><li>Índices de tiempo de desarrollo </li></ul></ul><ul><ul><li>Índices de defectos </li></ul></ul><ul><ul><li>Rendimiento </li></ul></ul><ul><ul><li>Defectos por hora </li></ul></ul><ul><ul><li>Efectividad de remoción de defectos </li></ul></ul><ul><ul><li>Evaluación del índice de fallas </li></ul></ul>
  90. 90. Resumen del registro de Métricas <ul><li>Nombre: Fecha: 18/10/96 </li></ul><ul><li>Programa Programa # 13 </li></ul><ul><li>Profesor Lenguaje: C++ </li></ul><ul><li>Resumen Plan Actual a la Fecha </li></ul><ul><li>Minutos/LOC 5,92 4,87 5,73 </li></ul><ul><li>LOC/Hora 10,14 12,32 10,47 </li></ul><ul><li>Defectos/KLOC 94,79 106,4 96,90 </li></ul><ul><li>Rendimiento </li></ul><ul><li>A/FR </li></ul><ul><li>Tamaño Programa (LOC): </li></ul><ul><li>Total nuevo & Cambiado 58 47 258 </li></ul><ul><li>Tamaño Máximo 72 </li></ul><ul><li>Tamaño Mínimo 41 </li></ul>
  91. 91. Resumen del registro de Métricas <ul><li>Tiempo en fase (min.) Plan Actual Para Fecha Para Fecha % </li></ul><ul><li>Planing 18 22 88 6,0 </li></ul><ul><li>Diseño 35 24 151 10,2 </li></ul><ul><li>Código 149 93 637 43,1 </li></ul><ul><li>Revisión código 20 37 111 7,5 </li></ul><ul><li>Compilación 24 4 92 6,2 </li></ul><ul><li>Test 64 8 240 16,2 </li></ul><ul><li>Postmortem 33 41 160 10,8 </li></ul><ul><li>Total 343 229 1479 100 </li></ul><ul><li>Tiempo Máximo 426 </li></ul><ul><li>Tiempo Mínimo 243 </li></ul>
  92. 92. Resumen del registro de Métricas <ul><li>Introducción de defectos Plan Actual Para Fecha Para Fecha % Def/Hora </li></ul><ul><li>Planing </li></ul><ul><li>Diseño 1 4 16,0 </li></ul><ul><li>Código 5 5 21 84,0 </li></ul><ul><li>Revisión código </li></ul><ul><li>Compilación </li></ul><ul><li>Test </li></ul><ul><li>Total 6 5 25 100,0 </li></ul>
  93. 93. Resumen del registro de Métricas <ul><li>Eliminación de defectos Plan Actual Para Fecha Para Fecha % Def/Hora </li></ul><ul><li>Planing </li></ul><ul><li>Diseño </li></ul><ul><li>Código </li></ul><ul><li>Revisión código 2 3 8 32,0 </li></ul><ul><li>Compilación 3 2 12 48,0 </li></ul><ul><li>Test 1 5 20,0 </li></ul><ul><li>Total 6 5 25 100,0 </li></ul>
  94. 94. Comparación de PSP Característica PSP Inspecciones CMM ISO900 Propósito Gerenciamiento y mejora de la calidad Mejora de la calidad Mejora del gerenciamiento Gerenciamiento de la calidad Metodología Prescriptiva Presciptiva Descriptiva Descriptiva Definición Exacta Exacta Vaga Vaga Audiencia Desarrolladores y gerentes Desarrolladores Gerentes Gerentes Cobertura Ciclo de vida del desarrollo Verificación y validación Gerenciamiento de proyectos Aseguramiento de la Calidad Costo Muy bajo Bajo Alto Alto Calidad Muy alta Alta Baja Baja Implementación Semanas Días Años Años Alcance Integral Estrecho Ambiguo Ambiguo Cuan Mensurable es Muy Alto Alto Bajo Bajo
  95. 95. Conclusiones <ul><li>Conociendo los principios y las características de la metodología de PSP, conformada por los procesos de planificación, estimación de tamaño y esfuerzo, recolección de datos, manejo de calidad y especificaciones de diseño, se plantea la posibilidad de incorporar esta metodología al contexto de una empresa pequeña, o grupo de desarrollo de software pequeño analizando los factores operativos, económicos y los riesgos a los que se expone </li></ul><ul><li>Una vez implementada esta metodología en el ambiente de trabajo, un siguiente paso consiste en enfocarse en la mejora de la eficiencia y de la dinámica de trabajo a nivel de equipos de desarrollo, mediante el método conocido como TSP (Team Software Process). </li></ul>
  96. 96. Team Software Process TSP
  97. 97. Team Software Process <ul><li>El resultado final es que incluso aunque un equipo de ingenieros esté entrenado en PSP, todavía les queda combinar sus procesos de trabajo personal dentro de un único proceso de equipo. Esto es para ellos un problema, incluso en los más altos niveles de CMMI. Por esta razón se ha desarrollado Team Software Process SM (TSPSM). </li></ul>
  98. 98. Perspectiva de PSP PSP SM Construye capacidades individuales y disciplina de trabajo TSP SM Construye productos de calidad sobre coste y planificación CMMI ® Construye capacidad de organización
  99. 99. Introducción TSP <ul><li>PSPSM: Construye capacidades individuales y disciplina de trabajo </li></ul><ul><li>TSPSM: Construye productos de calidad sobre coste y planificación </li></ul><ul><li>CMMI® :Construye capacidad de organización </li></ul><ul><li>TSP extiende y refina los métodos CMM y PSP, para guiar a los miembros de los equipos en el trabajo de mantenimiento y desarrollo. TSP les muestra como construir un equipo autodirigido y como ser un efectivo miembro del equipo. También les enseña como dirigir y soportar estos equipos y como mantener un medio para obtener un alto nivel de desarrollo. </li></ul>
  100. 100. Objetivos TSP <ul><li>En resumen, se puede decir que TSP tiene 5 objetivos principales: </li></ul><ul><li>Construir equipos autodirigidos que planifiquen y realicen un seguimiento de su trabajo, estableciendo metas además sus propios procesos y planes. </li></ul><ul><li>Mostrar a los directores como entrenar y motivar a sus equipos y como ayudarles para mantenerles en el más alto nivel de desarrollo. </li></ul><ul><li>Acelerar la mejora del proceso software haciendo normal la conducta del Nivel 5 de CMMI </li></ul><ul><li>Mejorar la dirección para obtener organizaciones de un alto nivel de madurez </li></ul>
  101. 101. Objetivos TSP <ul><li>La principal ventaja de TSP es que muestra a los ingenieros como producir productos de calidad por medio de una planificación de costos. Esto lo hace, enseñándoles cómo planificar su propio trabajo y haciéndoles participes de los planes y procesos que se van a llevar a cabo. </li></ul><ul><li>TSP proporciona equipos de proyectos con guías explícitas sobre como alcanzar sus objetivos. TSP conduce al equipo a través de cuatro fases dentro de un mismo proyecto. Estos proyectos deben empezar o terminar con alguna fase o pueden ejecutarse desde el principio al final. Antes de cada fase, el equipo planifica y organiza su trabajo mediante una puesta en marcha completa (launch) o relaunch. </li></ul><ul><li>Generalmente, una vez que los miembros del equipo han sido entrenados en PSP, es suficiente alrededor de cuatro días para proporcionar una guía para la puesta en marcha de una fase entera del proyecto. </li></ul>
  102. 102. Evolución de TSUP Lanzamiento Fase Inicial. Creación de los Grupos y Requerimientos Relanzamiento Segunda Fase. Diseño Relanzamiento Tercera Fase. Implementación Postmortem Relanzamiento Cuarta Fase. Integración y Pruebas
  103. 103. Equipos de Trabajo <ul><li>El Software Engineering Institute (SEI) ha desarrollado el TSP para ayudar  a  equipos de ingenieros de software  a desarrollar productos de software de manera eficiente. </li></ul><ul><li>Este proceso ataca varios de los problemas actuales en el desarrollo intenso de productos de software y enseña a equipos de trabajo y gerencia como resolverlos. </li></ul><ul><li>El TSP muestra a grupos de ingenieros como aplicar conceptos integrados en el desarrollo de software, encamina a los ingenieros y a la gerencia en un proceso de 4 días para establecer los objetivos, definir los roles, atacar los riesgos y producir un plan de trabajo comprensivo. Siguiendo el lanzamiento el TSP provee un marco de procesos definidos y medibles para administrar, supervisar y reportar el trabajo en equipo. </li></ul>
  104. 104. Equipos de Trabajo <ul><li>El TSP tiene 5 fases principales. </li></ul><ul><li>Requerimientos </li></ul><ul><li>Diseño </li></ul><ul><li>Implementación </li></ul><ul><li>Pruebas </li></ul><ul><li>Postmortem </li></ul><ul><li>Cada equipo puede estar conformado por al menos 2 personas y hasta 15 personas como máximo. Los miembros del equipo deben trabajar hacia un objetivo común y tiene roles específicos o responsabilidades dentro del equipo. Existe una interdependencia entre el trabajo de los miembros del equipo que requiere cooperación para que el equipo sea exitoso y por lo mismo siguen un proceso de trabajo común. </li></ul>
  105. 105. Generación de Equipos con PSP y TSP <ul><li>Se puede decir que esta sería una fase preliminar a la hora de arrancar un proyecto utilizando TSP. En esta fase se establecen la función de cada uno de los miembros del grupo, las metas, los mecanismos de comunicación y los datos requeridos. </li></ul><ul><li>Es importante que cada miembro del grupo sepa cual va a ser su función y sus responsabilidades, y debería comprobar si alguno de los miembros del grupo necesita ayuda. Además cada miembro del grupo debe proporcionar una copia completa del formulario WEEK para que el jefe del proyecto pueda planificar la siguiente fase. </li></ul><ul><li>Se debe crear un diseño conceptual para cada producto planificado y dividir en ciclos y documentar el trabajo. Además se debe de tener una infraestructura para poder realizar estas funciones como por ejemplo formularios que controlen los errores, el control de la entrada/salida, etc. </li></ul>
  106. 106. Generación de Equipos con PSP y TSP <ul><li>Los miembros del grupo deben planificar una fase de implementación personal utilizando por ejemplo PSP. Esta planificación y documentación debe ser estándar para todos los miembros del grupo y para ello utilizar los mismos formularios. </li></ul><ul><li>Se deben especificar los bucles de pruebas, los valores de las variables que se van a usar y los condiciones de error que se vayan a producir, establecer los límites de posibles valores de las variables, los datos más críticos, etc. </li></ul><ul><li>Además se debe realizar un desarrollo explicito de las pruebas que se vayan a realizar y las revisiones de código que se vayan a hacer </li></ul><ul><li>Como se ha explicado antes todas las pruebas se deben planificar con anticipación y establecer una forma estándar de realizarlas y documentarlas para solucionar los posibles problemas y errores que hayan producido. </li></ul><ul><li>En la documentación debe aparecer quien o quienes de los miembros del grupo son los encargados de realizar las pruebas y quienes son los encargados de instalar el producto final. </li></ul>
  107. 107. Generación de Equipos con PSP y TSP <ul><li>Al final de cada ciclo y cada grupo debe realizar una memoria de su trabajo y comparar el resultado con las metas establecidas al principio del ciclo para poder así extraer conclusiones. </li></ul><ul><li>Esta memoria debería contener: </li></ul><ul><ul><li>El tamaño del producto </li></ul></ul><ul><ul><li>Las horas de desarrollo </li></ul></ul><ul><ul><li>El rango de líneas de código por hora (LOC/Hours) </li></ul></ul><ul><ul><li>El rendimiento antes de la compilación </li></ul></ul><ul><ul><li>El rendimiento antes de las pruebas del sistema </li></ul></ul><ul><ul><li>El nivel de defectos en la compilación </li></ul></ul><ul><ul><li>El nivel de defectos en todas las fases de pruebas </li></ul></ul><ul><li>Además de todo lo anterior expuesto, los grupos deberían aportar la relación de inspecciones y revisiones realizadas y los valores obtenidos en ellas. </li></ul>
  108. 108. Relación del TSP con CMMI y PSP <ul><li>Mientras que el CMMI se enfoca en lo que tienen que hacer las organizaciones, no especifica como alcanzar esos objetivos. El PSP provee una guía especifica en como los ingenieros de software de manera individual pueden continuamente mejorar su desempeño. El TSP provee guías especificas de como ingenieros capacitados en PSP pueden trabajar de manera efectiva como miembros de un equipo de alto desempeño. Todas estas tecnologías pueden trabajar juntas para permitir a las organizaciones producir software de calidad en tiempo y presupuesto. </li></ul>
  109. 109. Relación del TSP con CMMI y PSP Individual Organización Equipo PSP TSP CMMI
  110. 110. PSP y TSP respecto a CMMI <ul><li>CMMI, PSP y TSP proporcionan un marco tridimensional para la mejora de los procesos. </li></ul><ul><li>CMMI (SW/SE) tiene 22 áreas de proceso, y PSP y TSP guían a los ingenieros en el direccionamiento de casi todo el trabajo. Estos métodos no solo ayudan a que los ingenieros sean más efectivos sino también proporcionan el entendimiento necesario para acelerar la mejora del proceso. </li></ul><ul><li>Una vez que los grupos han empezado el proceso de mejora y están en el camino de alcanzar el Nivel 2 de CMMI, PSP muestra a los ingenieros como direccionar sus tareas de una forma profesional. Aunque relativamente nuevo, PSP también mejora la habilidad de los ingenieros para planificar y realiza un seguimiento de su trabajo y producir así productos de calidad. </li></ul>
  111. 111. PSP y TSP respecto a CMMI Nivel Enfoque del Proceso Clase de Área de Proceso PSP TSP 5 Optimizado Mejora Continua del Proceso Análisis Causal y Resolución X X Implementación e Innovación Organizacional X X 4 Administrado Cuantitativamente Administración Cuantitativa del Proceso Administración cuantitativa del Proyecto X X Rendimiento del Proceso Organizacional X X 3. Definido Estandarización del Proceso Enfoque en el Proceso Organizacional X X Definición del Proceso Organizacional X X Capacitación Organizacional Administración del proyecto Integrado X X Desarrollo de Requerimientos X X Solución Técnica X X Integración del Producto X X Verificación X X Validación X X Administración de Riesgos X Análisis y Resolución de Decisión X X 2 Administrado Administración del Proyecto Administración de Requisitos X Planeación de Proyectos X X Monitoreo y control de Proyectos X X Aseguramiento de la Calidad Software X Administración de la Configuración del Software X Administración de Acuerdos con Proveedores Medición y Análisis X X
  112. 112. Componentes del TSP <ul><li>Los equipos de TSP estiman proyectos con una aproximación arriba-abajo, utilizando todo el tamaño y mediante la productividad del equipo, determinar el programa completo. Como se ha descrito anteriormente, el proyecto se divide en fases y cada una de ellas es estimada y rastreada. </li></ul><ul><li>En las puestas en marcha de cada fase, se definen las tareas y para cada tarea se realiza una estimación usando métodos rigurosos de Personal Software Process (PSPSM). Estas estimaciones se utilizan para generar un plan detallado de valores-ganados, con el cual se identificara el seguimiento y planificación de las metas del proyecto, criterios de calidad y riesgos de las puestas en marcha. </li></ul><ul><li>TSP requiere entrevistas periódicas donde se comparan los progresos con la planificación del equipo en términos de valores ganados y calidad. Si hay desviaciones con respecto a la planificación, se pueden determinar las razones y tomar medidas para que se retorne otra vez a dicha planificación. Es también durante estas entrevistas periódicas, donde se revisan los riesgos que se han producido durante la puesta en marcha. </li></ul>
  113. 113. Componentes del TSP <ul><li>Las puestas en marcha de TSP no concluyen satisfactoriamente hasta que el equipo y la dirección estén de acuerdo sobre los requerimientos y el desarrollo. Una vez que se ha determinado el desarrollo, se usa como base para una medida personal y los valores se rastrean por cada persona y periódicamente por el equipo. </li></ul><ul><li>El TSP también requiere replanificación de un proyecto, o más tarde actualización, cuando las especificaciones del plan cambian. Esto significa que cuando estas especificaciones cambian a lo largo del proyecto, el equipo renegocia la planificación, delibera la funcionalidad y si es necesario el coste. </li></ul><ul><li>Finalmente, los problemas con la calidad pueden ser virtualmente eliminados usando TSP, ya que los métodos de calidad usados son los mismos que los usados en PSP y que los ingenieros realizan individualmente cuando llevan a cabo sus revisiones, diseños y codificaciones. </li></ul>
  114. 114. Roles dentro del TSP <ul><li>TSP se ha utilizado con grupos de software y también con grupos donde se mezcla el hardware, software y sistemas. El tamaño de los grupos puede variar desde 3 hasta 12 o 15 personas. Estos grupos a su vez pueden interactuar entre ellos. Pero para que todo esto funcione es necesario que previamente los integrantes de cada grupo hayan sido entrenados en PSP. </li></ul><ul><li>La puesta en marcha de un proyecto TSP incluye los siguientes pasos: </li></ul><ul><ul><li>Revisar con la dirección los objetivos del proyecto. </li></ul></ul><ul><ul><li>Establecer los roles del equipo. </li></ul></ul><ul><ul><li>Documentar los objetivos del equipo. </li></ul></ul><ul><ul><li>Producir la totalidad de la estrategia de desarrollo. </li></ul></ul><ul><ul><li>Definir los procesos de desarrollo del equipo. </li></ul></ul><ul><ul><li>Planificar los soportes que se necesitan. </li></ul></ul><ul><ul><li>Realizar una planificación del desarrollo para el proyecto entero. </li></ul></ul><ul><ul><li>Realizar una planificación de la calidad y el conjunto de objetivos de calidad. </li></ul></ul><ul><ul><li>Realizar una planificación detallada para cada ingeniero para la siguiente fase. </li></ul></ul><ul><ul><li>Unir las planificaciones individuales dentro de un plan de equipo </li></ul></ul><ul><ul><li>Rebalancear el trabajo de equipo para conseguir un mínimo programa. </li></ul></ul><ul><ul><li>Calcular los riesgos y asignar responsabilidades para cada clase de riesgo. </li></ul></ul><ul><ul><li>Tener una puesta en marcha de postmortem. </li></ul></ul>
  115. 115. Roles dentro del TSP <ul><li>Al final de cada puesta en marcha, el equipo revisa los planes y los riesgos del proyecto con la dirección. Una vez que el proyecto comienza, el equipo realiza semanalmente reuniones y periódicamente informa de ello a la dirección y al cliente. Después de establecer estos pasos, TSP produce los siguientes resultados: </li></ul><ul><ul><li>Se han escrito las metas </li></ul></ul><ul><ul><li>Se han definido los roles como por ejemplo Director de Diseño, Director de Planificación, Director de Proceso, Director de Soportes, Director de Pruebas o Jefe de Equipo. Normalmente los miembros del equipo con rol, son los encargados de detectar los riesgos. Pro ejemplo, un riesgo implica que las negociaciones con el cliente deberían estar asignadas al Director de Interfaces del Cliente. </li></ul></ul>
  116. 116. Bibliografía <ul><li>HUMPHREY WATTS S., A DISCIPLINE FOR SOFTWARE ENGINEERING. (USA : ADDISON-WESLEY, 1995) </li></ul>
  117. 117. Deming: 14 Puntos <ul><li>1. CONSTANCIA </li></ul><ul><li>El propósito es mejorar constantemente los productos y servicios de la empresa, teniendo como objetivo la consecución de la competitividad permaneciendo en el mercado para proporcionar empleo por medio de la innovación, la investigación, el mejoramiento continuo y el mantenimiento adecuado. </li></ul><ul><li>2. NUEVA FILOSOFÍA </li></ul><ul><li>Se trata de adoptar una nueva filosofía de empresa ya que estamos viviendo una nueva era económica (mucho más ahora) en la que los gerentes deben tomar conciencia de sus responsabilidades y afrontar la cuota de liderazgo que les cabe para lograr el cambio. </li></ul><ul><li>3. LA INSPECCIÓN </li></ul><ul><li>Se debe dejar de depender de la inspección masiva para alcanzar la calidad, hay que eliminar la inspección en masa a través de la integración del concepto de calidad en todo el proceso de producción, lo cual aminora costos y permite aumentar calidad. </li></ul>
  118. 118. Deming: 14 Puntos <ul><li>4. LAS COMPRAS </li></ul><ul><li>Hay que eliminar la práctica de comprar basándose exclusivamente en el precio, ya que los departamentos de compras tienden a elegir al proveedor con los precios más bajos.  En su lugar, se deben concentrar esfuerzos en minimizar los costos totales, creando relaciones sólidas y duraderas con un solo proveedor para cada materia prima,  basándose en la fidelidad y la confianza. </li></ul><ul><li>5. MEJORAMIENTO CONTINUO </li></ul><ul><li>La búsqueda por mejorar debe ser continua, no momentánea ni estática, se deben mejorar los procesos productivos, el servicio y la planeación, además la administración debe propender por la minimización de costos a través de la reducción de pérdidas y mermas y productos defectuosos. </li></ul><ul><li>6. ENTRENAMIENTO </li></ul><ul><li>Se debe instituir el entrenamiento y la capacitación de los trabajadores como una de las tareas del diario acontecer, con esto no sólo se consiguen mejores empleados sino mayores resultados en cuanto a calidad y costos. </li></ul>
  119. 119. Deming: 14 Puntos <ul><li>7. LIDERAZGO </li></ul><ul><li>Las organizaciones deben adoptar e instituir el liderazgo, de manera que la labor de los supervisores o jefes no se limite a dar órdenes o impartir castigos, sino que más bien se convierta en un orientador que le ayude a la gente a hacer mejor su trabajo y que identifique quiénes son las personas que necesitan mayor ayuda para hacerlo. </li></ul><ul><li>8. EL MIEDO </li></ul><ul><li>Las firmas deben desterrar el temor y el miedo de todos sus niveles, hay que generar confianza entre la gente de manera que no sientan temor de opinar o preguntar, esto permite mayor efectividad en el trabajo y permite que las personas se esfuercen porque quieren que la empresa alcance el éxito. </li></ul><ul><li>9. BARRERAS </li></ul><ul><li>Romper las barreras que existan entre los diferentes departamentos y su gente, no crear competencias que las hagan chocar sino más bien generar la visión de largo plazo que les permita a todos trabajar por conseguir los mismo objetivos, permitiendo así la colaboración y la detección temprana de fallos. </li></ul>
  120. 120. Deming: 14 Puntos <ul><li>10. SLOGANS </li></ul><ul><li>Hay que borrar los slogans o las frases preestablecidas, estos no sirven y lo que causan es relaciones adversas que redundan en pérdidas de competitividad y calidad. </li></ul><ul><li>11. CUOTAS </li></ul><ul><li>Deben eliminarse las cuotas numéricas, tanto para trabajadores como para gerentes.  Las cuotas sólo toman en cuenta los números, no los procesos, los métodos o la calidad y por lo general se constituyen en garantía de baja calidad y altos costos.  Las cuotas se deben sustituir con liderazgo, eliminando el concepto de gerencia por objetivos. </li></ul><ul><li>12. LOGROS PERSONALES </li></ul><ul><li>Hay que derribar las barreras que le quitan a las personas el orgullo que les produce su trabajo, eliminando los sistemas de comparación o de méritos, estos sistemas sólo acarrean nerviosismo y disputas internas. </li></ul>
  121. 121. Deming: 14 Puntos <ul><li>13. CAPACITACIÓN </li></ul><ul><li>Se debe establecer un programa interno de educación y automejoramiento para cada quien, hay que permitir la participación de la gente en la elección de las áreas de desarrollo </li></ul><ul><li>14. TRANSFORMACIÓN </li></ul><ul><li>Todos, absolutamente todos los miembros de la organización deben esforzarse por alcanzar la transformación en cuanto a calidad, procesos, productos y servicios, la transformación es el trabajo de todos, pero eso si, hay que basarse en un equipo que reúna condiciones suficientes de capacidad y liderazgo. </li></ul>
  122. 122. Deming: 7 pecados capitales <ul><li>1. Carencia de constancia en los propósitos </li></ul><ul><li>2. Enfatizar ganancias a corto plazo y dividendos inmediatos </li></ul><ul><li>3. Evaluación de rendimiento, calificación de mérito o revisión anual </li></ul><ul><li>4. Movilidad de la administración principal </li></ul><ul><li>5. Manejar una compañía basado solamente en las figuras visibles </li></ul><ul><li>6. Costos médicos excesivos </li></ul><ul><li>7. Costos de garantía excesivo </li></ul>
  123. 123. Juran <ul><li>Juran tiene una talla comparable a la de Deming, pero a diferencia de éste, creó una empresa de gran tamaño dedicada a la explicación e implantación de la calidad total en cualquier negocio. Existen cursos, videos, ciclos de conferencias, personal especializado en todos los aspectos de esta teoría, que se ofrecen a cualquier compañía que pueda beneficiarse con la aplicación de la calidad total. </li></ul><ul><li>A) LOS TRES pasos: </li></ul><ul><ul><ul><li>Alcanzar continuamente progresos estructurados, mediante la dedicación y un sentido de urgencia </li></ul></ul></ul><ul><ul><ul><li>Establecer programas abarcadores de entrenamiento </li></ul></ul></ul><ul><ul><ul><li>Comprometer a los supervisores a tomar en serio sus responsabilidades (“diminishing return”) </li></ul></ul></ul>
  124. 124. Juran <ul><li>B) LOS DIEZ pasos: </li></ul><ul><li>Crear conciencia de la necesidad de mejorar </li></ul><ul><li>Establecer metas de progreso </li></ul><ul><li>Organizarse para alcanzar las metas propuestas </li></ul><ul><li>Proveer entrenamiento </li></ul><ul><li>Establecer proyectos dedicados a la solución de problemas </li></ul><ul><li>Hacer reportes de progreso </li></ul><ul><li>Dar reconocimientos </li></ul><ul><li>Hacer públicos los logros alcanzados </li></ul><ul><li>Mantener un sistema operacional de medición de logros </li></ul><ul><li>No dejar caer el entusiasmo por la superación aunque todo esté marchando bien (no dormirse en los laureles) </li></ul>
  125. 125. Juran <ul><ul><li>EL PRINCIPIO ... </li></ul></ul><ul><li>También llamado 80/20. Lo enunció por primera vez el economista Wilfredo Pareto a principios del siglo. Establece que en un sistema de control de calidad debe hacerse un esfuerzo por identificar las fuentes de problemas y concentrarse en eliminarlas antes que nada. Según datos estadísticos, las fuentes del 80% de los problemas están en sólo un 20% de los empleados. Aunque es una regla antigua, Juran la demostró y revitalizó. </li></ul>
  126. 126. Juran <ul><ul><ul><li>LA TRILOGÍA ... </li></ul></ul></ul><ul><ul><li>La administración de una empresa debe tener tres programas básicos: </li></ul></ul><ul><ul><ul><ul><li>Planificación de calidad que consiste en desarrollar los productos, sistemas y procesos necesarios para satisfacer las esperanzas de los clientes. Esto requiere los siguientes pasos: </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Determinar quiénes son los clientes. </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Identificar sus necesidades. </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Desarrollar productos que respondan a estas necesidades </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Desarrollar sistemas y procesos que permitan producir esos productos, y </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Establecer planes detallados a todos los niveles de operación. </li></ul></ul></ul></ul></ul>
  127. 127. Juran <ul><ul><ul><li>Control de calidad . Esto requiere los siguientes pasos: </li></ul></ul></ul><ul><ul><ul><ul><li>Evaluar la calidad inicial </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Comparar el funcionamiento de la empresa con lo que sería una situación ideal, y </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Resolver las diferencias entre el estado actual y el ideal </li></ul></ul></ul></ul><ul><ul><ul><li>Mejoramiento de la calidad . Esto debe ser un objetivo al cual deben dedicarse esfuerzos constantes. Se logra con los siguientes cuatro pasos: </li></ul></ul></ul><ul><ul><ul><ul><li>Desarrollar la infraestructura necesaria para lograr mejoras anuales en la calidad </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Identificar áreas específicas que deben mejorarse, y poner en práctica planes para lograrlo </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Establecer un equipo de trabajo para cada proyecto de mejoramiento de la calidad </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Dar a estos equipos de trabajo todo lo que necesiten para cumplir con sus encomiendas </li></ul></ul></ul></ul>

×