Proceso Personal de Software

59

Transcript of Proceso Personal de Software

Page 1: Proceso Personal de Software
Page 2: Proceso Personal de Software

Proceso Personal de Software

2

REPORTE FINAL DEL PROYECTO DE INVESTIGACION

ALUMNO(A):

Román Miranda Elizabeth Ángela MATRICULA: 201214751 NOMBRE DEL PROYECTO:

“Desarrollo de sistemas con PSP y TSP” NOMBRE DEL ASESOR:

Luis Fernando Castro Careaga

Page 3: Proceso Personal de Software

ÍNDICE 1 Introducción ............................................................................... 2 2 Objetivos ................................................................................... 3 3 Definición del PSP ..................................................................... 4 4 Fases de proceso PSP .............................................................. 5

4.1 PSP0 ................................................................................................................. 5 4.2 PSP0.1 .............................................................................................................. 6 4.3 PSP1 ................................................................................................................. 7 4.4 PSP1.1 .............................................................................................................. 8 4.5 PSP2 ................................................................................................................. 9 4.6 PSP2.1 .............................................................................................................. 10

5 Tareas realizadas durante el proceso de PSP ......................... 11 5.1 Tarea 1 ............................................................................................................. 11 5.3 Tarea 3 .............................................................................................................. 14 5.4 Tarea 4 .............................................................................................................. 17 5.5 Tarea 5 .............................................................................................................. 20 5.6 Tarea 6 .............................................................................................................. 23 5.7 Tarea 7 .............................................................................................................. 24 5.8 Tarea 8 .............................................................................................................. 28

6 Reporte Intermedio .................................................................. 31 6.1 Objetivo del reporte intermedio ................... .................................................. 31 6.2 Guía del reporte intermedio ....................... .................................................... 31 6.3 Resumen del plan del reporte intermedio ........... ......................................... 32 6.4 Bitácora de registro de tiempo del reporte intermed io de PSP.................. 33 6.5 Análisis de la exactitud de la estimación ......... ............................................ 33 6.6 Análisis de la exactitud de la estimación de tiempo y de la productividad ..................................... ................................................................................. 35 6.7 Análisis de la distribución del tiempo ............ ............................................... 37 6.8 Análisis de los tiempos de corrección de defectos . ................................... 41 6.9 Análisis de defectos .............................. .......................................................... 41

7 Reporte final ............................................................................ 43 7.1 Objetivo del reporte final ........................ ........................................................ 43 7.2 Resumen del plan del reporte final ................ ............................................... 43 7.3 Bitácora de registro de tiempo del reporte final de PSP ............................. 44 7.4 Análisis de la exactitud de la estimación del tamañ o ................................. 44 7.5 Análisis de la exactitud de la estimación de tiempo ................................... 48 7.6 Análisis de defectos de rendimiento ............... .............................................. 52 7.7 Análisis de calidad ............................... ........................................................... 56

Page 4: Proceso Personal de Software

Proceso Personal de Software

2

1 Introducción En las últimas décadas, la ingeniería de software ha tomado una gran importancia, ya que esta ha crecido y se ha fortalecido de tal manera que es ahora representa fuertemente una actividad económica alrededor del mundo. Es por esto que la competencia entre empresas es muy fuerte, sobre todo por la globalización que éstas tienen que enfrentar, sin embargo, si la empresa incrementa su productividad, y da una mejoría a su eficiencia, significa que éstos están siguiendo patrones de productividad y calidad refiriéndose a la producción y utilización de software. Sin embargo existen factores que pueden deteriorar el manejo del software.

• Si la planeación y la estructura solo esta enfocada a resultados a corto plazo. • El desconocimiento de las características principales del desarrollo del software.

Es por esto que poco a poco los empresarios se han visto aun más obligados a solicitar que las tecnologías intervengan para crear programas que mejoren los procesos de sus negocios. Algunos ejemplos de estas aplicaciones alineadas a las necesidades de organización son: ERP (enterprise resource planning) GRP (Government Resource Planning). Es por eso que en 1998, Watts Humphrey desarrollo estándares o modelos de procesos para dar una mejoría en la calidad de los servicios de software en los aspectos organizacionales, y estos son: Personal Software Process (PSP) y Team Software Process (TSP). El PSP es un proceso personal para desarrollar software o para hacer cualquier otra actividad definida. El PSP incluye

• pasos definidos • formas • estándares

Proporciona un marco de trabajo de medición y análisis para caracterizar y administrar trabajo personal. También es un procedimiento definido que le ayuda a mejorar su desempeño personal.

Page 5: Proceso Personal de Software

Proceso Personal de Software

3

2 Objetivos

General. • Conocerá de manera formal un proceso de desarrollo software a nivel personal. • Será capaz de medir y analizar su desempeño a nivel personal. • Será capaz de proponer e implementar mejoras a su proceso de software.

Específicos.

• Conocerá de manera formal un proceso de desarrollo software a nivel personal. � Conocerá el Proceso Personal de Software. � Podrá caracterizar su proceso personal que hacía antes del PSP � Será capaz de usar métodos formales para hacer planeación � Será capaz de administrar la calidad de productos de

programación � Será capaz de mejorar su proceso de manera cuantitativa

• Será capaz de medir y analizar su desempeño a nivel personal � Será capaz de medir y analizar su desempeño de tiempo, tamaño

y defectos. � Será capaz de medir y analizar su desempeño de productividad. � Será capaz de medir y analizar su desempeño de la calidad de su

estimación de esfuerzo. • Será capaz de proponer e implementar mejoras a su proceso de software

� Será capaz de proponer mejoras para ajustar formas, procedimientos, guiones, o cualquier otro elemento del proceso.

� Será capaz de medir y analizar el impacto de las mejoras al proceso de software.

Page 6: Proceso Personal de Software

Proceso Personal de Software

4

3 Definición del PSP El PSP muestra cómo producir de forma regular software de alta calidad. Utilizando el PSP se obtienen datos que muestran la efectividad del trabajo y se identifican los puntos fuertes y las debilidades, además se practican habilidades y métodos que ingenieros del software van a desarrollar durante muchos años de pruebas errores. El PSP enseña a ingenieros y futuros ingenieros, cómo administrar la calidad de sus productos y cómo hace compromisos que ellos puedan cumplir. Puede ser empleado en muchas fases en el ciclo de desarrollo de programas pequeños, definición de requerimientos, documentación, pruebas y mantenimiento. El diseño de PSP se basa en los siguientes principios de planeación y de calidad.

• Cada ingeniero es esencialmente diferente; es decir, los ingenieros deben planear su trabajo y basar sus planes en sus propios datos personales.

• Para mejorar constantemente su funcionamiento, los ingenieros deben utilizar personalmente procesos bien definidos y medidos.

• Para desarrollar productos de calidad, los ingenieros deben sentirse personalmente comprometidos con la calidad de sus productos.

• Para hacer un trabajo de ingeniería de software de la manera correcta, los ingenieros deben planear de la mejor manera su trabajo antes de comenzarlo y deben utilizar un proceso bien definido para realizar de la mejor manera la planeación del trabajo.

• Para que los desarrolladores lleguen a entender su funcionamiento de manera personal, deben medir el tiempo que pasan en cada proceso, los defectos que inyectan y remueven de cada proyecto y finalmente medir los diferentes tamaños de los productos que llegan a producir.

Page 7: Proceso Personal de Software

Proceso Personal de Software

5

4 Fases de proceso PSP

4.1 PSP0 El PSP0 es un proceso, simple, definido. Se utilizan sus métodos actuales de diseño y desarrollo para producir un programa pequeño, se recolectan datos de tiempo y defectos. Este proceso se utiliza a lo largo de la tarea 1. El objetivo de PSP0 es

• Demostrar el uso de un proceso definido al escribir programas pequeños • Incorporar medidas básicas en el proceso de desarrollo de software • Requiere cambios mínimos a sus prácticas personales

El PSP0 tiene seis fases

• Planeación: Produce un plan para desarrollar el programa definido por los requerimientos.

• Diseño. Produce una especificación de diseño para el programa definido por los requerimientos.

• Codificación: Trasforma la especificación de diseño en instrucciones del lenguaje de programación.

• Compilación: Traduce las instrucciones del lenguaje de programación en código ejecutable.

• Pruebas: Verifica que el código ejecutable satisface los requerimientos. • Post mortem: Resume y analiza los datos del proyecto.

El PSP0 tiene cuatro formas

• Resumen de plan de proyecto PSP0: Resumen tiempo planeado y real y defectos por fase.

• Bitácora de registros de tiempo: Usada para registrar el tiempo. • Bitácora de registro de defectos: Usada para registrar defectos. • Estándar de tipo de defectos PSP0: Usada para definir el estándar de los tipos de

defectos.

Page 8: Proceso Personal de Software

Proceso Personal de Software

6

