personal software process (desarrollo software personal)

54
Personal Software Process (Desarrollo Software Personal)

Upload: esther-valverde-toro

Post on 23-Jan-2016

277 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Personal Software Process (Desarrollo Software Personal)

Personal Software Process

(Desarrollo Software Personal)

Page 2: Personal Software Process (Desarrollo Software Personal)

Principios PSP la calidad de un sistema software está

condicionada por la calidad del peor de sus componentes.

la calidad de un componente software está condicionada por el individuo que lo desarrolló.

Está condicionada por el conocimiento disciplina compromiso del desarrollador

Page 3: Personal Software Process (Desarrollo Software Personal)

Principios PSP (cont...) Todo profesional software debería conocer

su propio rendimiento.

Debería medir, seguir/controlar y analizar su trabajo.

Debería aprender de las variaciones de su rendimiento.

Debería incorporar esas lecciones a su manera personal de hacer las cosas.

Page 4: Personal Software Process (Desarrollo Software Personal)

¿Qué proporciona el PSP?

Un PSP estable permite estimar y planificar el trabajo cumplir los compromisos resistir a presiones de compromiso no

razonables

Con un PSP estable, también se podrá comprender nuestras capacidades estar mas posibilitado para mejorar

Page 5: Personal Software Process (Desarrollo Software Personal)

¿Qué te proporciona PSP? (cont...) Un PSP también proporciona

Una base probada para desarrollo y práctica de las disciplinas personales de la industria.

Una disciplina que muestra como mejorar el proceso personal.

Los datos para mejorar de manera continua la productividad, calidad, y el grado de predicción de trabajo

Page 6: Personal Software Process (Desarrollo Software Personal)

¿Qué es un PSP?

Un PSP es un proceso personal para desarrollar software. pasos definidos formularios estándares

Un PSP es un marco de trabajo de medición y análisis que nos ayuda a caracterizar nuestro proceso.

Es también un procedimiento definido para ayudar a mejorar nuestro rendimiento.

Page 7: Personal Software Process (Desarrollo Software Personal)

Proceso PSP0

El flujo de Proceso del PSP

Proyecto y procesoProducto acabado

Desarrollo

Planificación

Postmortem

Diseño

Código

Compila

Pruebas

Requisitos

ResumenPlan

Guiones de proceso

Logs de tiempos

ydefectos

Page 8: Personal Software Process (Desarrollo Software Personal)

El PSP

El PSP es un proceso diseñado para uso individual, basado en una versión 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 diseñado también 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

Page 9: Personal Software Process (Desarrollo Software Personal)

El PSP (cont…)

El PSP se aplica en tareas personales estructuradas: Desarrollo de módulos de programas. Definición de requisitos o procesos. Realización de revisiones o pruebas. Escritura de documentación, etc….

El PSP se puede extender al desarrollo de sistemas software de gran tamaño.

Es un proceso de Nivel 5 para los individuos y es un prerrequisito para el TSP

Page 10: Personal Software Process (Desarrollo Software Personal)

Gestión del Tiempo

Usando un Cuaderno de Ingeniería

Page 11: Personal Software Process (Desarrollo Software Personal)

La lógica de la Gestión de Tiempo

Probablemente harás esta semana lo mismo que hiciste la semana pasada. Esto te permite estimar que harás en semanas próximas.

Para hacer un plan realista, tienes que controlar tu forma de gastar el tiempo. Registrar lo que haces te dara pautas importantes que no conocidas.

Para comprobar la exactitud de tus estimaciones de tiempo y los planes, debes documentar y posteriormente compararlas con lo que realmente haces.

Page 12: Personal Software Process (Desarrollo Software Personal)

La lógica de la Gestión del Tiempo

Para hacer mas precisos tus planes, determina las equivocaciones de los planes anteriores y que podrías haber hecho mejor.

Para gestionar tu tiempo, planifica tu tiempo y sigue el plan.

Page 13: Personal Software Process (Desarrollo Software Personal)

Entiende cómo utilizas el tiempo

Clasifica tus actividades.

