Los Modelos Dinámicos y la Ingeniería del Software

Isabel Ramos Román, isabel.ramos@lsi.us.es

Mercedes Ruiz Carreira, mercedes.ruiz@uca.es

Miguel Toro Bonilla, mtoro@lsi.us.es

23-11-1998

 

Introducción

 

El proceso de desarrollo de software puede definirse como un conjunto de herramientas, métodos y prácticas que se emplean para producir software. 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 tres objetivos últimos de cualquier proceso de producción: alta calidad y bajo coste, en el mínimo tiempo. La gestión de un PDS engloba, por tanto, todas las funciones que mantengan a un proyecto dentro de unos objetivos de coste, calidad y duración previamente estimados. La mayoría de estas funciones y técnicas de gestión y control empleadas, se han importado de otras industrias de producción que desarrollaron estos métodos a principios de siglo.

Sin embargo, los problemas de gestión que surgen en las organizaciones de desarrollo provienen principalmente de la gestión estratégica, como puede ser el entorno socio/político de la organización, su nivel de madurez y los factores humanos o del personal técnico. De hecho, la incapacidad de las técnicas de gestión actuales para tratar el complicado factor humano ha sido reconocida como uno de los principales problemas.

A principios de los 90 se produce un salto significativo en la gestión de Proyectos de Desarrollo de Software (PDS) con la aparición del primer modelo dinámico [Abdel-Hamid y Madnick, 1991]. Este modelo incorpora las actividades básicas relacionadas con la de gestión de recursos humanos, producción de software, planificación y control.

Las características de esta disciplina contribuyen a que se desarrollen modelos del proceso de desarrollo de software que permiten manejar complejidades dinámicas y conocer los efectos secundarios de las decisiones tomadas sobre la globalidad del mismo, aspectos que son esenciales para desarrollar una buena estrategia. Para nosotros un PDS es un sistema dinámico socio-tecnológico complejo, cuya evolución temporal viene dada por su estructura interna, por las relaciones existentes entre el personal técnico que trabaja en el mismo y por el nivel de madurez de la propia organización de desarrollo.

 

Ventajas de la aplicación de la Dinámica de Sistemas a la Ingeniería del Software

 

Las aplicaciones de la Dinámica de Sistemas en la Ingeniería del Software son múltiples. Entre ellas destaca principalmente su aplicación a la investigación de nuevas políticas de desarrollo, que se ve facilitada por la capacidad de simulación. También destacan sus aplicaciones dirigidas a la formulación de una metodología formal, que permita estandarizar el proceso de desarrollo de software, los análisis de proyectos ya terminados (análisis post-mortem) y la monitorización y seguimiento continuo de los proyectos en desarrollo.

Por tanto, el marco de la Dinámica de Sistemas ofrece las bases para construir una teoría común para los PDS. La elaboración de modelos dinámicos puede constituir una metodología formal según la cual se pueden expresar los conocimientos sobre el sistema. Además, el proceso de construcción del modelo, por sí mismo, obliga a los investigadores a tener un alto conocimiento de cuáles son los parámetros claves que influyen en el comportamiento del sistema y cómo se relacionan entre sí constituyendo lazos de realimentación.

Por otro lado, el potencial de los modelos de simulación para la formación y el entrenamiento de los directores de proyectos es manifiesto: los entornos de simulación sitúan a los directores frente a situaciones reales que pueden encontrar en la práctica y les permite adquirir experiencia sin correr riesgos. La disponibilidad de un modelo dinámico, que simule el comportamiento o algún aspecto concreto de una organización, y un entorno de simulación potente como los que existen en la actualidad, constituye una herramienta fundamental en la toma de decisiones de dicha organización.

 

Modelos Dinámicos para Proyectos de Desarrollo de Software

 

A continuación, se presentan algunos modelos dinámicos cuyas aportaciones fundamentales se centran en añadir nuevas capacidades y aplicaciones al Modelo de Abdel-Hamid y Madnick. Estos modelos se pueden dividir en dos grandes grupos: 

1. Los de carácter general creados para simular entornos específicos de desarrollo dentro de una determinada organización. Entre estos modelos destacan:

- El Modelo SEPS (Software Engineering Process Simulation). Elaborado en el laboratorio JPL (Jet Propulsion Laboratory). Diseñado para simular el comportamiento de proyectos grandes considerando la existencia de un doble ciclo de vida: el proceso de desarrollo propiamente dicho y el proceso de toma de decisiones. Además, introduce sistemas expertos con lógica fuzzy en la interfaz del modelo.

