Logo Studenta

Unidad_2 _Planeacion

¡Este material tiene más páginas!

Vista previa del material en texto

Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor1 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 1 
 
 
 
Ingeniería en Desarrollo de software 
Cuatrimestre 07 
 
 
Programa de la asignatura: 
Métricas de desarrollo de software 
 
 
Clave: 150930728 
 
 
 
 
 
 
 
 
 
 
 
 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor2 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 2 
Índice 
 
 
UNIDAD 2. PLANEACIÓN: INTRODUCCIÓN, MEDICIÓN Y ESTIMACIÓN. ..................... 4 
Presentación de la unidad ........................................................................................................... 4 
Propósito ........................................................................................................................................ 4 
Competencia específica .............................................................................................................. 5 
2.1. Introducción a la planeación ............................................................................................... 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 planeación ................................................................................................. 11 
Actividad 1. Plan del proyecto .................................................................................................. 12 
2.2. Medición del tamaño del software .................................................................................... 13 
2.2.1. Medición del tamaño ....................................................................................................... 14 
2.2.2. Establecer un conteo estándar ...................................................................................... 16 
2.2.3. Contadores de LOC y tipos............................................................................................ 17 
2.2.4. Consideraciones del re-uso ........................................................................................... 18 
2.2.5. Conteo de líneas de código ........................................................................................... 18 
2.2.6. Calcular la productividad ................................................................................................ 19 
2.2.7. PSP 0.1 ............................................................................................................................. 20 
Actividad 2. Medición del tamaño de un software ................................................................ 21 
2.3. Estimación del tamaño del software ................................................................................ 27 
2.3.1. Contexto ............................................................................................................................ 27 
2.3.2. Métodos de estimación................................................................................................... 28 
2.3.3. Proxy ................................................................................................................................. 28 
2.3.4. Probe ................................................................................................................................. 30 
2.3.5. PSP 1 ................................................................................................................................ 31 
Actividad 3. Estimación del tamaño de un software ............................................................ 32 
Autoevaluación ........................................................................................................................... 33 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor3 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 3 
Evidencia de aprendizaje. Programa PSP 1 .......................................................................... 34 
Autorreflexiones .......................................................................................................................... 36 
Para saber más ........................................................................................................................... 36 
Fuentes de consulta ................................................................................................................... 36 
 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor4 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 4 
Unidad 2. Planeación: introducción, medición y estimación 
 
En esta unidad se tratarán los temas relacionados con la medición del tamaño de un 
proyecto de software. A su vez, esta medición proporcionará una base inicial para poder 
estimar el tamaño nuevos proyectos con la finalidad de poder realizar planes lo más 
cercano a la realidad. 
 
En la mayoría de los proyectos, existen recursos limitados (dinero, personas, equipos, 
tecnología). Este factor conlleva a que los proyectos tengan que planearse y gestionarse 
de la forma más efectiva y asertiva posible, con la finalidad de que el costo total del 
proyecto no exceda la cantidad de recursos planeados que son destinados a ese 
proyecto. Sin embargo, para poder planear algo, primero se debe ser capaz de estimar 
cuánto tiempo, costo y personal que se requiere dentro del proyecto. Para poder estimar, 
se requiere medir el proyecto, la medición es una tarea fundamental en la mayoría de las 
disciplinas donde se emprenden proyectos. Dependiendo del contexto, se utiliza una 
métrica o forma de medir. Por ejemplo, para la construcción, es común medir en áreas lo 
que se va a construir utilizando alguna unidad como: m2. De igual forma, para estimar el 
tamaño un nuevo proyecto de software primero se debe tener una forma o métrica de 
medición enfocada en la medición de un programa. 
 
Presentación de la unidad 
 
En esta unidad conocerás lo importante que es realizar una planeación previa al 
desarrollo de un nuevo proyecto de software. 
 
Aprenderás por qué es necesario realizar planes, así como el contenido de una 
planeación. Entenderás por qué mientras más detallados sean tus planes, más precisas 
serán tus estimaciones de tiempo y costos antes de comenzar el desarrollo de un nuevo 
proyecto. Así mismo, tendrás elementos y bases para gestionar cambios en los 
requerimientos planeados, para un nuevo proyecto de software y cómo deben ser 
manejados dichos cambios antes de su implementación en el proyecto. 
 
Finalmente, conocerás algunas técnicas para estimar el tamaño de un proyecto de 
software y como éste, está relacionado con el tiempo que tomará desarrollarlo. 
 
Propósito 
 
En esta unidad lograrás: 
- Comprender lo que es un plan para un proyecto de software y lo que debe 
contener. 
- Conocerás algunas técnicas para estimar el tamaño de un proyecto de software. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor5 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 5 
- Conocerás algunas técnicas para estimar el tiempo que tomará desarrollar un 
nuevo proyecto de software. 
 
Competencia específicaAplicar la medición y estimación para planear un programa, tomando en cuenta el plan, 
sus etapas, criterios y estándares de medición, así como diferentes métodos de 
estimación. 
 
2.1. Introducción a la planeación 
 
En esta unidad se analizará la importancia de planear un proyecto de software antes de 
realizar cualquier actividad relacionada con el desarrollo del mismo. Así mismo, se 
analizará de forma detallada, cómo realizar la planeación de un nuevo proyecto de 
software y como, un plan bien realizado, brinda una mayor confiabilidad para el éxito en la 
realización de un nuevo proyecto de software. 
 
Por naturaleza, los seres humanos, al emprender nuevos proyectos necesitamos tener 
una guía o conocer los procesos, acciones o medidas que deben ser seguidas para lograr 
realizar ese proyecto hasta su finalización. A lo largo de toda su vida, el ser humano 
emprende proyectos: aprobar una materia de la escuela, construir un prototipo que ayuda 
a resolver un problema, concursar y ganar una competencia de deportes, etc. 
 
Comúnmente, aquellos proyectos en los que mejores resultados se obtienen son aquellos 
para los cuáles teníamos una mejor guía de cómo realizarlos. En otras palabras, teníamos 
un plan lo suficientemente sustentado para lograr resultados efectivos al término del 
proyecto. 
 
En la ingeniería de software, la planeación de los proyectos enfocados en el desarrollo de 
nuevas tecnologías de información es una de las etapas más importantes para el éxito de 
dicho proceso, pues como veremos más adelante, la calidad del producto final está dada 
por la calidad en cada uno de los procesos llevados a cabo. En este sentido, la planeación 
es el primer proceso llevado a cabo al desarrollar un nuevo producto de software. 
 
Una vez que se ha brindado un panorama general sobre la planeación de proyectos 
incluyendo proyectos de software, es necesario conocer que es realmente un plan. Esto 
será explicado en el siguiente tópico. 
 
2.1.1. ¿Qué es un plan? 
 
En este tópico se explicará y comprenderá lo que es un plan y como está estrechamente 
relacionado con la culminación exitosa de un nuevo proyecto. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor6 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 6 
Un plan no es más que una guía que nos muestra los pasos, procedimientos o medidas a 
seguir para lograr un objetivo o meta determinada. La mayoría de las veces, el éxito que 
se tiene en un proyecto está en función 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 cuáles 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 cómputo 
portátiles y dispositivos de cómputo móviles de última generación. 
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 tendría altas posibilidades de ser el mejor. 
¿Qué podría hacer Pedro para poder tener las mayores posibilidades de ganar el 
concurso? 
Sin otro conocimiento acerca del problema, lo primero que podríamos 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. Después 
habría 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 utilización en 
el desarrollo de nuevos proyectos, se analizarán algunas situaciones que remarcan la 
necesidad de realizar planes previos al desarrollo de nuevos proyectos. 
 
2.1.2. ¿Por qué hacer planes? 
 
