Implementación y Métricas Esenciales del Personal Software Process (PSP)
Clasificado en Diseño e Ingeniería
Escrito el en
español con un tamaño de 7,67 KB
1. Objetivos y Beneficios del Personal Software Process (PSP)
El Personal Software Process (PSP) tiene como objetivo principal ayudar a ser un mejor ingeniero de software. Para lograrlo, se deben cumplir los siguientes puntos:
- Lograr una disciplina de mejora continua en el proceso de desarrollo.
- Medir, estimar, planificar, seguir y controlar el proceso de desarrollo.
- Mejorar la calidad del proceso de desarrollo.
Ventajas de PSP
- Proceso de mejora a nivel personal, que ayuda a identificar los puntos fuertes y débiles de cada individuo.
- Permite tomar control del propio trabajo, incluyendo el control de tiempo y la gestión de errores.
2. Métricas de Tamaño: Formas de Medir Líneas de Código (LOCs)
Líneas Físicas
Es el método más simple, medido de acuerdo con el formato del código.
- Se ignoran los comentarios y las líneas en blanco, o se cuentan por separado.
- Las líneas que contienen código fuente y comentarios se cuentan tanto como líneas de código como líneas de comentarios.
- Se cuentan todas las líneas de código fuente en un programa.
- Es deseable contar también cada elemento del programa.
Líneas Lógicas
- Implica mayor complejidad, ya que se mide de acuerdo con el contenido lógico.
- Se necesita un estándar preciso y consistente para contar líneas lógicas.
Propuesta de PSP para el Conteo de LOCs
PSP propone un enfoque estandarizado:
- Utilizar un estándar de codificación y contar LOC físicas.
- Utilizar una línea física para cada línea lógica.
- Requiere que el estándar se utilice de forma cuidadosa.
- No se puede reformatear el código.
- Puede necesitar tratamientos especiales (p. ej., contar los
beginyendscomo líneas en blanco).
Tipos de Líneas
Las líneas de código se clasifican para el seguimiento:
- Nuevas
- Borradas
- Cambiadas
- Reutilizadas
Utilidad de las Métricas de LOC
¿Para qué se usan?
Ayudan en el seguimiento del desarrollo, permitiendo calcular medidas indirectas (como la productividad y la densidad de errores). Es el primer paso para mejorar las estimaciones de esfuerzo (unidades de tiempo trabajadas en un proyecto).
¿Para qué no usar?
No deben usarse para comparar el trabajo o los datos entre diferentes programadores, ya que cada programador codifica de una forma diferente.
3. Estimaciones y Diseño Conceptual en PSP
Objetivo del Diseño Conceptual en PSP
- El diseño establece un enfoque preliminar de diseño y los nombres de los objetos esperados y sus funciones.
- No consiste en realizar el diseño completo, sino en determinar los objetos que se necesitan y las funciones que van a realizar.
Criterios Proxy de PSP
Los criterios proxy son medidas indirectas utilizadas para la estimación de tamaño. Un proxy debe cumplir con lo siguiente:
- La medida de tamaño del proxy debería estar relacionada con el esfuerzo necesario para desarrollar el producto.
- El contenido de un proxy de un producto debe poderse contar automáticamente.
- El proxy debe ser fácil de visualizar al principio del proyecto.
- El proxy debe ser adaptable a las necesidades concretas de cada organización.
- El proxy debe ser sensible a las variaciones de implementación que afectan al coste o esfuerzo de desarrollo.
4. PSP 2.1: Criterios de Diseño y Verificación
Los objetivos de PSP 2.1 son:
- Ayudar a reducir el número de errores en los diseños.
- Proporcionar criterios para determinar si un diseño es completo.
- Proporcionar un marco consistente para verificar la calidad de los diseños.
Método de Diseño Exigido para PSP
El proceso de diseño sigue una secuencia estructurada:
- Requisitos iniciales
- Recopilar datos de los requisitos del usuario.
- Analizar los requisitos.
- Concebir un diseño de alto nivel.
- Refinar y documentar el diseño.
- Diseño completo
Actividades de Validación Concurrentes:
- Validar el diseño contra los requisitos (aplicable a todos los pasos intermedios).
- Obtener respuestas a las preguntas de requisitos (aplicable a todos los pasos intermedios).
Normalmente, se comienza un diseño definiendo el objetivo del producto, recopilando datos relevantes, produciendo un diseño general y rellenando los detalles. Estos pasos no son estrictamente secuenciales; son actividades paralelas y cooperativas. El diseño implica invención y requiere saltos de abstracción entre diferentes niveles.
5. Plan de Proyecto y Métricas Clave
Nivel de PSP de la Plantilla
La plantilla de plan de proyecto se asocia típicamente con PSP 0.1.
Métricas
Métricas de PSP 0.1
- Productividad (LOC / horas).
- Densidad de errores (errores / LOC).
- Porcentaje de tipo de línea.
- Número de PIP (Propuestas de Mejora del Proceso).
- Porcentaje de tiempo dedicado a las 3 actividades principales (Desarrollo, Pruebas, Gestión).
Métricas Adicionales de PSP 1
- Porcentaje de pruebas satisfactorias.
- B0 y B1 (coeficientes de regresión).
- Relación entre LOC proyectadas y LOC Nuevas y Cambiadas.
Fase Post Mórtem
Es la última fase del proceso de PSP. En esta etapa se completa la plantilla del plan de proyecto con el tiempo, los errores y el tamaño real del producto desarrollado.
6. Valor Añadido (PSP 1.1)
El concepto de Valor Añadido es una forma de evaluar el progreso del proyecto:
- Se establece un valor relativo para cada tarea y se obtiene ese valor solo cuando la tarea se completa.
- Se estiman las horas totales del proyecto y se les asigna a todas las tareas un valor añadido basado en su porcentaje estimado sobre este total.
- A las tareas parcialmente completas no se les asignan valores parciales. Si una tarea es grande, debe dividirse en subtareas.
Se mide con el porcentaje de esfuerzo respecto del total del proyecto a tarea terminada.
7. Ganancia en la Revisión de Código
Cálculo de la Ganancia de Revisiones
La ganancia de revisiones es el porcentaje de errores encontrados durante la revisión. Se puede calcular de dos formas: la ganancia por proceso o la ganancia por fases.
Ganancia por Fase
Mide la efectividad de una fase específica para eliminar errores:
Fórmula: Ganancia por Fase = (Errores eliminados por fase * 100) / (Errores eliminados + Errores pasados por alto)
Ganancia por Proceso
Mide la efectividad del proceso completo antes de la compilación:
Fórmula: Ganancia por Proceso = (Errores eliminados antes de compilar * 100) / (Errores eliminados antes de compilar + Errores eliminados en revisiones y pruebas)
Nota: Una forma simplificada de ver la Ganancia por Fase es: 100 x Errores Eliminados / (Errores Eliminados + Errores de Escape)