Catedra psp

Post on 14-Aug-2015

262 views 1 download

Transcript of Catedra psp

El#reto:#¿Cuál#es#la#dificultad?#

Agile?: Para reflexionar El cliente no siempre tiene el tiempo (reuniones, pruebas…) Liberación de versiones muy frecuentes = percepción de mala calidad Agile está dirigido por lo que el usuario quiere, dejando del lado algunos aspectos no funcionales Es casi imposible de realizar estimados de esfuerzo realistas para hacer un presupuesto Dificiles negociaciones entre comerciales y equipo de desarrollo Algunos omiten diseñar su trabajo de la mejor manera Puede incluir mucho re-trabajo (que tal un defect backlog)

Agile: Nuestro juego Quienes desarrollan los productos de software: el equipo de desarrollo --su disciplina, habilidades y compromiso.

Deberes del equipo:

–  Motivarse a sí mismo –  Negociar compromisos –  Controlar su avance y trabajo –  Producir con alta calidad y excelencia –  Confiar en su capacidad –  Ser disciplinados

Derechos del equipo –  Ser asignados a tareas dignas –  Tener la confianza y el respaldo de la gerencia

PSP no es… •  La solución para todo •  Una aproximación distinta al desarrollo de sw •  Un nuevo lenguaje ó paradigma de programación •  Algo para controlar tiempos •  No es un proceso de dllo Waterfall

PSP es más… •  Un proceso que permite hacer planeación y conocer el status de tus

actividades •  Un vehículo para medir y conocerte •  Una manera de mejorar tu calidad •  Enfocarse en el individuo

PSP: Proceso de Software Personal

Proceso definido para construir productos de alta calidad a tiempo y con el presupuesto establecido

¿de qué vamos a hablar?

•  Fundamentos y Conceptos básicos •  Medición de tamaño y estimación •  Construir y hacer seguimiento a planes de

proyecto •  Planeación y seguimiento a la calidad de

software •  Diseño de software •  Adaptación del proceso

Proceso definido: Definición

secuencia documentada de pasos para hacer un trabajo especifico. •  PSP: Proceso de software personal •  TSP: Team Software Process •  Patrón de proceso – operativo

Planes vs Procesos

Planes incluye pasos del proceso y otros elementos como recursos, roles, calendario,

presupuesto, metas, compromisos, riesgos

Fases del proceso

Elementos#del#

proceso#

Guiones#

Métricas#

Formularios#

Estándares#

Principios de medición

Métrica exacta

Métrica precisa

Para qué se usan las medidas? Evaluar – estimar – predecir

Elementos de estadística

Distribución: Conjunto de valores numéricos generados por un proceso común

I

Elementos de estadística

•  Correlación: Relación entre conjunto de datos •  Significancia: Probalidad de que dos conjuntos de datos tengan un alto grado

de correlación por casualidad •  Regresión lineal: Determina la línea a través de los datos que minimiza la

varianza de los datos con respecto a dicha línea •  Intervalo de predicción: Proporciona un rango alrededor de una estimación

hecha mediante mediante la regresión lineal •  Regresión múltiple: se usa cuando las estimaciones dependen de más de una

variable

Conceptos básicos

Fidelidad: Grado en el que los individuos siguen su propio proceso

Recolección de datos

•  Son recolectados por las personas •  La info debe ser precisa y relevante •  Uso de herramientas automatizadas •  útiles para hacer planes personales y precisos •  conjunto de datos es mejor que nada

Metricas

•  Postmortem •  Metricas de desempeño y combinadas •  Analizar los datos históricos

Analisis de datos: precisión de la estimación de tamaño y esfuerzo

Con qué frecuencia está lo estimado contra lo real dentro del 70% del intervalo de predicción? Hay tendencia a omitir partes del diseño conceptual? Que se puede hacer para mejorar las estimaciones? Se juzgan bien los tamaños? La productividad es estable? por que si y por que no?

Analisis de datos: yields Identificar si existe relación entre el yield y la tasa de revisión para las revisiones de diseño y código Los defectos se encuentran en las fases adecuadas? Se llevan a cabo las revisiones? Que apalancamientos se tienen de eliminación de defectos para las diversas combinaciones de las fases evaluación/falla y cómo se pueden mejorar?

Analisis de datos: defectos inyectados por fase

•  Qué tipos de defectos se encuentran con mayor frecuencia?

•  Qué tipos de defectos tardan más en encontrarse y en corregirse?

•  Analizar tendecnias por fase - densidad de defectos