Como se vio anteriormente, la planeación es una etapa que tiene como finalidad aumentar 
las posibilidades de éxito que tendrá un proyecto. Sin embargo, existen factores 
subyacentes al éxito del proyecto los cuáles describiremos en este tópico y que sustentan 
la importancia que tiene el realizar planes al emprender nuevos proyectos que involucran 
el desarrollo de productos de software. 
 
Al proponer una solución a un problema relativo a la falta de información vigente y 
confiable, generalmente se involucra en dicha solución, un sistema de información el cual, 
la mayoría de las veces, no existe a la medida de la persona o empresa que tiene el 
problema descrito anteriormente. Esto conlleva a desarrollar un software que satisfaga las 
necesidades de información de la empresa o persona en particular. 
 
Al desarrollar productos de software para un cliente -que puede ser algún directivo para la 
empresa para la cual se trabaja o bien un cliente externo-; en el caso de tener una 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor7 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 7 
empresa que se dedica al desarrollo de proyectos de software, es común que se realicen 
dos cuestionamientos: 
 
- ¿Cuánto tiempo tomará desarrollar el sistema? 
- ¿Cuánto va a costar? 
 
Si el cliente cuenta con varias opciones para el desarrollo de su programa, quizás opte 
por el proyecto que consuma menos tiempo en realizarse y que sea más barato. Sin 
embargo, esta elección no siempre es la más 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 metodología que involucre una sólida planeación 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 estimación, 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 realización del mismo. Al final, el proyecto podría tardarse 2 ó 
3 veces más el tiempo estimado. Por eso, se mencionó anteriormente que la elección del 
tiempo más corto no siempre es la más adecuada. Sin dejar de lado, que el costo de un 
proyecto también está relacionado con el tiempo en que se desarrolla. 
 
Con base en la información anterior, podemos deducir lo importante que es el realizar una 
planeación de los nuevos proyectos de desarrollo de software para lograr las mayores 
posibilidades de éxito. (Zapata, J., García, J., Cerrada, J. 2001. Pág. 43-55). 
 
2.1.3. Contenido del plan de un software 
 
Para que un plan, previo al desarrollo de un nuevo proyecto de software, sea efectivo, 
debe contener ciertos elementos relativos a las tareas que deberán realizarse, el tamaño 
del proyecto, la forma de medir el status del proyecto en cualquier momento, etc. Todo 
esto será analizado y discutido en este tópico. 
 
El contenido de un plan depende de las necesidades de las personas que utilizarán dicho 
plan y de lo que requieran hacer con él. En PSP la planeación involucra a dos tipos de 
persona: el desarrollador y sus clientes. 
 
Una planeación en PSP involucra definir y conocer los siguientes 4 factores: 
1. Tamaño del producto. ¿Qué tan grande es el proyecto?Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor8 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 8 
2. Definición de las tareas que tienen que realizarse y como se realizarán. 
3. Estatus del trabajo que se está realizando. Esto significa saber en qué etapa 
estamos, qué falta por hacer. Esto nos permite responder una pregunta crítica muy 
importante: ¿Se terminará el producto en el tiempo estimado con los costos 
planeados? 
4. Evaluación. Este factor se refiere a la evaluación de la planeación realizada y 
responde a las preguntas: ¿Qué tan efectiva fue la planeación? ¿Se cometieron 
errores obvios de detectar? ¿Qué errores se pueden evitar en el futuro? ¿Qué se 
requiere ajustar o modificar para realizar una mejor planeación? 
 
De lo anteriormente expuesto, Humphrey, W. (1995), menciona que el factor 4 es de 
vital importancia pues es la clave para mejorar la efectividad de las planeaciones que 
se realizarán posteriormente para nuevos proyectos. 
 
Es necesario mencionar que al utilizar PSP, todo lo que realizamos es un trabajo 
completamente individual. En este contexto, el contenido de las planeaciones debe 
permitir saber: 
1. ¿Qué se tiene que entregar?, ¿Cuándo?, ¿Cuánto costará? 
2. El proyecto que se planea desarrollar, ¿es realmente lo que el cliente quiere? 
3. ¿Existe algún mecanismo que permita medir, monitorear o conocer el avance del 
proyecto en cualquier momento? 
 
En proyectos pequeños, la administración y control de los aspectos anteriores 
probablemente no sean complejos; sin embargo, se debe ser consciente de lo siguiente: 
 
- La planeación debe estar basada en tareas bien definidas. 
- Cada tarea debe estar claramente definida y debe ser posible medirla. 
- El cliente debe conocer el plan y estar de acuerdo con él antes de comenzar 
cualquier tarea. 
- Se debe reportar el avance del proyecto cada determinado tiempo. Este reporte 
generalmente se debe presentar a los administradores y clientes para que 
conozcan cómo va evolucionando el desarrollo del mismo. 
 
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 tópico se comprenderá como comenzar la planeación de un nuevo 
proyecto así como los pasos necesarios para poder obtener un plan lo más acertado 
posible conforme a la realidad. 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor9 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 9 
2.1.4. Planeando un proyecto de software 
 
En este tópico se analizarán los pasos necesarios para realizar el plan de desarrollo de 
nuevos proyecto de software. Se aprenderá en primera instancia la secuencia ordenada 
de actividades a realizar, para poder obtener un plan de calidad previo al desarrollo de un 
proyecto de software. 
 
Al planear un proyecto de software, se debe tomar en cuenta lo siguiente: 
1. Se debe tener claramente definido lo que ha de realizarse así como entender 
perfectamente lo que se busca hacer. Durante el desarrollo del proyecto es 
frecuente que existan cambios en los requerimientos. Sin embargo, es necesario 
planear y definir el mayor número de dichos requerimientos tanto como sea 
posible. 
2. Dividir las tareas de desarrollo del proyecto que tomarán varios días en varias 
tareas más pequeñas que podamos medir y estimar de forma separada. Es 
importante mencionar que: a mayor detalle en la especificación de las tareas que 
han de desarrollarse, la planeación será más precisa. 
3. Cuando se realiza la estimación de tareas, se deben comparar con otras tareas 
similares que se hayan realizado en el pasado para conocer el tiempo que se 
dedicó a esas tareas pasadas y estimar el tiempo que tomará realizar la tarea 
planeada. 
4. Se debe documentar la estimación y al término del proyecto, se deben comparar 
los datos de la estimación contra los datos reales. Esto nos permite conocer de 
forma clara y consciente el por qué hubo diferencias entre el tiempo planeado y el 
real. Este nuevo conocimiento adquirido tendrá una vital importancia al estimar y 
planear nuevos proyectos de software. 
5. Si existen cambios en los requerimientos, se debe reajustar la planeación y antes 
de comenzar la implementación de cualquier cambio en los requerimientos, se 
debe informar a los jefes inmediatos así como al cliente para concientizarlos de lo 
que implica en tiempos y costos la implementación de dichos cambios de 
requerimientos y en base a ello, se tome la decisión de implementar o no dichos 
cambios. 
 
La Figura. Secuencia de pasos a seguir para elaborar un plan de desarrollo de un nuevo 
proyecto de software (Humphrey, W. 1995. Pág. 65) muestra los pasos que tienen que 
realizarse para obtener un plan eficiente para el desarrollo de un nuevo proyecto: 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor10 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 10 
 
Figura. Secuencia de pasos a seguir para elaborar un plan de desarrollo de un nuevo 
proyecto de software. (Humphrey, W. 1995. Pág. 65). 
 
Una vez que se conocen los pasos necesarios para realizar la planeación de un proyecto 
de software, es necesario conocer aquellos aspectos que dotan de la calidad necesaria a 
una planeación. Mientras más alta sea la calidad de un plan, mayores son las 
posibilidades de éxito al término del desarrollo del proyecto. (Humphrey, W. 1995. Pág. 
57-68). 
 
2.1.5. Producir un plan de calidad 
 
