Este documento describe los pasos para planificar un proyecto de software, incluyendo la estimación de recursos, costos y agendas, los modelos de estimación, y las fases del desarrollo de software. Explica la importancia de definir el alcance del proyecto, los recursos humanos requeridos, y la estructura del equipo de trabajo. También presenta un esquema general para el desarrollo del proyecto de software que consiste en cuatro fases principales: inicio, elaboración, construcción y transición.
1. Instituto Universitario Politécnico
“Santiago Mariño”
Extensión Maracay
Escuela de Ingeniería de Sistemas
Maracay, Junio 2019
Planificación de un Proyecto de
Software
Docente:
José Castillo
Autor:
Luis Mortell
2. Introducción
Como todo proyecto el software tiene un ciclo para desarrollarse y consta
de una serie de pasos que se van completando en diferentes tiempo; este
ciclo de desarrollo de software depende directamente de
la metodología que utilizamos para este desarrollo, y no es mas que una
serie de pasos/tareas que tenemos que seguir como en cualquier otro
proyecto, no hay nada escondido, nada mágico excepto la gran mente del
equipo de desarrollo y las creaciones para tener una experiencia única al
utilizar la aplicación o el paquete de software.
3. Estimación de Recursos,
Costos y Agendas
1) Modelos basados en SLOC (Sources Lines of Code):
En estos modelos las líneas de código fuente se utilizan como métrica para contar
el tamaño de un producto de software. El modelo aquí estudiado es el modelo
COCOMO nombrado así por sus siglas Constructive Cost Model. COCOMO
permite predecir la duración de un proyecto, así como el esfuerzo necesario para
su realización medido en personas-mes. Para ello COCOMO divide los proyectos
de software en tres tipos dependiendo de su tamaño modo orgánico, semi-
acoplado y acoplado.
La ecuación (1) permite calcular el esfuerzo y la (2) el tiempo de desarrollo del
proyecto:
4. 2 ) Modelos no basados en SLOC (Sources Lines of Code):
En su funcionamiento, mediante la asignación de “puntos” identifica los
componentes del sistema en términos de transacciones y grupos de datos
lógicos que son relevantes para el usuario en su negocio. El proceso general
es el siguiente:
a) Determinar el tipo de conteo: Existen tres tipos de conteo de puntos de
función: para proyectos en desarrollo, para proyectos en mantenimiento y
para una aplicación desarrollada.
b) Identificar los alcances de la medición y los límites de la aplicación:
Identificar el alcance es identificar los sistemas, aplicaciones o subconjuntos
de una aplicación que será medida.
c) Conteo de las funciones de datos: Identificar y contar la capacidad de
almacenamiento de los datos que representan la funcionalidad que satisfacen
requerimientos de datos internos y externos.
5. d) Contar las funciones transaccionales: Identificar y contar la capacidad
de realizar operaciones.
e) Determinar los puntos de función sin ajustar (PFSA): Sumar el número
de componentes de cada tipo conforme a la complejidad.
f) Determinar el valor del factor de ajuste: A través de una ponderación
de 0 a 5 de catorce factores que completan la visión externa de la
aplicación, se obtiene el GTI (Grado Total de Influencia)
g) Determinar los puntos de función ajustados: Una vez evaluadas las
características descritas, se suman para obtener el GTI.
6. 3) Modelo basado en puntos de casos de uso:
La estimación mediante el análisis de puntos de casos de uso, consiste en la
medición del tiempo de desarrollo de un proyecto a través del proceso de
asignación de “pesos” a un cierto número de factores que lo afectan.
En específico, el método obtiene como entrada los requisitos del sistema en
términos de actores y casos de uso, proporcionando uno o más escenarios
que indican cómo debería interactuar el sistema con el usuario o con otro
sistema para conseguir un objetivo específico.
Algunas de las ventajas de este modelo son que trabaja bien con diferentes
tipos de software, muestra buen rendimiento en proyectos pequeños,
medianos y grandes. En tanto que los principales inconvenientes son que a
pesar de que existe el estándar UML para escribir casos de uso, cada
ingeniero de software escribe el caso de uso según comprenda los
requerimientos del sistema.
7. Objetivo de la Planificación de un
Proyecto de Software
El objetivo de la planificación de proyectos es obtener una distribución de
las actividades en el tiempo y una utilización de los recursos que minimice
el coste del proyecto cumpliendo con los condicionantes exigidos
de: plazo de ejecución, tecnología a utilizar, recursos disponibles, nivel
máximo de ocupación de dichos recursos.
Es una programación de actividades y una gestión de recursos para
obtener un objetivo de coste cumpliendo con los condicionantes exigidos
por nuestro cliente.
8. Alcance de un
Proyecto de Software
Comprende los procesos necesarios para asegurar que el proyecto incluya
todo el trabajo requerido, y sólo el trabajo requerido.
Se debe establecer un plazo de tiempo para el proyecto, estudiar y
establecer los objetivos del mismo y la distribución estratégica de
recursos requeridos.
Para el caso de proyectos de implementación de Sistemas de Gestión
basados en normas ISO, en el alcance se debe explicar:
•Tipos de productos y servicios que ofrece la empresa.
•Departamentos o áreas de negocio en los que se aplica el Sistema de
Gestión.
•Localizaciones o divisiones incluidos en el proyecto.
•Procedimientos.
9. Recursos Humanos para el
Proyecto de Software
En caso de no contar con un equipo preformado, el primer paso es
identificar las necesidades que se deben satisfacer. De cara a
seleccionar el equipo de trabajo o contratar a trabajadores es
fundamental tener claro qué resultados se desea conseguir. Así, se podrá
contratar a los trabajadores idóneos para la tarea que tienen que
desempeñar.
También es muy importante contar con sistemas de trabajo
informatizados y en la red que permitan aprovechar al máximo las
nuevas tecnologías tanto para el trabajo individual como para el trabajo
en equipo.
10. Estructuras de Equipos Orientadas
a Producto
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.
11. Equipos de Representantes
Funcionales
La presencia de un líder o su ausencia, la variedad de las misiones que
les sean encomendadas y la forma de plantear las tareas a llevar a cabo
marcarán la diferencia entre unos tipos de equipos de trabajo y otros.
1) 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; por lo tanto,
las funciones que realizarán sus integrantes son muy variadas.
2) 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.
3) Equipos de trabajo autónomos: Especialmente en proyectos globales
es frecuente encontrar equipos de trabajo autónomos.
12. Esquema del Proyecto de Software
El desarrollo se llevará a cabo en base a fases con una o más iteraciones en
cada una de ellas.
1) Fase de Inicio: En esta fase desarrollarán los requisitos del producto
desde la perspectiva del usuario, los cuales serán establecidos en el artefacto
Visión.
2) Fase de Elaboración: En esta fase se analizan los requisitos y se
desarrolla un prototipo de arquitectura (incluyendo las partes más
relevantes y / o críticas del sistema).
13. 3) Fase de Construcción: Durante la fase de construcción se terminan de
analizar y diseñar todos los casos de uso, refinando el Modelo de Análisis
/ Diseño.
4) Fase de Transición: En esta fase se prepararán dos releases para
distribución, asegurando una implantación y cambio del sistema previo de
manera adecuada, incluyendo el entrenamiento de los usuarios.
14. Conclusión
En el desarrollo de Proyectos de Software las etapas de análisis de
requerimientos y diseño toma gran parte del tiempo del proyecto. Con el
constante desarrollo e innovación de las tecnologías utilizadas en las
implementaciones de Software, es una necesidad empresarial tener
modelo no dependiente de mecanismos, métodos y plataformas
específicas, adecuándolo a necesidades y ambientes particulares.
Se debe tener en cuenta la consideración de un mecanismo para realizar
la gestión del riesgo que hace parte de los principios técnicos para el
desarrollo de proyectos de ingeniería. A nivel de la Ingeniería de software
y del modelo planteado, la gestión actúa como instrumento para el
control de calidad y como guía para conocer las limitaciones y
características del ciclo de vida.
15. Bibliografía
Laurie, B. (2016). Plan de Desarrollo para Software Actual. Perú:
Montilva, R. (2017). Introducción a la Ingeniería del Software 2da
Edición. Chile: Editorial Caribe.
Pastor, F. (2015). Como Financiar un Proyecto de Software. Venezuela:
Guariyo.
Rosa, J. (2016). Gestión de y Contingencia para Proyectos. Colombia:
Editorial Adisson.