Funcionalidad volátil en juegos web: una arquitectura de soporte - Pérez, Leandro Manuel (2009)
A medida que el software aumenta su complejidad, es más difícil de modificar. Esto es un obstáculo para la evolución y puede impedir la habilidad de manejar los cambios en los requerimientos. Los cambios en los requerimientos aparecen durante todo el ciclo de vida del software y dichos requerimientos tienden a ser muy volátiles. Ciertos requerimientos necesitan la introducción de nueva funcionalidad, que solo será necesaria por un lapso de tiempo y luego tendrá que ser removida. A este tipo de funcionalidad, que por su naturaleza solo estará disponible por un período de tiempo, se la conoce como funcionalidad volátil. La incorporación de funcionalidad volátil de forma directa, reparando la aplicación existente a medida en que surgen nuevas necesidades, introduce errores y hace cada vez más caro y complicado el proceso de mantenimiento. Este camino conduce a una degradación del sistema que, potencialmente, puede desembocar en un “Big Ball of Mud”. Se necesitan alternativas basadas en diseño para lograr una evolución exitosa. El continuo refactoring puede ser la solución que evite el camino a un sistema imposible de mantener. En este trabajo se apoyan las ideas mencionadas en el párrafo anterior. Se busca, a través de la utilización de una arquitectura de soporte, minimizar el área de impacto de los cambios necesarios para incorporar y remover funcionalidad volátil, con el objetivo de obtener un proceso menos costoso y más rápido. El desarrollo de una arquitectura para el desarrollo de aplicaciones web que soporten funcionalidad volátil es el foco de esta tesis. Tal arquitectura tiene el objetivo de proveer los medios a través de los cuales, un sistema web pueda extenderse dinámicamente para soportar el cambio y evolucionar gradualmente. Está pensada no solo para escribir y modificar las aplicaciones pensadas a partir de ella, sino también, para poder incorporar la funcionalidad volátil en aplicaciones existentes.