Anota el tiempo dedicado a cada actividad.

Anota el tiempo de manera estándar.

Guarda los datos de tiempo en un lugar adecuado

Page 14: Personal Software Process (Desarrollo Software Personal)

El Cuaderno de Ingeniería

Usado para anotar y controlar: Las actividades de los ejercicios

(planificación, programación, etc.) Compromisos. Anotaciones de clase. Ideas de diseño y cálculos.

Importante para: Posibles evidencias legales. Protección de la propiedad Intelectual.

Page 15: Personal Software Process (Desarrollo Software Personal)

El diseño del cuaderno

Se suele usar un cuaderno en espiral.

Las páginas numeradas.

Numeración y fecha en cada hoja.

Deja una o dos páginas para la tabla de contenidos.

Page 16: Personal Software Process (Desarrollo Software Personal)

Ejemplo de Portada

Cuaderno Nº: 1

Cuaderno de Ingeniería PROYECTO

Nombre: Tomás E-mail: [email protected]

Apertura: 10-Feb Cierre:

Page 17: Personal Software Process (Desarrollo Software Personal)

Página de Ejemplo

Fecha 3

9/3 Ejercicio PSP0, terminar 12/3

Preparar cuaderno de ingeniería

Mirar libro de texto pagina 206

11/3 Completar tabla de tiempos, ver definición

Completar el post-mortem para ejercicio 2

Page 18: Personal Software Process (Desarrollo Software Personal)

¿Por qué controlar el tiempo?

A no ser que conozcas cuanto tiempo estás gastando en una tarea, tu no puedes controlarla.

Para saber cuanto tiempo usas, tu debes medirlo.

Te puedes sorprender en que gastas tu tiempo.

Es más fácil controlar el tiempo que mejorar la productividad.

Page 19: Personal Software Process (Desarrollo Software Personal)

Anotar datos de tiempos

Usa la tabla estándar.

Sigue un procedimiento escrito.

Para este curso, usa el método descrito y después diseña un método ajustado a tus necesidades.

Page 20: Personal Software Process (Desarrollo Software Personal)

Controla tu tiempo

Normalmente se miden el tiempo en términos de horas, pero no es útil / preciso hacerlo de esa manera

Es muy raro gastar más de una hora en una actividad

Utilizar minutos para el registro de tiempos

0

5

10

15

20

25

30

35

Tareas

Tiempo de tareas

Page 21: Personal Software Process (Desarrollo Software Personal)

La gestión de interrupciones

Las interrupciones son muy frecuentes.

EL tiempo de las mismas es muy variable.

Estar anotando cuando empieza y cuando termina es muy moroso.

Anota mejor el tiempo total para ser descontado.

Page 22: Personal Software Process (Desarrollo Software Personal)

La gestión del tiempo

Incluye las tablas de tiempos en el cuaderno de ingeniería.

Mantén cerca el cuaderno de ingeniería.

Cuando se te olvide anotar el tiempo de inicio, o de finalizaciones o de interrupción, anota una estimación según te acuerdes.

Analiza tus tiempos.

Page 23: Personal Software Process (Desarrollo Software Personal)

Proceso PSP0

PSP0 es un proceso sencillo, definido y personal.

Utiliza tus métodos actuales de diseño y desarrollo.

Recoge datos sobre tu trabajo: tiempo gastado por fase defectos encontrados en compilación y pruebas

Proporciona un informe resumen.

Page 24: Personal Software Process (Desarrollo Software Personal)

Proceso PSP0

El flujo de Proceso del PSP0

Proyecto y procesoProducto acabado

Desarrollo

Planificación

Post-mortem

Diseño

Código

Compila

Pruebas

Requisitos

ResumenPlan

Guiones de proceso

Logs de tiempos

ydefectos

Page 25: Personal Software Process (Desarrollo Software Personal)

Proceso PSP0

Elementos un guión de proceso un formulario resumen de plan

proyecto un registro tiempo un registro de defectos un estándar de tipos defecto

Page 26: Personal Software Process (Desarrollo Software Personal)

Guión de proceso Número Fase

