Metricas Introducción
Transcript of Metricas Introducción
PSP Personal Software Process
Métricas de Software I
El mundo del software El mundo actual es ampliamente controlado
por el software. Los sistemas militares mas avanzados Los sistemas bancarios Las fabricas son controladas
por software El pago de los
estacionamientos El celular que utilizamos
a diario
Y de quien fue el error ?
Casos: Sonda espacial a Marte
Camionetas
Equipo medico
Error de procesadores Intel
Proyectos de Software
Fuente : Standish Group
Mejora continua de proyectos de software
Ejemplos de perdidas
Proyecto del Aeropuerto de Denver (1998) $1,000,000 USD por cada día de retraso
Ford Motor Co (2004) Sistema de Compras abandonado cuyo costo fue de $400
millones de USD HP en 2004
Sistema ERP con una perdida de $160 millones de USD Mc Donald’s en 2005
Sistema de compras innovador abandonado despues de invertir $170 millones de dolares.
Fuente : IEEE Spectrum
Por que fallan los proyectos?
Los compromisos son irreales
Son difíciles de controlar entre mas grandes sean
La calidad empeora con el tamaño del software
Los equipos de trabajo necesitan tener liderazgo y motivación.
Fuente : IEEE Spectrum
Cada vez el software es mas Grande
0
1
10
100
1,000
10,000
100,000
1,000,000
10,000,000
1960
1965
1970
1975
1980
1985
1990
1995
2000
Years
Siz
e in
KL
OC
Ley de Moore.2X en 18 meses10X in 5 años
Space
IBM
NT
TV
Trend
Proyectos de Sw
Project Size PeopleTime
(Months)Success
RateLess than $750K 6 6 55%$750K to $1.5M 12 9 33%$1.5M to $3M 25 12 25%$3M to $6M 40 18 15%$6M to $10M +250 +24 8%Over $10M +500 +36 0%
Es un problema de escala: Las practicas artesanales actuales no son utiles.
Fuente : SEI – Carnegie Mellon Univeristy.
La solución
Existe una bala de plata o un superman??
Ejercicio
Hacer un proceso sencillo para realizar alguna actividad y mejorarlo.
En equipos de dos personas.
Soluciones
Metodologias – Ciclos de Vida XP, Agile, Rational (UML), MSF
Administración de Proyectos PMI
Métodos de Estimación FP, Cocomo, CU, LOC, PROBE
Modelos de Calidad para desarrollo CMMI, ISO SPICE, Moprosoft
Modelos para pruebas de software TMM, TPI
Soluciones
Ingeniería de Software
La ingeniería de software difiere de la programación
tradicional en que se utilizan técnicas de ingeniería
para especificar, diseñar, instrumentar, validar y
mantener los productos de software dentro de la
calidad, tiempo y presupuesto establecidos.
IEEE - 1990
PSP
Personal Process Software
Creada en el SEI (Software Engineering Institute) en Carnegie Mellon University.
Autor : Dr. Watts Humprhey
Antecedentes Después de la segunda guerra mundial, la estrategia de calidad en la
mayoría de las organizaciones industriales se basaba casi por completo en las pruebas. Las empresas establecieron departamentos especiales de la calidad para encontrar y arreglar problemas después de la producción de los productos.
No fué sino hasta los años 70 y los años 80 que W. Edwards Deming y J.M. Juran convencieron a la industria estadounidense que se centrara en mejorar la forma en la que la gente hacía sus trabajos y desarrollaban sus procesos. [ DEMING; 82 ], [ JURAN 88]
En los siguientes años, este enfoque a los procesos de trabajo, ha sido responsable de las mejoras importantes en la calidad de automóviles, de la electrónica, o de casi cualquier otra clase de producto.
La estrategia tradicional que había de "prueba-y-arregla" ahora es reconocida como costosa, que desperdicia tiempo y que además es ineficaz para el trabajo de la ingeniería y de la fabricación.
Aunque la mayoría de las organizaciones industriales ahora han adoptado principios modernos de calidad, la comunidad del software ha continuado confiando en la prueba como el método principal de la administración de la calidad. Para el software, la primera medida principal en la dirección iniciada por Deming y Juran fué tomada por Michael Fagan cuando en 1976 él introdujo las inspecciones del software [ FAGAN; 86]
Usando inspecciones, las organizaciones han mejorado substancialmente la calidad del software. Otra medida significativa en la mejora de calidad del software fué tomada con la introducción del modelo de capacidad de madurez (CMM) en 1987.
El enfoque principal de CMM estaba en el sistema que administraba la ayuda que se le proporcionaba a los ingenieros de desarrollo. CMM ha tenido un efecto positivo en el funcionamiento de las organizaciones del software [ HERBSLEB; 97]
Otra medida significativa en la mejora de calidad del software fué tomada con la esencia del proceso personal del software (PSP) ya que PSP amplía el proceso de mejora a la gente que realiza el trabajo de desarrollo de software.
PSP se concentra en las prácticas de trabajo de los ingenieros en una forma individual. El principio detrás de PSP es ése, sirve para producir software de calidad, cada ingeniero debe trabajar en la necesidad de realizar trabajo de calidad.
PSP se diseñó para ayudar a profesionales del software para que utilicen constantemente prácticas sanas de ingeniería de software.
Asimismo les enseña a cómo planear y darle un seguimiento a su trabajo, a utilizar un proceso bien definido y medido, a establecer metas mesurables, y finalmente a la utilización del rastreo constante para alcanzar dichas metas.
PSP les demuestra a los ingenieros a cómo manejar la calidad desde el principio del trabajo, a cómo analizar los resultados de cada trabajo, y a cómo utilizar los resultados para mejorar el proceso del proyecto siguiente. [SEI; 2000] .
Principios de PSP La calidad de un producto de software esta
determinada por su peor componente. La calidad de los componentes de un software
están determinados por el individuo que lo desarrollo.
La calidad de los componentes de un software están determinadas por el proceso que se utilizo para desarrollarlos.
La clave para la calidad esta formada por las habilidades del desarrollador, compromiso y disciplina personal del proceso.
Beneficios que proporciona PSP
Un PSP maduro y estable Permite estimar y planear el trabajo
Alcanzar los compromisos establecidos
Justificar el resistir presiones sin razón de compromisos.
Herramientas para entender nuestro desempeño
Procesos para mejorar nuestro trabajo
Que es PSPUn proceso personal para el desarrollo de software
(puede ser utilizado para otras actividades). El PSP incluye:
• Pasos definidos• Formas• Estandarés
Proporciona un marco de trabajo de mediciones y análisis para entender y administrar nuestro trabajo personal.
Flujo del Proceso de PSP
Aprendiendo PSP
PSP 3Desarrollo Cíclico
PSP 3Desarrollo Cíclico
PSP 2Revisión del códigoRevisión del diseño
PSP 2Revisión del códigoRevisión del diseño
PSP 1Estimación del Tamaño
Informe de pruebas
PSP 1Estimación del Tamaño
Informe de pruebas
PSP 0Proceso
PSP 0Proceso
Medición Personal
Planificación Personal
Calidad Personal
Proceso Personal Cíclico
Visión general de PSP
PSP0 - estableces una línea base del rendimiento mensurable.
PSP1 - haces planes de tamaño, recursos y calendario.
PSP2 - Practicas gestión de defectos y rendimiento.
PSP3 - Amplias los métodos del PSP a proyecto mayores.
Los 7 pasos de PSP
PSP 0 Proceso actual
Registro de tiempo Registro de defectos Estándar de tipos de
defectos
PSP 0 Proceso actual
Registro de tiempo Registro de defectos Estándar de tipos de
defectos
PSP 0.1 Estándar de Codificación
Medición de Tamaño Propuesta de mejora del
proceso
PSP 0.1 Estándar de Codificación
Medición de Tamaño Propuesta de mejora del
proceso
PSP 1 Estimación
de tamaño Reporte de
pruebas
PSP 1 Estimación
de tamaño Reporte de
pruebas
PSP 1.1 Planeación de tareas
Planeación de tiempos de actividades
Estándar de tipos de defectos
PSP 1.1 Planeación de tareas
Planeación de tiempos de actividades
Estándar de tipos de defectos
PSP 2 Revisión de
Código Revisión de
Diseño
PSP 2 Revisión de
Código Revisión de
Diseño
PSP 2.1 Formatos
de Diseño
PSP 2.1 Formatos
de Diseño
PSP 3 Desarrollo
Cíclico
PSP 3 Desarrollo
Cíclico
Proceso de
Medición Personal
Proceso de Planeación
Perso
nal
Administración de Calida
d Perso
nal
Proceso
Personal
Cíclico
PSP Nivel 0
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 fasedefectos encontrados en compilación y pruebasProporciona un informe resumen.
El punto de partida
El paso inicial en PSP consiste en establecer una base que incluya mediciones y un formato de reportes. Esto permite medir el progreso y define los cimientos para mejorar. Esencialmente, PSP0 es el proceso habitual con el que los desarrolladores escriben software, mejorado para proveer mediciones.
Se pasa a PSP0.1 agregando un estándar de código, mediciones de tamaño y el denominado PIP (Process Improvement Proposal).
El PIP provee una manera estructurada de registrar problemas, experiencias y sugerencias para mejorar.
PSP0.1 también mejora las mediciones para contar separadamente métodos y procedimientos.
PSP Nivel 0 Las fases de PSP 0
son :Plan
Design
Code
Compile
Test
Postmortem
Requirements
Program andProject data
Resultados de PSP
En más de 30,000 programas escritos en el curso, Fuente : SEI
PSP 0
PSP 1
PSP 2
Effort Estimation Accuracy
100%0%-100%-200% 100%0%-100%-200%0
20
40
0
20
40
100%0%-100%-200% 100%0%-100%-200%0
20
40
0
20
40
100%0%-100%-200% 100%0%-100%-200%0
20
40
0
20
40
La mayoria sub-estiman el esfuerzo = Retraso
Balanceado en la estimación
El error de estimación se acerca a cero.
Resultados de PSP
Para 810 Ingenieros de Software, Fuente : SEI
0
5
10
15
20
25
30
35
40
45
50
1 2 3 4 5 6 7 8 9 10
Program Number
Co
mp
ile
and
Tes
t T
ime
as %
of
Dev
elo
pm
ent
Tim
e
Upper
Average
Lower