estimación y calendarización para proyectos software. · estimaciÓn de tiempo y costo de...

12
ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE 2013 Página 1 de 12 Estimación y calendarización para proyectos software. Antes de que el proyecto comience el gestor del proyecto y el equipo de software deben estimar el trabajo que habrá que realizarse, los recursos que se requerirán y el tiempo que transcurrirá desde el principio hasta el final. Una vez que se completen estas actividades, el equipo de software debe establecer un plan del proyecto que defina las tareas y fechas clave de la ingeniería del software, que identifique quién es responsable de dirigir cada tarea y especifique las dependencias entre tareas que pueden ser determinantes en el progreso. Siempre que se realizan estimaciones se atisba al futuro y se acepta automáticamente algún grado de incertidumbre. Aunque la estimación es tanto un arte como una ciencia, esta importante actividad no necesita realizarse en una forma improvisada. Existen técnicas para la estimación de tiempo y esfuerzo. La experiencia puede auxiliar enormemente conforme se desarrolla y revisan las estimaciones. La estimación del costo y el esfuerzo nunca será una ciencia exacta. Demasiadas variables- humanas, técnicas, ambientales, políticas- pueden afectar el costo final del software y el esfuerzo aplicado a desarrollarlo. Para lograr estimaciones confiables de costo y esfuerzo se tienen varias opciones: 1. Demorar la estimación hasta tarde en el proyecto (obviamente, se logra el 100% de estimación precisa después de que el proyecto esté terminado)no es práctica, porque la estimación de costos se tiene que proporcionar por adelantado. 2. Basar las estimaciones en proyectos similares que ya hayan sido completados. 3. Emplear técnicas de descomposición relativamente simples para generar estimaciones de costo y esfuerzo del proyecto. 4. Utilizar uno o más modelos empíricos en la estimación de costo y esfuerzo. Proceso de planificación del proyecto El objetivo de la planificación del proyecto de software es proporcionar un marco de trabajo que permita al gestor estimar razonablemente recursos, costo y programa de trabajo. Además las estimaciones deben intentar definir los escenarios de mejor y peor caso de modo que los resultados del proyecto se puedan acotar. Aunque existe un grado inherente de incertidumbre, el equipo de software se embarca en un plan establecido como consecuencia de las tareas de planificación. Por lo tanto, el plan se debe adaptar y actualizar conforme avance el proyecto Ámbito del software y factibilidad El ámbito del software describe las funciones y características que se entregarán a los usuarios finales, los datos que son entrada y salida, el contenido que se presenta a los usuarios como consecuencia de emplear el software, así como el desempeño, las restricciones, las interfases y la confiabilidad que acotan el sistema. El ámbito se define al usar una de las dos técnicas siguientes:

Upload: ngonhan

Post on 23-Jun-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 1 de 12

Estimación y calendarización para proyectos software.

Antes de que el proyecto comience el gestor del proyecto y el equipo de software deben estimar

el trabajo que habrá que realizarse, los recursos que se requerirán y el tiempo que transcurrirá

desde el principio hasta el final. Una vez que se completen estas actividades, el equipo de

software debe establecer un plan del proyecto que defina las tareas y fechas clave de la ingeniería

del software, que identifique quién es responsable de dirigir cada tarea y especifique las

dependencias entre tareas que pueden ser determinantes en el progreso.

Siempre que se realizan estimaciones se atisba al futuro y se acepta automáticamente algún grado

de incertidumbre. Aunque la estimación es tanto un arte como una ciencia, esta importante

actividad no necesita realizarse en una forma improvisada. Existen técnicas para la estimación de

tiempo y esfuerzo. La experiencia puede auxiliar enormemente conforme se desarrolla y revisan

las estimaciones.

La estimación del costo y el esfuerzo nunca será una ciencia exacta. Demasiadas variables-

humanas, técnicas, ambientales, políticas- pueden afectar el costo final del software y el esfuerzo

