Beruflich Dokumente
Kultur Dokumente
proyectarse a nivel internacional. Para lograr este objetivo es necesario articular la educación
inclusión de los egresados en el ámbito productivo y así consolidar una cultura de calidad en los
Para consolidar esta cultura de software es preciso contar con procesos bien definidos y un
El PSP es un proceso individual cuyo objetivo es ayudar a los ingenieros en software a medir y
1
2. Definiciones
El Proceso Software Personal (PSP) fue diseñado para ayudar a los ingenieros del
software a hacer bien su trabajo. Muestra cómo aplicar métodos avanzados de ingeniería
muestra a los ingenieros cómo controlar su rendimiento frente a estos planes y explica
software. Es importante que la calidad del software desarrollado abarque hasta el más
mínimo detalle, por muy pequeño que éste sea, ya que, si no se hace así, puede dañar el
sistema entero.
2.2. Calidad
(ISO 8402).
2
2.3. Calidad de Software
por tanto, nos permite aplicar métodos avanzados de ingeniería a nuestras tareas
mejora.
inherentes y capacidades.
3
2.5. Estrategia de PSP
que minimiza el impacto de los cambios en los hábitos del desarrollador. Este
después de cada fase, pues con base en los resultados obtenidos en la fase actual
4
2.6. Herramientas de apoyo para PSP
automatizadas para apoyar PSP como por ejemplo LEAP, PSP Studio,
5
La recolección de datos en forma manual es poco confiable y su uso
secundarios que son los derivados de los primeros, como, por ejemplo:
6
Caracteristicas Principales Hackystat PROM PSP.NET PSPA
Enfoque centrado en PSP No No Sí Sí
Recolección automática de datos Sí Sí Sí Sí
Privacidad de datos Sí No Sí Sí
Generación de reportes PSP No No Sí Sí
Portabilidad Sí Sí No No
Control real del tiempo y defectos No No No No
Privacidad en los datos transmitidos Sí No No No
Flexibilidad en la recolección de datos Sí Sí sí No
Facilidades para extender su uso Sí sí Sí No
Tabla 2: Principales características de las herramientas de apoyo a PSP
personas que realizan las actividades deben comprometerse con el trabajo y con
7
3. Flujo - Actividades
software.
cambiar los hábitos de trabajo, recopilar datos, realizar planes, escribir reportes y
realizar otras actividades que aquellos que no están familiarizados con el proceso
podrían considerar como una pérdida de tiempo. Además, la organización que está
desarrollando el proyecto debe dar apoyo para formar la base de datos y llevar a
cabo el análisis de los datos recolectados. Por lo tanto, es importante que los
detectar aquellas áreas en las que se puede mejorar. Una vez detectadas las
organización.
8
Además, define su propio proceso sobre el que tiene control, y está en
desempeño. Cuenta con datos para hacer planes más certeros. Con estos
administrarlo mejor.
equipo puede hacer su trabajo sin depender tanto del desempeño de sus
más elementos para negociar con sus clientes: puede planear el tamaño
trabajar en el proyecto.
del Plan para registrar los datos de planeación. Dentro de su estructura los Scripts,
por medio de los cuales el desarrollador conoce las fases, y tareas propias de cada
9
Postmortem. Mientras el desarrollador hace su trabajo, va registrando los datos de
utilizados por los ingenieros, desde que los métodos han sido introducidos en una
serie de 7 versiones. Estas versiones se han etiquetado desde PSP0 a PSP3 y cada
10
Figura 3: Elementos del proceso PSP
11
3.3. Niveles de Mejora PSP
Esta línea base provee una introducción a PSP y establece una base inicial
12
Paso Fase Descripción
1 Planear Planear el trabajo y documentar el plan
2 Diseñar Diseñar el programa
3 Codificar Implementar el diseño
Compilar el programa y arreglar los defectos
4 Compilar
encontrados.
Probar el programa y arreglar los defectos
5 Probar
encontrados.
6 Postmortem Registrar el tiempo, defectos y tamaños reales.
Tabla 3: Fases propuestas de la Línea base de PSP
13
En términos de productividad:
14
Rendimiento (Yield). Con suficiente experiencia el desarrollador logra
primera compilación.
15
Los materiales provistos por PSP para cada nivel son diferentes de acuerdo
a la siguiente tabla:
16
4. Ejemplos y Aplicaciones
17
4.2. Ejemplo: Elaboración de software:
programa sencillo de registro de datos, sin contar con consultas que son necesarias
tiene que realizar. Si bien sus programaciones no serán exactas, con la experiencia
1) Requisitos:
que los implícitos. A partir de los requerimientos del cliente, X identifico que
18
Funciones
Consultas
Consultas Estadísticas
CantidadPaquetesStock)
CantidadPaquete, CantidadPaquetesStock)
que corresponde a llenar los valores estimados del formulario Resumen del
Plan del Proyecto. Como el Ing. X está usando por primera vez este formulario
19
secciones. Sin embargo, X considerará datos según su criterio, que usará para
la estimación del Resumen del plan. En un uso continuado de PSP, X será capaz
Para el Tamaño del programa, es posible estimar Total Nuevo y Cambiado, por
20
Función de consultar sobre Cantidad en Stock de los productos = 30
El tamaño Máximo y mínimo deberá ser a criterio. En este caso +50 y -50
1112 min.
21
Figura 9: Plan del proyecto - Tiempo máximo y mínimo por fase
22
Ahora llega el momento de ir anotando los tiempos de las actividades que X
de planificación y estimación.
3) Diseño:
Continua con la elaboración del diseño de los distintos módulos que X había
registro.
23
4) Codificación:
vez un estándar, toma como guía uno general y corto, como el siguiente:
{********************************************* }
{ Programa: ___________________ }
{ Autor: _______________________ }
{ Fecha ______________________ }
{ Versión: ____________________ }
{ Descripción: _________________ }
{********************************************* }
Uso y reúso de una función. Describir al máximo el uso de una función. Ej.
{*************************************************************
****************** }
{ Función: ____Factorial______________________________ }
24
{ ingresado debe ser menor a 150, se debe comprobar este __ }
{*************************************************************
****************** }
Var
Begin
Resultado := 1;
Factorial := Resultado;
End;
var
25
Comentarios. Deben tener el siguiente formato y ser explícitos:
Aceptado en estándar:
// registros de alumnos?
No aceptado:
// es menor a num_alumno
{Esta sección del programa, obtendrá los contenidos del array notas, además
de las funciones, como por ej. si el resultado de una función es verdad o falso
blanco para facilitar la lectura. Se debe sangrar cada nivel begin end, estando
26
while ( contador_alumno < cantidad_alumno) do
begin
begin
mayor_nota = array_alumno[contador_alumno]
end
contador_alumno = contador_alumno + 1;
end
Fin Estándar.
Para cada codificación del diseño, X tiene que anotar el tiempo dedicado en el
27
Figura 13: Registro de tiempos de cada codificación
5) Revisión de Código:
que definir una lista personalizada de acuerdo a los errores que comete.
28
También necesita una clasificación de defectos, por lo que usará la que propone
el PSP.
Para cada defecto que se encuentra, se compara con el tipo de error y se registra
de Errores, esta última tabla será necesaria para completar el Resumen del Plan
del proyecto.
29
LISTA DE VERIFICACIÓN PARA REVISIÓN DE CÓDIGO.
30
Figura 15: Lista de verificación para revisión de código
31
ANÁLISIS DE ERRORES.
porcentajes nos indicarán donde es que tenemos más defectos, y sobre ello
32
Figura 17: Registro de tiempos de las revisiones
6) Compilación
33
Figura 18: Análisis de errores en fase Compilación
34
7) Pruebas:
El Ing. X llego a la parte de las pruebas, donde cada módulo se probará con
este caso solo se probará para las primeras 3 funciones, se probará que la
35
Figura 22: Registro de prueba Función “Eliminar Galleta”
36
Registrar en el Cuaderno de registro de tiempos el tiempo de las pruebas:
37
El cuaderno de registro de defectos debería tener la siguiente forma.
38
Figura 25: Registro de defectos
En este punto cada quien debe hacer un análisis de los defectos que comete, y
8) Resultados:
Analizando los resultados vemos que el Ing. X logro terminar el desarrollo del
el desarrollo hasta antes del 3 de mayo, por lo que tuvo un retraso de algo más
de una semana. Para el Ing. X, tal vez este retraso no significa mucho, pero no
sucede lo mismo en proyectos grandes donde implique más 10000 LOC, donde
39
En cuanto al Rendimiento que dio el resultado de 55.6%, advierte que aún
estamos eliminando pocos errores en las revisiones, por lo que significa más
tiempo en las pruebas. Se debe apuntar como objetivo obtener arriba del 75%.
El tiempo por fase nos indica el porcentaje que requerimos para cada fase dado
ciertas fases del desarrollo, estos datos son útiles para nuevas estimaciones.
9) Postmortem:
Resumen del plan del proyecto con los valores reales. Debemos registrar un
40
Defectos/KLOC = 1000 * Defectos Introducidos / LOC Nuevas = 1000 * 45 /
730 = 61.6
41
42
Figura 27: Plan del proyecto completo
10) Historiales:
43
Figura 28: Historial de tamaño de programas
Con este historial es posible calcular una parte de un nuevo programa. Por ej.
igualmente una inserción en una base de datos, esta vez con 10 datos, y los
44
Figura 29: Historial de tamaño de programas de referencia
clases de actualización por las mañanas, el Ing. deberá registrarlo en esta tabla.
programa y pasa clases, otro cuando solo programa, etc. De esta manera, antes
45
46
Figura 30: Registro de tiempos
47
De la primera semana que trabajo X, debería completar un resumen semanal
como sigue:
48
Una segunda semana con las mismas actividades sería:
Con esto queda completada una primera adopción del PSP del Ing. X. De esta
49
12) Estimación de nuevos proyectos
Ahora para cualquier otro pedido de software X, ya contara con datos reales
que registró en sus anteriores Resúmenes del Plan, permitiendo que el nuevo
continuación, veamos como completar una nueva estimación a partir del último
Resumen:
50
Figura 33: Estimación de nuevos proyectos
51
A partir de aquí comienza nuevamente todo el proceso anteriormente descrito,
5. Conclusiones.
Es posible aplicar PSP en cualquier etapa del ciclo de desarrollo del software.
52
6. Bibliografía.
Espejo Chavarría, A., Bayona Oré, S., & Pastor, C. (2016). Aseguramiento de la Calidad en el
Proceso de Desarrollo de Software utilizando CMMI, TSP y PSP. Lima.
Niño Manrique, Jhon Fredy (2012). Estudio Empírico de aplicación de PSP para el desarrollo
transversal de competencias de Gestión, en estudiantes de un programa de tecnología en
sistemas. Medellín
Salinas Erick, Cerpa Narciso & Rojas Pablo. (2010). Arquitectura orientada a servicios para
software de apoyo para el proceso personal de software. Chile.
Soto Duran, D., Acosta Gómez, J. & Vargas Agudelo, F. (2010). Aplicación del proceso personal de
software en profesional informático. Colombia.
Soto Duran, D., & Reyes Gamboa, A. (2010). INTRODUCIENDO PSP (PROCESOS PERSONAL DE
SOFTWARE) EN EL AULA. Colombia.
Larco Ampudia, Enrique Andres (2007). Uso del PSP (Personal Software Process) en el desarrollo
del software . Quito.
53