En este tópico se discutirá de forma general como producir un plan con la calidad 
adecuada para obtener éxito en los proyectos planeados. Eso es importante de considerar 
pues el éxito de un proyecto está dado en gran parte por la calidad del plan que se tiene 
para su desarrollo. 
 
El objetivo de planear el trabajo es para obtener un plan preciso que indica qué 
actividades han de realizarse y en qué tiempo. Sin embargo, para poder obtener esta 
información se requiere un estudio profundo que nos permita conocer cómo medir, 
predecir y mejorar las planeaciones que realizamos. 
 
Cuando planeamos nuevos proyectos de software lo hacemos de dos formas: imparcial o 
balanceado. Se considera que una planeación está balanceada si por ejemplo, de diez 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor11 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 11 
proyectos, cinco fueron sobreestimados y cinco fueron subestimados. Un proyecto 
sobreestimado es aquel en el cual se planeó más tiempo para su realización que el 
tiempo real. En otras palabras, se tardó menos tiempo de lo planeado en realizar el 
proyecto. Un proyecto subestimado, al contrario de uno sobreestimado, es aquel en el 
que se planeó menos tiempo del que realmente se necesitó para llevarlo a cabo. Una 
planeación imparcial se da cuando no es balanceada, es decir, el número de proyectos 
sobreestimados no es igual al número de proyectos subestimados. De acuerdo a la 
experiencia de Watts Humphrey, el autor del PSP, una planeación balanceada permite 
realizar un mejor ajuste de la estimación de tiempos para nuevos proyectos, pues al haber 
un equilibrio entre los proyectos sobreestimados y los subestimados, se puede fácilmente 
obtener un tiempo promedio a través del método PROBE, el cual veremos más adelante. 
 
Para terminar de comprender el proceso de la planeación de un proyecto de software, se 
analizarán las etapas involucradas en la planeación. (Humphrey, W. 2005. Pág. 65). 
 
2.1.6. Etapas de la planeación 
 
El proceso de planear un proyecto de softwareestá conformado por varias etapas que 
serán descritas en este tópico. Es importante que se sigan cada una de estas etapas sin 
omitir ninguna con la finalidad de que la planeación final del proyecto sea lo más real 
posible. 
 
Planear un proyecto de software implica las siguientes etapas: 
 
1. Conocer las necesidades del cliente. Este punto inicial es el más importante, 
pues de este, se deriva prácticamente todo el contenido y alcance del 
proyecto a desarrollar. En esta etapa se debe decidir si las necesidades del 
cliente realmente involucran el desarrollo de un proyecto de software o por el 
contrario, existen otras herramientas previamente desarrolladas que pueden 
ayudar a resolver dichas necesidades. 
2. Definición de Requerimientos. En esta etapa, una vez que se ha identificado 
que las necesidades del cliente realmente involucran el desarrollo de un 
proyecto, se deben identificar dichas necesidades de forma muy particular. Al 
término de esta etapa lo que se obtiene es un documento con toda la 
especificación de requerimientos y funcionalidades con las que deberá contar 
el producto final. Tener claros los requerimientos del proyecto ayuda a 
proyectar una primera aproximación sobre qué tan grande puede ser el 
proyecto. 
3. Realizar un Diseño Conceptual. En esta etapa se debe producir un diseño 
preliminar del proyecto a desarrollar. En esta etapa, se suelen identificar y 
planear los módulos que conformarán el producto final así como la interacción 
que tendrán dichos módulos. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor12 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 12 
4. Estimar el tamaño del proyecto. En esta etapa, se toman datos históricos de 
otros proyectos, se busca información de módulos previamente desarrollados 
que tengan el mayor parecido con las especificaciones del nuevo proyecto 
para poder tener una aproximación lo más certera posible del tamaño del 
proyecto. 
5. Planeación de los recursos. Una vez que se tiene una estimación del tamaño 
del proyecto, se deben planear los recursos que intervendrán en el desarrollo 
del proyecto. 
6. Desarrollo del Proyecto. Una vez que se tiene un plan claro que indica las 
fechas de avance y el personal asignado a cada actividad del desarrollo del 
proyecto, se puede pasar a la etapa de desarrollo. En esta etapa se llevan a 
cabo todas las actividades involucradas en el desarrollo del proyecto. Por 
ejemplo: diseño de interfaces, diseño de la arquitectura, diseño e 
implementación de la base de datos, etc. 
7. Generación de nuevos datos. Durante el desarrollo del proyecto, cada 
actividad debe ser medida para generar datos históricos del proceso de 
desarrollo. 
8. Análisis de Datos. Cuando se concluye el desarrollo del proyecto, es 
importante analizar los datos generados, pues estos datos jugarán un papel 
esencial al planear nuevos proyectos y estimar su tamaño. 
 
Ya que se han comprendido las etapas que involucran la planeación de un 
proyecto de software, se debe comprender el aspecto principal: medir el tamaño 
del proyecto. Esta es quizás la tarea más difícil y crítica en la planeación de un 
proyecto. Por lo tanto, el siguiente tema estará completamente enfocado en 
describir el proceso de medición del tamaño de un nuevo proyecto de software. 
Pero, primero realiza la siguiente actividad. 
 
Actividad 1. Plan del proyecto 
 
Esta actividad tiene como finalidad que demuestres lo que has comprendido respecto a lo 
que es un plan de un proyecto de software y que compartas tus soluciones en el Foro con 
tus compañeros. 
 
Propósito: Comprender lo que es un plan, su contenido, etapas y como se planea un 
proyecto de software 
 
Instrucciones: 
1. Lee la problemática planteada. 
Existe un cliente cuya problemática involucra el desarrollo de un nuevo proyecto de 
software. A continuación se enlistan varias actividades y sucesos previos al desarrollo del 
proyecto. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor13 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 13 
 
1. El responsable del proyecto estima el tamaño del proyecto tomando cada 
módulo pensado para el proyecto y comparándolo contra otros módulos de 
proyectos anteriores para identificar el más parecido y estimar su tamaño. 
( ) 
2. El responsable del proyecto establece las fechas en que cada actividad 
correspondiente al desarrollo del proyecto deberá ser realizada. 
( ) 
3. El responsable del proyecto, junto con un analista se reúne con el cliente para 
identificar de forma específica lo que se espera del proyecto a desarrollar. 
( ) 
4. El responsable del proyecto comienza a planear cuáles personas podrían 
trabajar en el desarrollo del proyecto. 
( ) 
5. El responsable del proyecto se auxilia con un arquitecto de software para 
realizar un diseño general de los módulos que debería contener el proyecto. 
( ) 
 
2. Analiza los casos anteriores, e identifica las etapas que conlleva la planeación de ese 
proyecto de software. 
3. Indica a qué etapa de la planeación corresponde cada una de las actividades 
mencionadas en el punto 1: 
(a) Definición de Requerimientos 
(b) Realizar un diseño conceptual 
(c) Estimar el tamaño del proyecto 
(d) Estimar los recursos necesarios 
(e) Calendarizar las actividades 
 
4. Ingresa al Foro y comparte al menos con tres compañeros las soluciones de la 
actividad. 
5. Atiende a las indicaciones que te dé tu facilitador(a), pues, en el foro tendrás que 
argumentar el porqué de tus respuestas. 
6. No olvides consultar la rúbrica general de participación en foros. 
 
Como pudiste darte cuenta, la planeación 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 podrás identificar cuánto tardas en realizarlas. Es por ello 
que realizar planes es una buena práctica en el desarrollo de software. 
 
2.2. Medición del tamaño del software 
 
Cuando planeamos nuevos proyectos de software, inevitablemente tenemos que estimar 
o tener un conocimiento preliminar sobre el tiempo que nos tomará realizar dicho 
proyecto. Esta etapa cobra una vital importancia, pues de los datos que se generen 
depende en gran medida el costo que tendrá el proyecto para el cliente. 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor14 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 14 
Sin embargo, para poder estimar o predecir cuánto tiempo se requiere para desarrollar el 
proyecto, es necesario conocer o tener una medida del mismo. Y un par de preguntas que 
surgen son: ¿cómo medimos un proyecto de software? ¿qué medida es la más precisa? 
 