aplicado a desarrollarlo. Para lograr estimaciones confiables de costo y esfuerzo se tienen varias

opciones:

1. Demorar la estimación hasta tarde en el proyecto (obviamente, se logra el 100% de

estimación precisa después de que el proyecto esté terminado)�no es práctica, porque

la estimación de costos se tiene que proporcionar por adelantado.

2. Basar las estimaciones en proyectos similares que ya hayan sido completados.

3. Emplear técnicas de descomposición relativamente simples para generar estimaciones de

costo y esfuerzo del proyecto.

4. Utilizar uno o más modelos empíricos en la estimación de costo y esfuerzo.

Proceso de planificación del proyecto

El objetivo de la planificación del proyecto de software es proporcionar un marco de trabajo que

permita al gestor estimar razonablemente recursos, costo y programa de trabajo. Además las

estimaciones deben intentar definir los escenarios de mejor y peor caso de modo que los

resultados del proyecto se puedan acotar. Aunque existe un grado inherente de incertidumbre, el

equipo de software se embarca en un plan establecido como consecuencia de las tareas de

planificación. Por lo tanto, el plan se debe adaptar y actualizar conforme avance el proyecto

Ámbito del software y factibilidad

El ámbito del software describe las funciones y características que se entregarán a los usuarios

finales, los datos que son entrada y salida, el contenido que se presenta a los usuarios como

consecuencia de emplear el software, así como el desempeño, las restricciones, las interfases y la

confiabilidad que acotan el sistema. El ámbito se define al usar una de las dos técnicas siguientes:

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 2 de 12

1. Despues de una comunicación con todos los participantes se desarrolla una descripción

narrativa del ámbito del software.

2. Los usuarios finales desarrollan un conjunto de casos de uso.

Las consideraciones del desempeño abarcan los requisitos de procesamiento y tiempo de

respuesta. Las restricciones identifican los limites colocados en el software por el hardware

externo , la memoria disponible u otros sistemas existentes.

Una vez identificado el ámbito es razonable preguntar: ¿es posible construir software para

satisfacer este ámbito? ¿El proyecto es factible?

Recursos: humanos, de software reutilizables, del entorno

La segunda tarea de la planificación es la estimación de los recursos necesarios para completar el

esfuerzo de desarrollo del software. La siguiente figura muestra las tres grandes categorías de los

recursos de ingeniería del software: personal, componentes de software reutilizables y el entorno

de desarrollo.

Aclaración: Componentes OTS, son componentes fuera de la plataforma.

� Recursos humanos

El planificador comienza evaluando el ámbito del software y seleccionando las habilidades

requeridas para completar el desarrollo. Se especifican tanto la posición organizacional (por

ejemplo, gestor, ingeniero de software ejecutivo) como la especialidad (por ejemplo,

telecomunicaciones, base de datos, cliente/servidor). En proyectos relativamente pequeños

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 3 de 12

(unos pocos persona-mes) un solo individuo puede realizar todas las tareas de ingeniería del

software y consultar con especialistas conforme se requiere. En proyectos mayores el equipo

de software puede estar geográficamente disperso en varios sitios. Aquí se especifica la

ubicación de cada recurso humano.

� Recursos de software reutilizables

La ingeniería del software basada en componentes enfatiza la creación y reutilización de

bloques de construcción de software. Tales bloques, usualmente llamados componentes,

deben catalogarse para consultarlos con facilidad, estandarizarse para facilitar su aplicación y

validarse para integrarlos fácilmente.

Se sugieren cuatro categorías de recursos de software que deben considerarse conforme

avanza la planificación:

• Componentes ya desarrollados: se obtiene de un tercero o se desarrolló internamente

por un proyecto previo.

• Componentes experimentados: especificaciones, diseños, código o datos de prueba

existentes que se desarrollaron para proyectos previos son similares al software que se

constituirá para el proyecto actual.

• Componentes de experiencia parcial: especificaciones, diseños, código o datos de prueba

existentes que se desarrollaron para proyectos previos están relacionados con el software

