INTRODUCCIÓN
Las tareas llevadas a cabo por computadores han crecido en complejidad de
manera sostenida desde su creación en la década de los cuarentas.
Posteriormente cuando el poder de cómputo se hizo accesible a las grandes y
medianas empresas aparecieron lenguajes de programación multi-propósito que
permitieron la automatización de las tareas mecánicas que se llevaban a cabo
como por ejemplo la contabilidad, costos, inventarios, entre otras. Esto ha llevado
a que el proceso del software se haya vuelto tan complejo que dio origen a una
disciplina llamada «Ingeniería del Software» la cual ha introducido principios,
técnicas y metodologías que permiten «industrializar» este proceso.
¿QUÉ ES EL PROCESO DEL SOFTWARE?
Según el SWEBOK el proceso del software son todas las actividades llevadas a
cabo por los ingenieros de software para desarrollar, mantener y operar software.
Sin este enfoque de proceso industrial sería muy difícil construir sistemas
complejos como por ejemplo un sistema autorizador de pagos o un sistema de
punto de venta, entre otros.
LA CRISIS DEL SOFTWARE
A finales de la década de los sesentas la industria del software llegó a la
conclusión que la complejidad del mismo y la creciente demanda por un número
mayor de aplicaciones superaba las habilidades y conocimientos que los
programadores tenían en ese momento. Lo anterior era un corolario de los
problemas más comunes que se presentaban en los proyectos informáticos a
saber:
El software quedaba inconcluso o el proyecto era abandonado.
El software tomaba más tiempo y costaba más de lo estimado.
Una vez creado el software era imposible o muy costoso darle
mantenimiento.
El software no cumplía con las expectativas del cliente.
Las anteriores conclusiones fueron compiladas en una conferencia de la OTAN
llevaba a cabo en Alemania (NATO,1968) donde por primera vez se usó el término
“Ingeniería del Software”. A partir de entonces la ingeniería del software es
reconocida como una disciplina independiente cuyas técnicas y procedimientos
han permitido a este proceso llegar a los niveles que hoy en día se tienen.
LA INGENIERÍA DEL SOFTWARE
Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al
desarrollo, operación y mantenimiento del software . La ingeniería del software es
promovida por la Computer Society de la IEEE quienes han creado el SWEBOK
que se considera la biblia de esta disciplina porque engloba sistemáticamente los
diferentes autores, contenidos, técnicas y mejores prácticas de la disciplina en un
solo libro.
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. 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.
ACTIVIDADES DE UN PROCESO DE SOFTWARE
Para aplicar un enfoque sistemático al proceso de software se ha propuesto una
serie de actividades que pueden variar según el autor en las siguientes
(PRESSMAN, 2010): comunicación, planeación, modelado, construcción y
despliegue. En su conjunto estas etapas conformarán lo que se conoce como el
ciclo de vida del software. Estas actividades estructurales o fundamentales van
acompañadas o apoyadas de otras actividades transversales o sombrilla
(PRESSMAN, 2010) que ocurren a lo largo del proceso del software. Ejemplo de
estas actividades son: aseguramiento de la calidad, administración de riesgos y
gerencia de proyecto, entre otras.
ACTIVIDADES ASOCIADAS AL PROYECTO DE SOFTWARE
Ámbito del 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. Las restricciones de rendimiento abarcan los requisitos de
tiempo de respuesta y procesamiento, identifican los límites del software
originados por el hardware externo, por la memoria disponible y por otros sistemas
existentes.
El Ámbito 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.
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.
· Informes de disponibilidad.
· Fecha cronológica en la que se requiere el recurso.
· Tiempo durante el que será aplicado el recurso.
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.
Recursos o componentes de software reutilizables: Cualquier estudio sobre
recursos de software estaría incompleto sin estudiar la reutilización, esto es la
creación y la reutilización 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.
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. 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.
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 más 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 más 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 el cálculo de costos y esfuerzos del
Software.
Desdichadamente la primera opción, aunque atractiva no es práctica.
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.
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 último paso se calculan los costos y el esfuerzo de
cada función y la actividad del proceso de software.
Existen diferentes modelos de estimación como son:
Los Modelos Empíricos.
El Modelo COCOMO.
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.
BIBLIOGRAFIA
https://www.inf.utfsm.cl/~guerra/publicaciones/Gestion%20de%20Proyectos%20de
%20Software.pdf
http://www.eni-training.com.bdigital.sena.edu.co/client_net/mediabook.aspx?idR=111768
http://www.lsi.us.es/docs/doctorado/memorias/Documento%20DEA.pdf
https://es.scribd.com/document/127653789/Planificacion-de-un-proyecto-de-software-pdf