En este capítulo se analizarán algunas técnicas para medir y estimar el tamaño de nuevos 
proyectos de software, pues a través de los años, el estudio e investigación sobre PSP, 
por parte de Watts Humphrey, ha recopilado una serie de datos y buenas prácticas que 
ahorrarán en gran medida la investigación y aprendizaje en este tema. (Zapata, J., García, 
J., Cerrada, J. 2001. Pág. 58-71). 
 
2.2.1. Medición del tamaño 
 
Para comprender las métricas para el tamaño de un producto de software conviene 
responder la siguiente pregunta: ¿por qué medir el tamaño? 
 
Como se mencionó en la introducción a este capítulo, conocer el tamaño de algo, en este 
caso, de un proyecto de software, es fundamental para poder estimar cuánto tiempo 
tomará desarrollar dicho proyecto. Una vez que se conoce la importancia de medir el 
tamaño, la siguiente pregunta que se hace es: ¿cómo se puede medir el tamaño de un 
proyecto de software? 
 
Responder a la pregunta anterior ha sido unode los retos más controversiales que ha 
tenido la ingeniería de software desde que los proyectos tuvieron la necesidad de 
planearse, en la década de 1970. A lo largo de ese tiempo, los lenguajes y paradigmas de 
la programación han estado en constante cambio. Este factor ha sido determinante para 
hacer aún más complejo el obtener una métrica o forma de medir el tamaño de un 
proyecto de software de forma precisa en un cien por ciento. Por lo tanto, no existe una 
métrica que sea exacta por completo, sino por el contrario, todas las métricas que se han 
utilizado hasta ahora son aproximaciones, sin embargo, si existen diferencias 
considerables en la exactitud y eficacia de cada una de ellas. 
 
Para que una métrica, en cualquier contexto y escenario, sea útil, debe cumplir lo 
siguiente (Humphrey, W. 1995.): 
 
- Debe servir para un propósito específico. Por ejemplo, la unidad de medida litro 
sirve específicamente para medir volúmenes. Querer medir el peso con una 
métrica o instrumento que mide volumen sería muy difícil a la vez que los 
resultados serían inadecuados y poco útiles. En el contexto de la ingeniería de 
software, medir el tamaño de un producto debe servir a un propósito muy 
específico: 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 ambigüedades. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor15 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 15 
Por ejemplo, la unidad de medida metro está bien definida y cualquier cinta 
métrica 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 
ingeniería de software, se requiere de una unidad de medida lo más exacta posible 
y que no tenga ambigüedades cada vez que se aplique en la medición de 
proyectos de software. 
- Debe ser adecuadamente administrada. Generalmente, conocer la medida de algo 
tiene implicaciones para tomar una decisión o hacer algo con esa medida 
conocida. Por ejemplo, conocer el área que ocupa una mesa es podría ser de 
utilidad para escoger el mantel que mejor la cubra. De igual forma, las métricas de 
desarrollo de software deben aportar utilidad para administrar y controlar el 
proyecto. 
- Debe ser adecuadamente utilizada. Los datos obtenidos con una métrica 
determinada deben ser adecuadamente utilizados. Por ejemplo, medir el área de 
un cuarto sería poco útil si buscamos elegir el color de piso que mejor combine 
con el diseño de dicho cuarto. En todo caso, es mejor utilizar otra unidad de 
medida, como por ejemplo, el color más representativo o la luminosidad del cuarto. 
En el contexto de la ingeniería de software, las métricas para medir el tamaño de 
un proyecto de software deben utilizarse para tal fin. Sería ilógico utilizar una 
métrica de tamaño de software para elegir el tamaño del monitor ideal para la 
computadora donde se instalará el sistema a desarrollar en ese proyecto. 
 
Por lo tanto, medimos para: 
 
- Entender y saber administrar los cambios 
- Planear el futuro 
- Comparar un producto, organización o proceso con otro 
- Determinar si estamos apegados a estándares 
- Contar con bases para controlar 
 
Se tiene que ser consciente qué las medidas solo producen números. 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 razón 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 número 
de tablas que tendrá la base de datos no significa conocer cuántas de esas tablas 
serán catálogos 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 carácter preventivo, correctivo 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor16 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 16 
o las acciones de curso normal para lograr los objetivos planteados al inicio del 
desarrollo del proyecto así como para efectuar una mejor planeación de nuevos 
proyectos. 
 
A lo largo del tiempo, se han propuesto varias técnicas para medir el tamaño de un 
proyecto de software. A continuación se mencionan algunas de ellas: 
 
- Número de archivos que tendrá el programa 
- Número de módulos que tendrá el programa 
- Número de tablas en la base de datos 
- Número de pantallas que tendrá la aplicación 
- Puntos de función 
- Líneas de código 
 
De las técnicas mencionadas anteriormente, la que más efectiva ha sido en el PSP es la 
métrica por líneas de código. Como su nombre lo indica, esta técnica se basa en contar 
las líneas de código que tiene o tendrá el proyecto de software. Esto será tratado con 
mayor detalle en los siguientes tópicos. (Humphrey, W. 1995. Pág. 69-90). 
 
2.2.2. Establecer un conteo estándar 
 
Al elegir una métrica para calcular el tamaño o la medida de algo, se debe responder lo 
siguiente: ¿si dos personas miden la misma cosa, obtienen el mismo resultado? 
 
Responder a la pregunta anterior es fundamental, pues de ello depende la confiabilidad 
en la precisión de la métrica que estamos aplicando para medir algo. Si cada vez que 
medimos la misma cosa en las mismas condiciones obtenemos resultados distintos, 
inevitablemente deberemos tomar algún otro criterio o métrica más estable que nos 
permita obtener confiabilidad en las medidas que nos arroja. 
Para poder homogenizar una métrica y aumentar su confiabilidad, es necesario realizar un 
estándar de conteo. 
 
Un estándar de conteo es un documento que expresa de forma clara y sin ambigüedad 
qué es algo contable y qué no lo es, de acuerdo con una métrica determinada. En el caso 
de la métrica de líneas de código, en dicho estándar se debe definir lo que sí debe ser 
contado como una línea de código y lo que no. Por ejemplo, los comentarios en el código, 
¿deben ser considerados como líneas de código o no? Decidir si las líneas de un 
comentario en el código fuente de un programa o módulo serán contadas depende de 
quien realiza el estándar de conteo de líneas de código y del criterio que aplique para 
tomar esta decisión. 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor17 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 17 
2.2.3. Contadores de LOC y tipos 
 
Llevar un conteo de líneas de código de forma manual es muy difícil e impreciso. Por tal 
motivo, existen distintas herramientas que ayudan a los ingenieros de software con esta 
tarea. Sin embargo, se tiene que considerar que los contadores de líneas de código 
automatizados solamente trabajarán para las características que se han definido en dicho 
contador. En otras palabras, al elegir un programa contador de líneas de código, debemos 
asegurarnos que dicho programa se apega al estándar de conteo definido con 
anterioridad. De otra forma, sería impreciso y poco útil el utilizar esa métrica si no se 
apega al estándar de conteo definido previamente. Una práctica común para salvaguardar 
este escenario es el de tomar con estándar de conteo de líneas el propio estándar que ya 
trae por definición el programa contador de líneas de código elegido (Humphrey, W. 2005. 
Pág. 35-55). 
 
De las diversas soluciones que existen, algunas son de pago y otras gratuitas. La 
diferencia entre unos y otros son básicamente las prestaciones que brindan así como los 
lenguajes y plataformasque soportan. 
 