Propósito Guiarte en el desarrollo de programas a nivel de módulo

Entradas Necesarias

Descripción del problema Formulario de Resumen del Plan de Proyecto PSP0 Tablas de Registro de Tiempos y Defectos Estándar de Tipos de Defectos Cronómetro (opcional)

1 Planificación Producir o obtener los requisitos. Estimar las LOC (Line Of Code) necesarias. Estimar el tiempo de desarrollo necesario. Indicar los datos del plan en el Resumen del Plan de

Proyecto Completar el Log de Registro de Tiempos

2 Desarrollo Diseñar el programa Implementar el diseño. Compilar el programa y corregir todos los defectos

encontrados. Completar el Tabla de Registro de Tiempos.

3 Post-mortem Completar el Resumen del Plan de Proyecto con los datos actuales de tiempo, defectos, y tamaño.

Criterios de salida

Un programa probado. Un Resumen de Plan de Proyectos con los datos estimados

y los actuales. Las Tablas de Registro de Tiempos y Defectos rellenos

Page 27: Personal Software Process (Desarrollo Software Personal)

El guión PSP0

Referencia - Tabla C10

Planificación - estimar tiempo de desarrollo.

Desarrollo - desarrollar el producto utilizando tus métodos actuales.

Post-mortem - completar el resumen del plan proyecto, con los tiempos gastados y defectos encontrados e inyectados en cada fase.

Page 28: Personal Software Process (Desarrollo Software Personal)

El guión PSP0

Diseño - diseñar el programa, usando tus métodos de diseño actuales.

Codificación- implementa el programa.

Compilación - compila hasta que este libre defectos.

Prueba - prueba el programa y corrige todos los defectos.

Registra los defectos en el log de defectos y tiempos por fase en el log de tiempos.

Page 29: Personal Software Process (Desarrollo Software Personal)

Resumen Plan PSP0

Referencia - Tabla C14

Header – Nombre, fecha, programa, instructor, lenguaje.

Program Size – Plan -Indica tu mejor estimación del tiempo total que tendrá el desarrollo.

Program Size – Actual -Indica el tiempo actual en minutos gastado en cada fase.

Page 30: Personal Software Process (Desarrollo Software Personal)

Resumen Plan PSP0

Time – To Date - indica el tiempo total gastado en cada fase hasta hoy. Para programa 1A, es el tiempo gastado en el programa 1A.

Time – To Date % - indica el porcentaje del total tiempo hasta hoy que se gasto en cada fase.

Defects injected and removed - indicar el numero actual de defectos inyectados y eliminados en cada fase.

Page 31: Personal Software Process (Desarrollo Software Personal)

Resumen Plan PSP0

Defect - To Date - 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.

Defect - To Date % - indicar el porcentaje sobre el total defectos inyectados y eliminados hasta hoy en cada fase.

Page 32: Personal Software Process (Desarrollo Software Personal)

Log Registro de tiempo PSP0

Student Date Instructor Program # Date Start Stop Interruption

Time Delta Time

Phase Comments

Page 33: Personal Software Process (Desarrollo Software Personal)

Log Registro de tiempo PSP0 Referencia - Tabla C16

Header - indicar nombre, fecha, instructor, y numero de programa.

Date - indicar la fecha actual.

Start - indicar el tiempo en minutos cuando empiezas una fase del proyecto.

Page 34: Personal Software Process (Desarrollo Software Personal)

PSP0 Log Registro Tiempos Stop - indicar el tiempo en minutos cuando

tu paraste trabajo en una fase del proyecto, aun cuando tu no has terminado esa fase.

Interruption time - indicar el tiempo perdido por interrupciones desde el periodo de arranque a parada.

Delta time - indicar el tiempo transcurrido desde el inicio al tiempo de parada descontado el tiempo de interrupción.

Page 35: Personal Software Process (Desarrollo Software Personal)

PSP0 Log Registro Tiempos Phase

Anotar la fase en la que estas trabajando. Use el nombre de fase.

Comments – descripción de la interrupción la tarea que estas haciendo cualquier aspecto significativo que afecte a