que se construirá para el proyecto actual pero requerirán modificaciones sustanciales. Los

miembros del equipo de software actual solo tienen experiencia limitada en el área de

aplicación que representan dichos componentes.

• Componentes nuevos: el equipo de software debe construir los componentes de software

específicamente para las necesidades del proyecto actual.

Irónicamente, con frecuencia los componentes de software reutilizables son despreciados

durante la planificación, sólo para convertirse en una preocupación importante durante la fase

de desarrollo del proceso de software.

� Recursos del entorno

El entorno que soporta un proyecto de software, denominado entorno de ingeniería del

software (EIS), incorpora hardware y software. El hardware proporciona una plataforma que

soporta las herramientas (software) con que se producen los productos de trabajo basados en

una buena práctica de la ingeniería del software. El planificador de proyecto debe prescribir la

ventana de tiempo requerida por el hardware y el software, y verificar que estos recursos

estarán disponibles.

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 4 de 12

Técnicas de descomposición

La estimación del proyecto es una forma de resolver problemas; en la mayoría de los casos, el

problema que debe resolverse es muy complejo como para considerarlo una sola pieza, por esta

razón se descompone el problema, re caracterizándolo como un conjunto de problemas más

pequeños.

� Tamaño del software

Puesto que la estimación de un proyecto sólo es tan buena como la estimación del tamaño del

trabajo para realizarlo, el tamaño representa el primer gran desafío del planificador del

proyecto. En el contexto de la planificación del proyecto, tamaño se refiere a un resultado

cuantificable del proyecto de software.

Algunos enfoques al problema del tamaño son:

• Tamaño de componentes estándar. El software se compone de varios “componentes

estándar”, los cuales son diferentes y genéricos de un área particular de la aplicación.

Por ejemplo, los componentes estándar de un sistema de información son

subsistemas, módulos, pantallas reportes, etc.

• Tamaño del cambio. Este enfoque se aplica cuando un proyecto incluye la utilización

de software existente que debe modificarse en cierta forma como parte de un

proyecto.

� Estimación basada en el problema

Las estimaciones de LDC (líneas de código) y PF (puntos de función) son distintas técnicas de

estimación, aunque ambas tienen varias características en común. El planificador del proyecto

comienza con un enfoque acotado del ámbito del software y a partir de ahí intenta

descomponer el software en funciones problema que pueda estimarse individualmente.

Entonces se estiman las LDC o PF para cada función. De manera alternativa, el planificador

puede elegir otro componente para tamaño, como clases u objetos, cambios o procesos de

negocios afectados.

Las técnicas de estimación LDC y PF difieren en cuanto al detalle requerido para

descomposición y el objetivo de la partición. Al emplear LDC como variable de estimación la

descomposición es absolutamente esencial y con frecuencia se lleva a grados considerables de

detalle. Mientras mayor sea el grado de partición es más probable que se desarrolle una

estimación razonablemente precisa de LDC.

Sin importar la variable de estimación que se utilice, el planificador del proyecto comienza

estimando una gama de valores para cada función o valor de dominio de información. Al

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 5 de 12

emplear datos históricos o intuición, el planificador estima un valor de tamaño optimista, más

probable, y pesimista para cada función o cuenta para cada valor de dominio de información.

Entonces se puede calcular un valor de tres puntos o uno esperado. El valor esperado para la

variable de estimación (tamaño), S, se calcula como un promedio ponderado de las

estimaciones (Sopt), más probable (Sm) y pesimista (Spes). Por ejemplo:

S = (Sopt + 4Sm + Spes)/6

� Un ejemplo de estimación basada en LDC

Considérese un paquete de software que será entregado para una aplicación de diseño

asistido por computadora (CAD) destinado a componentes mecánicos. El software se ejecutará

en una estación de trabajo de ingeniería y debe tener interfaz con varios periféricos que

incluyen ratón, digitalizador, monitor de color de alta resolución e impresora láser. Se puede

