Jessika parica. planificación de un proyecto de software
Instituto Universitario Politécnico
“Santiago Mariño”
Facultad de Ingeniería
En Sistemas
Sede Barcelona
CREADO POR:
PARICA JESSIKA
C.I: 19329184
Barcelona, Febrero de 2018
FACILITADOR:
Ing. Amelia M. Vásquez M.
INTRODUCCIÓN
La planificación de proyectos software son un conjunto de
actividades que implican la estimación y su intento por
determinar cuánto dinero, esfuerzos, recursos y tiempo
supondrá construir un sistema o producto específico de
software.
La planificación la realizan los gestores de software, mediante
la información solicitada a los clientes y a los ingenieros de
software además toman como referencia métrica de software
de proyectos anteriores.
Si importancia radica en que al estimar oportunamente los
recursos, costos y trabajo es posible tomar decisiones
oportunas en cuanto a la realización o no del proyecto antes
de empezar el trabajo y desperdiciar recursos y dinero.
La planificación es fundamental en el proceso de desarrollo de
un producto de software (y en cualquier otro). En el mismo se
establece, entre otras cosas, qué tareas y cuándo se van a
realizar y los recursos que utilizarán las mismas. En base al plan
de trabajo la gerencia podrá determinar si el proceso está
marchando en tiempo y si está utilizando los recursos (tiempo,
personal, dinero, etc.) de la forma esperada.
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.
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.
ESTIMACIÓN DEL
PROYECTO
SOFTWARE
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.
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.
ESTIMACIÓN BASADA EN EL
PROCESO
DIFERENTES MODELOS DE
ESTIMACIÓN
Existen diferentes modelos de estimación como son:
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 esta 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.
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 II: El Modelo COCOMO intermedio calcula el esfuerzo del
desarrollo de software en función del tamaño del programa y de un
conjunto de conductores de costos que incluyen la evaluación subjetiva del
producto, del hardware, del personal y de los atributos del proyecto.
• 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.
EL MODELO COCOMO
Aplicación de herramientas para estimación de tiempos
y costos de desarrollo de software: GANTT, PERT/CPM,
uso de software para la estimación de tiempos y costos.
La estimación del tiempo forma parte del proceso de Gestión del
Tiempo de la Administración de Proyectos. Los procesos de Gestión
del Tiempo del Proyecto incluyen lo siguiente:
1. Definición de las Actividades: identifica las actividades específicas
del cronograma que deben ser realizadas para producir los diferentes
productos entregables del proyecto.
2. Establecimiento de la Secuencia de las Actividades: identifica y
documenta las dependencias entre las actividades del cronograma.
3. Estimación de Recursos de las Actividades: estima el tipo y las
cantidades de recursos necesarios para realizar cada actividad del
cronograma.
ESTIMACIÓN DE TIEMPOS
4. Estimación de la Duración de las Actividades: estima la cantidad
de períodos laborables que serán necesarios para completar cada
actividad del cronograma.
5. Desarrollo del Cronograma: analiza las secuencias de las
actividades, la duración de las actividades, los requisitos de recursos
y las restricciones del cronograma para crear el cronograma del
proyecto.
6. Control del Cronograma: controla los cambios del cronograma del
proyecto.
GANTT: Es una popular herramienta gráfica cuyo objetivo es mostrar el
tiempo de dedicación previsto para diferentes tareas o actividades a lo
largo de un tiempo total determinado. A pesar de que, en principio, el
diagrama de Gantt no indica las relaciones existentes entre
actividades.
EJEMPLO:
PERT es básicamente un método para analizar las tareas
involucradas en completar un proyecto dado, especialmente el tiempo
para completar cada tarea, e identificar el tiempo mínimo necesario
para completar el proyecto total.
La estimación de costos de una actividad es una evaluación cuantitativa de
los costos probables de los recursos necesarios para completar las
actividades del cronograma del proyecto. Este tipo de estimación puede
presentarse en forma de resumen o en detalle. Los costos se estiman para
todos los recursos que se aplican a la estimación de costos de la actividad.
Esto incluye, entre otros, la mano de obra, los materiales, los equipos, los
servicios, las instalaciones, la tecnología de la información, y categorías
especiales como una asignación por inflación o una reserva para
contingencias de costo. A continuación se bosquejan las principales técnicas
utilizadas para la estimación de costos: Especificaciones de los Requisitos
del software, Planificación del Proyecto y Plan para el Proyecto.
• Estimación por analogía
• Determinación de Tarifas de Costes de Recursos
• Estimación Ascendente
• Software de Gestión de Proyectos
• Análisis de Propuestas para Licitaciones
ESTIMACIÓN DE COSTOS
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.
Según PMBOK:
Incluye los procesos
necesarios para
asegurar que el
proyecto incluya todo
el trabajo requerido, y
solo el trabajo
requerido para
completar el proyecto
satisfactorio.
Según IPMA:
• Define los límites.
• Especifica entorno geográfico.
• Estipula lo que queda fuera
del proyecto.
• Especifica las características
del producto:
Dimensiones.
Características.
Funciones.
Calidad ( marcas, normas,
indicadores, tiempos).
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.
ACTIVIDADES ASOCIADAS AL
PROYECTO SOFTWARE
La Segunda tarea de la planificación del desarrollo de Software es la
estimación de los recursos requeridos para lograr el esfuerzo de
desarrollo de Software.
RECURSOS
HUMANOS
COMPONENTES DE
SOFTWARE
REUTILIZABLES
HARDWARE CON
HERRAMIENTAS
(SOFTWARE)
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.
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
HUMANOS
RECURSOS O
COMPONENTES DE
SOFTWARE
REUTILIZABLES
RECURSOS DEL
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.
ESTRUCTURAS
ORGANIZACIONALES
Las estructuras organizacionales son uno de los elementos que se
deben tener en cuenta a la hora de gestionar un proyecto, ya que es
un factor que puede afectar de forma muy significativa a la
disponibilidad de recursos e influir de forma determinante en el modo
de dirigir los proyectos.
Aunque en la práctica cada empresa se organiza de una forma
completamente distinta, se suelen distinguir tres tipos de estructuras
organizacionales:
• La estructura funcional.
• La estructura orientada a proyectos.
• La estructura matricial.
La estructura funcional es una
estructura jerárquica clásica donde
cada empleado tiene un superior
definido. En el nivel superior la
empresa se organiza por las
funciones desempeñadas
(contabilidad, ingeniería o
producción, por ejemplo). Los
miembros de la plantilla responden
únicamente al superior de su
departamento, por lo que busca una
línea directa de comunicación entre
los niveles inferiores y superiores.
Cada área se puede subdividir a su
vez en unidades funcionales más
específicas. Cada departamento
realiza el trabajo y las actividades
del proyecto de manera
independiente, enmarcando los
proyectos dentro de las áreas
funcionales de la organización.
En el caso de la estructura orientada a proyectos, la organización cuenta
con un equipo dedicado a tiempo completo y un director de proyecto que
se sitúa al máximo nivel dentro de la organización. Habitualmente se
estructuran también en unidades departamentales; sin embargo todos
ellos deben reportar directamente al director de proyecto. Como se puede
ver, se trata de una estructura organizativa muy sencilla y con ciertas
limitaciones, como la dificultad de transferir conocimientos a través de
proyectos.
La organización matricial combina dos ejes: el
funcional (vertical) y el de proyectos (horizontal).
La estructura matricial es muy habitual en algunas empresas de
servicios y en organizaciones que crecen con rapidez. Mezcla
características de organizaciones funcionales y orientadas a proyectos.
Se pueden distinguir tres tipos:
• Estructura matricial débil: Es muy similar a una organización funcional,
siendo el papel del director de proyecto más bien de coordinador o
facilitador, es decir, hace las veces de ayudante y coordinador, por lo que no
puede tomar decisiones de forma personal, pero tiene interlocución con
todas las áreas funcionales involucradas en el proyecto.
• Estructura matricial equilibrada: cuenta con un director de proyecto que
tiene una mayor autonomía que en la estructura matricial débil, pero no le
confiere autoridad plena sobre el proyecto, especialmente sobre su
financiamiento.
• Estructura matricial fuerte: coincide en muchas características con la
organización orientada a proyectos, ya que tienen un director de proyecto y
un equipo administrativo dedicados a tiempo completo, sin que por ello se
modifique la estructura funcional. El director de proyecto posee autoridad
plena sobre el mismo y actúa al mismo nivel que los responsables de las
áreas funcionales.
ESQUEMA DEL PLAN DEL
PROYECTO SOFTWARE
El esquema sobre el que definir un plan de proyecto debe contribuir a
facilitar un buen enfoque desde el que comenzar su gestión con altas
probabilidades de éxito. Para lograrlo, esta planificación ha de tener en
cuenta, al menos, 3 puntos:
Objetivos del
proyecto
Entregables
del proyecto
Planificación
del proyecto
ESQUEMA DEL PLAN DEL
PROYECTO SOFTWARE
Además de estos tres puntos, se necesita completar el plan de proyecto con:
• Planificación de la gestión del riesgo, que sirva para identificar y evaluar cada
riesgo potencial, analizar su posible impacto y definir las medidas de
prevención aplicables y los planes de contingencia necesarios.
• Planificación de la comunicación de proyecto, que establezca las necesidades
mínimas en materia de reporting y reuniones de estado, pero que, además,
proponga los canales y medios más eficaces para el intercambio de
información.
• Planificación de la gestión de Recursos Humanos, que servirá para identificar
a los miembros de los equipos, describir sus funciones y responsabilidades en
el proyecto y determinar en qué actividades y con qué duración está prevista
su participación.
Tipos de equipos de trabajo que se
pueden encontrar en un proyecto
Equipos de trabajo
funcionales
Este tipo de grupos
humanos están
compuestos por miembros
de la organización de
varios niveles verticales
diferentes dentro de la
jerarquía de la empresa.
Equipos de trabajo
multifuncionales
Combinan expertos de
varias áreas. Estos
especialistas se integran
en el equipo de forma
independiente, o como
parte, a su vez, de un
equipo funcional.
La convivencia de
diferentes idiomas y
distintas localizaciones
geográficas plantean la
necesidad de reconocer la
autonomía de los grupos
de trabajo, como única
forma de adaptarse al
dinamismo de un entorno
de estas características.
Equipos de trabajo
autónomos
CONCLUSIÓN
El planificador del proyecto de software tiene que estimar 3 cosas
antes de comenzar el proyecto:
• Cuanto durará.
• Cuanto esfuerzo requerirá.
• Cuanta gente estará implicada.
• Además se debe percibir los recursos de HARDWARE Y
SOFTWARE que van a requerir y el riesgo implicado.
• La combinación de buenos datos históricos y técnicas puede
mejorar la precisión de la estimación.
BIBLIOGRAFÍA
• Análisis y Diseño de Sistemas
Autor: Henry F. Korth & Abraham Silberschatz
Segunda Edición.
Editora Mc Graw Hill
• Ingeniería del Software
Autor: Roger S. Pressman
Cuarta Edición.
Editora Mc Graw Hill
• Enciclopedia de Términos de Computación
Autor: Linda Gail/ John Christie
Editora: PHH, Pentice Hall