miércoles, 4 de noviembre de 2015

PSP





Es un proceso el cual  es  dirigida a los programadores lo cual implica llevar a mantener una disciplina y cambiar su costumbre en cuanto en la forma en que trabajan.
el tiempo requerido para conocerlo ( PSP ) es extenso , pues lleva mucho tiempo saber su proceso ( conjunto pasos de documentación).





creado y puesto al publico  por  watts humphey en el año 1993, humphey se baso en distintos modelos y procesos que existían en cuanto a calidad de software y así  creo psp ( reunión la información de varios procesos , reuniendo información de cada uno de ellos y extrajo lo mejor de esos procesos dando vida "psp") .

humphey fue muy importante en la ingeniería  del software y  decía :


"El mundo del software cambia, cuando los desarrolladores cambian"



Objetivos de PSP:

El Proceso de Software Personal (PSP)  se centra en 2 objetivos que son:


1.Ayudar a las personas a realizar un buen trabajo.
2. Enseñarnos a  cómo definir, estimar y planear procesos que guiarán el trabajo.




¿ que nos dicen estos 2 objetivos ?


1. ¿ por que ayuda a las personas a realizar un buen trabajo ?


Los ingenieros de software o programadores , llevan muchos procesos para la creación de software, aveses no se lleva, ningún paso a paso para la realización de los mismos e incluso no se lleva un estándar de calidad lo cual no satisface las necesidades del cliente u usuario de un aplicativo, el motivo es la falta de organización del trabajo, por parte del ingeniero o programador.

 la cuestión no es si se necesita habilidades personales, si no cuanto tiempo necesita para desarrollarlas y como las utiliza de forma consistente. 

psp nos ofrece un conjunto de prácticas disciplinadas para la gestión del tiempo y mejora de la productividad personal de los programadores o ingenieros de software, en tareas de desarrollo y mantenimiento de sistemas , lo cual acelera y ayuda a sus habilidades de aprendizaje.

En el siguiente cuadro se nos muestra como se implementa el proceso de mejora en cuanto a calidad ( PSP) :
 Imagen tomada de: http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf


2. ¿ como enseña a definir, estimar y planear procesos que guiarán el trabajo ?

PSP nos ofrece un sistema de tiempo de trabajos, los cuales son registrados en tablas , que llevan una contabilidad de horas en que trabajas, minutos que pierdes ( realizando actividades fuera del lugar de trabajo).

motivos por los cuales se llevan a cabo estos pasos:

1. Probablemente hará esta semana lo mismo
que hizo la semana pasada.

2. Para hacer un plan realista tiene que
controlar su forma de gastar tiempo.

3. Para comprobar la exactitud de tus
estimaciones de tiempo y planes, debe
documentar y, posteriormente, comparar
con lo que realmente hace.

¿ como utilizar su tiempo para ser un buen programado ?

PSP nos enseña lo siguiente, en 3 pasos:

#1. El registro de  el tiempo dedicado a cada una de
las actividades principales.

#2. Registremos el tiempo de forma normalizada.

#3. Guarde los datos de tiempo en un lugar
adecuado.

¿ Como se lleva un registro de tiempo ?

Se llevan en cuadernos, los cuales llevan una serie de tablas ( establecidas por PSP) las cuales contienen datos, que básicamente muestran como se invierte el tiempo , cuantas interrupciones se presentan, tiempo de inicio,tiempo final, etc.


Ejemplo de una tabla de  PSP ( bitácora diaria ):


bitácora diaria
http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf



Ejemplo de una tabla de  PSP ( bitácora semanal ):


bitácora semanal
http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf




Ejemplo tabla registro de datos de trabajo:

http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf


Ejemplo tabla registro de datos de trabajo ( Con datos ):

http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf



Recomendaciones ( bitácora ):