- El Modelo de Draper Laboratory. El Modelo de Draper constituye una ampliación del Modelo de Abdel-Hamid y Madnick. Presenta como novedad la incorporación de la etapa de Análisis de Requisitos (no tratada en el Modelo de Abdel-Hamid y Madnick) contemplando la posibilidad de que estos requisitos puedan cambiar a lo largo del proyecto e incorpora también una serie de variables y relaciones para analizar la influencia que puede tener en el proyecto las relaciones con el cliente.

2. Los de carácter específico para analizar problemas concretos presentados en la gestión de PDS. Entre estos modelos destacan:

- El Modelo de Chichacly. Este modelo realizado para estudiar el impacto de un cambio de tecnología, concretamente el cambio de C a C++, dentro de una empresa de desarrollo de aplicaciones para Macintosh poniendo de manifiesto la reacción de oposición o resistencia por parte de los técnicos ante la implantación de cualquier tipo de cambio en las técnicas o métodos de trabajo empleados normalmente. 

- El Modelo Aranda/Friddaman/Oliva. Este modelo añade aspectos nuevos al modelo de Abdel-Hamid y Madnick como son los efectos del empleo de las técnicas TQM (Total Quality Management) para el control de calidad, la ampliación del horizonte temporal del proyecto con el fin de recoger las diferentes versiones del software producido y el estudio del impacto comercial del producto final.

- El modelo Multiproyecto. Este modelo estudia las transferencias netas de personal que se producen cuando interactuan dos proyectos por los mismos recursos.

 

Trabajos actuales

 

Actualmente estamos trabajando en las siguientes líneas: 

Otros trabajos que deberían afrontarse en un futuro serían los siguientes:

 

Referencias básicas

 

En este libro se describe con detalle el Modelo Dinámico propuesto por estos autores y las conclusiones obtenidas al aplicar el modelo en el análisis de diferentes aspectos del proceso de desarrollo de software. Alrededor de esta fecha los autores publicaron diferentes artículos donde se explican con más detalle alguno de los capítulo del libro.

Este es un libro básico para introducirse en la Dinámica de Sistemas y en la construcción de modelos dinámicos. 

 

Referencias sobre modelos dinámicos

 

La revista American Programmer de Mayo de 1993 está dedicada a un monográfico sobre la aplicación de los modelos dinámicos en la Ingeniería del Software. En ella podemos encontrar una introducción al tema y una descripción de los principales modelos dinámicos para PDS como:

Buen artículo introductorio al tema.

Descripción del modelo dinámico de estos autores descrito en el apartado Modelos Dinámicos para Proyectos de Desarrollo de Software.

Breve descripción y aplicabilidad del modelo dinámico de este autor descrito en el apartado Modelos Dinámicos para Proyectos de Desarrollo de Software.

Artículo interesante desde el punto de vista en el que trata la simulación de los sistemas dinámicos en la integración de herramientas que permitan mejorar el proceso de toma de decisiones. Se basa para ello, en la descripción de la herramienta MicroWorld S**4 (Strategy Support Simulation System).

Descripción del modelo dinámico SEPS (Software Engineering Process Simulation) descrito en el apartado Modelos Dinámicos para Proyectos de Desarrollo de Software.

Contiene la única descripción disponible (hasta ahora) del modelo de Draper Laboratory descrito en el apartado Modelos Dinámicos para Proyectos de Desarrollo de Software.

 

Otras referencias de interés

 

Descripción de un modelo dinámico que permite simular la gestión simultánea de dos PDS en paralelo.

Este es un artículo introductorio al tema. Quizá lo más relevante sea que el autor no proceda del mundo universitario y posea un enfoque claramente orientado al mundo empresarial.

En este artículo se propone la aplicación de técnicas de aprendizaje automático sobre una muestra de PDS resueltos, a partir de un modelo dinámico, para obtener reglas de gestión del proyecto.

Realiza una comparación entre los modelos dinámicos más importantes y propone realizar un simulador para planificar y controlar la evolución un PDS utilizando como base un modelo dinámico.

Interesante porque introduce el desarrollo modular de modelos dinámicos. En concreto, se aplica un modelo así desarrollado a la evaluación del impacto de las inspecciones software en proyectos que siguen el paradigma de ciclo de vida secuencial.

Recoge un buen resumen de las distintas actividades y modelos dinámicos desarrollados en relación a los PDS hasta 1994.