A continuación se mencionan algunos contadores de líneas de código y sus 
características: 
 
Programa Gratuito Página de la 
compañía 
Plataformas y 
lenguajes soportados 
Code Counter Pro 
No http://www.geronesoft.
com/ 
Varios 
Microsoft LOC 
Counter 
Si http://archive.msdn.mi
crosoft.com/LOCCount
er 
Lenguajes de la 
plataforma .Net 4.0 
Code Line Counter 
Pro 
No http://www.codelineco
unter.com/ 
Varios. Se compra por 
separado para cada 
lenguaje distinto. 
Tabla. Software para contar líneas de código. 
No importa cuál sea la herramienta que utilices, si tu equipo no tiene correctamente 
definidos los estándares de conteo habrá discrepancia en la forma de contar de cada 
programador. Por ejemplo el código de re-uso no debería contarse a menos que hagas 
mejoras. En el siguiente tema se explica en que consiste este tipo de código y su utilidad 
para las empresas de desarrollo. 
 
 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor18 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 18 
2.2.4. Consideraciones del re-uso 
 
Generalmente, al desarrollar nuevos proyectos, se intenta reducir el esfuerzo requerido en 
el desarrollo. Una de las prácticas comunes es buscar código existente de proyectos 
previos para reutilizarlo en los nuevos evitando invertir esfuerzos para obtener un código 
que hace la misma función de uno que previamente ya se había desarrollado. También, 
es común en pensar en modificar un código existente y simplemente adaptarlo antes que 
crear uno completamente. Sin embargo, debe evaluarse si el esfuerzo requerido para 
modificar un código existente realmente es menor que el necesario para crear ese código 
fuente desde el principio. 
 
En el mejor de los casos, lo más conveniente es utilizar librerías y módulos completos 
previamente desarrollados evitando de esta forma el mayor esfuerzo posible. Sin 
embargo, poder llegar a este tipo de buenas prácticas implica que para cada proyecto 
desarrollado deben crearse módulos genéricos con la menor dependencia posible del 
proyecto. Lo cual, es una tarea que se da por la experiencia obtenida con el progresivo 
desarrollo de proyectos. (Humphrey, W. 1995. Pág. 84). 
 
2.2.5. Conteo de líneas de código 
 
En el capítulo 2.2.3. se analizó de forma introductoria lo que significa el conteo de líneas 
de código de un programa y cómo esta métrica puede ser utilizada en PSP para obtener 
el tamaño de un proyecto de software basado en el número de líneas de código del 
mismo. 
 
En este apartado analizaremos de forma detallada cómo se realiza un conteo de líneas de 
código de acuerdo al PSP. Aun cuando la métrica basada en líneas de código, en 
adelante denominadas LOC’s, pareciera ser sencilla, en la práctica resulta difícil llevar un 
rastreo de las mismas si no es propiamente definido y utilizado el concepto de línea de 
código. De acuerdo con la metodología de PSP, si al iniciar la realización de un nuevo 
proyecto de software iniciamos con 5000 líneas de código que tomamos de otro programa 
y nosotros escribimos 500 líneas de código adicionales, el resultado debería ser 5500 
líneas de código. Por lo tanto, si nosotros sólo escribimos 500 líneas de código el 
resultado debería ser un programa de 500 líneas de código. Aun cuando este ejemplo 
parece obvio, en la realidad, al crecer y haber cambios en los proyectos de software, 
obtenemos un resultado diferente. A esto se debe la necesidad de entender y utilizar 
apropiadamente el tamaño de un programa basado en sus líneas de código. 
 
Cuando desarrollamos un nuevo programa, generalmente intervienen 4 tipos distintos de 
líneas de código (Humphrey, W. 2005. Pág.40-47): 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor19 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 19 
- Líneas Base. Corresponden a las líneas que se piensan reutilizar en la 
construcción de un nuevo programa. En otras palabras, son líneas de código de 
otro programa que se creen que pueden ser útiles en alguna parte del nuevo 
programa. 
- Líneas Agregadas. Corresponden a las líneas nuevas que el desarrollador 
escribe en su programa. 
- Líneas Modificadas. Corresponden a aquellas líneas base que requieren ser 
modificadas para el buen funcionamiento del nuevo programa. 
- Líneas Borradas. Corresponden a aquellas líneas base que no son de utilidad 
alguna en el nuevo programa y requieren ser eliminadas. 
- Líneas Reutilizadas. Corresponden a las líneas base que no fueron modificadas 
ni eliminadas, es decir, a aquellas líneas que no requieren modificación alguna 
para el buen funcionamiento del nuevo programa. 
- Líneas Agregadas y Modificadas. En muchos proyectos de software, el esfuerzo 
requerido para modificar una línea de código ya existente y el de crear una nueva 
es muy similar. Por lo tanto, suelen sumarse y obtener una medida de esfuerzo 
considerando ambos tipos de línea pero sin dejar de identificar cada una de ellas. 
- Líneas Nuevas Reutilizables. Los nuevos paradigmas de programación, tales 
como la programación orientada a objetos, permiten construir las aplicaciones 
basadas en módulos y librerías con funcionalidades muy específicas. De tal forma 
que se piensa en que un determinado módulo o librería pueda servir sin ser 
modificado, en el mejor de los casos, en nuevos proyectos. A las líneas de código 
pertenecientes a estas librerías o módulos se les conoce como líneas nuevas 
reutilizables. Cabe mencionar que no necesariamente tienen que ser líneas 
pertenecientes a una librería o módulo, pudiendo ser también líneas 
correspondientes a una clase, un método o procedimiento dependiendo del 
lenguaje y plataforma de programación en el cual se está desarrollando el 
proyecto. 
- Líneas Totales. Se refiere al número total de líneas que tiene el programa al final 
de su desarrollo. 
 
La razón por la cual es necesario llevar un rastreo de las líneas base, agregadas, 
modificadas y borradas se debe a que por ejemplo, si comenzamos el desarrollo del 
programa en la versión 0, contamos 400 líneas de código base y después agregamos 
200, esperaríamos tener una primer versión con 600 líneas de código. Sin embargo, al 
contar las líneas de código de la versión 1 el tamaño total es de 550 líneas de código. 
¿Qué sucedió con las 50 líneas de código faltantes? 
 
2.2.6. Calcular la productividad 
 
La productividad es un factor que relaciona el tiempo requerido para una tarea 
determinada y el producto derivado de realizar dicha tarea. Este factor es utilizado en 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor20 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 20 
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 específica 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 
planeación previa al desarrollo del proyecto. Por otra parte, planear el desarrollo de dicho 
proyecto involucra conocer el tamaño del proyecto. A su vez, conocer el tamaño 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 largodel tiempo se han propuesto varias métricas 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 código en algún lenguaje de script, una pantalla de usuario, etc. 
Para el caso de PSP, el autor propone una métrica de productividad basada en las líneas 
de código nuevas que un desarrollador realiza en una hora. Si bien, esta métrica pudiera 
no ser la mejor, ha demostrado ser la más asertiva para medir la productividad de un 
ingeniero de software. Por lo tanto, si la medición del tamaño de un producto de software 
está basada en sus líneas de código y, la productividad de un desarrollador está basada 
en las líneas de código que produce en una hora, la estimación del tiempo requerido para 
desarrollar el producto se puede calcular fácilmente dividiendo el tamaño estimado del 
producto entre la productividad del desarrollador: 
 
Para concluir con este apartado, sólo resta mencionar que la productividad de un 
desarrollador no es constante. A lo largo del tiempo y después de la experiencia en el 
desarrollo de varios proyectos, los desarrolladores van aumentando su productividad a la 
vez que haciendo más eficientemente sus tareas. Por eso es importante ir recolectando 
datos de la productividad en cada proyecto. Esto permitirá a su vez, obtener información 
sobre la productividad de los equipos de desarrollo así como información que servirá de 
base para poder estimar el tiempo de desarrollo de futuros proyectos. (Humphrey, W. 
1995. Pág. 88). 
 
