Implantación de Líneas de Productos de Software Mediante Herramientas Comercial-Edición Única

Citation
Share
Date
Abstract
Una arquitectura de software para líneas de productos es un modelo de diseño, utilizado para producir una línea de productos de software (aplicaciones que tienen aspectos comunes y variaciones pronosticadas). Esta arquitectura es desarrollada de tal manera que explote el conjunto de características comunes y las variaciones presentes en los productos de la línea, por medio de componentes de software reutilizables, con un enfoque que rompe el tradicional concepto de desarrollo de proyectos para un solo producto. A esta propuesta de desarrollo de software se le ha denominado línea de productos. En una línea de productos, el desarrollo de los sistemas llega a convertirse más en materia de generación que de elaboración; la actividad predominante es la integración en lugar de la programación. Así como la evolución de un sólo producto (modificaciones, actualizaciones) debe ser considerada dentro de un contexto más amplio; la evolución de la línea de productos como un todo. Desarrollar líneas de productos involucra seguir un método de análisis y diseño para obtener la arquitectura, y una vez obtenida seguir una técnica de implementación. Esta investigación propone un método de análisis y diseño para la línea de sistemas de contabilidad para Uniones de crédito, una técnica de implementación de arquitecturas por medio de una herramienta comercial, y un generador de aplicaciones. En la actualidad existen varios métodos para el análisis y diseño de líneas de productos, pero pocos están orientados a facilitar la implementación. Principalmente se centran en la determinación de las variaciones y semejanzas. El método propuesto tiene como resultado la obtención de arquitecturas de software por niveles, en donde cada nivel corresponde a un componente reutilizable. La principal técnica de implementación de arquitecturas de software es por medio de herencia parametrizada, característica presente en lenguajes como CLOS, C++ y otros. Pero, la mayoría de los ambientes comerciales de desarrollo no la presentan. La técnica de implementación propuesta, sustituye la herencia parametrizada por delegación, y hace uso de referencias circulares para hacer llamadas directas a código (ejecutar desde el interior de un componente, código localizado en un componente externo) sin restricciones de ubicación de los componentes. La tesis finaliza con el desarrollo de un generador de aplicaciones, el cual además de simplificar el proceso de producción, genera automáticamente diferentes sistemas de contabilidad. Un generador de aplicaciones para una línea de productos, tiene características propias que lo hacen diferente a los generadores tradicionales, como analizadores semánticos para reglas de diseño ygeneración de diversos tipos de componentes.