#1 Traer el cuaderno todo el tiempo
#2 Si no se trae, anotar lo más rápido
posible
#3 Puede ponerse hora inicial y final de
interrupción
#4 Realizar siempre al finalizar la semana la bitácora semanal.

¿ En que consiste  la planificación en PSP ?

Existen 2 pasos de planificación en PSP:

# 1 Basada en período de tiempo(Tiempo en que se toma realizar un proyecto en su totalidad).

# 2 Basada en la actividad o producto (Actividades que se llenaran a cabo en un proyecto, estimando su tiempo en cada una).

Un Pequeño ejemplo seria el siguiente:

Leer un libro de 20 capítulos tomara una serie de pasos de planificación , como por ejemplo :

Estimar el tiempo total: 20 horas. 
Tiempo dedicado: 1 hora a la semana. 
Plan del producto: Leer los 20 capítulos en 20 horas. 
Plan del período: La forma de repartir el tiempo de lectura en incrementos semanales de 1 hora.

¿ Por que es importante planificar ? 

Tener todo un proceso planeado nos ayudara , a tener una idea mas clara de lo que realizaremos en el proyecto ,debemos tener  en cuenta los siguientes factores:

#1 .El tamaño y las características más importantes del producto a realizar.

#2 Una estimación del tiempo requerido para hacer el trabajo.

#3 Una previsión de la planificación.

Antes de planificar se debe tener en cuenta los siguientes conceptos:

"#1 Producto: Algo que se produce para un cliente.
#2 Proyecto: Produce un producto.
#3 Tarea: Elemento de trabajo.
#4 Proceso: Forma de hacer proyectos.
#5 Plan: Forma en que un proyecto concreto va a ser hecho: cómo cuando y que costo tendrá.
#6 Trabajo: Algo que hace, tanto un proyecto como"


Proceso de desarrollo de software

"El PSP es un marco de trabajo que ayuda a los ingenieros de software a medir y mejorar su forma de trabajar"

En el siguiente cuadro se nos muestra como funciona el proceso de desarrollo de software en PSP:

http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf



Para que se utiliza este proceso:

#1 Los planes describen la forma en que un proyecto concreto va a ser hecho: cómo, cuándo y qué coste tendrá.
#2 Cuando un proceso esta totalmente descrito, se denomina proceso definido.
#3 Están compuestos normalmente de guiones, tablas, plantillas y estándares.
#4 Guión del proceso: Es el Conjunto de pasos escritos, que los usuarios o agentes del proceso siguen cuando utilizan el proceso.

¿ Se deben registrar los defectos de nuestro proyecto ?

Diversos factores pueden generar un error en nuestro proyecto ya sea: Error sintáctico, falta tipográfica, error de puntuación, ETC. Se pueden hallar en distintas partes del proyecto ya sea en el programa en si, en el diseño o incluso errores en los requisitos.

Los errores en nuestro proyecto son defectos y provienen de errores humanos es decir, los errores que cometemos como programadores se verán reflejados en su totalidad en el programa.

¿ Por que es importante encontrar errores ? ... Es muy importante encontrar la mayor cantidad de errores posibles, un ejemplo sencillo seria: "Imagina que vas a comprar un coche, y visitas 2 fábricas."

- En la primera encuentran una alrededor de 10 defectos por coche en las pruebas de los coches, que son corregidos antes de enviar el coche al concesionario.

- En la segunda encuentran 1 defecto por cada 10 coches.pero estos no son solucionados y son enviados a los concesionarios .

¿ en cual fabrica comprarías tu coche ?



Y Si ... Existe una bitácora en donde se registran los errores que cometemos , por ejemplo:


http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf

en ella se aprecia , como se registran los errores clasificándolos por "Tipos" Ejemplo : documentación, sintaxis , etc.

También existe una bitácora en la cual se lleva una documentación de los arreglos:



http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf



Maneras de encontrar errores:

