TEMA
I. PLANIFICACION DE UN PROYECTO DE SISTEMAS.
DESARROLLO.
1.1.
Que es un proyecto de Sistema o Software. ?
Es el Proceso de gestión para la creación de un Sistema o software, la cual encierra un conjunto de actividades, una de
las cuales es la estimación, estimar es echar un vistazo al futuro y aceptamos
resignados cierto grado de incertidumbre. Aunque la estimación, es mas un arte que una Ciencia, es una actividad importante
que no debe llevarse a cabo de forma descuidada. Existen técnicas útiles para
la estimación de costes de tiempo. Y dado que la estimación es la base de todas las
demás actividades de planificación del proyecto y sirve como guía para una
buena Ingeniería Sistemas y Software.
Al estimar
tomamos en cuenta no solo del procedimiento técnico a utilizar en el proyecto, sino que se toma en cuenta
los recursos, costos y planificación. El Tamaño del proyecto es otro factor importante
que puede afectar la precisión de las estimaciones. A medida que el tamaño
aumenta, crece rápidamente la interdependencia entre varios elementos del Software.
La
disponibilidad de información Histórica es otro elemento
que determina el riesgo de la estimación.
1.2.
Objetivos de la Planificación del Proyecto.
El objetivo de la Planificación del proyecto de Software es proporcionar un marco de trabajo que permita al
gestor hacer estimaciones razonables de recursos costos y planificación temporal. Estas estimaciones se hacen dentro de un
marco de tiempo limitado al comienzo de un proyecto de software, y
deberían actualizarse regularmente medida que progresa el proyecto. Además las
estimaciones deberían definir los escenarios del mejor caso, y peor caso, de
modo que los resultados del proyecto pueden limitarse.
El Objetivo de la planificación se logra
mediante un proceso de descubrimiento de la información que lleve a estimaciones
razonables.
1.3
Actividades asociadas al proyecto de software.
1.3.1 Ambito del Software.
Es la
primera actividad de llevada a cabo durante la planificación del proyecto de
Software.
En esta
etapa se deben evaluar la función y el rendimiento que se asignaron al Software
durante la Ingeniería del Sistema de Computadora para establecer un ámbito de
proyecto que no sea ambiguo, e incomprensible para directivos y técnicos
Describe
la función, el rendimiento, las restricciones, las interfaces y la fiabilidad,
se evalúan las funciones del ámbito y en algunos casos se refinan para dar mas
detalles antes del comienzo de la estimación. Las restricciones de rendimiento
abarcan los requisitos de tiempo de respuesta y procesamiento, identifican los limites del software originados por el hardware externo, por la memoria disponible y por otros sistemas existentes.
El Ambito se define como un pre-requisito
para la estimación y existen algunos elementos que se debe tomar en cuenta como
es:
·
La Obtención de la Información necesaria para el software.
Para esto el analista y el cliente se reúnen sobre las
expectativas del proyecto y se ponen de acuerdo en los puntos de interés para su desarrollo.
1.4
RECURSOS:
La
Segunda tarea de la planificación del desarrollo de Software es la estimación
de los recursos requeridos para acometer el
esfuerzo de desarrollo de Software, esto simula a una
pirámide donde las Herramientas (hardware y Software), son la base proporciona la infraestructura
de soporte al esfuerzo de desarrollo, en segundo nivel de la
pirámide se encuentran los Componentes reutilizables.
Y en la
parte mas alta de la pirámide se encuentra el recurso primario, las personas
(el recurso humano).
Cada
recurso queda especificado mediante cuatro características:
·
Descripción del Recurso.
1.4.1 Recursos Humanos.
La
Cantidad de personas requeridas para el desarrollo de un proyecto de software
solo puede ser determinado después de hacer una estimación del esfuerzo de
desarrollo (por ejemplo personas mes o personas años), y seleccionar la
posición dentro de la organización y la especialidad que desempeñara cada
profesional.
1.4.2 Recursos o componentes de software
reutilizables.
Cualquier
estudio sobre recursos de software estaría
incompleto sin estudiar la reutilizacion, esto es la
creación y la reutilizacion de bloques de construcción de Software.
Tales
bloques se deben establecer en catálogos para una consulta más fácil,
estandarizarse para una fácil aplicación y validarse para la también fácil integración.
El Autor Bennatan sugiere cuatro categorías de recursos de software
que se deberían tener en cuenta a medida que se avanza con la planificación:
·
Componentes ya desarrollados.
·
Componentes ya experimentados.
·
Componentes con experiencia Parcial.
·
Componentes nuevos.
1.4.3 Recursos
de entorno.
El
entorno es donde se apoya el proyecto de Software, llamado a menudo entorno de Ingeniería de Software, incorpora Hardware y Software.
El Hardware proporciona una plataforma con las herramientas (Software) requeridas para
producir los productos que son el resultado de la
buena practica de la Ingeniería del Software, un
planificador de proyectos debe determinar la ventana
temporal requerida para el Hardware y el Software, y verificar que estos recursos estén
disponibles. Muchas veces el desarrollo de las pruebas de validación de un proyecto
de software para la composición automatizada puede necesitar un compositor de
fotografías en algún punto durante el desarrollo. Cada elemento de hardware
debe ser especificado por el planificador del Proyecto de Software.
1.5.
ESTIMACION DEL PROYECTO DE SOFTWARE.
En el
principio el costo del Software constituía un pequeño porcentaje
del costo total de los sistemas basados en Computadoras. Hoy en día el Software es
el elemento mas caro de la mayoría de los sistemas informáticos.
Un gran
error en la estimación del costo puede ser lo que marque la diferencia entre
beneficios y perdidas, la estimación del costo y del esfuerzo del software nunca será una ciencia exacta, son demasiadas las variables: humanas, técnicas, de
entorno, políticas, que pueden afectar el costo final del software y el esfuerzo aplicado para
desarrollarlo.
Para
realizar estimaciones seguras de costos y esfuerzos tienen varias opciones posibles:
·
Deje la estimación para mas
adelante (obviamente podemos realizar una estimación al cien por cien fiable
después de haber terminado el proyecto.
·
Base las estimaciones en proyectos
similares ya terminados.
·
Utilice técnicas de descomposición relativamente sencillas
para generar las estimaciones de costos
y esfuerzo del proyecto.
·
Desarrolle un modelo
empírico para él calculo de costos
y esfuerzos del Software.
Desdichadamente
la primera opción, aunque atractiva no es practica.
La
Segunda opción puede funcionar razonablemente bien si el proyecto actual es
bastante similar a los esfuerzos pasados y si otras influencias del proyecto
son similares. Las opciones restantes son métodos viables para la estimación
del proyecto de software. Desde el punto de vista ideal, se deben aplicar
conjuntamente las técnicas indicadas usando cada una de ellas como comprobación
de las otras.
Antes de
hacer una estimación, el planificador del proyecto debe comprender el ámbito
del software a construir y generar una estimación de su tamaño.
1.5.1
Estimación basada en el Proceso.
Es la
técnica más común para estimar un proyecto es basar la estimación en el proceso que se va a utilizar, es
decir, el proceso se descompone en un conjunto
relativamente pequeño de actividades o tareas, y en el esfuerzo requerido para
llevar a cabo la estimación de cada tarea.
Al igual
que las técnicas basadas en problemas, la estimación basada en el
proceso comienza en una delineación de las funciones del software obtenidas a
partir del ámbito del proyecto. Se mezclan las funciones del problema y las
actividades del proceso. Como ultimo paso se calculan los costos y el esfuerzo
de cada función y la actividad del proceso de software.
1.6.
DIFERENTES MODELOS DE ESTIMACION.
Existen
diferentes modelos de estimación como son:
1.6.1
Los Modelos Empíricos:
Donde los
datos que soportan la mayoría de los modelos de estimación obtienen una muestra limitada de proyectos. Por est
razón, el modelo de estimación no es adecuado para todas las
clases de software y en todos los entornos de desarrollo. Por lo tanto los
resultados obtenidos de dichos modelos se deben utilizar con
prudencia.
1.6.2
El Modelo COCOMO.
Barry Boehm, en su libro clásico sobre economía de la Ingeniería del Software, introduce una
jerarquía de modelos de estimación de Software con el nombre de COCOMO, por su
nombre en Ingles (Constructive, Cost,
Model) modelo constructivo de costos. La jerarquía de modelos
de Boehm esta constituida por los siguientes:
·
Modelo I. El Modelo COCOMO básico calcula el
esfuerzo y el costo del desarrollo de Software en función del tamaño del programa, expresado en las líneas estimadas.
·
Modelo III. El modelo COCOMO avanzado
incorpora todas las características de la versión
intermedia y lleva a cabo una evaluación del impacto de los
conductores de costos en cada caso (análisis, diseño, etc.) del proceso de ingeniería de Software.
1.6.3
Herramientas Automáticas De Estimación.
Las herramientas automáticas de estimación
permiten al planificador estimar costos y esfuerzos, así como llevar a cabo análisis del tipo, que pasa si, con
importantes variables del proyecto, tales como la
fecha de entrega o la selección del personal. Aunque existen muchas herramientas automáticas de estimación, todas
exhiben las mismas características generales y todas
requieren de una o más clases de datos.
A partir
de estos datos, el modelo implementado por la herramienta
automática de estimación proporciona estimaciones del esfuerzo requerido para
llevar a cabo el proyecto, los costos, la carga de personal, la duración, y en algunos
casos la planificación temporal de desarrollo y riesgos asociados.
En resumen
el planificador del Proyecto de Software tiene que estimar tres cosas antes de
que comience el proyecto: cuanto durara, cuanto esfuerzo requerirá y cuanta
gente estará implicada. Además el planificador debe predecir los recursos de
hardware y software que va a requerir y el riesgo implicado.
Para
obtener estimaciones exactas para un proyecto, generalmente se utilizan al
menos dos de las tres técnicas referidas anteriormente. Mediante la comparación
y la conciliación de las estimaciones obtenidas con las diferentes técnicas, el
planificador puede obtener una estimación más exacta. La estimación del
proyecto de software nunca será una ciencia exacta, pero la combinación
de buenos datos históricos y técnicas puede mejorar la
precisión de la estimación.