tu trabajo

Page 36: Personal Software Process (Desarrollo Software Personal)

Log Registro Defectos

Student Kim Orihuela Date 10-3-96

Instructor Iraj Program # 3A

Date Number Type Inject Remove Fix Time Fix Defect 10-3 1 40 CODE CODE 11 Description: Add variable to structure. Date Number Type Inject Remove Fix Time Fix Defect 10-3 2 20 CODE CODE 1 Description: Misspelled variable. Date Number Type Inject Remove Fix Time Fix Defect 10-3 3 20 CODE COMPILE 1 Description: Missing “ in print statement. Date Number Type Inject Remove Fix Time Fix Defect 10-3 4 10 CODE TEST 39 Description: Align/add print statements - beautify

Defect Types 10 Documentation 60 Checking 20 Syntax 70 Data 30 Build, Package 80 Function 40 Assignment 90 System 50 Interface 100 Environment

Page 37: Personal Software Process (Desarrollo Software Personal)

Log Registro Defectos

Referencia - Tabla C18

Header - indicar el nombre, fecha, instructor, y numero de programa.

Date - indicar la fecha cuando encontraste y corregiste el defecto.

Number - indicar un número único para este defecto. Comienza cada cada proyecto con 1.

Page 38: Personal Software Process (Desarrollo Software Personal)

Log Registro Defectos

Type - indicar el tipo de defecto a partir del estándar de tipos de defectos.

Inject - indicar la fase donde tu juzgas que el defecto fue inyectado.

Remove - indicar la fase en la que encontraste y eliminaste el defecto.

Page 39: Personal Software Process (Desarrollo Software Personal)

Log Registro Defectos

Fix Time - indicar el tiempo que tomaste para corregir el defecto. Tu puedes dar el tiempo exacto o usar tu mejor estimación.

Fix defect - Si este defecto fue inyectado durante la corrección de otro defecto, indicar el numero del ese defecto o una X si lo desconoces.

Note - un defecto es cualquier cosa en el programa que debe ser cambiado para que sea desarrollado, mejorado o utilizado de manera adecuada.

Page 40: Personal Software Process (Desarrollo Software Personal)

Estándar de Tipos de defecto Referencia - Tabla 20

El estándar de tipos de defecto proporciona un conjunto general de categorías de defectos.

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.

Page 41: Personal Software Process (Desarrollo Software Personal)

Estándar de Tipos de Defecto

Los tipos estándar de defecto en PSP son 10 - Documentación 20 - Sintaxis 30 - Construcción, empaquetado 40 - Asignación 50 - Interfase 60 - Comprobación 70 - Datos 80 - Funciones 90 - Sistema 100 - Entorno

Page 42: Personal Software Process (Desarrollo Software Personal)

Ejercicio Clasificación de Defectos Describe con al menos un ejemplo de cada tipo para tu lenguaje y entorno

Tipo102030405060708090

100

NombreDocumentaciónSintaxisConstrucciónAsignaciónInterfazComprobaciónDatosFuncionesSistemaEntorno

Descripcióncomentarios, mensajesortografía, puntuación, tipos, formatos de instrucción gestión de cambios, librerías, control de versionesdeclaración, nombres duplicados, ámbito, limitesLlamadas y referencias a rutinas, I/O, formatosmensajes error, comprobaciones inadecuadasestructura, contenidológica, punteros, bucles, recursion, calculo, defectos en funcionesconfiguración, tiempos, memoriadiseño, compile, pruebas, y problemas del sistema de soporte

Tipo1020304050

Tipo60708090

100

ejemplo...______________________________________________________________________________________________________________________________________________________

ejemplo...______________________________________________________________________________________________________________________________________________________

Page 43: Personal Software Process (Desarrollo Software Personal)

Visión general de la Planificación y Medición de tamaño

Visión general de Planificación

Tamaño de Software ¿Por qué medir el tamaño? Criterios de medida de tamaño El marco de trabajo del SEI para la medida del

tamaño

Contando el tamaño del programa Contadores Estándares de codificación