2.2.7. PSP 0.1 
 
En PSP 0.1 se tienen los siguientes objetivos: 
 
 Medir el tamaño de los programas que se realizan. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor21 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 21 
 Realizar el conteo de tamaño para los programas realizados. 
 Desarrollar métricas de tamaño asertivas y precisas. 
 
En PSP 0.1 se utilizan todos los documentos vistos en PSP0 y se agregan los siguientes 
tres: 
 
 PIP, (por sus siglas en inglés, 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 problemática que se 
tenga con el PSP, sino que además se tiene que proponer alguna alternativa que 
ayude a mejorar o erradicar dicha problemática. 
 Formato para el conteo del tamaño del programa. 
 Estándar de codificación. 
 
Como resultado de esto, el formato del resumen del plan del proyecto también deberá 
mostrar los datos referentes al tamaño 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. (Echeverría, C.M., Echeverría, C.D. Mera, J.L. 2006. Pág 23-26). 
 
Actividad 2. Medición del tamaño de un software 
 
Esta actividad tiene la finalidad de que comprendas la medición del tamaño de un 
producto de software, a través de conteo de las líneas de código que lo componen, 
mediante la aplicación de un estándar de codificación y compararlo con tus compañeros 
en la Base de Datos del grupo. 
 
Propósito 
Analizar en un programa la medición del tamaño del software a través del estándar de 
conteo de Líneas de código, re-uso y productividad. 
 
Instrucciones 
1. Analiza el siguiente código correspondiente a un producto de software. 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
import java.util.List; 
import java.util.ArrayList; 
import java.util.Scanner; 
 
public class ProgramaDesviacionEstandar 
{ 
 private static List<Double> listaDatos; 
 
 /** 
 * Este es el método principal del programa. 
 */ 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor22 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 22 
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 
 public static void main(String[] args) 
 { 
 double prom = 0; 
 double stdev = 0; 
 
 listaDatos = new ArrayList<Double>(); 
 leerDatos(); 
 prom = calcularPromedio(); 
 stdev = calcularDesviacionEstandar(); 
 
 System.out.println("El Promedio de los valores es: " + prom); 
 System.out.println("La Desviación Estándar es: " + stdev); 
 } 
 
 /** 
 * Este método sirve para pedir un indeterminado 
 * número de datos al usuario. 
 * Cada dato es almacenado en una lista dinámica. 
 */ 
 private static void leerDatos() 
 { 
 Scanner teclado = new Scanner(System.in); 
 String texto = "S"; 
 double valor = 0; 
 
 while(texto.equals("S") || texto.equals("s")) 
 { 
 System.out.print("Introduce el valor no. " + 
 (listaDatos.size() + 1) + ": "); 
 
 texto = teclado.next(); 
 
 // En este try-catch evaluamos que el valor que introdujo 
 // el usuario pueda ser convertido a un valor double. 
 try 
 { 
 valor = Double.valueOf(texto); 
 listaDatos.add(valor); 
 } 
 catch (Exception ex) // Si no se pudo convertir el valor, 
 // se lanza un mensaje al usuario 
 // indicándole el error. 
 { 
 System.out.println("No se introdujo un número.\n"); 
 } 
 
 System.out.print("¿Desea capturar otro valor? [S/N]: "); 
 texto = teclado.next(); 
 } 
 teclado.close(); 
 } 
 
 /** 
 * Este método calcula el promedio de los datos 
 * almacenados en una lista dinámica. 
 * 
 * Al final el método devuelve el promedio calculado. 
 */ 
 private static double calcularPromedio() 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor23 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 23 
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á vacía, el método devolverá 0. 
 if (listaDatos.size() == 0) 
 return promedio; 
 
 for (Double d : listaDatos) 
 promedio += d; 
 
 promedio = promedio / (double) listaDatos.size(); 
 
 return promedio; 
 } 
 
 /** 
 * Este método realiza el cálculo de la desviación estándar 
 * y la devuelve. 
 */ 
 private static double calcularDesviacionEstandar() 
 { 
 double stdev = 0; // En esta variable se guardan cálculos 
 // temporales 
 // y al final la desviación estándar. 
 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 número de línea, si esa línea contará como 
línea de código o no. Cada número de línea corresponde a cada línea del programa 
anterior. Para decidir si cada línea deberá ser contada o no, deberás basarte en el 
estándar de conteo de líneas de código que se encuentra después de esta tabla. 
No. de 
Línea 
¿Cuenta cómo 
línea? 
S = SI / N = NO 
1 
2 
3 
4 
5 
6 
7 
8 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor24 
Ciencias Exactas,Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 24 
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 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor25 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 25 
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 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor26 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 26 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
 
Estándar de codificación. 
Versión: 1.0 
El siguiente documento es una guía para realizar el conteo de líneas de código. 
a) Toda declaración o directiva que hace referencia a la importación de otras clases 
cuenta como una línea de código. Por ejemplo, las instrucciones que comienzan con 
la palabra reservada “import”. 
b) Toda declaración de un método cuenta como una línea de código. Por ejemplo, la 
sentencia “public static void main(String[] args)” contará como una línea de código. 
c) Toda declaración de variable (atributo o variable) dentro de un método contará como 
una línea de código. 
d) Cuando una instrucción sea demasiado larga y ocupe varias líneas, sólo se contará 
como una única línea de código. 
e) Toda línea en blanco no será contada como línea de código. 
f) Toda línea que contenga solo un corchete de apertura o cierre sin ninguna otra 
instrucción, no será contada como línea de código. 
g) Toda línea que contenga solo comentarios no será contada como una línea de código. 
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. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor27 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 27 
5. Revisa los trabajos de tus demás compañeros en la Base de datos para que puedas 
comparar tus resultados con los del resto del grupo. 
6. Comenta por lo menos 3 líneas que identifiques incorrectas argumentando el porqué 
del error. 
7. Atiende a los comentarios que emita tu facilitador(a). 
Establecer estándares para definir la manera de contar las líneas de código es una buena 
práctica que necesitarás para evitar errores en la forma en que medimos nuestra 
productividad y la de otros miembros del equipo. Esto nos permitirá realizar mediciones 
más 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, argumentarán el porqué de su comentarios. 
 Los alumnos(as) deberán comentar por lo menos 3 errores en las bases de datos 
de sus compañeros. 
 Para ser considerada como actividad aprobada, el alumno deberá cumplir con por 
lo menos 65 líneas correctas. 
 
2.3. Estimación del tamaño del software 
 
Una vez que se tiene una métrica para medir el tamaño de un producto de software, se 
tiene también una base para poder estimar que tan grande será un nuevo proyecto 
basado en los datos históricos previos de otros proyectos. 
 
En principio, las estimaciones son realizadas comparando el trabajo planeado con el 
trabajo realizado en proyectos anteriores. Si se divide el proyecto actual en partes más 
pequeñas y se comparan con partes más pequeñas de proyectos anteriores, se puede 
obtener una mejor estimación del tamaño total del proyecto. Esta estrategia funciona bien 
para la mayoría de los proyectos que se realizan en distintas áreas. 
 
El proceso de estimación del tamaño de un producto de software a través de la división de 
tareas tiene la ventaja de que es fácilmente escalable. Si se es capaz de estimar 
proyectos pequeños, se puede ser capaz de estimar proyectos grandes a través de esta 
técnica. 
 
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 tamaño del proyecto es 
precisamente el poder predecir el tamaño 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 estimación seré siempre un proceso con 
un cierto grado de incertidumbre. Por lo tanto, siempre será una ventaja el contar con una 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor28 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 28 
mejor definición así como el mayor número de requerimientos por parte del cliente. 
(Humphrey, W. 1995. Pág. 97). 
 