elaborar una descomposición del ámbito del software:

El software CAD mecánico aceptará del ingeniero datos geométricos de dos o tres

dimensiones. El ingeniero interactuará y controlará el sistema CAD a través de una interfaz

del usuario que exhibirá características de buen diseño de interfaz humano-máquina.

Todos los datos geométricos y otra información de soporte se conservarán en una base de

datos CAD. Se desarrollarán módulos de análisis de diseño para producir la salida

requerida, la cual se desplegará en una diversidad de dispositivos gráficos. El software se

diseñará para controlar e interactuar con dispositivos periféricos que incluyan ratón,

digitalizador, impresora láser y plotter.

Esta descripción del ámbito es preliminar, no está acotada. Se tendría que expandir cada

oración para ofrecer detalle concreto y acotación cuantitativa. Por ejemplo: cuáles serán el

tamaño y la complejidad de la base de datos CAD.

Al continuar con la técnica de descomposición para LDC se elaborara una tabla de estimación,

la cual se muestra en el siguiente cuadro:

Función LDC estimados

Facilidades de interfaz del usuario y control (FIUC)

Análisis geométrico bidimensional (AG2D)

Análisis geométricos tridimensional (AG3D)

Gestión de base de datos (GBD)

Facilidades de presentación gráfica de computadora (FPGC)

Función de control periférico (FCP)

Módulos de análisis de diseño (MAD)

2300 5300 6800 3350 4950 2100 8400

Líneas de código estimadas 33200

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 6 de 12

Una revisión de los datos históricos indica que el promedio organizacional de productividad

para sistemas de este tipo es de 620 LDC/pm. Con base en una tarifa laboral de 8000 dólares

por mes, el costo por línea de código es aproximadamente de 13 dólares (8000/620). Con base

en la estimación del proyecto es de 431600 dólares (33200*13) y el esfuerzo estimado es de

54 personas-mes (33200/620).

� Un ejemplo de estimación basada en PF

La descomposición de la estimación basada en PF se centra en los valores de dominio de

información más que en las funciones de software. Al consultar la tabla siguiente el

planificador del proyecto estima entradas externas, salidas externas, consultas externas,

archivos lógicos internos archivos de interfaz externos para el software CAD.

Valor de dominio de información Optim. Probable Pesim.

Conteo Estim.

Peso Conteo

PF Número de entradas externas

Número de salidas externas

Número de preguntas externas

Número de archivos lógicos internos

Número de archivos de interfaces externos

20

12

16

4

2

24

15

22

4

2

30

22

28

5

3

24

16

22

4

2

4

5

5

10

7

97

78

88

42

15

Conteo total 320

Se estima cada uno de los factores ponderados de complejidad y el valor del factor ajustado se

calculan de la siguiente forma:

Factor Valor

1 2 3 4 5 6 7 8 9

10 11 12 13 14

Respaldo y recuperación

Comunicaciones de datos

Procesamiento distribuido

Desempeño crítico

Entorno operativo existente

Entrada de datos en línea

Transacción de entrada sobre pantallas múltiples

ILF(archivos lógicos internos) actualizado en línea

Complejo de valores de dominio de información

Complejo de procesamiento interno

Código diseñado para reutilización

Conversión/instalación en diseño

Instalación múltiples

Aplicación diseñada para cambio

4

2

0

4

3

4

5

3

5

5

4

3

5

5

Factor de ajuste de valor 1.17

Finalmente, se deriva el número estimado de PF:

PFestimado= conteo total x [0.65 + 0.01 x ∑(Fi)]

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 7 de 12

PFestimado= 375

La productividad organizacional promedio para sistemas de este tipo es 6.5 PF/pm. Con base

en una escala salarial de 8000 dólares por mes, el costo por PF es aproximadamente 1230

dólares. Con base en la estimación de PF y los datos de productividad históricos, el costo total

estimado del proyecto es de 461000 dólares, y el esfuerzo estimado es de 58 persona-mes.

