Está en la página 1de 29

PSP

Personal Software Process


Métricas de Software I
El mundo del software
l El mundo actual es ampliamente controlado
por el software.
Los sistemas militares mas avanzados
l
l Los sistemas bancarios
l Las fabricas son controladas
 por software

l El pago de los
 estacionamientos

l El celular que utilizamos


 a diario
Y de quien fue el error ?
l Casos:
l Sonda espacial a Marte
l
l Camionetas
l
l Equipo medico
l
l Error de procesadores Intel
Proyectos de Software
lMejora continua de proyectos de software

Fuente : Standish Group


Ejemplos de perdidas
l Proyecto del Aeropuerto de Denver (1998)
l $1,000,000 USD por cada día de retraso
l Ford Motor Co (2004)
l Sistema de Compras abandonado cuyo costo fue de
$400 millones de USD
l HP en 2004
l Sistema ERP con una perdida de $160 millones de USD
l Mc Donald’s en 2005
l Sistema de compras innovador abandonado despues de
invertir $170 millones de dolares.

Fuente : IEEE Spectrum


Por que fallan los proyectos?
l Los compromisos son irreales
l
l Son difíciles de controlar entre mas grandes sean
l
l La calidad empeora con el tamaño del software
l
l Los equipos de trabajo necesitan tener liderazgo y
motivación.

Fuente : IEEE Spectrum


Cada vez el software es mas
Grande

10,000,000
1,000,000
100,000
Size in KLOC

10,000
1,000
100
10
1
0
60

65

70

75

80

85

90

95

00
Ley de Moore.
19

19

19

19

19
19

19

19

20
2X en 18 meses
10X in 5 años
Years
Proyectos de Sw
Project Size People Time Success
Less than $750K 6 (Months)
6 Rate
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
l Hacer un proceso sencillo para realizar
alguna actividad y mejorarlo.
l En equipos de dos personas.
Soluciones
l Metodologias – Ciclos de Vida
l XP, Agile, Rational (UML), MSF
l Administración de Proyectos
l PMI
l Métodos de Estimación
l FP, Cocomo, CU, LOC, PROBE
l Modelos de Calidad para desarrollo
l CMMI, ISO SPICE, Moprosoft
l Modelos para pruebas de software
l TMM, TPI

l
Soluciones
l 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
l

PSP
Personal Process Software
l

l
lCreada en el SEI (Software Engineering Institute) en
Carnegie Mellon University.
l
lAutor : Dr. Watts Humprhey
Antecedentes
l 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.
l
l 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]
l
l 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.
l
l 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.
l 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]
l 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.
l 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]
l 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.
l
l 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.
l PSP se diseñó para ayudar a profesionales del software para
que utilicen constantemente prácticas sanas de ingeniería
de software.
l 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.
l 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] .
l
Principios de PSP
lLa calidad de un producto de software esta
 determinada por su peor componente.
lLa calidad de los componentes de un software están
determinados por el individuo que lo desarrollo.
lLa calidad de los componentes de un software están
determinadas por el proceso que se utilizo para
desarrollarlos.
l
lLa 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
lPermite estimar y planear el trabajo

lAlcanzar los compromisos establecidos


l
lJustificarel resistir presiones sin razón de
compromisos.
l
lHerramientas para entender nuestro desempeño
l
lProcesos para mejorar nuestro trabajo
l
Que es PSP
Un 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
PSP 33
Desarrollo
Desarrollo Cíclico
Cíclico Proceso Personal Cíclico

PSP
PSP 22
Revisión
Revisión del
del código
código Calidad Personal
Revisión del diseño
Revisión del diseño

PSP
PSP 11
Estimación
Estimación del
del Tamaño
Tamaño
Informe de pruebas Planificación Personal
Informe de pruebas

PSP
PSP 00 Medición Personal
Proceso
Proceso
Visión general de PSP
l PSP0 - estableces una línea base del
rendimiento mensurable.
l PSP1 - haces planes de tamaño, recursos y
calendario.
l PSP2 - Practicas gestión de defectos y
rendimiento.
l PSP3 - Amplias los métodos del PSP a
proyecto mayores.
Los 7 pasos de PSP
Proceso PSP 3
Personal Desarrollo Cíclico
Cíclico
PSP 2.1
Administración PSP 2 Formatos de Diseño
de Calidad Revisión de Código
Personal Revisión de Diseño
PSP 1.1
Proceso de PSP 1 Planeación de tareas
Planeación Estimación de tamaño Planeación de tiempos de
Personal Reporte de pruebas actividades
Estándar de tipos de defectos

Proceso de PSP 0
Medición Proceso actual PSP 0.1
Personal Registro de tiempo Estándar de Codificación
Registro de defectos Medición de Tamaño
Estándar de tipos de defectos Propuesta de mejora del proceso
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 fase
defectos encontrados en compilación y pruebas
Proporciona un informe resumen.
El punto de partida
l 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.
l
l Se pasa a PSP0.1 agregando un estándar
de código, mediciones de tamaño y el
denominado PIP (Process Improvement
Proposal).
l El PIP provee una manera estructurada
de registrar problemas, experiencias y
sugerencias para mejorar.
l PSP0.1 también mejora las mediciones
para contar separadamente métodos y
procedimientos.
l
PSP Nivel 0
Las fases de PSP 0
son :

Resultados de PSP 40

l La mayoria sub-estiman PSP 0


el esfuerzo = Retraso 20

l
l
0
-200% -100% 0% 100%
l 40

l Balanceado en la PSP 1
estimación 20

l
l 0
-200% -100% 0% 100%
l 40

l
PSP 2
l El error de estimación se 20

acerca a cero.
0
-200% -100% 0% 100%
Effort Estimation Accuracy
En más de 30,000 programas escritos en el curso, Fuente : SEI
Resultados de PSP
50
Compile and Test Time as % of

45
40
Development Time

35
30 Upper
25 Average
20 Lower
15
10
5
0
1 2 3 4 5 6 7 8 9 10
Program Number

Para 810 Ingenieros de Software, Fuente : SEI

También podría gustarte