4.2 PSP0.1 El PSP0.1 tiene como finalidad relacionar la cantidad del producto generado con el esfuerzo empleado, calcular la productividad, normalizar los defectos. Este proceso se utiliza a lo largo de la tarea 2 y 3. El objetivo del PSP0.1 es

• Medir el tamaño de los programas que usted produce • Realizar la contabilización del tamaño de los programas que produzca • Realizar mediciones de tamaño exactas y precisas.

El PSP0.1 tiene los siguientes elementos nuevos

• La forma de propuesta de mejora de proceso(PIP) • Estándar de conteo (R1) • Estándar de codificación(R2)

El resumen de plan de proyecto ha sido expandido para incluir las mediciones de tamaño del software y la distribución del tiempo de planeación a lo largo de las fases.

Page 9: Proceso Personal de Software

Proceso Personal de Software

7

4.3 PSP1 El PSP1 tiene como finalidad establecer un procedimiento ordenado y repetible para el desarrollo de estimado de tiempo de software. Este proceso se utiliza a lo largo de la tarea 4. El PSP1 tiene los siguientes elementos nuevos

• Método PROBE de estimación de tamaño y plantilla de estimación de tamaño.

• Plantilla del reporte de prueba. El resumen del plan del proyecto ha sido expandido.

• Se ha agregado la sección Resumen con la productividad planeada, real y a la fecha.

• El resumen del Tamaño del Programa incluye tamaño planeado para todos los tipos de tamaño contabilizado.

• Ahora todos los valores en el Resumen de Tamaño del Programa son calculados excepto el Tamaño Total debajo de Actual.

Page 10: Proceso Personal de Software

Proceso Personal de Software

8

4.4 PSP1.1 El PSP1.1 tiene como finalidad introducir y practicar métodos para hacer planes de recursos y de calendario de trabajo, seguir su desempeño contra estos planes, juzgar las fechas probables de finalización del proyecto. Este proceso se utiliza a lo largo de tarea 5 y 6. Hay dos nuevos elementos de proceso.

• plantilla de planeación de tareas • plantilla de planeación de calendario de trabajo

Éstas son utilizadas por lo regular para proyectos que toman varios días o semanas. No son requeridas para los ejercicios de PSP. El resumen del plan de proyecto ha sido expandido para que incluya estadísticas básicas del proceso.

Page 11: Proceso Personal de Software

Proceso Personal de Software

9

4.5 PSP2 El PSP2 introduce la planeación de la calidad, es decir, estimar el número total de defectos que serán introducidos, estimar el número de defectos que serán introducidos y eliminados en cada fase del proceso, estimar la cantidad de tiempo necesaria para las revisiones de diseño y código y ajustar estos parámetros conforme sea necesario para asegurar un resultado de alta calidad. Este proceso se utiliza a lo largo de la tarea 7. El objetivo del PSP2 es

• Introducir las revisiones de diseño y código • Introducir los métodos para evaluar y mejorar la calidad de sus

revisiones Hay dos elementos nuevos del proceso.

• lista de verificación para la revisión de diseño • lista de verificación para la revisión de código

Las listas de verificación para las revisiones de diseño y código son descritas por separado. El PSP2 agrega dos nuevas capacidades al PSP

• revisiones de diseño y código • planeación de la calidad

El resumen del plan de proyecto PSP soporta estas dos capacidades nuevas.

Page 12: Proceso Personal de Software

Proceso Personal de Software

10

4.6 PSP2.1 El PSP2.1 tiene como finalidad introducir medidas adicionales para manejar la calidad del proceso, introducir las plantillas de diseño que proporcionan un marco de trabajo ordenado y formatos para registrar los diseños. Este proceso se utiliza a lo largo de la tarea 8, 9, 10. El PSP2.1 agrega los siguientes elementos del proceso:

• guión de revisión de diseño PSP2.1 • listas de verificación para la revisión del diseño PSP2.1 • plantilla de especificación operacional • plantilla de especificación funcional • plantilla de especificación de estados • plantilla de especificación lógica

Page 13: Proceso Personal de Software

Proceso Personal de Software

11

5 Tareas realizadas durante el proceso de PSP

Se elaboraron 8 tareas con las cuales se fue introduciendo paso a paso en las fases del Proceso Personal del Software. 5.1 Tarea 1

• Requerimientos del programa 1

Calcular la media y la desviación estándar de un conjunto de n números reales. El programa puede leer los n números reales del teclado, un archivo, o alguna otra fuente. Se debe usar una lista ligada, arreglo variable o estático, bases de datos u otra estructura(s) de datos si es necesario para almacenar n número para los cálculos Pruebe ampliamente el programa. Al menos en dos pruebas deben usar los datos en las columnas de la tabla 1. Los resultados esperados se proporcionan en la Tabla 2.

Columna 1 Columna 2 Tamaño Estimado

del Proxy Horas de

Desarrollo 160 15.0 591 69.9 114 6.5 229 22.4 230 28.4 270 65.9 128 19.4 1657 198.7 624 38.8 1503 138.2

Tabla 1

Prueba Valor Esperado Valor Real Media Des. Est. Media Des.Est. Tabla 1: Columna 1 550.6 572.03 Tabla 1: Columna 2 60.32 62.26

Tabla 2

• Media y Desviación Estándar

La media es el promedio de un conjunto de datos. El promedio es la métrica más común de ubicación para un conjunto de números. El promedio ubica el centro de los datos. La desviación estándar es una medida de la amplitud o dispersión de un conjunto de datos. A dispersión más amplia de los valores, más grande es la desviación estándar. Por ejemplo, digamos que tenemos dos listas separadas de resultados de examen de un grupo

Page 14: Proceso Personal de Software

Proceso Personal de Software

12

de 30 estudiantes; uno varia de 31% a 98%, el otro de 82% a 93%. La desviación estándar sería más grande de los resultados del primer examen. La fórmula para calcular la media es

n

xx

n

ii

med

∑== 1

La fórmula para la desviación estándar, σ es

( )

11

2

−=∑

=

n

xxn

imedi

σ

donde • Σ es el símbolo de la sumatoria • i es un índice para los n números • x es el dato en el conjunto • n es el número de elementos en el conjunto

• Uso de la media y la desviación estándar en el PSP La media y la desviación estándar son usadas para dividir sus datos de tamaño históricos en categorías y rangos de tamaño.

Page 15: Proceso Personal de Software

Proceso Personal de Software

13

5.2 Tarea 2

• Requerimientos del programa 2 Utilice el PSP0.1 para escribir un programa que cuente el total de LOC’s lógicas omitiendo los comentarios y las líneas en blanco. Producir e imprimir un solo conteo para el programa completo. Use el estándar de conteo de tamaño (R1) y el estándar de codificación (R2) definidos en sus reportes de tarea. Pruebe completamente el programa. Como mínimo, pruebe el programa contando el tamaño total del programa y sus partes en los programas 1 y 2. En la tabla 1 se ilustra un ejemplo. En la Tabla 1, considere la palabra parte siempre que aplique para su lenguaje: clase, función, procedimiento y otros.

Programa Número

Nombre Parte

Número de Elementos

Tamaño de la Parte

Tamaño Total

1 ABC 3 86 DEF 2 8 GHI 4 92 212

2 …

Tabla 3

Page 16: Proceso Personal de Software

Proceso Personal de Software

14

5.3 Tarea 3

• Requerimientos del programa 3

Usando el PSP1, escriba un programa para

• calcular los parámetros de la regresión lineal 0β y 1β y los coeficientes de

correlación yxr , y 2r para un conjunto de n parejas de datos,

• dado un estimado, kx calcule una predicción mejorada, ky donde

kk xy 10 ββ +=

• Mejore la lista ligada desarrollada en el programa 1 para almacenar los n datos del conjunto, donde cada registro almacene dos números reales.

• Pruebe el programa como mínimo, ejecute los siguientes cuatro casos de prueba. Prueba 1: Calcule los parámetros de regresión y coeficientes de correlación entre el tamaño estimado de proxy y el tamaño agregado y modificado real de la Tabla 1. Calcule el tamaño agregado y modificado planeado dado un tamaño estimado de proxy de kx = 386.

Prueba 2: Calcule los parámetros de regresión y coeficientes de correlación entre el tamaño estimado de Proxy y el tiempo real de desarrollo de la Tabla 1. Calcule el tiempo estimado dado un tamaño estimado de proxy kx = 386.

Prueba 3: Calcule los parámetros de regresión y los coeficientes de correlación entre el tamaño agregado y modificado planeado y el tamaño agregado y modificado real de la Tabla 1. Calcule el tamaño agregado y modificado planeado dado un tamaño estimado de proxy de kx = 386.

Prueba 4: Calcule los parámetros de regresión y coeficientes de correlación entre el tamaño agregado y modificado planeado y el tiempo real de desarrollo de la Tabla 1. Calcule el tiempo estimado dado un tamaño estimado de proxy de kx =

386. Tabla 1

Programa Número

Tamaño Estimado de

Proxy

Tamaño Agregado y Modificado

Planeado