el costo del retrabajo % del tiempo que tomará hacer una prueba libre de defectos Cuanto tiempo toman las pruebas? Tipos de defectos más costosos por corregir Tipos de defectos más encontrados en compilación y pruebas Tipo de defectos más encontrados en las pruebas y en el producto entregado

Mejora de procesos

•  Metas de mejora del desempeño basados en históricos

•  Registro de PIPs •  Monitorear los resultados del

desempeño evitando el bolstering y el clutching

Medición de tamaño y estimación

Por qué usar las métricas?

Para lograr consistencias, normalizar datos y mejorar estimaciones de tamaño y mejorar

los planes

Tipos de métricas

•  Absolutas o relativas •  Explicitas o derivadas •  Objetivas o subjetivas •  Dinamicas o estáticas •  Predictivas o explicativas

Criteros para la selección de una métrica

Relacionadas con el esfuerzo de desarrollo Contables automáticamente Adecuadas para la planeación temprana Se utilizan estandares de conteo

Conteo de tamaño

Added & Modified

Deleted

Added

Untouched

Modified

New Reusable

New Reusable

Reused

Qué medidas de tamaño podemos usar?

Qué retos obtenemos al estimar el tamaño?

La estimación es incierta Estimar es un proceso de aprendizaje Estimar es una habilidad Estimaciónes están sujetas a error Estimación a detalle

Peor aún… si vamos a estimar con las medidas de tamaño, las tenemos al inicio de la planeación?

Ejemplo: Estime la construcción de su casa

El problema

•  Usted quiere saber cuanto le cuesta •  Su constructor le dice que está relacionado

con el tamaño en metros cuadrados •  Cómo sabría ud el presupuesto?

La solución Su constructor probablemente tenga históricos de otras construcciones de acuerdo a las habitaciones

Sería más fácil para usted ahora?

Tamaños'rela+vos'

Tipo#de#habitacion#

Pequeña# Mediana# Grande#

Dormitorio# 25# 40# 70#

Baño# 5# 10# 15#

Sala# 40# 70# 120#

…#

I

Proxy: Una medida sustituta

•  Usar proxys en lugar de una métrica de tamaño •  La mayoría de las métricas de tamaño no están

disponibles durante la planeación •  Un proxy es una métrica sustituta que relaciona

el tamaño del producto con la funcionalidad planeada

•  El proxy proporciona un medio en la fase de planeación para juzgar el tamaño probable de un producto

Criterios para seleccionar un proxy

•  Correlaciona con el esfuerzo y los costos de desarrollo

•  Se debe poder contar directamente •  Facil de visualizar al inicio del proyecto •  Adaptable a las necesidades de cadad proyecto •  Sensible a las variaciones de implementación que

afectan el costo o el esfuerzo

Uso de tablas de tamaño relativo

•  Se utilizan para organizar los datos de los proxys, para que los datos históricos puedan ser utilizados al estimar el tamaño de partes nuevas semejantes

•  Para construirlas se usan dos metodos: – Método de ordenamiento – Método de la desviación

Procedimiento para estimar el tamaño y esfuerzo : PROBE

1.#Definir#el#diseño#conceptual#

2.#IdenMficar#y#darle#tamaño#a#los#proxies#

3.#EsMmar#los#otros#elementos#

EsMmar#el#tamaño#del#soQware#según#el#método#apropiado#

Calcular#intervalos#de#predicción#

WBS#(Work#Breakdown#Structure)#

Partes#y#tamaños#relaMvos#

Base,#reuMlizadas,#borradas,#A&M#

A# B# C# D#

A tener en cuenta…

•  Datos amontonados o agrupados

•  Puntos de datos extremos •  Productos sin precedentes •  Rango de datos

Práctica PSP0

Recordemos en PSP0…

Construir y dar seguimiento a planes de proyecto

Principios de planeación

Planear antes de comprometerse Deben participar quienes ejecutan

Basarse en historicos Planee y replanee

Típicamente en la planeación hacemos…

•  Un entendimiento de los requisitos •  Estimamos el tamaño •  Estimamos el esfuerzo •  Hacemos una lista de tareas •  Hacemos un calendario

Qué esperamos de un plan PSP?

Define#el#trabajo#(las#partes)#

Es#una#base#para#el#costo,#calendario#y#recursos#a#solicitar#para#un#proyecto#

Es#una#estructura#de#organización#para#el#trabajo#

Marco#para#la#obtención#de#recursos#

Registro#de#lo#que#inicialmente#fue#compromeMdo#

