Vous êtes sur la page 1sur 19

PSP0

Las prcticas tradicionales de Desarrollo de Software y al decir tradicionales me refiero a las


costumbres que desde la Universidad/Escuela hemos aceptado como buenas, no nos permiten
establecer la cantidad de esfuerzo que nos lleva terminar completamente una aplicacin y determinarlo
en fases tempranas se convierte en un proceso de juicio de experto en el cual el cobro y recursos a
usar se determinan a partir de la experiencia o de lo que de manera subjetiva se cree del proyecto a
empezar.
Inicialmente y como lnea base para las futuras estimaciones y planes arrancamos con una versin del
PSP conocida como PSP0 (PSP Cero)

Estableciendo la lnea base


PSP0 tiene como Objetivo:
Inculcar prcticas disciplinadas, a travs de seguir los diferentes scripts del proceso (los que
PSP tiene o los que se generen de manera personal)
Ensear el proceso de registro de datos, haciendo uso de la herramienta y de los diferentes
Formularios y estndares.
y se encarga de Medir
Tiempo invertido en cada fase
Defectos Inyectados y removidos en cada fase
La mejor forma de aprender es mediante la practica del proceso, por eso trabajaremos bajo un ejercicio
de ejemplo. (seguramente vern que no es un reto tcnico muy complejo, pero nos servir de base para
explicar el proceso)

Planteamiento del Problema


Usando PSP0 desarrollar una aplicacin que permita consultar, actualizar, agregar y
eliminar la informacin de los clientes almacenados en una base de datos.
Es un requerimiento del programa que la aplicacin se realice siguiendo buenas prcticas
de diseo que permitan un fcil mantenimiento.
Como ven es un requerimiento muy normal en nuestro trabajo, y nos permitir atacarlo desde diferentes
puntos de vista en cada paso del proceso.

Iniciando
Recordemos que PSP tiene por definicin 3 Fases (Planeacin, Desarrollo y PostMorten) y PSP0
expande la Fase de Desarrollo en Diseo Detallado, Codificacin, Compilacin y Pruebas teniendo
finalmente este grfico resumen del proceso.

Para desarrollar la aplicacin siguiendo el proceso haremos uso del Process Dashboard (Ver Instalacin
y Uso bsico) Iniciemos.

Creacin proceso.
1. Iniciemos el Process Dashboard y seleccionando C > Jerarqua

2. Vamos al men Editar > Agregar Plantilla > PSP0 e ingresemos el nombre MiApp.Clientes

3. Como observamos, Dashboard nos registra las diferentes fases del proyecto e inmediatamente
cambia su ventana principal
4. Ahora bien, la idea fundamental para dominar PSP es seguir el script y as lo haremos. Si damos
click en acceso a Script y seleccionamos PSP0 Process Script

5. El Script generar del Proceso es el siguiente

El Script es una gua que nos permite avanzar de manera ordenada y disciplinada en nuestro
trabajo, la prctica sugerida es la siguiente:

Verifique que los criterios de entrada se cumplen. Desde este punto Dashboard nos
permite acceder directamente a Formulario de Project Plan Summary, Time Log, Defect
Log y al Standart de Tipos de Defectos

En esta herramienta podemos tener acceso a


Tiempo en Fase: nos permite ver el Tiempo planeado, actual y a la fecha por cada una
de las fases del Proceso
Defectos Inyectados: Visualizacin de la cantidad Defectos inyectados por cada una de
las fases
Defectos Removidos: Visualizacin de la cantidad de Defectos removidos por cada una
de las fases

El Time Log o Bitcora de Tiempos nos permite visualizar como se ha invertido el


tiempo en cada una de las fases

El Defect Log o Bitcora de Defectos nos permite observar los defectos registrados en
cada una de las fases

Es el primer y mas bsico estandart de PSP, que nos permite categorizar los defectos y
con un tipo determinado (Debe personalizado segn el desarrollador)
Tambin podemos ir directamente a los siguientes scripts del proceso, por ahora vamos
al script de Planning

Planeacin.
El Script de planeacin no est pidiendo: Definir claramente los requerimientos del programa y Estimar
los recursos.
1. Primero debemos iniciar el conteo del tiempo dando click en Play
esto generar que se empiece a contar el tiempo en la fase
de planeacin (Nota: si se interrumpe el trabajo, solo bastara dar click en Pause y Dashboard
dejar de contar el tiempo)
2. Producir los requerimientos para el programa. El Dashboard nos permite (al dar click en
requirements statements) registrar en un documento en el cual se tengan documentados los

requerimientos.
3. Debemos cambiar ????? por una ruta en el equipo donde se deseen almacenar los documentos

