Modelo PSP SEI Contenidos de la Clase Nro. 1

advertisement
Modelo PSP SEI
Personal Software Process
Gestión de Proyectos de Software - UNPA
Prof. Lic. Osiris Sofia
Contenidos de la Clase Nro. 1
Descripción de PSP
Aplicación práctica de PSP
2
1
Personal Software Process PSP
Tecnología desarrollada por Watts Humphrey que proporciona
disciplina al proceso individual de cada desarrollador.
Mejora la calidad del producto de software
Incrementa la credibilidad de lo planificado en:
• Tiempos
• Costos
Reduce el ciclo de vida de desarrollo
Conjunto estructurado de formularios, guías y
procedimientos
Aplicación de CMM al proceso personal
3
SW-CMM y PSP
CMM es desarrollado por el SEI
CMM enfoca a toda la organización y a
procesos a gran escala
PSP es una aplicación de CMM
PSP Es orientado al desarrollador
CMM es el “¿ Qué ?
PSP es el “Como”
4
2
CMM – Niveles
5
Enfoque de CMM
6
3
Objetivos de PSP
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
En general, PSP provee calidad y
productividad
El tiempo ahorrado en el testeo en base a una
mejor calidad ahorra entre un 20 a 40 % del
desarrollo
7
¿Qué es DISCIPLINA ?
Es un ejercicio o actividad que
desarrolla o mejora alguna habilidad.
8
4
Principios en que se basa PSP
Planificar con datos personales
El proceso de mejora es realizado a medida
de cada desarrollador
Solucionar los errores apenas se introducen
Prevenir defectos es más eficiente que
solucionarlos
La forma correcta es la más económica y
rápida forma de desarrollar
9
Principios en que se basa PSP
(continuación)
La calidad del software es definida por la
calidad de los componentes
La calidad de los componentes es definido
por el conocimiento, disciplina y compromiso
del desarrollador
El desarrollador debe medir, seguir y analizar
el proceso de software y comprometerse con
la calidad de su trabajo.
10
5
Costo y beneficio de aplicar PSP
Costos
El tiempo requerido para conocerlo
El costo emocional por mantener una disciplina
El ego del cambio en las costumbres
Beneficios
La idea de que ganamos en talento y habilidad
La estimulación por nuevas ideas
Una estructura de trabajo de mejoramiento personal
Tomar control del propio trabajo
La sensación de logro
Una base mejorada para el trabajo en grupo (TSP)
La convicción de que es lo mejor que se puede
hacer
11
Primera aproximación a PSP
7 pasos y 4 niveles de mejoramiento
PSP0 + PSP0.1
Métrica y estandarización
PSP1 + PSP1.1
Mejora la estimación y
planificación
PSP2 + PSP2.1
Incrementamos calidad
PSP 3
Repetición para escalar a
grandes desarrollos
12
6
Estructura evolutiva de PSP
13
Proyectos Organización
N2
Repetible
Administración de
Requisitos
Planificación del
Software
Seguimiento y
Control del
Software
Gestión de
Subcontratación del
Software
Garantía de Calidad
del Software
Gestión de
Configuración del
Software
N3
Definido
Enfoque del
proceso de Software
Definición del
software
Programa de
formación
Gestión de
integración del
software
Ingeniería de
productos software
Integración entre
módulos de
software
Revisión del
software
Calidad
Mejora
N4
Gestionado
Gestión
cuantitativa del
proceso
Gestión de
calidad del
software
CMM
N5
Optimizado
Prevención
de defectos
Gestión de la
tecnología
Gestión de
cambios en el
proceso
PSP
14
7
Esquema evolutivo de PSP
15
Resultados de alumnos en la
Carnegie Mellon University
Datos de un curso de 12 alumnos
realizado en el año 1994
Se analiza
Tiempo de compilación
Defectos encontrados en las pruebas
Productividad
16
8
Gráfico -Tiempo de compilación
17
Gráfico – Defectos encontrados
18
9
Gráfico - Productividad
19
Ingresando a la estructura de PSP
20
10
PSP 0
Establecer una base de información para medir el
progreso y establecer las bases para la mejora del
proceso de desarrollo.
PSP 0 provee:
• Estructura adecuada a pequeños desarrollos
• Procedimiento para medir estos procesos
• Una base para mejorar los procesos
Las tareas
• Definir el proceso de desarrollo actual PSP 0
• Registro del tiempo PSP 0
• Registro de defectos PSP 0
• Clasificación de defectos PSP 0
• Estandarización del proceso de desarrollo PSP 0.1
• Medición del código (LOC) PSP 0.1
• Propuesta de mejora del proceso PSP 0.1
21
PSP 0 -Definir el proceso de desarrollo actual
Debemos identificar las fases que utilizamos
para desarrollar software.
Requerimientos
Planificación
Desarrollo
Postmorten
Comparación y
Registro de datos
22
11
PSP 0 - Registro del tiempo
El registro de tiempos es necesario para
saber como distribuimos el tiempo en la
fase de desarrollo.
Nos servirá para armar nuestra base
datos de tiempos que utilizaremos para
mejorar futuras planificaciones
23
Formulario de Reg. De Tiempos
24
12
PSO – Registro de defectos
Permite registrar cada defecto encontrado y
corregido en el proceso de desarrollo. Nos
servirá como información para elaborar
nuestro propio proceso de depuración.
El registro del tiempo del proceso de
depuración de defectos nos permite conocer
nuestra distribución de tiempos.
25
Formulario de Registro de
Defectos
26
13
PSP 0.1 Clasificacion de defectos
27
PSP 0.1 – Estandarización del
proceso de desarrollo
Definir un estandar para el desarrollo de
software.
Encabezados
Uso y reuso de código
Identificación de variables
Comentarios
Procedimientos, funciones
Espacios en blancos
IF, Do While, Case, loop....
Etc.
28
14
PSP 0.1 – Medición del código
Durante el proceso de planeamiento de
software debemos definir el tamaño del
código a desarrollar expresado en LOC
Debemos definir un estandar para contar las
LOC
Lineas modificadas o eliminadas
Comentarios o espacios en blanco
Lineas con multiples sentencias
Declaraciones
Etiquetas
Lineas con multiples sentencias
29
PSP 0.1 - Propuesta de mejora del
proceso (PIP)
Provee un registro de problemas encontrados y mejoras
para el proceso
Describe los problemas encontrados en cada proyecto
Describe el impacto sobre el producto o proceso
Describe la propuesta para la mejora del proceso
Identificar el proceso a mejorar
Donde es posible, relacionar la propuesta al problema
Priorizar las propuestas de mejora
Comentarios del proyecto
Lecciones aprendidas
Recordar condiciones de pobre desempeño
30
15
PSP 0- Resumen del Plan del
Proyecto
El Resumen del Plan de Proyecto mantiene
los valores estimados y obtenidos del
proyecto.
LOC estimadas para el desarrollo
LOC reales desarrolladas
Estimacion de tiempo para cada fase
Tiempo real de cada fase
El número y % de defectos inyectados en cada
fase
El número y % de defectos removidos en cada
fase.
31
Formulario Resumen de Plan del
Proyecto- Project Plan Summary
32
16
Aplicación Práctica de PSP
1-Administrando el tiempo
2-Registrando como utilizamos el
tiempo
3-Planificación de productos o períodos
de tiempo
4-Planeamiento de producto
33
1-Administrando el tiempo
La lógica que rige la administración del tiempo
Como utilizo el tiempo esta semana será muy similar a la próxima.
Para hacer un plan realista debemos conocer como utilizamos
nuestro tiempo
Para comprobar que nuestro plan es realista debemos documentar
nuestra distribución del tiempo y ver que estamos haciendo
Para hacer un plan seguro debemos identificar en donde fallamos y
decidir como corregir esa situación
• Cuando desarrollamos debemos registrar el tiempo consumido
en cada fase de desarrollo
Para administrar nuesto tiempo debemos elaborar el plan y
cumplirlo
34
17
Beneficios de la Adm. de nuestro
tiempo
Al comienzo será dificil seguramente porque
el plan es incorrecto
Primer beneficio es que encontramos los
errores y podemos mejorarlos
Segundo beneficio es que comenzamos a
hacer lo que planeamos. (disciplina)
Aprender a hacer un plan es muy importante.
Aprender a seguirlo es más importante aún.
35
2- Registrando como utilizamos
el tiempo
Identificar y crear las categorías más
importantes
Registrar el tiempo de esas categorías
Utilizar una forma estandar
Utilizar un formulario (notebook)
36
18
Ejemplo de Registración del Tiempo
Alumno: Carlos Juncos
Fecha
09-Sep
10-Sep
Start
Stop
09:00
09:50
12:40
01:18
02:45
03:53
06:25
07:45
11:06
12:19
Fecha: 9/9
Interrupcion
10
6+5
Delta
Actividad
Comentario
C
U
Capitulo 1 y 2
X
2
Tarea 1, break, chat
X
1
50 Clase
Lectura
38 Prog.
Tarea 1
58 Prog.
Tarea 1
80 Lectura
62 Prog.
37
Manejando las interrupciones
Las interrupciones no solo realizan un
corte en nuestra tarea, lo más
importante es que interfieren en
nuestra concentración.
Un beneficio muy importante de
administrar el tiempo es poder controlar
las interrupciones.
38
19
Resumen de Administración del tiempo
Para administrar el tiempo hay que
hacer un plan
Para ello primero debemos conocer
como utilizamos nuestro tiempo
Comparar lo planeado con lo realizado
para mejorar el plan
Para registrar el tiempo identificar las
actividades más importantes
39
3-Planificación de productos o períodos de tiempo
Planificación de periodos de tiempo: es definir que
vamos a hacer en los próximos días , semanas,
meses, etc.
Planificación de producto es distribuir el tiempo para
hacer algo en particular, por ejemplo desarrollar un
módulo de un sistema
Nuestra vida esta regida por períodos de tiempo,
dias, semanas, meses, años.
Nuestro trabajo por el producto que generamos.
Para poder realizar un plan exitoso de nuestro
producto debemos planificar sobre nuestro tiempo.
40
20
Planificación de Periodos de
Tiempo
Para poder planificar nuestro tiempo
debemos conocer nuestro patron de
distribución de tiempos.
Para ello sumarizamos y obtenemos
tasas de promedio en base a las
actividades semanales.
Reg. Tiempos 1
Resumen
Semanal
Reg. Tiempos 2
Patron de
tiempos
41
Ejemplo de Resumen de Actividad Semanal
Fecha
Tarea
23-Sep
Clase
Programa
Examen
Lectura
Total
Fecha
D 15/9
L
0
50
M
M
226
28
147
62
69
114
114
50
38
S
Total
80
62
50
J
V
96
88
134
150
341
134
Tiempos y tasas
134
146
0
Numero de semanas
771
1
Semanas anteriores
Total
200
300
148
138
786
Promedio
200
300
148
138
786
Max
200
300
148
138
786
Min.
200
300
148
138
786
Semana actual
Total
350
641
282
284
0
1557
Promedio
175
320,5
141
142
0
778,5
Max
200
341
148
146
0
835
Min.
150
300
134
142
0
726
42
21
4.-Planeamiento de producto
El Plan de producto define las fechas de
entrega y finalización de cada fase
Nos ayuda a conocer el estado del trabajo
Nos ayuda a evaluar el progreso del trabajo
Un plan de producto para desarrollar software
en pequeña escala contiene:
El tamaño y las principales características del producto a
desarrollar
El tiempo estimado para hacer el trabajo
Una planificación sobre el tiempo
(Soft
a
mayor
escala
tendría:
asignación
de
responsabilidades, especificaciones por cada proceso,
condiciones de testeo y calidad, etc.
43
Formulario- Registro de tareas (Job Number Log)
Fecha
Tarea
Fecha
1
2
3
4
5
6
7
8
09-Sep
Descripcion:
09-Sep
Descripcion:
11-Sep
Descripcion:
11-Sep
Descripcion:
12-Sep
Descripcion:
13-Sep
Descripcion:
16-Sep
Descripcion:
17-Sep
Descripcion:
Proceso
Estimado
Actual
En el tiempo
Tiempo Unidad Tiempo Unidad Tasa Tiempo Unidad
Prog.
100
1
158
1
158
158
1
Codificar prog. 1
Lectura
50
2
80
2
40
80
2
Leer capitulo 1 y 2
Prog.
158
1
69
1
69
227
2
Codificar prog. 2
Lectura
40
1
28
1
28
108
3
Leer capitulo 3
Prog.
114
1
114
1
114
341
3
Codificar prog. 3
Lectura
60
1
118
1
118
226
4
Leer capitulo 4
Prog.
114
1
93
1
93
434
4
Codificar prog. 4
Prog.
109
1
95
1
95
529
5
Codificar prog. 5
Tasa Max Min
158 158 158
40
40
40
113,50
158
69
36
40
28
113,7
158
69
56,5
118
28
108,5
158
69
158
69
105.8
44
22
Completando el Registro de Tareas
Fecha
09-Sep
10-Sep
Tarea
Start
Stop
09:00
09:50
12:40
01:18
02:45
03:53
06:25
07:45
11:06
12:19
Fecha
Interrupcion
10
6+5
Delta
Actividad
Comentario
C
U
Capitulo 1 y 2
X
2
Tarea 1, break, chat
X
1
50 Clase
Lectura
38 Prog.
Tarea 1
58 Prog.
Tarea 1
80 Lectura
62 Prog.
Proceso
Estimado
Actual
En el tiempo
TiempoUnidad TiempoUnidad Tasa Tiempo Unidad Tasa Max Min
1
09-Sep Prog.
100
1 158
1 158
158
1 158 158 158
Descripcion: Codificar prog. 1
2
09-Sep Lectura
50
2
80
2
40
80
2
40 40 40
Descripcion: Leer capitulo 1 y 2
3
11-Sep Prog.
158
1
69
1
69
227
2 113,50 158 69
Descripcion: Codificar prog. 2
45
Acerca del Registro de Tareas (JNL)
La importancia de este formulario es
que nos permite acceder a gran
cantidad de información histórica sobre
la utilización de nuestros tiempos.
Conocer nuestros tiempos nos permitirá
realizar estimaciones seguras. Esta es la
base de realizar un Plan de Producto
realista.
46
23
Conclusiones sobre Plan de Producto
Fecha
Tarea
Fecha
1
2
3
4
5
6
7
8
Proceso
Estimado
Actual
En el tiempo
Tiempo Unidad Tiempo Unidad Tasa Tiempo Unidad
09-Sep Prog.
100
1
158
1 158
158
1
Descripcion: Codificar prog. 1
09-Sep Lectura
50
2
80
2
40
80
2
Descripcion: Leer capitulo 1 y 2
11-Sep Prog.
158
1
69
1
69
227
2
Descripcion: Codificar prog. 2
11-Sep Lectura
40
1
28
1
28
108
3
Descripcion: Leer capitulo 3
12-Sep Prog.
114
1
114
1 114
341
3
Descripcion: Codificar prog. 3
13-Sep Lectura
60
1
118
1 118
226
4
Descripcion: Leer capitulo 4
16-Sep Prog.
114
1
93
1
93
434
4
Descripcion: Codificar prog. 4
17-Sep Prog.
109
1
95
1
95
529
5
Descripcion: Codificar prog. 5
Tasa Max Min
158 158 158
40
40
40
113,50
158
69
36
40
28
113,7
158
69
56,5
118
28
108,5
158
69
158
69
105.8
•Nos permite conocer el tiempo utilizado sobre cada tipo de tarea.
•Nos permite estimar para la próxima semana con más exactitud. Por
ejemplo podremos planificar codificar 2 programas y leer 4 capítulos
nos llevaría 227 + 226 (minutos) . Aprox. 7,50 hs.
47
Práctico Nro. 1 – Elaborando un plan de
producto
El objetivo es elaborar un plan para
realizar tareas tomando como base los
tiempos de tareas anteriores.
Se familiarizarán con el uso del
formulario :
Registro de Tiempos
Resumen semanal
Plan de Producto
48
24
Descargar