Orientan#a#las#personas#y#les#permite#hacer#seguimiento#a#su#trabajo#

Permiten#hacer#proyecciones#realistas#y#ser#más#producMvos#

Marco de planeación: Componentes de un plan

Tamaño#del#proyecto#y#Mempo#

Estructura:#secuencia#de#tareas#

Estado#del#proyecto:#Poder#medir#el#estado#y#proyectar#su#finalización#

Evaluación:Comparar#datos#reales#versus#lo#

esMmado#

Componentes#de#un#plan#

Marco de planificación

1.#Definir#los#requerimientos#

2.#Generar#un#diseño#conceptual#(Entender)#

3.#Generar#la#esMmación#del#tamaño#del#producto#

4.#Generar#la#esMmación#de#recursos#(Mempo)#

5.#Generar#el#calendario#

Statement#of#work#

WBS#

PROBE#

PROBE#

Recordemos los proxys: medidas sustitutas

Procedimiento para estimar el tamaño y esfuerzo : PROBE

1.#Definir#el#diseño#conceptual#

2.#IdenMficar#y#darle#tamaño#a#los#proxies#

3.#EsMmar#los#otros#elementos#

EsMmar#el#tamaño#del#soQware#según#el#método#apropiado#

Calcular#intervalos#de#predicción#

WBS#(Work#Breakdown#Structure)#

Partes#y#tamaños#relaMvos#

Base,#reuMlizadas,#borradas,#A&M#

A# B# C# D#

Relación entre tamaño y esfuerzo del software para la planificación

•  Correlación de tamaño con esfuerzo: los datos de tamaño son adecuados para la planificación si el valor de r2 > 0.5 y si el area de la cola en el calculo de la significancia es <= 0.05

•  Productividad: Se mide en tamaño x hora, es la relación del tamaño del producto con el tiempo que se toma en desarrollarlo

PROBE utiliza datos históricos y herramientas estadísticas para producir estimados

Tiempo de desarrollo=B0 + B1*Tamaño estimado proxy(E) E=BA+PA+M

Script#

Planeacion de tareas y calendario

Accesible# Claro#

Específico# Preciso#

CaracterísMcas#de#un#plan#de#proyecto#

Planes de calendario PSP

1.#Elija#un#periodo#de#Mempo#adecuado#

2.#Distribuya#el#Mempo#esMmado#disponible#para#tareas#a#lo#largo#de#la#duración#del#calendario#del#proyecto#

3.#Calcule#el#acumulado#de#horas#calendario#planeadas#hasta#el#final#del#periodo#del#

proyecto#

Semana'No.' Horas'planeadas'Horas'Planeadas'acumuladas' Nro'tareas'

1# 15# 15#1,2#

2# 15# 30#3,4,5#

3# 15# 45#6,7#

4# 15# 60#8,9#

5# 15# 75#10,11#

Planes de tareas PSP

1.#EsMmar#el#Mempo#de#tareas#en#horas#

2.#Calcular#la#suma#del#total#de#horas#

planeadas#

3.#Calcular#el#plazo#del#plan#en#que#cada#tarea#planea#ser#

terminada#

3.#Calcular#la#fecha#planeada#de#

finalización#del#proyecto#

Tareas#nro.# Tarea# Hrs#EsMmadas#

Horas#acumuladas#esMmadas# Semana#nro.#

1#Elemento#1#DLD# 8# 8# 1#

2#Elemento#1#DLDR# 4# 12# 1#

3#Elemento#1#CODE# 10# 22# 2#

4#Elemento#1#CR# 5# 27# 2#

5#Elemento#1#UT# 2# 29# 2#

6#Elemento#2#DLD# 9# 38# 3#

7#Elemento#2#DLDR# 4# 42# 3#

8#Elemento#2#Code# 12# 54# 4#

9#Elemento#2#CR# 5# 59# 4#

10#Elemento#2#UT# 3# 62# 5#11#PM# 1# 63# 5#

Seguimiento al calendario

Valor planeado PV: % respecto al total del tiempo planeado para el proyecto Valor ganado EV: PV aportado por una tarea cuando es completada. En ese momento se suma su valor PV al acumulado del EV

Seguimiento al calendario

EV supone que la tasa de finalización de las tareas será aproximadamente la misma que se lleva al momento. Si ese no es el caso, la proyección no será valida EV mide el progreso con respecto al plan, por lo que si el plan no es exacto el EV tampoco lo será EV asume con los recursos del proyecto son uniformes, es decir, no tiene en cuenta las variaciones que pueda traer cambios en el número de personal