Page 44: Personal Software Process (Desarrollo Software Personal)

¿Por qué hacer Planes?

Planes permite llegar a acuerdos que se

puedan cumplir proporciona las bases para acuerdos

en tu trabajo guía el trabajo ayudan a seguir el progreso terminación del proyecto

Page 45: Personal Software Process (Desarrollo Software Personal)

El marco de trabajo para la planificación de proyectos

EntregaProducto

Informes deSeguimiento

DefinirNecesidades

ProducirDiseño

Conceptual

EstimarTamaño

EstimarRecursos

ProducirCalendario

DesarrollarProducto

Datos Tamaño,Recursos,

Plazos

ProcesoAnálisis

RecursosDisponibles

Base de datosde tamaño

Base datos deproductividad

Page 46: Personal Software Process (Desarrollo Software Personal)

¿Por qué medir el Tamaño? Medidas de tamaño

Nos ayudan a hacer mejores planes Ayudan en seguimiento del desarrollo Normalizan otras medidas

Recursos de desarrollo Tasas de defectos

Page 47: Personal Software Process (Desarrollo Software Personal)

Criterios para la Medición del tamaño La medición de tamaño debe

estar relacionada con el esfuerzo de desarrollo

precisa contables de manera automática deseable en la planificación

temprana

Page 48: Personal Software Process (Desarrollo Software Personal)

Tamaño frente a esfuerzo de desarrollo El requisito principal: si la medición del

tamaño no esta directamente relacionada con el costo de desarrollo, no es bueno usarla.

Hay muchas medidas posibles: líneas de código (LOC) puntos de función páginas, pantallas, scripts, informes

La medida del tamaño suele ser sensible al lenguaje, diseño y al modo de desarrollo.

Page 49: Personal Software Process (Desarrollo Software Personal)

Recuento automático

La medición de tamaño es una actividad que consume tiempo y es imprecisa.

Los contadores automáticos pueden trabajar solo sobre caracteristicaza del programa definidas.

Contadores pueden ser complejos por: definición de tamaño seleccionada método de conteo

Page 50: Personal Software Process (Desarrollo Software Personal)

Recuento del tamaño del programa El PSP utiliza un estándar de contador de

líneas físicas. utiliza una línea física por cada línea lógica utiliza un estándar de codificación definido

Este estándar debe ser seguido estrictamente.

Entonces el recuento de líneas físicas será igual al recuento de líneas lógicas.

Page 51: Personal Software Process (Desarrollo Software Personal)

El estándar de recuento del PSP Contar todas las instrucciones:

begin, end, if, then, else, etc. {, }, ;, ., etc. contar declaraciones, directivas, encabezados, etc.

No contar blancos, líneas de comentarios,

código generado automáticamente, o código reutilizado.

Contar el código nuevo y el cambiado para medir y estimar la productividad de desarrollo.

Page 52: Personal Software Process (Desarrollo Software Personal)

Contabilidad de Líneas de Código Para pequeños programas, el seguimiento de

tamaño puede realizarse de manera manual, aunque requiere cuidado.

Para grandes programas, el seguimiento del tamaño requiere un sistema de contabilidad.

La contabilidad de LOC proporciona una manera precisa y ordenada para realizar el seguimiento de los cambios de LOC a través de las múltiples versiones de programas.

Page 53: Personal Software Process (Desarrollo Software Personal)

Ejemplo de Contabilidad de LOC - 1

Versión 0350 LOC

Mejoras a Versión 1+ 125 LOC Nuevas y

Cambiadas

Tamaño Esperado:350+125=475 LOC

¿Qué ha sucedido?

Tamaño medido450 LOC

Page 54: Personal Software Process (Desarrollo Software Personal)

Ejemplo de Contabilidad de LOC - 2 Sumar Restar Base

Base V0 0 Borradas, 0 Modificadas 0 0 Añadidas 350 Total V0 LOC 350 -0 350 Borradas 0 Modificadas 25 -25 Añadidas 100 Producto Final 125 -25 450 Total Nuevas y Cambiadas LOC 475