Proceso de programación y desarrollo tecnológico
 
 

Cualquier desarrollo tecnológico tiene un objetivo determinado, por lo que antes de explicar las herramientas disponibles para alcanzar dicho objetivo, vamos a introducir algunos conceptos básicos sobre los proyectos de desarrollo de software.

El proceso de desarrollo de software puede definirse como un conjunto de herramientas, métodos y prácticas que se emplean para producir programas. Como cualquier otra organización, las dedicadas al desarrollo de software mantienen entre sus principales fines la producción de software de acuerdo con la planificación inicial realizada, además de una constante mejora con el fin de lograr los objetivos últimos de cualquier proceso de producción: alta calidad, bajo coste y mínimo tiempo de elaboración. La gestión de este proceso engloba, por tanto, todas las funciones que mantengan un proyecto dentro de unos objetivos de coste, calidad y calendario previamente estimados.


Un proyecto consiste en una serie de acciones, actividades, cambios, etc., conectados entre sí y realizados por agentes con el fin de satisfacer un propósito o conseguir una meta.

Un proyecto de desarrollo se basa en un plan de proyecto en el que se definen las principales características e hitos del mismo, así como otra información necesaria para la consecución del objetivo marcado.

Actividad


    Para comprobar que la teoría de los proyectos no es más que la aplicación de la lógica deberéis plasmar por escrito las tareas que se llevan a cabo antes, durante y después de realizar unas vacaciones. Posteriormente se verá la relación directa entre la experiencia real y la teoría presentada.


Las fases principales de un proyecto son:

  • Propuesta del proyecto: para plantearnos el inicio de cualquier proyecto es necesario que exista una propuesta o iniciativa que fije un objetivo. En esta fase se debe realizar un análisis del coste-beneficio que nos va a aportar el proyecto; además, se deben estimar los esfuerzos implicados en el proyecto.

  • Aprobación del proyecto: una vez propuesto, se debe seguir el proceso establecido por cada organización para la aprobación del mismo por parte de sus responsables.

  • Inicio del proyecto: en este punto se deben definir las actividades del proceso, se deben planificar las mismas en un cronograma y se debe realizar la asignación presupuestaria.

  • Ejecución del proyecto: durante esta etapa se deben llevar a cabo las actividades del proceso según lo previsto en el plan de ejecución. Es importante realizar un seguimiento del avance de las mismas, así como valorar y solucionar los problemas que aparezcan hasta culminar en la entrega y aceptación de los resultados. De todas maneras, aunque a veces no se le dé la importancia que realmente tiene, uno de los puntos más importantes que tiene lugar en esta fase es la consecución exhaustiva de los requerimientos del proyecto.

  • Cierre del proyecto: en este punto se evaluará la actuación de los participantes y los resultados, y se elaborará un informe final.

Dentro de la fase de ejecución del proyecto se realiza la secuencia de tareas que darán como resultado la aplicación informática definida en el proyecto. Las fases principales durante la ejecución del proyecto son:

  • Recogida de requerimientos: en esta fase los analistas se reúnen con el responsable funcional de la aplicación (RFA) para recoger las necesidades que debe satisfacer la aplicación. Como resultado se obtiene una matriz con todos los requerimientos ordenados y numerados donde se recoge el grado de cumplimiento de la aplicación para cada uno de ellos (total / parcial / nulo). Este documento tiene que ser validado por el RFA antes de iniciar la siguiente fase.

  • Análisis funcional: en esta fase se elabora un documento llamado análisis funcional donde se explica la funcionalidad que ofrecerá el software a partir de la matriz de requerimientos, sin entrar en detalles técnicos. En este documento también aparecen los casos de uso del desarrollo, donde se puede validar la forma de integrar a los diferentes actores que van a intervenir en la aplicación. Este documento debe ser aprobado por el responsable de la aplicación antes de pasar a la siguiente fase.

  • Diseño técnico: una vez validado el análisis funcional se inicia esta fase, que tiene como objetivo el diseño técnico de la aplicación, que conseguirá resolver las necesidades funcionales planteadas en la fase anterior. En esta fase tiene lugar el diseño de las estructuras de datos necesarias (bases de datos), módulos o partes en las que se dividirá la aplicación o, incluso, la solución tecnológica necesaria para ponerla en marcha (lenguaje a utilizar, tipo de gestor de base de datos, servidores web, etc.). Este documento no debe ser revisado por el usuario, puesto que la parte técnica corresponde a los equipos de sistemas.

  • Construcción: una vez dividida en módulos la aplicación, en esta fase se asigna cada uno de estos módulos (con las especificaciones de lo que debe hacer y cómo lo debe hacer) a un equipo de programadores para su construcción. En esta fase se necesitará el compilador o intérprete del lenguaje escogido para llevar a cabo la aplicación (ver Tipos de lenguajes) para obtener el ejecutable, así como la ayuda de un depurador (debug) para detectar el origen de los errores que puedan surgir en las pruebas de cada uno de los módulos.

  • Pruebas integradas: una vez desarrollados todos los módulos por separado se unen en una única aplicación y se comprueba el correcto funcionamiento de todos ellos según las especificaciones solicitadas. En caso de detectarse cualquier error, se identifica el módulo donde se encuentra y se notifica al equipo de programadores para su corrección.

  • Validación: antes de poner en marcha la aplicación, se convoca una reunión con el RFA para llevar a cabo la prueba del producto y validarlo. De este modo tenemos una garantía de que lo desarrollado por los equipos de sistemas es realmente lo requerido por el usuario.

  • Producción: una vez obtenida la validación del usuario, se debe poner en marcha la producción de la aplicación. Previamente, suelen realizarse sesiones de formación de los usuarios para garantizar su correcta utilización por parte de los destinatarios del desarrollo.

  • Seguimiento y garantía: durante un determinado intervalo de tiempo posterior a la puesta en marcha de la aplicación, debe realizarse un seguimiento de su funcionamiento para detectar posibles errores no detectados en las fases anteriores.

A pesar de que en cada fase hay una o varias personas responsables de la misma, la responsabilidad última del proyecto durante todo el ciclo de vida del mismo es del jefe de proyecto.

Para llevar a cabo todo el ciclo de vida del desarrollo existen herramientas que permiten integrar todas estas fases y que se basan en estándares definidos. Un ejemplo puede ser Rational Rose, que ofrece soluciones para implementar la metodología UML.

 
    Inicio