Tamaño Agregado y

Modificado Real

Tiempo Real de Desarrollo

1 130 163 186 15.0 2 650 765 699 69.9 3 99 141 132 6.5 4 150 166 272 22.4 5 128 137 291 28.4 6 302 355 331 65.9 7 95 136 199 19.4 8 945 1206 1890 198.7 9 368 433 788 38.8 10 961 1130 1601 138.2

Page 17: Proceso Personal de Software

Proceso Personal de Software

15

Prueba Valores Esperados Valores Reales

0β 1β yxr , 2r ky 0β

yxr ,

2r

ky

Prueba 1 -22.55 1.7279 0.9545 0.9111 644.429 Prueba 2 -4.039 0.1681 0.9333 .8711 60.858 Prueba 3 -23.92 1.43097 .9631 .9276 528.4294 Prueba 4 -4.604 0.140164 .9480 .8988 49.4994

Tabla 4. Resultados esperados

La regresión lineal es una forma de ajustar una línea a un conjunto de datos de manera óptima. La línea de regresión lineal es la línea en donde la distancia de todos los puntos a la línea es minimizada. La ecuación de una línea puede escribirse como

xy 10 ββ +=

El método PROBE de PSP usa los parámetros de regresión para hacer las mejores predicciones de tamaño y tiempo basadas en sus datos históricos. Los métodos A y B de PROBE difieren sólo en los datos históricos (x valores) utilizados para calcular los parámetros de regresión. En el método A de PROBE, el tamaño estimado de Proxy es usado como los valores x. En el método B de PROBE, el tamaño agregado y modificado planeado es usado como los valores x. Los métodos PROBE para tamaño difieren sólo en los datos históricos (los valores y) utilizados para calcular los parámetros de regresión. Para predecir los estimados de tamaño mejorados, las LOC agregadas y modificadas reales son utilizadas como los valores y para predecir los estimados de tiempo, se utilizan los tiempos reales de desarrollo como los valores y. Datos Históricos Utilizados valores de x valores de y

Estimación de Tamaño

PROBE A Tamaño Estimado de Proxy

Tamaño Agregado y Modificado Real

PROBE B Tamaño Agregado y Modificado Planeado

Tamaño Agregado y Modificado Real

Estimación de Tiempo

PROBE A Tamaño Estimado de Proxy

Tiempo Real de Desarrollo

PROBE B Tamaño Agregado y Modificado Planeado

Tiempo Real de Desarrollo

Page 18: Proceso Personal de Software

Proceso Personal de Software

16

El cálculo de la correlación determina la relación entre dos conjuntos de datos numéricos. La correlación yxr , puede ir de +1 a -1.

• Los resultado cerca de +1 implican una fuerte relación positiva; cuando x se incrementa, así como lo hace y.

• Los resultados cerca de -1 implican una fuerte relación negativa; cuando x se incrementa, y se decrementa.

• Resultado cera de 0 implican que no hay relación

La correlación se usa en el PSP para juzgar la calidad de la relación lineal en varios datos históricos del proceso que son utilizados para la planeación. Por ejemplo, las relaciones entre el tamaño estimado de Proxy y el tiempo real o tamaño agregado y modificado planeado y tiempo el real. La correlación se usa en el PSP para juzgar la calidad de la relación lineal en varios datos históricos del proceso que son utilizados para la planeación. Para este propósito, examinaremos el valor de la relación rxy al cuadrado, o 2r

Si 2r es la relación es

.9 ≤ 2r predictiva, úsela con gran confianza

.7 ≤ 2r < .9 fuerte y puede usarse para planeación

.5 ≤ 2r < .7 adecuada para planeación pero úsese con cuidado

2r < .5 No es confiable para propósitos de planeación

Las formulas para calcular los parámetros de regresión 0β y

1β son

( )

( )2

1

2

11

med

n

ii

medmed

n

iii

nxx

ynxyx

=

=

avgavg xy 10 ββ −=

Las fórmula para calcular el coeficiente de correlación yxr , y 2r son

=

∑∑∑∑

∑∑∑

====

===

2

11

2

2

11

2

111,

n

ii

n

ii

n

ii

n

ii

n

ii

n

ii

n

iii

yx

yynxxn

yxyxn

r

rrr *2 =

Page 19: Proceso Personal de Software

Proceso Personal de Software

17

donde • Σ es el símbolo de la sumatoria • i es un índice para los n números • x y y son los dos conjuntos de datos en parejas • n es el número de elementos en cada uno de los conjuntos x y y • medx es la media de los valores x

• medy es la media de los valores y

5.4 Tarea 4

• Requerimientos del programa 4

Usando el PSP1.1, escriba un programa para calcular los rangos de tamaño relativos para los rangos muy pequeño, pequeño, mediano, grande y muy grande utilizando la desviación estándar. Pruebe ampliamente el programa. Pruebe el programa utilizando los datos proporcionado en las tablas 1 y 2. Los valores esperados se incluyen en la tabla 3.

Nombre de la Clase LOC de la Clase

Número de

Métodos each_char 18 3 String_read 18 3 Single_character 25 3 each_line 31 3 Single_char 37 3 String_builder 82 5 String_manager 82 4 list_clump 87 4 list_clip 89 4 String_decrementer 230 10 Char 85 3 Character 87 3 Converter 558 10

Tabla 5. Datos de LOC/Método

Page 20: Proceso Personal de Software

Proceso Personal de Software

18

Capítulo Páginas Prefacio 7 Capítulo 1 12 Capítulo 2 10 Capítulo 3 12 Capítulo 4 10 Capítulo 5 12 Capítulo 6 12 Capítulo 7 12 Capítulo 8 12 Capítulo 9 8 Apéndice A 8 Apéndice B 8 Apéndice C 20 Apéndice D 14 Apéndice E 18 Apéndice F 12

Tabla 6. Páginas/Capítulos

MP P M G MG LOC/Método 4.3953 8.5081 16.4696 31.8811 61.7137 Págs/Capítulo 6.3375 8.4393 11.2381 14.9650 19.9280

Tabla 4. Valores Esperados

En el PSP, las tablas de tamaño relativo se usan para dar un marco de trabajo al juzgar el tamaño de las partes nuevas en sus productos planeados. Por ejemplo, si sabe el tamaño de todas las partes previamente desarrolladas de cierto tipo, puede juzgarse mejor el tamaño probable de una parte nueva de ese tipo. El procedimiento de desviación estándar descrito en la siguiente sección permite balancear sus estimados tal que ellos seguirán más o menos una distribución normal.

El rango medio (M) es el área de -0,5 a +0.5 desviaciones estándar a partir de la media como se muestra en la Figura 1. Suponiendo que los datos siguen a una distribución normal, el número probable de partes que están dentro de ±0.5 des-viaciones estándar del valor promedio es 38.3%. Siguiendo una lógica similar, los porcentajes de área para los rangos son:

• 6.68 % deberían ser muy pequeños • 24.17% deberían ser pequeños • 38.2% deberían ser medianos • 24.17% deberían ser grandes • 6.68% deberían ser muy grandes

Page 21: Proceso Personal de Software

Proceso Personal de Software

19

M

P G

MP MG

-1-2 +10 +2-3-4 +3 +4

Figura 1. Rangos de desviaciones estándar

El método de estimación PROBE divide los datos históricos de tamaño en categorías que representan su tipo de trabajo. Una forma de hacer esto está basada en la desviación estándar. Primero, divida sus datos históricos en categorías funcionales que cada una tenga al menos 6 a 8 miembros (cálculo, texto y datos, por ejemplo). Para cada categoría, usted puede entonces calcular los rangos de tamaño relativo para MP, P, M, G, MG con el siguiente procedimiento.

Divida los tamaños de las partes por el número de elementos en cada parte para determinar el tamaño por elemento, si es aplicable. Por ejemplo, usted puede no tener datos suficientes sobre clases para desarrollar una tabla de tamaños relativos, pero usted tiene datos suficientes sobre métodos. En lugar de usar LOC totales por clase, usted puede usar LOC/método. 1. En seguida, usted necesitará transformar a log-normal los datos. Esto es necesario

debido a que usted no puede tener tamaños negativos y los valores más pequeños tienden a agruparse. La transformación log-normal de los datos le permite poner los datos alrededor de una media de cero. Para cada valor de tamaño, ix , tome el

logaritmo natural, ln, para dar ln(ix ).

2. Calcule el promedio de estos n valores logarítmicos:n

xprom

n

ii∑