Análisis del PV – EV: Herramienta gerencial

•  Si PV está por encima del EV, el proyecto va retrasado

•  Si el PV es igual que el EV el proyecto va a tiempo

•  Si el PV está por debajo del EV, el proyecto está adelantado

•  Se puede estimar la fecha de finalización caluclando el EV promedio y proyectar.

VG#y#VP#al#día#6?#Cuando#se#proyecta#terminaría#el#proyecto?#

Planeación y seguimiento a la calidad

Principios#de#

calidad#

Responsabilidad#personal#

Economía#de#la#calidad#

Calidad#del#producto#

Calidad#del#proceso#

Metricas#de

#calidad#

Yields#(%#defectos#removidos#antes#de#…)#

Fase#

Proceso#

Costo#de#calidad#

De#Fallas#

De#evaluación#

De#prevención#Tasas#de#revisión#

RaMos#fasemMempo#

Densidad#de#defectos#

Indice#de#calidad#del#proceso#

Apalancamiento#de#eliminacion#de#defectos#

Ver#formulas#

Metodos de calidad

Revisiones personales Inspecciones

Walkthroughs

Revisiones de código

Usar#Checklist#de#revisión#de#código:#categorías#más#importantes#y#personales#

Estrategia#de#revisión#de#código:#vaya#subiendo#de#

nivel#por#categoría#

Revisión#contra#un#estándar#de#codificación#

Revisiones de Diseño PSP

Checklist#de#revisión#de#diseño,#se#basa#en#datos#personales#y#lista#las#categorías#

de#defectos#más#importantes#encontrados#por#el#individuo#

Compruebe#que#la#lógica#implementa#correctamente#los#requerimientos##

Revise#asuntos#de#vulnerabilidad#y#seguridad#

Por qué de las revisiones?

Eficiencia:Las revisiones buscan iteraciones y entregables de alta calidad Realizarse antes de cualquier prueba unitaria Objetivo: Reducir el tiempo de pruebas

Diseño de software

Transforma#un#requisito#en#una#especificación#de#producto#realizable#

Maneja#la#complejidad#y#la#interacción#de#componentes#

Base#para#la#evaluación#

Emplear#prácMcas#de#diseño#que#

correspondan#a#las#necesidades#

Principios#del#diseño#

externam#estáMca#(herencia,#estructura#de#

clases)#

externam#dinámica#(servicios,#mensajes)#

internamestáMca#(atributos,#estructura#del#

programa,#lógica)#

internamdinámica#(máquina#de#estado)#

Estructura#de#la#

especificacion#

Estrategias del diseño

•  Progresiva, progressive •  Expansión funcional, functional enhancement •  Camino rápido, fast path •  Simulación, dummy

Calidad del diseño

Completitud Usabilidad

Implementación#

Diseño#detallado#

Diseño#de#alto#nivel#

Diseño#del#sistema#

Especificación#de#requisitos#

Estrategias: •  Progresiva •  Expansión funcional •  Camino rápido

Documentación del diseño: A quién le interesa? –  El individuo: para facilitar

implementación, verificación, prueba del programa

–  Los miembros del equipo: para permitir las inspecciones de diseño y la coordinación de diseño

–  Testers: para permitir la planeación de las pruebas.

–  Ejecutivos: Product Mgmt –  Documentadores y usuarios: para

que otros puedan entender lo que el producto hace y cómo funciona

Plantillas de diseño

planMlla#de#especificación#

operacional#(OST)#y#la#planMlla#de#especificación#funcional#(FST)#

planMlla#de#especificación#funcional#(FST)#

planMlla#de#especificación#de#estados#(SST)#

planMlla#de#especificación#lógica#(LST)#

Externa#

Dinámica#

Interna#

EstáMca#

Verificación del diseño Uso de estándares Metodos de verificación

Verificación con tabla de ejecución verificación con tabla de rastreo Verificación de máquina de estados Verificación de ciclos

Por que? : Mars climate 1998

Extensión y adaptación del proceso

•  Defina un proceso personal adaptado a su realidad

•  Evolucione con el proceso •  Uso de datos para descubrir sus debilidades

y fortalezas. •  Aprenda de otros y enseñe lo que sabe

Extensión y adaptación del proceso

Defina#un#proceso#personal#adaptado#a#su#realidad.#Evolucione#con#el#proceso##Uso#de#datos#para#descubrir#sus#debilidades#y#fortalezas.###Aprenda#de#otros#y#enseñe#lo#que#sabe#

Gracias!! http://about.me/danielfelipegil