Modelos empíricos de estimación

Los datos empíricos que apoyan la mayoría de los modelos de estimación proceden de una

muestra limitada de proyectos. Por esta razón, ningún modelo de estimación es apropiado para

todas las clases de software ni en todos los entornos de desarrollo. En consecuencia, los

resultados obtenidos a partir de tales modelos se deben emplear juiciosamente.

El modelo debe probarse mediante la aplicación de los datos recopilados a partir de proyectos

completados, colocar los datos en el modelo y luego comparar los resultados reales con los

predichos. Si la concordancia es insuficiente, el modelo debe afinarse y ponerse a prueba

nuevamente antes de que se pueda utilizar.

� El modelo COCOMO II

Este modelo introduce una jerarquía de modelos de estimación de software que lleva el

nombre de COCOMO por Modelo Constructivo de Costos. COCOMO ha evolucionado a un

modelo de estimación más amplio, llamado COCOMO II. Al igual que su predecesor, COCOMO

II es en realidad una jerarquía de modelos de estimación que aborda las áreas siguientes:

• Modelo de composición de la aplicación. Se emplean durante las primeras etapas de

la ingeniería del software, cuando son primordiales la elaboración de prototipos de las

interfaces de usuario, la consideración de la interacción del software y el sistema, la

valoración del desempeño y la evaluación de la madurez de la tecnología.

• Modelo de etapa de diseño temprano. Se utilizan una vez que se han estabilizado los

requisitos y se ha establecido la arquitectura básica del software.

• Modelo de etapa posterior a la arquitectura. Se emplea durante la construcción del

software.

� La ecuación del software

La ecuación de software es un modelo multivariable que supone una distribución específica

del esfuerzo a lo largo de la vida de un proyecto de desarrollo de software. El modelo procede

de datos de productividad recopilados de casi 4000 proyectos de software contemporáneos.

Con base en estos datos, un modelo de estimación de la forma

E = [LDC x B0.333 /P]3 x (1/t4)

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 8 de 12

donde

E = esfuerzo en personas-mes o personas-año

t = duración del proyecto en meses o años

B = “factor especial de habilidades”

P = “parámetro de productividad” que refleja: madurez global del proceso y prácticas de

gestión, la medida en la que se emplean las buenas prácticas de ingeniería del software, el

nivel de los lenguajes de programación utilizados, el estado del entorno del software, las

habilidades y experiencias del equipo de software, y la complejidad de la aplicación.

Los valores típicos pueden ser P = 2000 para desarrollo del software anidado de tiempo real; P

= 10000 para software de telecomunicaciones y sistemas; P = 28000 para aplicaciones de

sistemas de negocios.

Investigadores sugieren un conjunto de ecuaciones derivables de la ecuación del software

para simplificar el proceso de estimación y emplear una forma más común para su modelo de

estimación. El tiempo mínimo de desarrollo se define como

tmin = 8.14(LDC/P)0.43 en meses para tmin>6 meses

E = 180Bt3 en personas-mes para E>=20 personas-mes

Al utilizar las ecuaciones anteriores con P=12000 (el valor recomendado para software

científico) para el software CAD estudiado previamente.

tmin = 8.14(33200/12000)0.43

tmin = 12.66 meses calendario

E = 180 x 0.28 x (1.05)3

E = 58 personas-mes

Calendarización de proyectos software

Aunque existen muchas razones por las cuales el software se entrega con retraso, la mayoría se

encuadra en una o más de las siguientes causas:

• Una fecha límite irrealizable establecida por alguien al grupo de ingeniería del software e

impuesta a los gestores y profesionales del grupo.

• Cambio en los requisitos del cliente que no se reflejan en modificaciones a la

calendarización.

• Riesgos predecibles o impredecibles que no se consideraron cuando comenzó el proyecto.

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 9 de 12

• Dificultades técnicas que no pudieron preverse.

• Dificultades humanas imprevisibles.