2.3.2. Métodos de estimación 
 
Existen varios métodos que ayudan a estimar el tamaño de un nuevo producto de 
software, así como establecer su costo. Algunos de estos métodos son herramientas 
comerciales, otras son de implementación personalizada, automatizadas o manuales. 
Dentro de las comerciales existe una amplia variedad que ayudan a las organizaciones de 
desarrollo de software a generar estimaciones más precisas y controlables. Algunos 
ejemplos son: COCOMO II, CoStar, CostModeler, CostXpert, KnowledgePlan®, PRICE S, 
SEER, SLIM y SoftCost. 
 
Las herramientas comerciales están principalmente enfocadas a la estimación del costo 
del software y muchas de ellas comparten algunas características como: 
 
- Especificación de requerimientos. 
- Niveles de fase, actividad, tarea, etc. 
- Definición del período laboral y vacacional. 
- Manejo de salarios. 
- Uso de diferentes tipos de proyectos. 
- Métricas de puntos de función, líneas de código, etc. 
 
Sin embargo, ningún método de estimación es lo suficientemente preciso para indicar con 
exactitud los tiempos que cada tarea nos llevará. Una buena práctica de la estimación 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 más cercanos a la realidad. En el 
siguiente tema veremos los dos métodos que se recomiendan en PSP los cuáles son el 
Proxy y el PROBE. Y en la unidad 3 verás métodos basados en juicio experto y 
estadísticos. (Jones, C. 2010. Pág. 1). 
 
2.3.3. Proxy 
 
En este tópico se analizará el método Proxy. El método Proxy es un método propuesto 
por Watts Humphrey, creador de PSP y, se verá más adelante, sirve para medir el tamaño 
que tendrá un producto de software basado en la división más elemental de los 
componentes que integrarán el producto que se piensa desarrollar. A estos elementos se 
les llama “partes proxy” cuya característica principal es que pueden ser comparados con 
otros elementos proxy correspondientes a proyectos desarrollados previamente de los 
cuales ya se tienen datos históricos. 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor29 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 29 
El siguiente ejemplo muestra en primera instancia las bases de un método de estimación 
basado en un proxy. Si se piensa por ejemplo, en la construcción de una casa tomando 
en cuenta la cantidad de metros cuadrados que se van a construir, se podría tener una 
base para estimar el costo de construcción. Sin embargo, algunas personas, pueden 
pensar en términos de metros cuadrados basados en el número de cuartos y baños que 
tendrá la casa para realizarla estimación del costo de construcción. La estimación del 
software es un problema similar. Si se pudiera saber el número de tablas y relaciones 
entre ellas, que tendría la base de datos o, el número de líneas de código que tendrá el 
programa, se formularía una base para poder estimar su tamaño. 
 
Es muy difícil realizar la estimación del tamaño de un programa basado únicamente en los 
requerimientos del cliente. Se requiere de algún proxy que permita relacionar el tamaño 
del producto con las funciones que se desean incorporar en el programa. Un proxy no es 
más que un sustituto del cual conocemos su tamaño. Ejemplos de proxies son tablas, 
clases, campos o pantallas. 
 
Existen algunos criterios para seleccionar un proxy adecuadamente: 
 
- La medida del proxy debe estar altamente relacionada con el esfuerzo requerido 
para desarrollar el producto. 
- El contenido proxy de un producto debe ser automáticamente contable. 
- El proxy debe ser fácil 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 implementación que afectan los 
costos de desarrollo o esfuerzo. 
 
El siguiente diagrama muestra el proceso para seleccionar un proxy adecuado en el 
desarrollo de un proyecto. 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor30 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 30 
 
Figura. Diagrama del proceso para estimar proyectos de software utilizando el método 
Proxy. (Humphrey, W. 1995. Pág. 110). 
 
 
Una vez que se comprendido el método de estimación por proxy se podrá analizar un 
método más complejo denominado PROBE, el cual será descrito en la siguiente sección. 
El método PROBE está basado en el método Proxy, pero además, permite estimar el 
tiempo requerido para el desarrollo de cada parte del proyecto. (Humphrey, W. 1995. 
Pág. 109). 
 
2.3.4. Probe 
 
En esta sección se analizará el método PROBE. Este método permite obtener una 
estimación del tamaño de cada parte del proyecto (basado en la metodología Proxy) y 
posteriormente, con estos datos, permite estimar el tiempo requerido para el desarrollo de 
cada una de las partes del proyecto. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor31 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 31 
El método PROBE utiliza datos históricos para realizar las estimaciones. Por ejemplo, si 
se estima el trabajo para desarrollar un sistema de consultas en una base de datos, se 
podría producir inicialmente un diseño conceptual y después dividirlo en partes. 
 
Posteriormente, se podrían estimar el número 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 serían 142.5 
horas. 
 
Para hacer más precisas las estimaciones se requiere además 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 estimación de tamaño y tiempo de 
desarrollo, es necesario comprender como son utilizados dentro del proceso PSP, en 
específico, en el nivel 1 o (también conocido como PSP1), el cual, será descrito en la 
siguiente sección. (Humphrey, W. 2005. Pág.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 tomaría 
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 empírica, 
basado en la experiencia del desarrollador, el tiempo de desarrollo por cada fase y se 
estima además, las líneas de código que podría tener el nuevo programa a desarrollar. 
Finalmente, en PSP 1, el objetivo es el mismo que en PSP 0.1, sólo que, la estimación de 
las líneas de código se realiza utilizando el método Proxy y adicionalmente, utilizando el 
método PROBE y los datos históricos de PSP 0 y PSP 0.1, se estima de forma automática 
el tiempo de desarrollo por cada fase. 
 
El objetivo en PSP1 es establecer un procedimiento ordenado y repetible para realizar 
estimaciones de tamaño y tiempo de desarrollo por cada fase para un nuevo producto de 
software. Este nivel toma en cuenta dos nuevos aspectos: 
 
 Estimación de tamaño y tiempo basado en el método PROBE. 
 Reporte de pruebas. 
 
La hoja del resumen del plan del proyecto se expande para mostrar además de los datos 
de PSP0.1, datos de productividad (medida en líneas de código por hora), tamaño 
planeado para todos los tipos de líneas de código. (Zapata, J., García, J., Cerrada, J. 
2001. Pág. 60-61). 
 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor32 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 32 
Actividad 3. Estimación del tamaño de un software 
 
Esta actividad tiene la finalidad de que reflexiones sobre la estimación del tamaño de un 
producto de software y determinar la factibilidad de utilizar métodos de estimación como 
Proxy o PROBE de acuerdo a los escenarios propuestos. 
 
Por lo tanto, Ingresa al aula virtual para realizar la actividad. 
 
Propósito 
Reforzar la comprensión acerca de la estimación del tamaño de un producto de software. 
 
Instrucciones 
1. Analiza Los siguientes dos escenarios. 
 
Escenario 1: 
 Una empresa de software va a realizar su primer proyecto para un cliente 
determinado. Sin embargo, la empresa no cuenta con datos históricos de proyectos 
anteriores. 
 
Escenario 2: 
 Una empresa de software va a realizar un nuevo proyecto de software. La 
empresa ha desarrollado varios proyectos con anterioridad y cuenta con los datos 
históricos de tamaño y tiempos de desarrollo de dichos proyectos. Sin embargo, para este 
nuevo proyecto, se ha visto en la necesidad de contratar un nuevo equipo de 
desarrolladores para las tareas de codificación y pruebas unitarias. 
 
 
2. Contesta las siguientes preguntas sobre los escenarios anteriormente descritos. 
 
a) En el escenario 1, ¿la empresa debería utilizar el método PROBE para estimar y 
planear el trabajo? ¿por qué? ¿qué recomendación le proporcionarías? 
b) ¿La empresa podría realizar la estimación del proyecto utilizando el método PROXY? 
¿por qué? En el caso de la estimación de tiempos a través del método PROBE, ¿qué 
recomendación le darías y por qué?, por ejemplo, tomar la productividad de desarrollo 
más baja y con esa base estimar los tiempos. 
 
