Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 2. Planeacion PDF
Unidad 2. Planeacion PDF
Unidad 2. Planeacin
Programa de la asignatura:
Mtricas de desarrollo de software
Clave: 150930728
Ejecutas el editor1
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
1
ndice
UNIDAD 2. PLANEACIN: INTRODUCCIN, MEDICIN Y ESTIMACIN. ..................... 4
Presentacin de la unidad........................................................................................................... 4
Propsito ........................................................................................................................................ 4
Competencia especfica .............................................................................................................. 5
2.1. Introduccin a la planeacin ............................................................................................... 5
2.1.1. Qu es un plan? .............................................................................................................. 5
2.1.2. Por qu hacer planes? ................................................................................................... 6
2.1.3. Contenido del plan de un software ................................................................................. 7
2.1.4. Planeando un proyecto de software ............................................................................... 9
2.1.5. Producir un plan de calidad ........................................................................................... 10
2.1.6. Etapas de la planeacin ................................................................................................. 11
Actividad 1. Plan del proyecto .................................................................................................. 12
2.2. Medicin del tamao del software.................................................................................... 13
2.2.1. Medicin del tamao ....................................................................................................... 14
2.2.2. Establecer un conteo estndar...................................................................................... 16
2.2.3. Contadores de LOC y tipos............................................................................................ 17
2.2.4. Consideraciones del re-uso ........................................................................................... 18
2.2.5. Conteo de lneas de cdigo ........................................................................................... 18
2.2.6. Calcular la productividad ................................................................................................ 19
2.2.7. PSP 0.1 ............................................................................................................................. 20
Actividad 2. Medicin del tamao de un software ................................................................ 21
2.3. Estimacin del tamao del software ................................................................................ 27
2.3.1. Contexto ............................................................................................................................ 27
2.3.2. Mtodos de estimacin................................................................................................... 28
2.3.3. Proxy ................................................................................................................................. 28
2.3.4. Probe ................................................................................................................................. 30
2.3.5. PSP 1 ................................................................................................................................ 31
Actividad 3. Estimacin del tamao de un software ............................................................ 32
Autoevaluacin ........................................................................................................................... 33
Ejecutas el editor2
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
2
Ejecutas el editor3
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
3
Presentacin de la unidad
En esta unidad conocers lo importante que es realizar una planeacin previa al
desarrollo de un nuevo proyecto de software.
Aprenders por qu es necesario realizar planes, as como el contenido de una
planeacin. Entenders por qu mientras ms detallados sean tus planes, ms precisas
sern tus estimaciones de tiempo y costos antes de comenzar el desarrollo de un nuevo
proyecto. As mismo, tendrs elementos y bases para gestionar cambios en los
requerimientos planeados, para un nuevo proyecto de software y cmo deben ser
manejados dichos cambios antes de su implementacin en el proyecto.
Finalmente, conocers algunas tcnicas para estimar el tamao de un proyecto de
software y como ste, est relacionado con el tiempo que tomar desarrollarlo.
Propsito
En esta unidad logrars:
- Comprender lo que es un plan para un proyecto de software y lo que debe
contener.
- Conocers algunas tcnicas para estimar el tamao de un proyecto de software.
Ejecutas el editor4
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
4
Competencia especfica
Aplicar la medicin y estimacin para planear un programa, tomando en cuenta el plan,
sus etapas, criterios y estndares de medicin, as como diferentes mtodos de
estimacin.
2.1.1. Qu es un plan?
En este tpico se explicar y comprender lo que es un plan y como est estrechamente
relacionado con la culminacin exitosa de un nuevo proyecto.
Ejecutas el editor5
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
5
Un plan no es ms que una gua que nos muestra los pasos, procedimientos o medidas a
seguir para lograr un objetivo o meta determinada. La mayora de las veces, el xito que
se tiene en un proyecto est en funcin de la calidad del plan que se realiza antes de
comenzar el desarrollo de ese proyecto. A su vez, la calidad de un plan est dada por el
sustento y validez de las bases sobre cules se apoya dicho plan.
Para comprender lo anterior, veamos el siguiente ejemplo:
Pedro se entera, a mitad de su periodo escolar, que existe un concurso de proyectos
finales para la materia de desarrollo de aplicaciones. Al equipo o desarrollador del
proyecto ganador se le otorgar un premio que consiste en un par de equipos de cmputo
porttiles y dispositivos de cmputo mviles de ltima generacin.
Al pensar Pedro en su proyecto, se da cuenta que anda un poco retrasado en el avance
del mismo. Sin embargo, cree que no puede dejar pasar esa oportunidad ya que con
algunos ajustes, su proyecto tendra altas posibilidades de ser el mejor.
Qu podra hacer Pedro para poder tener las mayores posibilidades de ganar el
concurso?
Sin otro conocimiento acerca del problema, lo primero que podramos pensar en realizar
es el conocer el estado actual del proyecto de Pedro, analizar y delimitar un conjunto de
mejoras de acuerdo al conocimiento general que se tiene de los otros proyectos. Despus
habra que definir un conjunto de actividades por realizar as como un tiempo estimado
para concluir cada actividad con la finalidad de lograr obtener un proyecto con altas
posibilidades de ser exitoso.
Una vez que se ha entendido y comprendido lo que es un plan as como su utilizacin en
el desarrollo de nuevos proyectos, se analizarn algunas situaciones que remarcan la
necesidad de realizar planes previos al desarrollo de nuevos proyectos.
Ejecutas el editor6
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
6
Si el cliente cuenta con varias opciones para el desarrollo de su programa, quizs opte
por el proyecto que consuma menos tiempo en realizarse y que sea ms barato. Sin
embargo, esta eleccin no siempre es la ms adecuada como veremos en seguida.
Cuando se responde a un cliente las dos preguntas anteriores, sobre qu bases es
respondido el tiempo que tomar desarrollar el sistema?
Cuando no se lleva una metodologa que involucre una slida planeacin en el desarrollo
de nuevos proyectos, se suele responder en base a la experiencia propia. Sin embargo,
qu tan acertada es una respuesta de este tipo? Generalmente, existe poca asertividad
y generalmente se planea menos tiempo del que realmente se requiere para desarrollar el
proyecto. Un factor adicional frecuente, que lleva a realizar una mala estimacin, es la
competencia para ser elegidos por el cliente para el desarrollo de dicho proyecto. Esto
conlleva a subestimar el esfuerzo real que requiere el proyecto y se propone un tiempo
relativamente corto para la realizacin del mismo. Al final, el proyecto podra tardarse 2
3 veces ms el tiempo estimado. Por eso, se mencion anteriormente que la eleccin del
tiempo ms corto no siempre es la ms adecuada. Sin dejar de lado, que el costo de un
proyecto tambin est relacionado con el tiempo en que se desarrolla.
Con base en la informacin anterior, podemos deducir lo importante que es el realizar una
planeacin de los nuevos proyectos de desarrollo de software para lograr las mayores
posibilidades de xito. (Zapata, J., Garca, J., Cerrada, J. 2001. Pg. 43-55).
Siempre hay que tener en cuenta que: cuando se planea el trabajo personal, el objetivo es
calcular el tiempo que tardar en desarrollarse un determinado proyecto, el costo que
tendr y qu fechas se tienen planeadas para terminar cada una de las tareas a realizar
(Humphrey, W. 1995. pp. 57-68).
En el siguiente tpico se comprender como comenzar la planeacin de un nuevo
proyecto as como los pasos necesarios para poder obtener un plan lo ms acertado
posible conforme a la realidad.
Ejecutas el editor8
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
8
Ejecutas el editor9
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
9
2.
3.
Ejecutas el editor11
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 11
4.
5.
6.
7.
8.
1.
2.
3.
4.
5.
( )
( )
( )
( )
( )
2. Analiza los casos anteriores, e identifica las etapas que conlleva la planeacin de ese
proyecto de software.
3. Indica a qu etapa de la planeacin corresponde cada una de las actividades
mencionadas en el punto 1:
(a) Definicin de Requerimientos
(b) Realizar un diseo conceptual
(c) Estimar el tamao del proyecto
(d) Estimar los recursos necesarios
(e) Calendarizar las actividades
4. Ingresa al Foro y comparte al menos con tres compaeros las soluciones de la
actividad.
5. Atiende a las indicaciones que te d tu facilitador(a), pues, en el foro tendrs que
argumentar el porqu de tus respuestas.
6. No olvides consultar la rbrica general de participacin en foros.
Como pudiste darte cuenta, la planeacin es un elemento clave en el desarrollo de
cualquier proyecto de software, ya que si no planeas las actividades que necesitas de tu
proyecto hay una gran probabilidad de que no las realices. Y si no registras las
actividades que realices, no podrs identificar cunto tardas en realizarlas. Es por ello
que realizar planes es una buena prctica en el desarrollo de software.
Ejecutas el editor13
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 13
Sin embargo, para poder estimar o predecir cunto tiempo se requiere para desarrollar el
proyecto, es necesario conocer o tener una medida del mismo. Y un par de preguntas que
surgen son: cmo medimos un proyecto de software? qu medida es la ms precisa?
En este captulo se analizarn algunas tcnicas para medir y estimar el tamao de nuevos
proyectos de software, pues a travs de los aos, el estudio e investigacin sobre PSP,
por parte de Watts Humphrey, ha recopilado una serie de datos y buenas prcticas que
ahorrarn en gran medida la investigacin y aprendizaje en este tema. (Zapata, J., Garca,
J., Cerrada, J. 2001. Pg. 58-71).
Debe servir para un propsito especfico. Por ejemplo, la unidad de medida litro
sirve especficamente para medir volmenes. Querer medir el peso con una
mtrica o instrumento que mide volumen sera muy difcil a la vez que los
resultados seran inadecuados y poco tiles. En el contexto de la ingeniera de
software, medir el tamao de un producto debe servir a un propsito muy
especfico: conocer de forma puntual que tan grande es un proyecto de software.
Debe estar bien definida. Esto significa que las unidades que se utilicen para medir
deben estar claramente definidas de tal forma que no presenten ambigedades.
Ejecutas el editor14
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 14
Por ejemplo, la unidad de medida metro est bien definida y cualquier cinta
mtrica o regla que utilicemos para medir por ejemplo, el largo de una mesa, nos
dar la misma medida para esa misma mesa. Aplicando este ejemplo en la
ingeniera de software, se requiere de una unidad de medida lo ms exacta posible
y que no tenga ambigedades cada vez que se aplique en la medicin de
proyectos de software.
Debe ser adecuadamente administrada. Generalmente, conocer la medida de algo
tiene implicaciones para tomar una decisin o hacer algo con esa medida
conocida. Por ejemplo, conocer el rea que ocupa una mesa es podra ser de
utilidad para escoger el mantel que mejor la cubra. De igual forma, las mtricas de
desarrollo de software deben aportar utilidad para administrar y controlar el
proyecto.
Debe ser adecuadamente utilizada. Los datos obtenidos con una mtrica
determinada deben ser adecuadamente utilizados. Por ejemplo, medir el rea de
un cuarto sera poco til si buscamos elegir el color de piso que mejor combine
con el diseo de dicho cuarto. En todo caso, es mejor utilizar otra unidad de
medida, como por ejemplo, el color ms representativo o la luminosidad del cuarto.
En el contexto de la ingeniera de software, las mtricas para medir el tamao de
un proyecto de software deben utilizarse para tal fin. Sera ilgico utilizar una
mtrica de tamao de software para elegir el tamao del monitor ideal para la
computadora donde se instalar el sistema a desarrollar en ese proyecto.
Se tiene que ser consciente qu las medidas solo producen nmeros. Para que una
medida sea de utilidad, debe:
-
Estar relacionada con los objetivos que se plantean alcanzar. Si lo que medimos
no est relacionado con los objetivos que deseamos lograr, no hay razn para
invertir esfuerzos en medir aquello.
Ser adecuadamente interpretada. Una vez que obtenemos una medida, debemos
entender lo que esa medida significa y lo que no. Por ejemplo, conocer el nmero
de tablas que tendr la base de datos no significa conocer cuntas de esas tablas
sern catlogos que impliquen su propia interface para altas, bajas y cambios.
Permitir tomar acciones apropiadas. El conocer la medida de algo, nos debe ser
utilidad para tomar acciones apropiadas ya sean de carcter preventivo, correctivo
Ejecutas el editor15
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 15
o las acciones de curso normal para lograr los objetivos planteados al inicio del
desarrollo del proyecto as como para efectuar una mejor planeacin de nuevos
proyectos.
A lo largo del tiempo, se han propuesto varias tcnicas para medir el tamao de un
proyecto de software. A continuacin se mencionan algunas de ellas:
-
Ejecutas el editor16
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 16
Gratuito
No
Si
Plataformas y
lenguajes soportados
Varios
Lenguajes de la
plataforma .Net 4.0
No
Pgina de la
compaa
http://www.geronesoft.
com/
http://archive.msdn.mi
crosoft.com/LOCCount
er
http://www.codelineco
unter.com/
Ejecutas el editor17
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 17
Ejecutas el editor18
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 18
muchas de las reas productivas dentro de las actividades humanas y es un factor clave
para determinar el tiempo total que requerir concluir una tarea especfica por una
persona en particular, de la cual se conoce su productividad. En este apartado se
comprender el concepto de la productividad relacionada con el desarrollo de productos
de software y como se calcula dicha productividad.
Como se ha visto anteriormente, el desarrollo de un producto de software involucra una
planeacin previa al desarrollo del proyecto. Por otra parte, planear el desarrollo de dicho
proyecto involucra conocer el tamao del proyecto. A su vez, conocer el tamao del
proyecto es un dato vital para poder estimar y planear el tiempo en que ha de ser
desarrollado. Sin embargo, para calcular el tiempo requerido para el desarrollo del
proyecto, es necesario un dato adicional: con qu rapidez se desarrollan las tareas por
parte de cada integrante del equipo de desarrollo contemplado para dicho proyecto?
Calcular la productividad en el desarrollo de software no es una tarea sencilla y a lo largo
del tiempo se han propuesto varias mtricas para poder lograr este objetivo. Por ejemplo,
se ha propuesto medir la productividad de un desarrollador basado en las horas promedio
que le toma construir un archivo de texto. Otras variantes involucran el tiempo que toma
producir un archivo de cdigo en algn lenguaje de script, una pantalla de usuario, etc.
Para el caso de PSP, el autor propone una mtrica de productividad basada en las lneas
de cdigo nuevas que un desarrollador realiza en una hora. Si bien, esta mtrica pudiera
no ser la mejor, ha demostrado ser la ms asertiva para medir la productividad de un
ingeniero de software. Por lo tanto, si la medicin del tamao de un producto de software
est basada en sus lneas de cdigo y, la productividad de un desarrollador est basada
en las lneas de cdigo que produce en una hora, la estimacin del tiempo requerido para
desarrollar el producto se puede calcular fcilmente dividiendo el tamao estimado del
producto entre la productividad del desarrollador:
Para concluir con este apartado, slo resta mencionar que la productividad de un
desarrollador no es constante. A lo largo del tiempo y despus de la experiencia en el
desarrollo de varios proyectos, los desarrolladores van aumentando su productividad a la
vez que haciendo ms eficientemente sus tareas. Por eso es importante ir recolectando
datos de la productividad en cada proyecto. Esto permitir a su vez, obtener informacin
sobre la productividad de los equipos de desarrollo as como informacin que servir de
base para poder estimar el tiempo de desarrollo de futuros proyectos. (Humphrey, W.
1995. Pg. 88).
Ejecutas el editor20
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 20
En PSP 0.1 se utilizan todos los documentos vistos en PSP0 y se agregan los siguientes
tres:
PIP, (por sus siglas en ingls, Process Improvement Proposal), significa Propuesta
de Mejora del Proceso. Este formato es un documento libre donde el ingeniero de
software, por cada programa que realice a partir del nivel 0.1 de PSP, deber
emitir una propuesta de mejora al PSP mediante este documento. Es importante
mencionar que en una PIP no basta con describir alguna problemtica que se
tenga con el PSP, sino que adems se tiene que proponer alguna alternativa que
ayude a mejorar o erradicar dicha problemtica.
Formato para el conteo del tamao del programa.
Estndar de codificacin.
Como resultado de esto, el formato del resumen del plan del proyecto tambin deber
mostrar los datos referentes al tamao del programa tomando en cuenta que a partir
de este nivel, el desarrollo del programa debe ser planeado por cada fase del ciclo de
desarrollo. (Echeverra, C.M., Echeverra, C.D. Mera, J.L. 2006. Pg 23-26).
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
public class ProgramaDesviacionEstandar
{
private static List<Double> listaDatos;
/**
*
*/
Ejecutas el editor21
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 21
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Ejecutas el editor22
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 22
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{
double promedio = 0;
//Si la lista est vaca, el mtodo devolver 0.
if (listaDatos.size() == 0)
return promedio;
for (Double d : listaDatos)
promedio += d;
promedio = promedio / (double) listaDatos.size();
return promedio;
}
/**
*
Este mtodo realiza el clculo de la desviacin estndar
*
y la devuelve.
*/
private static double calcularDesviacionEstandar()
{
double stdev = 0; // En esta variable se guardan clculos
// temporales
// y al final la desviacin estndar.
double prom = calcularPromedio();
if (prom == 0)
return stdev;
for (Double d : listaDatos)
stdev += Math.pow(d - prom, 2);
stdev = stdev / (double) listaDatos.size();
return stdev;
}
}
2. Llena la siguiente tabla, indicando en cada nmero de lnea, si esa lnea contar como
lnea de cdigo o no. Cada nmero de lnea corresponde a cada lnea del programa
anterior. Para decidir si cada lnea deber ser contada o no, debers basarte en el
estndar de conteo de lneas de cdigo que se encuentra despus de esta tabla.
No. de Cuenta cmo
Lnea
lnea?
S = SI / N = NO
1
2
3
4
5
6
7
8
Ejecutas el editor23
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 23
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Ejecutas el editor24
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 24
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Ejecutas el editor25
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 25
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Estndar de codificacin.
Versin: 1.0
El siguiente documento es una gua para realizar el conteo de lneas de cdigo.
a) Toda declaracin o directiva que hace referencia a la importacin de otras clases
cuenta como una lnea de cdigo. Por ejemplo, las instrucciones que comienzan con
la palabra reservada import.
b) Toda declaracin de un mtodo cuenta como una lnea de cdigo. Por ejemplo, la
sentencia public static void main(String[] args) contar como una lnea de cdigo.
c) Toda declaracin de variable (atributo o variable) dentro de un mtodo contar como
una lnea de cdigo.
d) Cuando una instruccin sea demasiado larga y ocupe varias lneas, slo se contar
como una nica lnea de cdigo.
e) Toda lnea en blanco no ser contada como lnea de cdigo.
f) Toda lnea que contenga solo un corchete de apertura o cierre sin ninguna otra
instruccin, no ser contada como lnea de cdigo.
g) Toda lnea que contenga solo comentarios no ser contada como una lnea de cdigo.
3. Guarda la actividad con el nombre DMDS_U2_A2_XXYZ. Sustituye las XX por las dos
primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la
inicial del apellido materno.
4. Ingresa al apartado de Base de datos del aula virtual y sube tu archivo.
Ejecutas el editor26
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 26
5. Revisa los trabajos de tus dems compaeros en la Base de datos para que puedas
comparar tus resultados con los del resto del grupo.
6. Comenta por lo menos 3 lneas que identifiques incorrectas argumentando el porqu
del error.
7. Atiende a los comentarios que emita tu facilitador(a).
Establecer estndares para definir la manera de contar las lneas de cdigo es una buena
prctica que necesitars para evitar errores en la forma en que medimos nuestra
productividad y la de otros miembros del equipo. Esto nos permitir realizar mediciones
ms precisas para la toma de decisiones oportunas.
Nota al facilitador(a) y alumnos(as):
Se espera que los alumnos(as) socialicen sus diferencias en torno a las
respuestas, es decir, argumentarn el porqu de su comentarios.
Los alumnos(as) debern comentar por lo menos 3 errores en las bases de datos
de sus compaeros.
Para ser considerada como actividad aprobada, el alumno deber cumplir con por
lo menos 65 lneas correctas.
2.3.1. Contexto
Generalmente, cuando se planea el desarrollo de un nuevo proyecto, tan solo se conocen
los requerimientos del cliente. La dificultad de estimar el tamao del proyecto es
precisamente el poder predecir el tamao del producto final conociendo tan solo los
requerimientos iniciales del cliente. Y, dado que nadie conoce en realidad que tan grande
o cuanto se tardar realmente en realizarse, la estimacin ser siempre un proceso con
un cierto grado de incertidumbre. Por lo tanto, siempre ser una ventaja el contar con una
Ejecutas el editor27
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 27
mejor definicin as como el mayor nmero de requerimientos por parte del cliente.
(Humphrey, W. 1995. Pg. 97).
Especificacin de requerimientos.
Niveles de fase, actividad, tarea, etc.
Definicin del perodo laboral y vacacional.
Manejo de salarios.
Uso de diferentes tipos de proyectos.
Mtricas de puntos de funcin, lneas de cdigo, etc.
Sin embargo, ningn mtodo de estimacin es lo suficientemente preciso para indicar con
exactitud los tiempos que cada tarea nos llevar. Una buena prctica de la estimacin es
que la herramienta que se utilice, ya sea la comercial o propia, se vaya mejorando con
cada proyecto y cada vez nos pueda ir dando valores ms cercanos a la realidad. En el
siguiente tema veremos los dos mtodos que se recomiendan en PSP los cules son el
Proxy y el PROBE. Y en la unidad 3 vers mtodos basados en juicio experto y
estadsticos. (Jones, C. 2010. Pg. 1).
2.3.3. Proxy
En este tpico se analizar el mtodo Proxy. El mtodo Proxy es un mtodo propuesto
por Watts Humphrey, creador de PSP y, se ver ms adelante, sirve para medir el tamao
que tendr un producto de software basado en la divisin ms elemental de los
componentes que integrarn el producto que se piensa desarrollar. A estos elementos se
les llama partes proxy cuya caracterstica principal es que pueden ser comparados con
otros elementos proxy correspondientes a proyectos desarrollados previamente de los
cuales ya se tienen datos histricos.
Ejecutas el editor28
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 28
La medida del proxy debe estar altamente relacionada con el esfuerzo requerido
para desarrollar el producto.
El contenido proxy de un producto debe ser automticamente contable.
El proxy debe ser fcil de visualizar al inicio del proyecto.
El proxy debe ser personalizable a las necesidades de cada proyecto y
desarrollador.
El proxy debe ser sensible a las variaciones de implementacin que afectan los
costos de desarrollo o esfuerzo.
Ejecutas el editor29
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 29
Figura. Diagrama del proceso para estimar proyectos de software utilizando el mtodo
Proxy. (Humphrey, W. 1995. Pg. 110).
Una vez que se comprendido el mtodo de estimacin por proxy se podr analizar un
mtodo ms complejo denominado PROBE, el cual ser descrito en la siguiente seccin.
El mtodo PROBE est basado en el mtodo Proxy, pero adems, permite estimar el
tiempo requerido para el desarrollo de cada parte del proyecto. (Humphrey, W. 1995.
Pg. 109).
2.3.4. Probe
En esta seccin se analizar el mtodo PROBE. Este mtodo permite obtener una
estimacin del tamao de cada parte del proyecto (basado en la metodologa Proxy) y
posteriormente, con estos datos, permite estimar el tiempo requerido para el desarrollo de
cada una de las partes del proyecto.
Ejecutas el editor30
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 30
El mtodo PROBE utiliza datos histricos para realizar las estimaciones. Por ejemplo, si
se estima el trabajo para desarrollar un sistema de consultas en una base de datos, se
podra producir inicialmente un diseo conceptual y despus dividirlo en partes.
Posteriormente, se podran estimar el nmero de elementos en cada parte. Por ejemplo,
si se estiman un total de 95 elementos y se sabe que cada elemento se lleva en
producirse en promedio, 1.5 horas, el tiempo estimado total de desarrollo seran 142.5
horas.
Para hacer ms precisas las estimaciones se requiere adems de una base para calcular
el tiempo promedio requerido para desarrollar un determinado componente del programa.
Una vez que se han comprendido los conceptos de estimacin de tamao y tiempo de
desarrollo, es necesario comprender como son utilizados dentro del proceso PSP, en
especfico, en el nivel 1 o (tambin conocido como PSP1), el cual, ser descrito en la
siguiente seccin. (Humphrey, W. 2005. Pg.105).
2.3.5. PSP 1
Durante la Unidad 1, se analiz el PSP 0 el cual es el nivel inicial del proceso personal de
software. Como se recordar, el objetivo en PSP 0 era estimar el tiempo total que tomara
desarrollar un determinado programa. Una vez que se tiene completado el nivel PSP 0 se
pasa al nivel PSP 0.1. En este segundo nivel el objetivo es estimar de forma emprica,
basado en la experiencia del desarrollador, el tiempo de desarrollo por cada fase y se
estima adems, las lneas de cdigo que podra tener el nuevo programa a desarrollar.
Finalmente, en PSP 1, el objetivo es el mismo que en PSP 0.1, slo que, la estimacin de
las lneas de cdigo se realiza utilizando el mtodo Proxy y adicionalmente, utilizando el
mtodo PROBE y los datos histricos de PSP 0 y PSP 0.1, se estima de forma automtica
el tiempo de desarrollo por cada fase.
El objetivo en PSP1 es establecer un procedimiento ordenado y repetible para realizar
estimaciones de tamao y tiempo de desarrollo por cada fase para un nuevo producto de
software. Este nivel toma en cuenta dos nuevos aspectos:
La hoja del resumen del plan del proyecto se expande para mostrar adems de los datos
de PSP0.1, datos de productividad (medida en lneas de cdigo por hora), tamao
planeado para todos los tipos de lneas de cdigo. (Zapata, J., Garca, J., Cerrada, J.
2001. Pg. 60-61).
Ejecutas el editor31
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 31
Ejecutas el editor32
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 32
Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta
segunda unidad del curso, es necesario que resuelvas el siguiente crucigrama que
contiene los conceptos ms sobresalientes de la unidad.
6
10
8
3
10
compras.
Mdulo de reglas de negocio y operaciones para control de
productos e inventarios.
2300
Parte 2:
Con base en la tabla anterior, determina los proxies ms adecuados para los mdulos del
siguiente proyecto que se desea desarrollar.
Se desea desarrollar un sistema en un hospital que permita llevar el control de pacientes,
mdicos e ingresos de pacientes al hospital. La siguiente tabla determina los mdulos que
los analistas de sistemas proponen desarrollar para satisfacer las necesidades del cliente
despus de varias sesiones de plticas y entendimiento de la problemtica a solucionar.
Coloca en la tercera columna de la siguiente tabla, el nmero de proxy ms adecuado
tomando como base los componentes de la tabla de la parte 1.
No. de
No.
Componente
Componente Proxy
ms parecido
Se requiere de un mdulo de interfaz de usuario una
1 interfaz para poder realizar altas, bajas y cambios de los
datos de los mdicos.
Se requiere un mdulo de interfaz de usuario con los
2 controles necesarios para poder realizar altas, bajas y
cambios de los ingresos de los pacientes al hospital.
Se requiere un mdulo para el acceso a la base de datos y
3
control de sentencias SQL.
4 Se requiere un mdulo de reportes dentro de la aplicacin.
Se requiere de un mdulo para manejar las reglas de
5 negocio de los ingresos. Considerar las reglas de negocio
de tamao grande.
Parte 3:
Contesta la siguiente pregunta:
Cul sera el tamao estimado en lneas de cdigo que tendra el proyecto, sumando las
lneas de cdigo de todos proxies de la tabla 2?
Parte 4:
Una vez que has estimado los proxies ms adecuados para cada componente, determina
el tiempo, en horas, que tardara un slo desarrollador en realizar el proyecto. Utiliza
como medida de productividad 22 lneas de cdigo por hora, dividiendo las lneas de
cdigo totales (Parte 3) entre la productividad (22).
Ejecutas el editor35
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 35
Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses
al foro Preguntas de Autorreflexin y consultes las preguntas que tu Facilitador(a)
presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto
llamado DMDS_U2_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta
Autorreflexiones.
Para saber ms
Si deseas saber acerca de PSP, TSP o CMMI puedes consultar la siguiente direccin
electrnica:
http://www.ecured.cu/index.php/Proceso_de_Software_Personal
Es una enciclopedia virtual, colaborativa y en espaol que fue creada para difundir el
conocimiento de tecnologas de la informacin, sus fuentes son confiables. Puedes
participar en sus foros y acceder a este sitio por medio de las redes sociales ms
importantes de la actualidad.
Fuentes de consulta
Bibliografa bsica
Humphrey, W. (1995) A discipline for software engineering (The complete PSP Book)
United States of America: Addison Wesley.
Humphrey, W. (2005) PSP a Self-improvement process for software engineers. United
States of America: Addison Wesley.
Ejecutas el editor36
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 36
Zapata, J., Garca, J., Cerrada, J. (2001) Introduccin al proceso software personalSM.
Madrid, Espaa: Addison Wesley.
Bibliografa complementaria
Ejecutas el editor37
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 37
P
R
O
X
Y
P
R
O
B
E
P
R
O
D
U
C
T
I
V
I
D
A
D
M
E
D
I
C
I
O
N
P
L
A
L
O
C
Ejecutas el editor38
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 38