• Falta de comunicación entre el personal del proyecto, lo que genera demoras.

Las actividades de estimación y las técnicas de calendarización se implementan atendiendo la

restricción de una fecha límite definida. Si las mejores estimaciones indican que la fecha límite es

irrealizable, un gestor de proyecto competente debe “proteger a su equipo de la presión excesiva

y devolver la presión a quienes la originan”.

Si el tiempo que los contratantes imponen para la entrega del software es diferente al tiempo

obtenido utilizando las técnicas de calendarización y estimación, se recomiendan los siguientes

pasos:

1. Realizar una estimación detallada empleando datos históricos de proyectos previos.

Determinar el esfuerzo y la duración estimados para el proyecto.

2. Aplicar un modelo de proceso incremental y desarrollar una estrategia de ingeniería de

software que entregará la funcionalidad crítica en la fecha límite impuesta, pero demorará

otra. Documente el plan.

3. Reunirse con el cliente y con la estimación detallada, explicarle por qué la fecha límite

impuesta es irrealizable.

4. Ofrezca la estrategia de desarrollo incremental con alternativa

La calendarización del proyecto de software es una actividad que distribuye estimaciones de

esfuerzo a través de la duración planificada del proyecto al asignar el esfuerzo a tareas específicas

de ingeniería del software. La calendarización evoluciona a lo largo del tiempo. Durante las

primeras etapas de la planificación del proyecto se desarrolla una calendarización macroscópica.

Este tipo de calendarización identifica las principales actividades del marco de trabajo del proceso

y las funciones de producto a las que se aplican. Conforme el proyecto trascurre, cada entrada en

la calendarización macroscópica se refina en una calendarización detallada. Aquí se identifican y

calendarización tareas específicas del software (requeridas para completar una actividad).

Definición de un conjunto de tareas para un proyecto de software

Ningún conjunto de tareas es apropiado por si solo para todos los proyectos. El conjunto de tareas

que sería apropiado para un sistema complejo y grande probablemente se apreciará como

demasiado destructivo para un producto de software pequeño y relativamente simple. En

consecuencia, un proceso de software eficaz debe definir una colección de conjuntos de tareas,

cada una diseñada para satisfacer las necesidades de diferentes tipos de proyectos.

El desarrollo de una calendarización del proyecto requiere distribuir un conjunto de tareas a lo

largo de la línea de tiempo del proyecto. El conjunto de tareas variará según el tipo de proyecto y

el grado de rigor con el que el equipo de software decide realizar su trabajo. Aunque es difícil

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 10 de 12

desarrollar una taxonomía completa de tipos de proyectos de software, en la mayoría de las

organizaciones se encuentran los siguientes proyectos:

1. Proyectos de desarrollo del concepto, los cuales se inician para explotar algunas

aplicaciones o conceptos de negocios de alguna nueva tecnología.

2. Proyectos de desarrollo de nueva aplicaciones, los cuales se llevan a cabo como

consecuencia de una solicitud específica del cliente.

3. Proyectos de mejora de la aplicación, éstos ocurren cuando el software existente

experimenta grandes modificaciones en la función, el desempeño o las interfaces visibles

para el usuario final.

4. Proyectos de mantenimiento de aplicación, los cuales corrigen, adaptan o extienden el

software existente en formas que no sean obvias inmediatamente para el usuario final.

5. Proyectos de reingeniería, éstos se llevan a cabo con la finalidad de reconstruir un sistema

existente (heredados), en todo o en parte.

� Ejemplo de conjuntos de tareas

Las principales tareas de ingeniería del software descritas a continuación son aplicables a la

mayoría de los modelos de proceso. Como por ejemplo, considérese las tareas de ingeniería

del software para un proyecto de desarrollo del concepto.

1.1.1. La determinación del ámbito del concepto precisa el ámbito global del proyecto.

1.1.2. La planificación preliminar del concepto establece la habilidad de la organización

para acometer el trabajo que entraña el ámbito del proyecto.