#1 Con el compilador. 
#2 Pero no detecta los errores semánticos. 
#3 Mediante pruebas.
#4 Las pruebas de unidad encuentra sobre el 50% de los defectos lógicos. 
#5 Las de sistema entre un 30% y un 40%. Pero no podemos probar todos los casos. 
#6 La más común de todas: Que los detecten los usuarios. 

A tener en cuenta: 

-Que  Aunque no hay forma de acabar con la introducción de defectos, es posible encontrar y eliminar casi todos los defectos al principio del desarrollo. 
-Siempre están implicados estos métodos: 
- Identificar los síntomas del defecto. 
- Deducir de estos síntomas la localización del defecto.
- Entender lo que es erróneo en el programa. 
- Decidir cómo corregir el defecto 
- Hacer la corrección. 
- Verificar que el arreglo ha resuelto el programa.
- Según Humphrey, la forma más rápida y eficiente es revisando personalmente el código fuente. 
- Sin embargo, con experiencia encontrará una media del 75% al 80% de los defectos.


¿ Como funciona el paso de comprobación en PSP ?

 La clave para realizar una revisión de código efectiva es tener un procedimiento de revisión eficiente. Una lista de comprobación contiene una serie de pasos de procedimiento que quieres seguir de forma precisa como por ejemplo ay que tener en cuenta:

-La lista de comprobación encapsula la experiencia personal. (Utilizándola con regularidad y adaptándola, permitirá la detección oportuna de los defectos de los programas).

- El principal peligro es que generalmente encuentra lo que busca. ( Si sólamente hace las pruebas de la lista de comprobación, sólamente encontrará lo que está en dicha lista. )

-Haga al menos una revisión general del programa para buscar lo inesperado, desde la perspectiva del sistema o del usuario.

-Cuando completes cada paso de la revisión, anota el número de defectos que has encontrado de cada tipo en la casilla de la derecha. Si no hay ninguno, anota un control en la casilla de la derecha.
-Completa la lista de comprobación para un programa, clase, objeto o método antes de comenzar a revisar la siguiente.

Ejemplo ( bitácora de comprobación ):

http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf


Existe una tabla en la cual, se registran los datos de defectos del programa:

                                                                     http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf

La medida fundamental de un proceso tiene que ver con el volumen de productos realizados, su calidad, el tiempo y los recursos requeridos para hacer el trabajo.  La  eliminación de defectos disminuyen conforme mejora la calidad del producto.

¿ Existen estrategias para la eliminación de errores ?

-Esforzarse en desarrollar módulos con la máxima calidad posible.
- Hacer inspecciones de todas las interfaces de módulos y sus interacciones.
- Inspeccionar los requisitos para asegurarte que todas las funciones importantes son adecuadamente entendidas, diseñadas e implementadas
-Inspeccionar el sistema y el diseño del programa frente a los requisitos, para asegurar que son tratados adecuadamente todos los requisitos clave.
-Hacer unas pruebas de unidad exhaustivas después de que se haya inspeccionado el código.
-Hacer una prueba de integración global.
-Hacer pruebas a todo el sistema.

... Luego de realizado todo estos procesos de documentación en PSP ¿ que mas se hace ?

Al finalizar el proyecto ( haber , seguido toda las  bitácoras , haber arreglado los errores y haber documentado todo) se procede a realizar un Resumen del plan del proyecto en una bitácora como se muestra en el siguiente ejemplo:

 http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf

Ejemplo #2 :

                                                                 http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf

Guión del proceso PSP

En el guion de proceso se evalua, factores como:

Entradas requeridas

1 Planificación
2 Diseño 
3 Codificación 
4 Revisión de código
5 Compilación 
6 Pruebas 
7 Postmorten 
Criterios de salida

Dentro de cada Factor se evaluariá lo siguiente:

http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf




Cybergrafia:

- http://www.uv.mx/personal/asumano/files/2010/07/PSP.pdf




No hay comentarios:

Publicar un comentario