del proyecto, en esta ruta podemos almacenar todos los documentos que se generen en este
proyecto. Particularmente cre la siguiente C:\Proyectos\MiApp.Clientes\ y tengo el documento
DefinicinRequerimientosMiAppClientes.rtf (El Documento se debe tener en la carpeta,
Dashboard no lo crea) Nota: PSP no define, ni exige ningn documento o metodologa para la
recolecciones de requerimientos, esta tarea es libre para el Desarrollar usando las tcnicas que
considere pertinentes.
4. El tiempo invertido desarrollando el documento se cuenta en la fase de planeacin.
5. Posteriormente el Script nos pide
lo cual significa que
usando nuestro juicio (tal y como lo hacemos tradicionalmente) debemos estimar cuanto tiempo
en minutos creemos necesario para desarrollar la aplicacin COMPLETAMENTE e ingresarlo
en el Plan Summary (Si damos click el nos enva el Plan Summary)
6. En PSP0 el nico dato editable en el Plan Summary es el Tiempo Total planeado, tal y como lo
vemos por los ?????

7. Vamos a ingresar nuestra mejor estimacin, en este caso pienso demorarme 300minutos
(Dasboard automticamente convierte este valor en Horas:Minutos)
8. Si hemos seguido el script nos daremos cuenta que ya cumplimos la fase de Planeacin pues
tenemos ya realizados lo pedido en Criterio de Salida
9. Para finaliza la fase solo es necesario marcar el Checkbox de la ventana principal
y Dashboard nos inicia automticamente la fase siguiente

Desarrollo (Diseo, Codificacin, Compilacin y Pruebas)


La segunda fase del proceso (Desarrollo) contiene por si misma 4 pasos como lo muestra el script.

Estas diferentes etapas del Desarrollo pueden llevarse de la manera tradicional, pero realizando unas
pequeas modificaciones a nuestras prcticas.
El Diseo debe realizarse como una nica unidad, es decir, Elaborar un diseo que represente la
totalidad de los requerimientos presentados.
El Cdigo igualmente se debe realizar completamente antes de probar. Es una de las
recomendaciones mas difciles de aceptar para los desarrolladores, sin embargo, parte del hecho
de evitar el re trabajo y poder medir con exactitud los tiempos invertidos. Si escribimos un
bloque de lneas, las ejecutamos, las probamos, corregimos los errores encontrados y repetimos
esto varias veces no tenemos como determinar el Costo de corregir los Defectos y el tiempo que
se invierte en cada fase.
Si el lenguaje o entorno de desarrollo usado hace innecesario o no usa compilacin este fase
puede omitirse y pasar a la fase de pruebas
En Pruebas el objetivo es verificar el funcionamiento del programa, corregir y registrar los
Defectos encontrados
Cuando se pase de una fase a otra, ej. Diseo a Codificacin. Si se hace necesario hacer
correcciones, cambios o mejoras esto es registrado como un Defecto
Diseo
El diseo es un componente fundamental para PSP, pues la oportunidad de pensar con cabeza fra la
forma de atacar los problemas presentados, proponer soluciones y pensar en la forma de
implementarlos.
Vamos a Disear.

1. iniciemos el conteo del tiempo


2. Mi proceso personal de Diseo, lo realizo mediante diagramas UML (no muy estrictos pero que
me permiten visualizar mas claramente el problema) mi diseo propuesto es el siguiente.

3. En esta fase no encontr defectos sobre los requerimientos levantados


4. Una decisin tomada en este punto del Diseo es usar ASP.NET MVC 5 con C# . Lo importante
de este numeral es hacer especial nfasis en que PSP no restringe lenguaje, paradigma o entorno
de desarrollo, simplemente propone algunos cambios procedimentales en la forma en que
realizamos el trabajo.
Continuando con el proceso, la fase a seguir sera Codificacin.
Codificacin
Esta fase tiene el objetivo de convertir el Diseo presentado en un lenguaje de programacin, en este
caso vamos a suponer que la base de datos ya se encuentra desarrollada, pues las mtricas para son
diferentes respecto a las usadas para escribir cdigo en mi lenguaje C#.
De nuevo la idea es codificar de manera completa el diseo propuesto sin depuraciones ni pruebas
parciales. Tambin podramos considerar una estrategia de codificacin modular, como lo vimos en las
publicaciones anteriores.
1. Se da inicio al desarrollo.
2. Transcurrido un buen periodo de tiempo de estar codificando encontr que algo faltaba en el
diseo. Que debemos hacer? Rta: Registrar esto como un defecto.
3. Es importante aclarar que el tiempo del defecto debe empezarse a registrar desde el momento en
el cual se observa que algo debe ser cambiado.
4. Dashboard automticamente registra este tiempo. En la ventana inicial damos click en el icono
de Bug

y obtenemos