3. Guarda la actividad con el nombre DMDS_U2_A3_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 actividades del aula virtual y sube tu archivo. 
5. Espera retroalimentación por parte de tu facilitador(a). 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor33 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 33 
6. Atiende los comentarios y, en caso de ser necesario, modifica tu actividad y envíala 
de nuevo. 
Considera que una buena estimación es la que proporciona una visión clara de la realidad 
de un proyecto, permite al líder controlar adecuadamente el proyecto y lograr los 
objetivos. 
 
Autoevaluación 
 
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 más sobresalientes de la unidad. 
 
6 2 4 10 
17 
 
 
 9 5 
 
 
 8 
 3 
 
 
 
1. Funcionalidades con las que deberá contar el producto final. 
2. Factor que relaciona el tiempo requerido para una tarea y el producto derivado de 
realizar dicha tarea. 
3. Se llevan a cabo todas las actividades involucradas en el proyecto. 
4. Necesaria para conocer el tamaño del proyecto. 
5. Tiempos promedios con la planeación balanceada. 
6. Método para medir el tamaño que tendrá un producto de software basado en la división 
más elemental de los componentes que lo integrarán. 
7. Aplicar código, librerías o módulos previamente desarrollados. 
8. Guía que nos muestra los pasos, procedimientos o medidas a seguir para lograr un 
objetivo o meta determinada. 
9. Formato para emitir una propuesta de mejora al PSP. 
10. Líneas de código. 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor34 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 34 
Evidencia de aprendizaje. Programa PSP 1 
 
Cuando generamos programas con PSP1 debemos estimar basados en los datos 
históricos, en esta actividad aprenderás a utilizar el método PROBE basado en los proxies 
de un proyecto. 
 
Propósito: Utilizar el método de estimación PROBE en un programa a través de la 
definición del contexto, identificación de proxies e identificación de otros métodos de 
estimación. 
 
Instrucciones: desarrolla las 4 partes de la actividad. 
 
Parte 1: 
Analiza la siguiente tabla con datos históricos de un proyecto desarrollado. La tabla 
muestra una serie de componentes numerados del 1 al 10. Cada componente cuenta con 
una descripción de su función dentro del sistema desarrollado. La tercera columna 
muestra las líneas de código totales que tuvo cada componente una vez concluido el 
proyecto. 
No. Componente 
Líneas de 
Código 
1 Comunicación entre la interfaz de usuario y los componentes de la 
capa de negocio. Las clases de este componente reciben datos 
provenientes de la interfaz de usuario y realizan las acciones 
correspondientes. 
1200 
2 Interfaz de usuario con los controles necesarios para poder realizar 
altas, bajas y cambios de clientes. 
570 
3 Módulo para el acceso a la base de datos y control de sentencias 
SQL. 
400 
4 Módulo de reportes de la aplicación. Este módulo genera los 
reportes dentro de la aplicación. 
700 
5 Módulo de reportes de la aplicación en web. Este módulo genera 
reportes desde una interfaz que puede ser accedida a través de 
internet o una red mediante un navegador. 
850 
6 Módulo para cálculos estadísticos. Este módulo permite realizar 
varios cálculos estadísticos desde fuentes de datos como archivos, 
bases de datos y colecciones de valores en memoria. 
1000 
7 Módulo de interfaz de usuario para control de productos: Altas, 
bajas y cambios. 
650 
8 Módulo de interfaz de usuario para ventas. En este módulo se 
manejan las interfaces de usuario para realizar ventas de productos, 
cambios y devoluciones. 
870 
9 Módulo de operaciones y reglas de negocio relacionadas con las 1500 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor35 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 35 
 
Parte 2: 
Con base en la tabla anterior, determina los proxies más adecuados para los módulos del 
siguiente proyecto que se desea desarrollar. 
 
Se desea desarrollar un sistema en un hospital que permita llevar el control de pacientes, 
médicos e ingresos de pacientes al hospital. La siguiente tabla determina los módulos que 
los analistas de sistemas proponen desarrollar para satisfacer las necesidades del cliente 
después de varias sesiones de pláticas y entendimiento de la problemática a solucionar. 
 
Coloca en la tercera columna de la siguiente tabla, el número de proxy más adecuado 
tomando como base los componentes de la tabla de la parte 1. 
No. Componente 
No. de 
Componente Proxy 
más parecido 
1 
Se requiere de un módulo de interfaz de usuario una 
interfaz para poder realizar altas, bajas y cambios de los 
datos de los médicos. 
 
2 
Se requiere un módulo de interfaz de usuario con los 
controles necesarios para poder realizar altas, bajas y 
cambios de los ingresos de los pacientes al hospital. 
 
3 
Se requiere un módulo para el acceso a la base de datos y 
control de sentencias SQL. 
 
4 Se requiere un módulo de reportes dentro de la aplicación. 
5 
Se requiere de un módulo para manejar las reglas de 
negocio de los ingresos. Considerar las reglas de negocio 
de tamaño grande. 
 
 
Parte 3: 
Contesta la siguiente pregunta: 
¿Cuál sería el tamaño estimado en líneas de código que tendría el proyecto, sumando las 
líneas de código de todos proxies de la tabla 2? 
Parte 4: 
Una vez que has estimado los proxies más adecuados para cada componente, determina 
el tiempo, en horas, que tardaría un sólo desarrollador en realizar el proyecto. Utiliza 
como medida de productividad 22 líneas de código por hora, dividiendo las líneas de 
código totales (Parte 3) entre la productividad (22). 
 
compras. 
10 Módulo de reglas de negocio y operaciones para control de 
productos e inventarios. 
2300 
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor36 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 36 
1. Ahora, en un documento de texto, Guarda la actividad con el nombre 
DMDS_U2_EA_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. 
2. Envía a tu archivo a tu facilitador(a) por medio de la herramienta Evidencia de 
aprendizaje de la unidad. 
3. Espera retroalimentación por parte de tu facilitador(a) y en caso de ser necesario, 
modifica y renvía tu evidencia. 
La estimación de líneas de código es un elemento importante para poder hacer planes de 
nuestros programas o proyectos de software. Es por ello que llevar un adecuado estándar 
de conteo de Líneas de código es importante para tener un registro histórico confiable y 
cada vez más preciso. 
 
 
Autorreflexiones 
 
Además de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses 
al foro Preguntas de Autorreflexión y consultes las preguntas que tu Facilitador(a) 
presente, a partir de ellas, debes elaborar tu Autorreflexión en un archivo de texto 
llamado DMDS_U2_ATR_XXYZ. Posteriormente envía tu archivo mediante la herramienta 
Autorreflexiones. 
 
Para saber más 
 
Si deseas saber acerca de PSP, TSP o CMMI puedes consultar la siguiente dirección 
electrónica: 
 
 http://www.ecured.cu/index.php/Proceso_de_Software_Personal 
 
Es una enciclopedia virtual, colaborativa y en español que fue creada para difundir el 
conocimiento de tecnologías de la información, sus fuentes son confiables. Puedes 
participar en sus foros y acceder a este sitio por medio de las redes sociales más 
importantes de la actualidad. 
 
Fuentes de consulta 
 
Bibliografía básica 
 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. 
http://www.ecured.cu/index.php/Proceso_de_Software_Personal
Métricas de desarrollo de software 
Unidad 2. Planeación 
 
 
 Ejecutas el editor37 
Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 37 
 Zapata, J., García, J., Cerrada, J. (2001) Introducción al proceso software personalSM. 
Madrid, España: Addison Wesley. 
 
Bibliografía

Continuar navegando