1.1.3. La valoración del riesgo de la tecnología evalúa el riesgo asociado con la tecnología

que se implementará como parte del ámbito del proyecto.

1.1.4. La prueba del concepto demuestra la viabilidad de una nueva tecnología en el

contexto del software.

1.1.5. La implementación del concepto pone en práctica la representación del concepto en

una forma que pueda revisarla un cliente.

1.1.6. La reacción del cliente al concepto solicitada realimentación acerca de un concepto

de nueva tecnología y se dirige a aplicaciones específicas de los clientes.

� Refinamiento de las tareas principales

Las tareas principales descritas en la sección precedente se pueden utilizar para definir las

calendarización macroscópica de un proyecto. Sin embargo, esta calendarización se debe

refinar para crear una calendarización detallada del proyecto. El refinamiento comienza al

tomar cada tarea principal y descomponerla en un conjunto de subtareas.

Como ejemplo de descomposición de tarea, considérese la tarea 1.1, “determinación del

ámbito del concepto”:

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 11 de 12

Definición tarea: Tarea 1.1 Determinación del ámbito del concepto

1.1.1. Identificar necesidades, beneficios y clientes potenciales:

1.1.2. Definir eventos de salida/control y entrada deseados que impulsen la aplicación:

Comienza Tarea 1.1.2

1.1.2.1. RTF (Revisión Técnica Formal): Revisar la descripción escrita de la necesidad.

1.1.2.2. Derivar una lista de salidas/entradas visibles al cliente.

1.1.2.3. RTF: Revisar salida/entradas con el cliente y modificar conforme se requiera

fintarea Tarea 1.1.2

1.1.3. Definir la funcionalidad/comportamiento para cada función principal:

Comienza Tarea 1.1.3

1.1.3.1. RTF: Revisar los objetos de datos de salida y entrada derivados en la tarea

1.1.3.2. Derivar un modelo funciones/comportamientos.

1.1.3.3. RTF: Revisar funcione/comportamientos con el cliente y modificar conforme se

requiera.

fintarea Tarea 1.1.3

1.1.4. Aislar aquellos elementos de la tecnología que se implementará en el software.

1.1.5. Disponibilidad de investigación del software existente.

1.1.6. Definir factibilidad técnica.

1.1.7. Realizar estimación rápida del tamaño.

1.1.8. Crear una definición del ámbito:

fintarea definición: Tarea 1.1

Una red de tareas, también denominada red de actividad, es una representación gráfica del flujo

de tareas en un proyecto. En ocasiones se utiliza como el mecanismo mediante el cual la secuencia

y dependencia de tareas son la entrada a una herramienta automatizada de calendarización del

proyecto.

ESTIMACIÓN DE TIEMPO Y COSTO

DE PRODUCTOS SOFTWARE 2013

Página 12 de 12

Es importante notar que la red mostrada es macroscópica. En una red de tareas detallada cada

actividad que muestra la figura se debe expandir. Por ejemplo, la tarea 1.1 se expandirá para

mostrar todas las tareas detalladas en el refinamiento.

Cronogramas.

Cuando se crea una calendarización de proyectos del software, el planificador comienza con un

conjunto de tareas. Si se emplean herramientas automatizadas, el análisis del trabajo se introduce

como una red de tareas o esbozo de tareas. Entonces se introduce el esfuerzo, la duración y la

fecha de inicio de cada tarea.

Como consecuencia de esta entrada, se genera un cronograma, también llamado gráfico Gantt. Es

posible desarrollar un cronograma para todo el proyecto. De manera alternativa, se pueden

desarrollar cronogramas separados para cada función del proyecto o para cada individuo que

trabaje en él.

La siguiente figura ilustra el formato de un cronograma. Todas las tareas del proyecto se citan en

la columna de la izquierda. Las barras horizontales indican la duración de cada tarea.

Cuando en el calendario se presentan al mismo tiempo múltiples barras, se implica la concurrencia

de la tarea. Los diamantes indican hitos.