Introducción
Considerando que en los PDS la relación de requisitos y otras características que tendrá
el producto final no es posible definirlas a cabalidad hasta que el proceso de desarrollo
ya se inicio; la planificación y consiguiente gestión representan un obstáculo
determinante para su éxito. El proceso de estimación del software es un área en el que
se están proponiendo métodos y técnicas desde hace 15 años; la mayoría de los
procesos existentes, describen cómo aplicar un método simple de predicción, que
normalmente está basado en uno o más modelos algorítmicos.
Los proyectos de desarrollo de software (PDS) se diferencian de los
otros proyectos de ingeniería tradicional en la naturaleza lógica del
producto software; el software se desarrolla no se fabrica.
2
En la gestión de proyectos de desarrollo de software se planifica para lograr alguno de los siguientes objetivos:
◂ • Defectos mínimos
◂ • Máxima satisfacción de usuarios
◂ • Tiempo de respuesta mínimo
◂ • Buen nivel de mantenibilidad
◂ • Buen nivel de extensibilidad
◂ • Alta correctitud
A planificar!
El paso previo al inicio de cualquier
proyecto de desarrollo y sin dudas el más
importante es la planificacion. En este se
definen los requerimientos y
funcionalidades que debe tener el
software, mediante el trabajo en conjunto
entre los desarrolladores, el
departamento de ventas, los estudios de
mercado y, fundamentalmente, el
contacto con el cliente. En este punto se
realizan asimismo los análisis de riesgo
para el emprendimiento y se fijan los
requisitos de aseguramiento de la calidad.
3
Estimacion de recursos,
costos y agendas para el
desarrollo de software
Al principio, el coste del software constituía un pequeño porcentaje del coste total de los
sistemas informáticos.
Hoy el software es el elemento más caro de la mayoría de los sistemas.
Un error en la estimación puede marcar la diferencia entre beneficios y pérdidas.
En un proyecto se estiman fundamentalmente tres elementos:
Costes
Recursos
Agendas
Estimar no es una ciencia exacta y por tanto implica un asumir riesgos.
Los factores que aumentan el riesgo son:
• La complejidad del proyecto
• El tamaño del proyecto
• Estructuración del proyecto
• Los factores que permiten reducir el riesgo son:
• Una buena base histórica
• Experiencia
• Uso de medidas cuantitativas
• Es necesario realizar estimaciones con un grado de riesgo aceptable.
“
◂ La estimación consiste en determinar el valor de una variable
desconocida a partir de otras conocidas, o de una pequeña cantidad
de valores conocidos de esa misma variable. Las técnicas de regresión
ofrecen una alternativa valiosa para estimar los costos de desarrollo
de software.
◂ ¿Cuánto cuesta el software?
Existen varias posibilidades para estimar:
◂ Dejar la estimación para más adelante.
◂ Utilizar técnicas de descomposición.
◂ Desarrollar métodos empíricos.
◂ Adquirir una o varias herramientas automáticas de
estimación.
5
Estimaciones
◂ Estimación del tamaño del Software
◂ El tamaño del Software se puede estimar en KLOC
(Kilo Línea de código) o calculando el número de
puntos de función en el software. La líneas de
código dependen de las prácticas de codificación y
los puntos de función, que cambian según el
usuario o los requisitos del software.
6
◂ Los directores estiman los esfuerzos en
términos de requisitos de personal y las horas
de trabajo requeridas para producir el
software. Para la estimación de esfuerzos se
debe conocer el tamaño del software. Esto lo
pueden aportar la experiencia misma de los
directores, los datos históricos de la
organización, o el tamaño del software se
puede convertir en esfuerzos usando alguna
formulación estándar.
Estimación del esfuerzo
7
Estimación del tiempo
◂ Una vez el tamaño y los esfuerzos se han estimado, podemos
proceder a estimar el tiempo que requeriremos para
producir el software. Los esfuerzos requeridos se dividen en
categorías según los requisitos del sistema y la
interdependencia de varios componentes del software. Las
tareas del Software se dividen en pequeñas tareas,
actividades o eventos por la 'Work Breakthrough Structure
(WBS)' en español 'Estructura de descomposición del
trabajo'. Las tareas se temporalizan diariamente o en los
meses del calendario.
◂ La suma del tiempo requerido para completar todas las
tareas en horas o días es el tiempo total que se invierte para
terminar el proyecto.
8
Estimación del coste
◂ Este debe de ser considerado como
el más difícil de todos porque
depende de más elementos que los
anteriormente mencionados. Para
estimar el coste de un proyecto, se
requiere considerar:
◂ El tamaño del software
◂ La calidad del Software
◂ El Hardware
◂ Herramientas o software
adicional, licencias, etc.
◂ Personal formado para tareas
concretas
◂ Implicaciones de viaje
◂ Communicación
◂ Formación y soporte
10
Técnicas de estimación
del proyecto
Ya hemos hablado de los parámetros en la estimación del proyecto, como el tamaño,
esfuerzo, tiempo y costes. El director puede estimar los factores mencionados usando 2
técnicas ampliamente reconocidas
Técnica de descomposición
Esta técnica toma el software como un producto de varias composiciones.
Hay dos modelos fundamentales -
Línea de código La estimación se realiza en representación al número de línea de códigos en el producto
software.
Puntos de función La estimación se realiza en representación al número de puntos de función que hay en el
producto software.
Técnica de estimación empírica
Esta técnica usa fórmulas empíricamente derivadas para hacer estimaciones. Estas fórmulas
se basan en LOC (línea de control) o FPs (lenguajes de programación).
Ejemplo
11
• Desarrollo de un paquete de software para una aplicación de diseño asistido por computadora (CAD). Revisando la especificación del sistema, vemos
que el software va a ejecutarse en una estación de trabajo a la que estarán conectados varios periféricos gráficos: un ratón, un digitalizador, una
pantalla en color de alta resolución y una impresora láser.
Objetivos de la planificación
12
El principal objetivo de la planificación en proyectos de desarrollo de software es ordenar el
qué hacer durante el proyecto y asignar adecuadamente los recursos y tareas para cumplir
los objetivos propuestos. En general se planifica para:
• Organizar el qué hacer del proceso de desarrollo de software.
• Minimizar tiempo y costos involucrados.
• Maximizar el uso de recursos disponibles.
• Establecer hitos del proyecto.
• Medir el avance. Mejorar la comunicación.
• Obtener soporte técnico, de gerencia y político.
La planificación es una tarea que se desarrolla al inicio del proyecto pero rige el resto de las
fases. Una buena planificación inicial ayudará a que las metas propuestas se cumplan y que
los eventuales inconvenientes sean abordados de mejor forma.
Alcance o ambito del software
13
◂ Se llevara a cabo evaluando las funciones y el rendimiento asignados a este en la ingeniería del sistema de la
computadora. Si estas especificaciones no estuvieran descritas en las especificaciones del sistema, serán tarea del
planificador del proyecto.
◂ El ámbito del software deberá de estar bien delimitado, indicando datos concretos como el número de usuarios
simultáneos, el tiempo máximo de respuesta, etc. Deberá especificar las limitaciones de que dispondrá en cuanto a, el
tamaño máximo de memoria, y deberán especificarse los factores de atenuación indicando las facilidades de las que se
van a disponer como por ejemplo algoritmos ya desarrollados, etc. Se deberán describir cinco aspectos como:
◂ La función, el rendimiento y las restricciones, tres aspectos íntimamente relacionados, y las interfaces y la fiabilidad.
◂ La función, se revisara y se concretaran las descritas en la ingeniería del sistema.
◂ Rendimiento, se concretaran las necesidades en cuanto a tiempos de respuesta y procesamiento.
◂ Las restricciones, se concretaran las limitaciones hardware con que se encontrara el software.
◂ Las interfaces, se deberá identificar claramente la información que se comunicara, además de los elementos externos
que tomaran parte en esta comunicación, tanto dispositivos hardware, como elementos software con los que se
deberán crear enlaces, así como personal humano que hará uso de él.
◂ La fiabilidad, se establecerá el nivel de seguridad que deberá tener el proyecto dependiendo de su naturaleza. No
tendrá el mismo nivel de seguridad un procesador de texto que una aplicación que controle el tráfico aéreo, para así
poder estimar el esfuerzo y el coste que harán de este un proyecto fiable, pero no se establecerán medidas de fiabilidad
del software en este momento.
Gestión de recursos
◂ Todos los elementos usados para desarrollar el producto software se pueden tomar como recursos para ese
proyecto. Esto puede incluir recursos humanos, herramientas productivas y bibliotecas software.
◂ Los recursos están disponibles en cantidades limitadas y se quedan en la organización como una piscina de
ponderaciones. La falta de recursos obstaculiza el desarrollo del proyecto y puede demorar la temporalización
prevista. Distribuir recursos adicionales aumenta el desarrollo del coste al final. Por eso se hace necesario
estimar y distribuir los recursos adecuados para el proyecto.
La gestión de los recursos incluye :
◂ Definir la organización del proyecto satisfactoriamente creando un equipo de proyecto y distribuyendo las
responsabilidades a cada uno de los miembros de éste.
◂ Determinar los recursos requeridos para cada fase concreta y su disponibilidad
◂ Gestionar recursos generando recursos cuando se requieren y retirarlos cuando ya no son necesarios.
14
15
PLAN DE
PROYECTO
◂ La Descripción del Proyecto
proporciona las
características generales de
éste. La Organización refleja
la forma en que el grupo de
proyecto ha sido
estructurado para llevar a
cabo el trabajo y los
responsables de las
funciones clave. Los
Productos a Entregar
incluyen los documentos u
otro tipo de producto, con
compromiso de entrega al
usuario o a otros grupos de
trabajo interno del proyecto,
así como los responsables de
la entrega. El Calendario
comprende tanto las
estimaciones realizadas para
confeccionar y justificar el
itinerario del proyecto, como
éste mismo
Place your screenshot here
16
◂ ¿Para qué se usa
el plan del
proyecto?
◂ Los proyectos de Desarrollo de
Software involucran a diversos
participantes y cada uno de ellos
da un uso distinto al plan del
proyecto.
17
Conclusion
◂ La planificación de un proyecto de software no
difiere de la planificación de cualquier proyecto de
ingeniería. Se identifica una serie de tareas del
proyecto, se establecen interdependencias entre
las tareas, se estima el esfuerzo asociado con cada
tarea, se hace la asignación del personal y de otros
recursos, se crea una red de tareas y se desarrolla
una agenda de fechas. > La planificación no se
lleva a cabo por la creencia errónea de que es una
pérdida de tiempo y los planes cambiarán de todos
modos.
Bibliografía
◂ Gestión de proyectos Master - Guía de gestión de proyectos.
◂ Emprendedor.com - 149 preguntas que su Plan de Negocio debe
Responder.
◂ Intecplan Software - Software para Formulación de Proyectos.
◂ OMPI - Organización Mundial de la Propiedad Intelectual, Proyectos
Tecnológicos.
◂ Plan de Proyecto de BI - Desarrollar el Plan de Proyecto de Business
Intelligence (en español)
18