== 1

)ln(.

3. Calcule la varianza de estos valores: ( )

)1(

)ln(var 1

2

2

−==∑

=

n

promxn

ii

σ .

4. Calcule la desviación estándar: var=σ .

5. Calcule los rangos logarítmicos:

ln(MP) = σ2−prom

ln(P) = σ−prom

ln(M) = prom

Page 22: Proceso Personal de Software

Proceso Personal de Software

20

ln(G) = σ+prom

ln(MG) = σ2+prom

6. Por ultimo, convierta los valores de logaritmo natural de regreso a su forma original calculando el antilogaritmo (calcule e a la potencia del valor logarítmico) para tener los puntos medios de los rangos de tamaño. MP = )ln(MPe P = )ln(Pe M = )ln(Me G = )ln(Ge

MG = )ln( MGe 5.5 Tarea 5

• Requerimientos del programa 5

Usando el PSP2 escriba un programa para integrar numéricamente una función usando la regla de Simpson. Use la distribución t como la función. Pruebe ampliamente el programa. Como mínimo, calcule los valores para la integral de la distribución t de los valores en la Tabla 1. Los valores esperados también se incluyen en la Tabla 1.

Tabla 1. Integración numérica con la regla de Simpson La integración numérica es el proceso de determinar el área “bajo” alguna función. La integración numérica calcula esta área dividiéndola en “barras” verticales y sumando sus áreas individuales. La clave es minimizar el error en esta aproximación.

Prueba Valor Esperado

Valor Real

x dof p 0 a x= 1.1 9 0.35006 0 a x= 1.1812 10 0.36757 0 a x= 2.750 30 0.49500

Page 23: Proceso Personal de Software

Proceso Personal de Software

21

La regla de Simpson puede ser usada para integrar una distribución estadística simétrica sobre un rango especificado (e.g., de 0 a algún valor x). 1. num_seg = número inicial de segmentos, un número par 2. W = x/num_seg, el ancho del segmento 3. E = el error aceptable, e.g., 0.00001 4. Calcule el valor de la integral con la siguiente ecuación.

( ) ( ) ( ) ( )

+++= ∑∑

=

=xFiWFiWFF

Wp

segnum

i

segnum

i

2_

...6,4,2

1_

...5,3,1

2403

5. Calcule de nuevo el valor de la integral, pero esta vez con num_seg = num_seg*2. Si la diferencia entre estos dos resultados es mayor que E, duplique num_seg y calcule de nuevo el valor de la integral. Continúe haciendo esto hasta que la diferencia entre los últimos dos resultados sea menor que E. El último resultado es la respuesta. La distribución t es una herramienta estadística muy importante. Se emplea en lugar de la distribución normal cuando los valores verdaderos de la varianza de la población no son conocidos y deben ser estimados de una muestra. La forma de la distribución normal es dependiente del número de puntos en su conjunto de datos. Conforme n es más grande, la distribución t se aproxima a la distribución normal. Para valores bajos, tiene una “joroba” central chaparra y “colas” gordas.

In tegra t ing a function

Integrando una función

Page 24: Proceso Personal de Software

Proceso Personal de Software

22

En el PSP la distribución t se usa de dos maneras. Usamos la distribución t para probar la significancía de una correlación. También se usa la distribución t para calcular el intervalo de predicción cuando se usan los métodos A y B de PROBE. Cuando se integra numéricamente la distribución t con la regla de Simpson, use la siguiente función

( )

( ) 2/12

2/1

1

2*

21

)(+−

+

Γ

+Γ=

dof

dof

xdof

dof

dof

xFπ

Donde • dof = grados de libertad • Γ es la función gama La función gama es )1()1()( −Γ−=Γ xxx , donde • 1)1( =Γ

• π=Γ )2/1(

Función de densidad de probabilidad t

-6 0 6

1

5

25

Page 25: Proceso Personal de Software

Proceso Personal de Software

23

5.6 Tarea 6

• Requerimientos del programa 6

Usando el PSP2.1 escriba un programa para encontrar el valor de x para el cual integrar la función t de 0 a x dando el resultado de p. Pruebe ampliamente el programa. Como mínimo, calcule los valores para la integral de la distribución t para los valores en la Tabla 1. Los valores esperados también se incluyen en la Tabla 1.

Prueba Valor Esperado

Valor Real

p dof x 0.20 6 0.55338 0.45 15 1.75305 0.495 4 4.60409

Tabla 1

Encuentre el valor de x para el cual al integrar la función t de 0 a x da el resultado de p. • Inicie con un valor de prueba para el valor del límite superior de 1 y calcule el valor

de la integración. • Compárelo con el valor deseado.

- si el resultado de la integración es demasiado bajo, tome un límite superior más grande

- si el resultado de la integración es demasiado grande, tome un límite superior más pequeño

Haga integraciones de prueba sucesivas hasta que el valor de la integración esté dentro de un error aceptable, digamos 0.00001.

Una forma de hacer este cálculo es como se describe a continuación.

Paso Acción

1 Inicie con un valor de prueba de x (por ejemplo, 1.0).

2. Haga una integral inicial y pruebe para ver si da el valor apropiado, si no, continúe.

3. Si es demasiado bajo, agregue d = 0.5 a la x de prueba.

4. Si es demasiado alto, reste d = 0.5 a la x de prueba.

5. Integre de Nuevo y pruebe si el resultado está dentro de un error aceptable, si no, continúe.

Page 26: Proceso Personal de Software

Proceso Personal de Software

24

6. Si es demasiado bajo, ajuste d, sume d a la x de prueba.

7. Si es demasiado alto, ajuste d; reste d de la x de prueba.

8. Recicle en 5.

Las reglas para ajustar d son estas. 1. En tanto que las pruebas para el error del resultado den el mismo signo del error, no

modifique la d. 2. Siempre que cambie el signo del error, divida d entre 2.

Note que este método de ajustar d podría resultar en un valor trivial de x = 0.

Para protegerse contra un problema con el método Simpson, asegúrese que el programa manejara un valor 0 de la función que está siendo integrada.

5.7 Tarea 7

• Requerimientos del programa 7

Usando el PSP2.1, escriba un programa para • calcular la correlación entre dos conjuntos de números x y y • calcular la significancia de esa correlación • calcular los parámetros de regresión lineal 0β y

1β para un conjunto de n parejas de

datos, • dado un estimado, kx calcule una predicción mejorada, ky donde

kk xy 10 ββ +=

• calcule el intervalo de predicción del 70% para ese estimado

La tabla 1 contiene datos históricos estimados y reales de 10 programas. Para el programa 11, el desarrollador ha estimado un tamaño de Proxy de 386 LOC.

Pruebe completamente el programa. Como mínimo, ejecute los siguientes cuatro casos de prueba. • Prueba 1: Realice los cálculos requeridos definidos antes usando el tamaño estimado de

proxy y el tamaño real agregado y modificado en la Tabla 1. Use un tamaño estimado de proxy de kx = 386 en producir el estimado mejorado y el intervalo de predicción.

• Prueba 2: Realice los cálculos requeridos definidos antes usando el tamaño estimado de proxy y el tiempo de desarrollo real en la Tabla 1. Use un tamaño estimado de proxy de

kx = 386 en producir el estimado mejorado y el intervalo de predicción.

• Prueba 3: Realice los cálculos requeridos definidos antes usando el tamaño estimado de proxy y el tamaño agregado y modificado real de sus programas 3-6. Use un kx =

tamaño estimado de proxy del programa 7. • Prueba 4: Realice los cálculos requeridos definidos antes usando el tamaño estimado de proxy y el tiempo de desarrollo real de sus programas 3-6. Use un kx =

tamaño estimado de proxy del programa 7.

Page 27: Proceso Personal de Software

Proceso Personal de Software

25

Numero de Programa

Tamaño Estimado de

Proxy

Tamaño Planeado Agregado y Modificado

Tamaño Real Agregado y Modificado

Horas Reales de Desarrollo

1 130 163 186 15.0 2 650 765 699 69.9 3 99 141 132 6.5 4 150 166 272 22.4 5 128 137 291 28.4 6 302 355 331 65.9 7 95 136 199 19.4 8 945 1206 1890 198.7 9 368 433 788 38.8 10 961 1130 1601 138.2

Tabla 7

Prueba Parámetro Valor Esperado Valor Real Prueba 1

yxr , 0.954496574

2r 0.91106371 área de la cola 1.77517E-05

0β -22.55253275

1β 1.727932426

ky 644.4293838

Rango 230.0017197 UPI (70%)- 874.4311035 LPI (70%) 414.427664

Prueba 2 yxr , 0.933306898

2r 0.871061766 área de la cola 7.98203E-05

0β -4.038881575

1β 0.16812665

ky 60.85800528

Rango 27.55764748 UPI (70%)- 88.41565276

LPI (70%) 33.3003578 Prueba 3

yxr , n/a

2r n/a área de la cola

0β n/a

1β n/a

ky n/a

Rango n/a UPI (70%)- n/a LPI (70%) n/a

Page 28: Proceso Personal de Software

Proceso Personal de Software

26

Prueba 4 yxr , n/a

2r n/a área de cola

0β n/a

1β n/a

ky n/a

Rango n/a UPI (70%)- n/a LPI (70%) n/a

La prueba de significancia determina la probabilidad que una correlación fuerte sea aleatoria y por lo tanto no sea de significancia práctica. Por ejemplo, un conjunto de datos con sólo dos puntos siempre tendrá una r2 = 1, pero esta correlación no es significativa.

El procedimiento para calcular la significancia de la correlación es el siguiente. 1. Calcule el valor de x, tal que

2,

,

1

2

yx

yx

r

nrx

−=

donde • yxr , es la correlación

• n es el número de puntos de datos 2. Encuentre la probabilidad p al integrar numéricamente la distribución t para n − 2

grados de libertad, de 0 a x.

Distribución t -Student

Page 29: Proceso Personal de Software

Proceso Personal de Software

27

3. Calcule el área de la cola como p*21− . (El área debajo de la curva de –x a +x es

dos veces el área 0 a x, o 2 * p; el área restante en las áreas de las colas superior e inferior es p*21− ).

Un área de cola ≤ 0.05 se considera como evidencia sólida que hay una relación. Un área de cola ≥ 0.2 indica una relación que es debida a la casualidad. El intervalo de predicción proporciona un rango probable alrededor del estimado. • un intervalo de predicción proporciona el rango dentro del cual el 70% de los

estimados caerán. • No es un pronóstico, solo una expectativa. • Sólo aplica si el estimado se comporta como los datos históricos. Se calcula a partir de los mismos datos usados para calcular los parámetros de regresión. Para calcular el intervalo de predicción, use los siguientes pasos. 1. Calcule el Rango para un intervalo del 70%. 2. Calcule el UPI como %)70(Rangoyk + .

3. Calcule el LPI como %)70(Rangoyk − .

La formula para calcular el rango de predicción es

( ) ( )( )∑

=

−++=

n

imedi

medk

xx

xx

ndoftRango

1

2

21

1,35.0 σ

donde • x son sus datos históricos • n es el número de puntos de datos históricos • t(0.35, dof) es el valor de x para una distribución t de n - 2 grados de libertad y p =

0.35

La formula para calcular el término de la desviación estándar es

( )∑=

−−

−=

n

iii xy

n 1

2102

1 ββσ

donde • x, y son sus datos históricos

• n es el número de puntos de datos históricos

Page 30: Proceso Personal de Software

Proceso Personal de Software

28

5.8 Tarea 8

• Requerimientos del programa 8

Usando el PSP2.1, escriba un programa para calcular los parámetros de estimación de regresión múltiple de tres variables (β0, β1, β2, β3). Haga un estimado a partir de las entradas proporcionadas por el usuario y determine los intervalos de predicción del 70% para el estimado.

Pruebe por completo el programa. Pruebe el programa usando los datos en la Tabla 1 como los datos históricos. Para las entradas del usuario, use 185 LOC de código agregado, 150 LOC de código reutilizado y 45 LOC de código modificado. Los valores esperados están incluidos en la tabla 2.

Prog. # LOC Agregadas

LOC Reutilizadas

LOC Modificadas

Horas

w x y z 1 345 65 23 31.4 2 168 18 18 14.6 3 94 0 0 6.4 4 187 185 98 28.3 5 621 87 10 42.1 6 255 0 0 15.3

Tabla 8

Tabla 2.

Prueba Parámetro Valor Esperado Valor Real Tabla 1 β0 0.56645 β1 0.06533 β2 0.008719 β3 0.15105 Horas

proyectadas 20.76

UPI (70%) 26.89 LPI (70%) 14.63

Page 31: Proceso Personal de Software

Proceso Personal de Software

29

Adicionalmente, pruebe el programa usando los datos en la Tabla 3, como los datos históricos. Para las entradas del usuario, use 650 LOC de código agregado, 3000 LOC de código reutilizado y 155 LOC de código modificado. Los valores esperados se incluyen en la Tabla 4.

Prog# LOC Agregadas

LOC Reutilizadas

LOC Modificadas

Horas de Desarrollo

w x y z 1 1,142 1,060 325 201 2 863 995 98 98 3 1,065 3,205 23 162 4 554 120 0 54 5 983 2,896 120 138 6 256 485 88 61

Suma 4,863 8,761 654 714

Tabla 9

Prueba Parámetro Valor Esperado Valor Real Tabla 3 β0 6.7013 β1 0.0784 β2 0.0150 β3 0.2461 Horas Proyectadas 140.9 UPI (70%) 179.7 LPI (70%) 102.1

Tabla 10

Suponga que usted tiene los siguientes datos de seis proyectos. • horas de desarrollo requeridas • LOC agregadas, reutilizadas y modificadas Suponga ahora que usted desea estimar las horas de un proyecto nuevo que usted juzga tomaría 650 LOC de código agregado, 3,000 LOC de código reutilizado y 155 LOC de código modificado. ¿Cómo estimaría las horas de desarrollo y el intervalo de predicción? La respuesta es la regresión múltiple. La regresión múltiple es necesaria cuando usted tiene datos combinados de diferentes categorías de trabajo y usted no puede separarlas. Usted tiene tiempos de desarrollo totales para cada programa, pero no tiene forma para determinar cuántas horas serán utilizadas en desarrollo nuevo, reutilización o modificación. Este es un problema común ya que por lo general es impráctico medir por separado el tiempo dedicado en tales categorías de trabajo de desarrollo. 1. Use la siguiente fórmula de regresión múltiple para calcular el valor proyectado. zk = β0 + wkβ1 + xkβ2 + ykβ3

Page 32: Proceso Personal de Software

Proceso Personal de Software

30

2. Encuentre los parámetros Beta resolviendo las siguientes ecuaciones lineales

simultáneas.

∑∑∑∑∑

∑∑∑∑∑

∑∑∑∑∑

∑∑∑∑

=====

=====

=====

====

=+++

=+++

=+++

=+++

n

iii

n

ii

n

iii

n

iii

n

ii

n

iii

n

iii

n

ii

n

iii

n

ii

n

iii

n

iii

n

iii

n

ii

n

ii

n

ii

n

ii

n

ii

n

ii

zyyyxywy

zxyxxxwx

zwywxwww

zyxwn

11

23

12

11

10

113

1

22

11

10

113

12

1

21

10

113

12

110

ββββ

ββββ

ββββ

ββββ

3. Resuelva estas ecuaciones con los métodos algebraicos estándar que son utilizados para las ecuaciones lineales simultáneas. El procedimiento de eliminación Gaussiana proporciona una forma estructurada para hacer esto. El intervalo de predicción de la regresión múltiple es determinado con las siguientes ecuaciones, usando dof = n-4 grados de libertad.

σ 2 =1

n− 4

zi − β0 − β1wi − β2xi − β3yi( )

i =1

n

∑2

( ) ( )( )

( )( )

( )( )∑∑∑

===−

−+

−+

−++=

n

imedi

medkn

imedi

medkn

imedi

medk

yy

yy

xx

xx

ww

ww

ndoftRango

1

2

2

1

2

2

1

2

21

1,35.0 σ

Page 33: Proceso Personal de Software

Proceso Personal de Software

31

6 Reporte Intermedio

6.1 Objetivo del reporte intermedio

El objetivo del reporte intermedio de PSP es establecer un línea de referencia del proceso contra la cual pueda medirse su mejora de proceso personal tanto durante en el curso de PSP como cuando use posteriormente el PSP para guiar su trabajo. El objetivo personal del curso PSP para Ingenieros I fue mostrarle cómo medir, estimar y planear su trabajo de manera exacta. El principal objetivo del curso PSP para Ingenieros II es mostrarle cómo generar de manera eficiente productos de alta calidad. Este reporte le apoyará brindándole una línea de referencia de datos del proceso personal contra la cual evalúe sus resultados del curso de PSP. Esto lo posibilitará a usted a

• analizar sus datos de tamaño, tiempo, • comprender la exactitud de sus estimados y planes • comprender dónde gasta su tiempo de desarrollo • comprender cómo los defectos afectan su tiempo de desarrollodefinir un proceso

para su uso personal 6.2 Guía del reporte intermedio

Fase # Propósito Guiar el análisis y la escritura del reporte intermedio de PSP

Criterio de Entrada • Programas 1 a 4 terminados • Copia de los requerimientos del reporte • Bitácora de registro de tiempo y forma del resumen del reporte

intermedio PSP 1 Planeación Estimar el tamaño del reporte

- número de párrafos de análisis - número de tablas de datos/ gráficas a crear

• Estimar el esfuerzo basándose en el tamaño del reporte • Registrar los estimados en la Forma de Resumen del Plan • Registre el tiempo de planeación en la Bitácora de tiempo

2 Desarrollo • Para cada pregunta de análisis - generar la gráfica o tabla de datos para análisis - analizar la gráfica/tabla y otros datos del proceso - escribir el párrafo del análisis

• Registrar el tiempo de desarrollo de reporte intermedio de PSP en

la Bitácora de Tiempo 3 Post Mortem • Medir el tamaño del reporte

- número de gráficas/tablas - número de párrafos de análisis

• Completar la forma de Resumen del Plan • Registrar el tiempo del post mortem en la Bitácora de tiempo

Page 34: Proceso Personal de Software

Proceso Personal de Software

32

Criterio de Salida • Reporte intermedio de PSP finalizado • Resumen del Plan finalizado • Bitácora de tiempo finalizado

6.3 Resumen del plan del reporte intermedio Estudiante Román Miranda Elizabeth

Ángela Fecha 24/abril/2010

Instructor Luís Fernando Castro Careaga

Datos de Tamaño Esfuerzo Estimado

Objeto Número

Planeado Número

Real Esf. Estim.

por Objeto Esfuerzo

Estimado Párrafos 25 65 40 1000 Graficas 15 8 10 150 Tablas 14 16 10 140 Total 54 60 1290

Datos de Esfuerzo Fase Tiempo Plan Tiempo Real Planeación 15 16.4 Desarrollo 1290 266.40 Postmortem 60 31 Total 1365 313.8

Page 35: Proceso Personal de Software

Proceso Personal de Software

33

6.4 Bitácora de registro de tiempo del reporte intermedio de PSP

Estudiante: Román Miranda Elizabeth Ángela Fecha: 24/Abril/2010 Fecha Inicio Alto Tiempo de

Interrupción Tiempo Delta

Fase Comentarios

24/04/2010 22:35:03 p.m.

10:51:28 p.m.

16.4 Planeación

Se realizó la planeación del reporte

24/04/2010 11:17:00 p.m.

11:52:00 p.m.

35.0

Desarrollo

Se inicio el desarrollo del reporte

25/04/2010 16:03:00 p.m.

18:50:00 p.m.

167.0 Desarrollo

Se continua con el desarrollo del reporte

28/04/2010 20:40:00 p.m.

21:28:05 p.m.

48.0 Desarrollo

Se termino con el desarrollo del reporte

29/04/2010 3:36:00 p.m.

4:07:00 p.m.

31.0 Post Mortem

Se realizó el postmortem

6.5 Análisis de la exactitud de la estimación ¿Cuáles son los tamaños reales promedio, máximo y mínimo de sus programas en LOC a la fecha?

Grafica 1. En esta grafica se representa los tamaños reales en LOC del programa 1 al 4.

Page 36: Proceso Personal de Software

Proceso Personal de Software

34

Excluyendo la tarea 1, ¿qué porcentaje por encima o por debajo del tamaño real estuvo el tamaño estimado (e.g., si estimado/real está en %, 85% esta 15% por debajo, 120% está 20% por encima) para cada programa? ¿Cuáles son los valores promedio, máximo y mínimo para éstos?

Programa Tamaño Estimado Tamaño Real Porcentaje 2 3 4

240

286 169.0779

279

326 237

15% por debajo

15% por debajo 15% por encima

Tabla 1. Representa el porcentaje por encima o por debajo del tamaño real en que estuvo el tamaño estimado Excluyendo la tarea 1, ¿cuál es el error total acumulado para los estimados tamaños (i.e, tamaño estimado total/tamaño real total)? Grafica 2. En esta grafica se representa el error para los tamaños estimados

Page 37: Proceso Personal de Software

Proceso Personal de Software

35

6.6 Análisis de la exactitud de la estimación de tiempo y de la productividad ¿Cuáles son los tiempos promedio, máximo y mínimo de sus tareas a la fecha?

Programa Tiempo 1 2 3 4

241.4 326.2 340.1 237.6

Tabla 2. Representa los tiempos promedio, máximo y mínimo de la tarea 1 a la 4. ¿Cuáles son los valores promedios, máximo y mínimo de productividad por programa a la fecha en LOC/hora?

Programa LOC/hora 1 2 3 4

60.65 51.31 57.51 22.47

Tabla 3. Representa los valores promedio, máximo y mínimo en LOC/hora Grafica 3. En esta grafica se representan los datos de la tabla 3

Page 38: Proceso Personal de Software

Proceso Personal de Software

36

¿Qué porcentaje por arriba o por abajo del tiempo real fue el tiempo estimado (e.g., si el estimado/actual está en %, 85% está 15% por debajo, 120% está 20% por arriba) para cada programa? ¿Cuáles son los valores promedio, máximo y mínimo de éstos?

Programa Tiempo Estimado Tiempo Real Porcentaje 1 2 3 4

170

740 246 130

241.4

326.2 340.1 237.6

12% por debajo

38% por encima 13% por debajo 10% por debajo

Tabla 4. Representa el porcentaje por encima o por debajo del tiempo real en que estuvo el tiempo estimado y los valores promedio, máximo y mínimo. ¿Cuál es el error total acumulado para los estimados de tiempo (i.e., tiempo estimado total/tiempo real total)? Grafica 4. En esta grafica se representa el error para los tiempos estimados

Page 39: Proceso Personal de Software

Proceso Personal de Software

37

6.7 Análisis de la distribución del tiempo

¿Qué porcentaje del tiempo dedicó en promedio en cada fase del proceso (planeación, diseño, codificación, compilación, pruebas, post mortem?

Programa LOC Actual Tiempo en fase Porcentaje

1 2 3 4

241.4

326.2 340.1 237.6

5.5

13.5 10.9 4.9

2.27 4.14 3.20 2.06

Tabla 5. Representa el porcentaje del tiempo dedicado en la fase de planeación.

Grafica 5. En esta grafica se representa los datos de la tabla 5.

Programa LOC Actual Tiempo en fase Porcentaje

1 2 3 4

241.4

326.2 340.1 237.6

105.53

97.45 120.00 83.88

43.71 29.87 35.28 35.30

Tabla 6. Representa el porcentaje del tiempo dedicado en la fase de diseño.

Page 40: Proceso Personal de Software

Proceso Personal de Software

38

Programa LOC Actual Tiempo en fase Porcentaje 1 2 3 4

241.4

326.2 340.1 237.6

48.22

88.53

88.40

71.65

19.97 27.14 25.99 30.15

Tabla 7. Representa el porcentaje del tiempo dedicado en la fase de codificación.

Programa LOC Actual Tiempo en fase Porcentaje 1 2 3 4

241.4

326.2 340.1 237.6

26.8

13.27

28.18

25.92

11.10 4.06 8.29 10.90

Tabla 8. Representa el porcentaje del tiempo dedicado en la fase de compilación

Programa LOC Actual Tiempo en fase Porcentaje 1 2 3 4

241.4

326.2 340.1 237.6

26.8

13.27

28.18

25.92

11.10 4.06 8.29 10.90

Tabla 9. Representa el porcentaje del tiempo dedicado en la fase de pruebas unitarias

Grafica 6. En esta grafica se representa los datos de la tabla 9.

Page 41: Proceso Personal de Software

Proceso Personal de Software

39

Tabla 10. Representa el porcentaje del tiempo dedicado en la fase de post mortem

Grafica 7. En la grafica se representa los datos de la tabla 10 ¿En diseño y código tomados juntos?

Tabla 11. Representa el porcentaje del tiempo dedicado en la fase de diseño y código

Programa LOC Actual Tiempo en fase Porcentaje 1 2 3 4

241.4

326.2 340.1 237.6

26.58

42.05

49.58

39.43

11.01 12.89 14.57 16.60

Programa LOC Actual Tiempo en fase Porcentaje 1 2 3 4

241.4

326.2 340.1 237.6

153.75

185.98

208.40

155.53

63.69 57.01 61.27 65.46

Page 42: Proceso Personal de Software

Proceso Personal de Software

40

¿En compilación y pruebas tomadas juntos?

Tabla 12. Representa el porcentaje del tiempo dedicado en la fase de compilación y pruebas

Grafica 8. En la grafica se representa los datos de la tabla 12 Si usted dedica 1000 horas escribiendo programas parecidos a aquellos del curso. ¿Cuánto tiempo es probable que dedique a diseño? R.- 410 minutos ¿Cuánto tiempo es probable que dedique a codificación? R.- 306 minutos ¿Cuánto tiempo es probable que dedique a pruebas unitarias? R.- 284 minutos ¿Cuántas líneas de código es probable que escriba en ese tiempo? R.- 1168.46 LOC ¿Cuántos defectos es probable encontrar en las pruebas unitarias? R.- 8 defectos

Programa LOC Actual Tiempo en fase Porcentaje 1 2 3 4

241.4

326.2 340.1 237.6

55.58

84.67

71.28

37.74

23.02 25.96 20.96 15.88

Page 43: Proceso Personal de Software

Proceso Personal de Software

41

6.8 Análisis de los tiempos de corrección de defectos Analice los tiempos de corrección de defectos, basándose en las fases de introducción y eliminación. ¿Qué categoría tuvo el promedio de tiempo de corrección más grande? La categoría de defectos inyectados en código y removidos en pruebas

Tabla 13.- Representa el promedio de tiempo de corrección más grande ¿Qué categoría tuvo el tiempo de corrección más grande? La categoría de defectos inyectados en código y removidos en compilación

Tabla 14.- Representa el tiempo de corrección más grande

6.9 Análisis de defectos ¿Cuáles son los valores promedio, máximo y mínimo para el total de defectos por programa a la fecha? Tabla 15.- Representa el promedio, máximo y mínimo para el total de defectos por programa ¿Cuáles son los promedio, máximo y mínimo para la densidad de defectos en compilación y pruebas unitarias por programa a la fecha?

Tot. Fix time Tot. defects Avg. fix time 9 1 9

Tot. Fix time Tot. defects Avg. fix time 85 13 7

No. Programa Tot. Defectos 1 2 3 4

9 7 12 3

Page 44: Proceso Personal de Software

Proceso Personal de Software

42

Tabla 16.- Representa el promedio, máximo y mínimo para la densidad de defectos en compilación y pruebas unitarias. ¿Qué tipo de defecto contabiliza para la mayoría del tiempo dedicado en compilación? Defecto 80.- Función (Lógico, punteros, bucles, recursión, defectos de función) ¿Qué tipo de defecto contabiliza para la mayoría del tiempo dedicado en pruebas? Defecto 100.- Entorno (Diseño, compilación, pruebas, problemas del sistema de soporte) ¿En cuál fase fue cada uno de los tipos de defectos introducidos con mayor frecuencia? Los tipos de defectos que se introducen con mayor frecuencia son los siguientes: 1.- 80 (Función), en la fase que se introduce es en compilación. 2.-60(chequeo), en la fase que se introduce es en codificación. 3.- 40(Asignación), en la fase que se introduce es en codificación.

No. Programa Densidad de defectos en compilación

Densidad de defectos en pruebas

unitarias 1 2 3 4

5 1 5 2

20 4 15 22

Page 45: Proceso Personal de Software

Proceso Personal de Software

43

7 Reporte final 7.1 Objetivo del reporte final

Los objetivos de esta tarea son que usted • producir un reporte sobre lo que usted ha aprendido de este curso • comprender su desempeño actual en el desarrollo de software y sus áreas de

mejora de más alta prioridad • entender cómo y por qué su desempeño cambió entre el reporte intermedio y el

reporte final • ganar experiencia en establecer metas medibles y definir las acciones de mejora

correspondientes • aprender a actualizar un proceso personal

7.2 Resumen del plan del reporte final Estudiante Román Miranda Elizabeth A. Fecha 08-11-2010

Instructor Luís Fernando Castro Careaga

Datos de Tamaño Estimado de Esfuerzo

Objeto Número Planeado

Número Real

Esf. Estim. por Objeto

Esfuerzo Estimado

Párrafos 30 44 40 1200 Graficas 27 16 20 540 Tablas 7 21 15 105 Total 1845

Page 46: Proceso Personal de Software

Proceso Personal de Software

44

Datos de Esfuerzo Fase Tiempo Plan Tiempo Real Plan 25 26 Desarrollo 360 226 Post mortem

50 39

Total 435 291 7.3 Bitácora de registro de tiempo del reporte final de PSP

Estudiante: Román Miranda Elizabeth Ángela Fecha: 08-11-2010 Fecha Inicio Alto Tiempo de

Interrupción Tiempo Delta

Fase Comentarios

08-11-2010 9:29 9:55 26 Planeación 11-11-2010 8:32 9:42 1:10 Desarrollo 22-11-2010 8:40 9:26 46 Desarrollo 24-11-2010 7:26 8:49 1:23 Desarrollo 28-11-2010 9:50 10:17 27 Desarrollo 28-11-2010 10:20 10:59 39 Postmortem

7.4 Análisis de la exactitud de la estimación del tamaño

Compare el reporte intermedio línea base para la exactitud de estimación de tamaño con los programas posteriores al reporte. ¿Cuánto cambió su exactitud de estimación de tamaño? ¿Por qué?

Page 47: Proceso Personal de Software

Proceso Personal de Software

45

El error absoluto vario en todas las tareas, como podemos ver en la grafica 1, iniciamos con un 0 %, nos vamos en picada a partir de la tarea 4A con -47.36 a la tarea7A con –100, valores subestimados. Tabla 17.- Representa el error absoluto en las tareas

Size Estimating Error

-120

-100

-80

-60

-40

-20

0

20

40

1 2 3 4 5 6 7 8 9 10

Program Number

%

Grafica 9. En la grafica se representa los datos de la tabla 17

¿Qué tan frecuentemente estuvo mi tamaño real del programa dentro de mi intervalo estadístico de predicción del 70%?

Tarea 5 con el método B se tiene que se esta dentro del intervalo estadistico

Program Size (LOC) Base(B) 0 0 Deleted(D) 0 0 Modified(M) 0 0 Added(A) 156 149 Reused(R) 0 0 0

No. Programa Porcentaje 1 2 3 4 5 6 7 8

0% 16.25% 13.99% -47.36%

0% -77.00% -100%

0

Page 48: Proceso Personal de Software

Proceso Personal de Software

46

Total N&C (N) 156 149 149 Total LOC(T) 156 149 149 Total New Reused 125 149 149 Total Object LOC(E) 125 149 149 UPI (70%) 483 LPI (70%) 0

Tarea 6 con el método A se tiene que se esta fuera del intervalo estadistico

Program Size (LOC) Base(B) 139 0 Deleted(D) 12 0 Modified(M) 0 0 Added(A) 140 94 Reused(R) 139 129 129 Total N&C (N) 140 94 243 Total LOC(T) 406 223 223 Total New Reused 0 0 149 Total Object LOC(E) 100 84 233 UPI (70%) 160 LPI (70%) 120

Tarea 7 con el método A se tiene que se esta fuera del intervalo estadistico

Program Size (LOC) Base(B) 325 0 Deleted(D) 0 0 Modified(M) 0 0 Added(A) 160 381 Reused(R) 325 325 454 Total N&C (N) 160 381 624 Total LOC(T) 810 706 929 Total New Reused 0 0 149 Total Object LOC(E) 232 381 614 UPI (70%) 201 LPI (70%) 118

Solo se uso el intervalo de preedición en la tarea 5A, no se puede decir mas de las tareas anteriores por que se uso el método C para estimación de tamaño.

¿Tengo una tendencia a agregar/no considerar objetos completos?

No los objetos que se estimaron fueron los necesarios y suficientes para realizar las tareas

Page 49: Proceso Personal de Software

Proceso Personal de Software

47

¿Tengo una tendencia a juzgar equivocadamente el tamaño relativo de objetos?

La estimacion de las lineas de codigo nos da que el valor real siempre se le agregan mas lineas de codigo.

Tabla 18.- Representa los objetos donde se hizo una mala estimación

¿Necesito calcular el rango de tamaño relativo usando mis datos de objeto históricos? ¿Puedo?

No. Programa Objeto Estimado Real 3

4

4

5

5

5

5

5

5

6

6

6

7

7

7

Tarea 3

DesplegarResultado

Tarea4

Tarea5

leerLimite

ReglaSimpson

Funcion

funcionGama

desplegarResultado

Tarea7

ajustaLimite

desplegarResultado

UPILPI

desplegarResultado

Tarea8

25

12

20

15

20

60

10

10

10

30

50

20

180

12

40

43

14

44

23

21

67

16

16

6

70

7

7

290

26

65

Page 50: Proceso Personal de Software

Proceso Personal de Software

48

Tarea 2

Se estimaron 240 LOC’S con la ayuda del historia se calcularon 326 LOC´S el valor real fue 279

Tarea 3

Se estimaron 286 LOC´S con la ayuda del historial se calcularon 340, el valor real fue

326

Tarea 4

Se estimaron 169 LOC´S con la ayuda del historial se calcularon 237, el valor real fue 89

Tarea 5

Se estimaron 125 LOC’S con la ayuda del historial se calcularon 348, el valor real fue 149

Como se puede observar los datos históricos nos mostraron que había una tendencia a subestimar el tamaño de los programas estos datos nos ayudaran a estimar mejor

¿Cómo puedo modificar mi proceso para cumplir esa meta? No es un cambio, sino practicar el proceso 7.5 Análisis de la exactitud de la estimación de tiempo

Compare el reporte intermedio línea base para la exactitud de estimación de tiempo con los programas posteriores al reporte. ¿Cuánto cambió su exactitud de estimación de tiempo? ¿Por qué?

En la grafica 10 se puede observar como en las ultimas tareas de esta fase del proceso se concentra la tendencia más cerca del 0% de error en la estimación del tiempo lo que no sucedió en las primeras tareas que nos indica malas estimaciones de tiempo.

Tarea Estimado Real Error % 2 740 326 -55 3 246 340 38 4 130 237 83 5 485 348 -28 6 314 306 -2.56 7 320 356 11.48

Tabla 19.- Representa el error al estimar el tiempo para cada programa

Page 51: Proceso Personal de Software

Proceso Personal de Software

49

Time Estimating Error

-80

-60

-40

-20

0

20

40

60

80

100

1 2 3 4 5 6 7 8 9 10

Program Number

%

Grafica 10.- La grafica representa los datos de la tabla 18

¿Qué tan frecuentemente estuvo mi tiempo de desarrollo real dentro de mi intervalo estadístico de predicción del 70%?

Tarea 5 con el metodo B se tiene que se esta afuera del intervalo estadistico Time in Phase (min.) Planning 20 10 10 2.8 Design 153 119 119 34.2 Design Review 40 29 29 8.3 Code 152 72 72 20.6 Code Review 40 32 32 9.3 Compile 20 13 13 3.8 Test 20 29 29 8.3 Postmortem 40 44 44 12.6 Total 485 349 349 100.0 UPI (70%) 260 LPI (70%) 120

Tarea 6 con el metodo A se tiene que se esta dentro del intervalo estadistico Time in Phase (min.) Planning 9 12 22 3.4 Design 103 144 263 40.2 Design Review 25 17 46 7.0 Code 62 44 116 17.7 Code Review 28 26 58 8.9 Compile 11 11 24 3.6 Test 25 11 40 6.1

Page 52: Proceso Personal de Software

Proceso Personal de Software

50

Postmortem 38 42 86 13.1 Total 300 306 655 100.0 UPI (70%) 494 LPI (70%) 107

Tarea 7 con el metodo B se tiene que se esta dentro del intervalo estadistico Time in Phase (min.) Planning 11 32 54 5.4 Design 129 129 392 38.8 Design Review 22 29 75 7.4 Code 57 59 175 17.3 Code Review 28 31 89 8.8 Compile 12 17 41 4.0 Test 20 33 73 7.2 Postmortem 42 27 113 11.2 Total 320 357 1012 100.0 UPI (70%) 418 LPI (70%) 223

¿Mi productividad es estable? ¿Por qué si o por qué no?

Considero que mi productividad no fue estable, ya que entre más fases se tenían por analizar mi productividad iba variando.

Productivity

0

10

20

30

40

50

60

70

1 2 3 4 5 6 7 8 9 10

Program Number

LOC

/Hou

r

Grafica 11. Esta tabla representa la productividad que se tuvo durante el proceso

¿Cómo puedo estabilizar mi productividad?

Se tiene que realizar una mejor estimación de tiempos y las revisiones de código y diseño que sean más detalladas.

Page 53: Proceso Personal de Software

Proceso Personal de Software

51

¿Cuánto están mis estimados de tiempo afectados por la exactitud de mis estimados de tamaño? (¿La regresión lineal me ayudaría?)

Analysis calculations

Size Error Time Time Error

% Hours % Formulas 0 0 0

1 0 4.023056 41.9902 2 16.25 5.436944 -55.9167 3 -40.2098 5.668611 38.25881 4 -76.9337 3.96 82.76923 5 573.6044 5.811389 -28.1065 6 -95.1882 5.101944 1.915567 7 -100 5.949444 11.48749 8 0 0 0 9 0 0 0

10 0 0 0 Totals 277.5226 35.95139 92.39809

Si serviría la regresión múltiple dado que hay más parámetros del historial que me servirían a dar una mejor estimación de tiempo y de tamaño.

Basado en mis datos históricos de exactitud de estimación de tiempo, ¿cuál es una meta de estimación de tiempo realista para mi?

Time Error %

0 41.9902

-55.9167 38.25881 82.76923 -28.1065 1.915567 11.48749

0 0 0

92.39809

Promedio de error de las ultimas 4 tareas: 35.05% Promedio de error de las ultimas 4 tareas sin la 5:7.35% La meta de estimación de tiempo realista es que el tiempo de error este dentro del 7.35%

Page 54: Proceso Personal de Software

Proceso Personal de Software

52

7.6 Análisis de defectos de rendimiento

10 Documentación Comentario, mensajes 20 Sintaxis Puntuación, tipos, formatos de instrucciones 30 Construcción Manejo de cambios, librerías, control de versión 40 Asignaciones Declaraciones, nombres duplicados 50 Interface Llamadas a procedimientos y referencia, forma de E/S 60 Chequeo Mensaje de error, chequeo inadecuado 70 Datos Estructura, contenido 80 Función Lógico, punteros, bucles, recursión, defectos de función 90 Sistema Configuración, temporización, memoria 100 Entorno Diseño, compilación, pruebas, problemas del sistema de

soporte Tabla 20. Esta tabla representa los tipos de errores

¿Qué tipo de defectos introduzco durante el diseño y la codificación?

Number Injected

Type Design Code

10 0 0

20 0 1

30 0 0

40 1 7

50 0 1

60 0 8

70 0 0

80 4 4

90 0 0

100 0 0

Total 5 21 Tabla 21.Tipo de defectos que se introducen durante el diseño

y codificación

¿Qué tendencias son aparentes en los defectos por unidad de tamaño (e.g., KLOC) encontrados en las revisiones, compilaciones y pruebas?

Item: Defects Removed by Phase Design Code Compile Test Review Review Formulas

1 0 0 5 4 2 0 0 1 6 3 0 0 5 5 4 0 0 2 1 5 3 7 4 3

Page 55: Proceso Personal de Software

Proceso Personal de Software

53

6 2 8 3 1 7 5 4 2 3 8 0 0 0 0 9 0 0 0 0

10 0 0 0 0 Totals 10 19 22 23

En las últimas tareas se puede observar que se eliminan los errores antes de las pruebas

¿Qué tendencias son aparentes en los defectos totales por unidad de tamaño?

Total Defects

0

20

40

60

80

100

120

140

160

1 2 3 4 5 6 7 8 9 10

Program Number

Def

ects

/KLO

C

Grafica 12 que representa los defectos totales por unidad de tamaño Total Def Def/KLOC Formulas 0

1 36.88525 2 25.08961 3 70.17544 4 21.12676 5 114.094 6 148.9362 7 36.74541 8 0 9 0

10 0 Totals 453.0526

Page 56: Proceso Personal de Software

Proceso Personal de Software

54

¿Cómo mis tasas de eliminación de defectos (defectos eliminados/hora) se comparan para la revisión de diseño, revisión de código, compilación y pruebas?

Defect Removal % by Phase

0

20

40

60

80

100

120

1 2 3 4 5 6 7 8 9 1

Program Number

%

Test

Comp

CDR

Des.Rev

Grafica 13 representa los defectos eliminados en cada fase

Como se puede ver en la grafica los defectos se van eliminando antes de llegar a las pruebas

¿Cuáles son mis influencias de eliminación de defectos para la revisión de diseño, revisión de código y compilación contra las pruebas unitarias?

Como se puede observar en la grafica 13 cuando se llega a la fase de pruebas los errores son minimos, ya que en las fases anteriores son eliminados la mayoria.

¿Hay alguna relación entre el rendimiento y la tasa de revisión (tamaño revisado/hora) para las revisiones de diseño y código?

En la grafica 14 se puede observar que el desarrollo se encuentra en el 100% para la revision del diseño.

En la grafica 15 se puede observar que el desarrollo se encuentra en el 80% para la revision de codigo.

Page 57: Proceso Personal de Software

Proceso Personal de Software

55

Grafica 14 representa la relacion entre el desarrollo y la revision de diseño

Grafica 15 representa la relacion entre el desarrollo y la revision de codigo ¿Hay una relación entre el rendimiento y A/FR para los programas 5 al 8?

Page 58: Proceso Personal de Software

Proceso Personal de Software

56

Grafica 16 representa la relacion entre el desarrollo y A/FR 7.7 Análisis de calidad

Compare el reporte intermedio de base para la calidad en las pruebas unitarias con los programas posteriores al reporte. ¿Cuánto cambió la calidad de los programas entrando a las pruebas unitarias? ¿Por qué?

Como se puede observar en la grafica 13 al llegar a la fase de compilacion los errores eran menores, esto nos indica que la calidad de los programas es buena.

¿Cómo puedo juzgar la calidad de mi producto final de manera temprana en mi ciclo de desarrollo?

Buena, ya que se logro la meta de no encontrar errores en codificación y pruebas, esto puede ir mejorando cada vez más.

¿Estoy encontrando mis defectos en las revisiones de diseño y código? ¿Por qué si o por qué no?

Si, apartir de la tarea 7 a la hora de compilar los errores fueron disminuyendo y al hacer las pruebas se llegaba a los resultados esperados, esto se debe a la fase que se agrego de revision de diseño y revision de codigo.

¿Cómo puedo hacer más efectivo y eficiente mi proceso?

Pues en lugar de aplicar el proceso para todo el programa en general, aplicar el proceso por cada uno de los modulos detectados en el programa, es decir, dividir el programa en subprogramas y aplicar a estos el proceso.

Page 59: Proceso Personal de Software

Proceso Personal de Software

57

Bibliografía

[WA00] A Discipline for Software Engineering, Watts S. Humhrey, Addison - Wesley, EE.UU. 2000.

Luis Joyanes Aguilar, Fundamentos de programación,Tercera edicion Mc. Graw Hill.