5. Se debe seleccionar Tipo Del Defecto, Fecha, Fase Inyectada, Fase en la que se Elimin y la
Descripcin, veamos.
6. El Defecto encontrado es que en el diseo no especifiqu una clase Base (abstracta) para que de
ella se deriven las otras clases de Acceso a Datos. y se registr de la siguiente manera.

7. Este tiempo 8.7 Minutos incluy: El Cambio del Diseo y la implementacin del fragmento de
cdigo. El resultado es este:

8. Una vez corregido y registrado el Defecto, continuo. (se encontraron mas defectos que para no
hacer esta publicacin mas larga se omiten)
9. La Etapa de Codificacin se encontrar terminada una vez el Cdigo haya terminado de
generarse.
10.Una de las tantas ventajas del Dashboard es el indicador que muestra al lado del botn de Play

11.Al acercar el cursor a este indicador nos muestra el tiempo planeado para la fase, tiempo actual
y el porcentaje gastado.
12.una vez concluida la fase de Codificacin el proceso se muestra como sigue: (Ventana PSP0
Project Plan Summary)

13.La columna Plan se encuentra vaca puesto que es PSP0 y no contamos con datos histricos
14.La columna Actual muestran el avance en Horas:Minutos
15.La columna To Date mostrar en los proyectos sitios los tiempos acumulados por fase
16.La columna To Date % en PSP0 muestra un porcentaje (siguiendo las practicas recomendadas)
que luego ser cambiando por los tiempos reales.
17.Pasemos ahora a la fase siguiente

Compilacin
Siguiendo el Script de Desarrollo continuaramos con la fase de Compilacin, sin embargo hay que
considerar si en verdad el lenguaje y el IDE necesitan de esta fase.
En este punto consideramos que C# en Visual Studio no requiere de una fase de compilacin pues el
entorno Compila en lnea.
Pruebas
Esta parte del proceso tiene como finalidad ejecutar el programa (Mdulo) desarrollador y verificar el
funcionamiento correcto y en caso de presentarse Defectos, realizar los cambios pertinentes.
El objetivo final es entregar un programa completamente funcional.
Veamos mis resultados en esta fase.
1. Al ejecutar el programa se encontr un defecto. El cual registro de la siguiente manera:

2. Terminado de corregir este se encontr un defecto adicional.

3. Y un ltimo

4. Al corregir estos inconvenientes la aplicacin funciona correctamente en todas sus operaciones.

5. Con esto finalizamos la fase Desarrollo completamente y tenemos al momento lo siguiente:

6. El Programa se encuentra terminado y funcionando completamente as que cerramos la fase de


Desarrollo.
PostMorten
Esta es la tercera y ultima fase del Proceso PSP0, la cual es muy importante porque busca:

Verificar los datos registrados, en cuanto a consistencia y si se encuentran completos y correctos


Ingresar los datos que nos olvidamos de registrar en las diferentes fases.
Esto demora en PSP0 poco tiempo y nos sirve como revisin general de proceso realizado.
Revisemos el Script propuesto

Si seguimos el Script cuidadosamente nos aseguramos que los datos registrados nos sirvan
posteriormente en PSP1, PSP2 y PSP2.1 (los revisaremos posteriormente)
Lo que encontramos en verde es por ahora opcional, y en PSP1 lo consideraremos. Una vez terminado
el proceso
1. Marcamos PostMorten como completo
2. Y luego marcamos como Completado el Proyecto, esto lo hacemos accediendo al PSP0 Project
Plan Summary
3. Esta es la imagen antes de dar completado

4. Y esta es una vez terminado (Observen la diferencia de los Porcentajes en To Date %)

5. Por ultimo, una herramienta interesante que podemos usar para el PostMorten la encontramos
en el men C > Anlisis de Datos, la herramienta es la siguiente:

6. Muchos de los grficos no se muestran porque requieren de otras medidas (Lneas de cdigo)
que tomaremos en PSP1, observemos las que se generan:

Conclusiones.
PSP0 nos permite establecer una lnea base para la estimacin y aunque el proceso trae consigo varios
cambios en el comportamiento y las costumbres en el Desarrollo, veremos mas adelante que aporta
grandes ventajas a los programados.
Que debe tener en cuenta para usar PSP en mi trabajo?
Es un proceso que requiere disciplina
Es una forma de trabajar altamente ordenada y metodolgica
Requiere compromiso personal, al fin y al cabo los datos recolectados solo son usados por
nosotros mismos para mejorar cada vez mas
Es una publicacin un poco larga, pero si llegaron hasta ac hemos cumplido una meta importante,
ahora los quiero retar a que desarrollen la misma aplicacin propuesta y me compartan sus
experiencias.
En una semana tendremos una publicacin sobre PSP1.

Vous aimerez peut-être aussi