Adaptación y Configuración de Procesos de Software Tailoring and Configuration of Software Processes
Rodolfo Villarroel Acevedo 1*
1 Pontificia Universidad Católica de Valparaíso. Avenida Brasil 2241, Valparaíso. rodolfo.villarroel@ucv.cl
* Autor para correspondencia: rodolfo.villarroel@ucv.cl
Resumen
La definición de un proceso de software organizacional permite la construcción de productos de software de calidad en forma predecible y planificable, en términos de tiempo como de recursos. Debido a que las organizaciones tienen una diversidad de proyectos, no es posible aplicar el proceso de software de la misma manera a cada proyecto. Esto significa que el proceso de software debe ser continuamente adaptado a las necesidades específicas de cada proyecto.
Además, todo proceso es ejecutado sobre una serie de herramientas tecnológicas. La definición de cuáles son las herramientas necesarias para ejecutar un proceso específico no es fácil, considerando que el proceso no es el mismo para diferentes proyectos. El objetivo de esta investigación es adaptar procesos de software a proyectos específicos y realizar la configuración de un entorno de desarrollo adecuado al proceso adaptado. Para ello, nuestra solución considera la adaptación del proceso de software para generar un proceso específico para el proyecto y la plataforma de desarrollo organizacional para generar una plataforma específica del proyecto, teniendo en consideración la descripción del contexto del proyecto. Se ha formalizado y adaptado el proceso de software en seis empresas chilenas y se han configurado el entorno de desarrollo considerando herramientas utilizadas por las pequeñas empresas.
Palabras clave: proceso de software; adaptación de procesos de software; configuración del proceso; contexto del proyecto
Abstract
The definition of an organizational software process allows to build quality software products in a planned and predictable way, in terms of resources and time. Considering that organizations have a variety of projects, it is not possible to apply the software process in the same way to each project. This means that the software process should be continuously adapted to the specific needs of each project. Furthermore, a process is executed on a range of technological tools. The definition of what are the tools needed to run a specific process is not easy, considering that the process is not the same for different projects. The purpose of this research is the software processes tailoring to specific projects and the configuring of a development environment suitable to the adapted process. To do this, our solution considers the adaptation of the software process to generate a specific process for the project and the organizational development platform in the generation of a specific project platform, taking into account the description of the context of the project. The software process has been formalized and adapted in six Chilean companies and the development environment has been configured considering the tools used by small businesses.
Keywords: software process; software process tailoring; process configuration; project context
Introducción
Las organizaciones se encuentran con la problemática de la diversidad de proyectos a realizar. A la vez, pueden tener formalizado su proceso de software organizacional, sin embargo, un único proceso de software no se aplica de la misma manera en cada proyecto (Kilisperger et al., 2009). Los sistemas de software que se construyen y utilizan requieren y muestran actualmente mayor variabilidad, la cual representa la capacidad de cambiar o adaptar un sistema (Cruz y Villarroel, 2012). Para introducir la variabilidad en el proceso de desarrollo de software se deben seguir una serie de pasos, de manera de obtener la variabilidad deseada y mantenerla estable (Svanhnberg et al., 2005).
Las características propias del producto a desarrollar en cada proyecto deben ser consideradas en cada desarrollo, debido a que cambian generalmente de un proyecto a otro. A esto se le llama generalmente el contexto del proyecto (Ortega et al., 2012). La naturaleza de un proyecto depende del tamaño del equipo, la calificación del personal, el conocimiento del dominio y el riesgo asociado. De esta manera, un proceso de software organizacional debe ser continuamente adaptado a las necesidades específicas de cada proyecto. Existe un número considerable de procesos adaptados, por lo que se requiere de un mecanismo genérico bien definido de manera de generar el proceso adecuado para cada proyecto.
El principal antecedente de esta investigación, es el proyecto ADAPTE (Adaptable Domain and Process Technology Engineering), en que participan tres universidades en conjunto: Universidad de Chile, Universidad Técnica Federico Santa María y la Pontificia Universidad Católica de Valparaíso. El principal objetivo de ese proyecto es: Desarrollar un método y herramientas para especificación y adaptación sistemática de procesos de software de Pymes a proyectos específicos. ADAPTE trabaja con 6 PyMEs, las cuales están relacionadas principalmente en el área del desarrollo de software, y una de las tareas iniciales más importantes desarrolladas en ADAPTE fue formalizar los procesos de desarrollo de software de cada una de ellas. La solución permite trasladar parte del esfuerzo de la adaptación a la definición del proceso de software organizacional. De esta manera, en el momento de la adaptación, el jefe de proyecto solamente definirá el contexto específico y aplicando las reglas obtendrá el proceso adaptado que se necesita.
En la siguiente sección se presenta la solución para la adaptación del proceso de software y configuración del proyecto. Posteriormente, se presentan las conclusiones.
El Proyecto ADAPTE: Solución para Adaptación y Configuración de Procesos
El proyecto ADAPTE plantea una solución metodológica y tecnológica para producir familias de procesos de software y validarlas en el contexto de 6 PyMEs de software chilenas (ver Figura 1). La solución involucra la definición de los siguientes aspectos:
- Una forma para especificar la variabilidad en los procesos de software organizacionales.
- Una forma para caracterizar y representar el contexto de un proyecto.
- Una forma de catalogar las herramientas que forman parte de la plataforma tecnológica de la organización.
- Un método con soporte de herramientas que permita adaptar los procesos de software organizacionales a contextos específicos de un proyecto y que permita definir también la plataforma requerida para su ejecución.
Figura 1. Propuesta del Proyecto ADAPTE
La Figura 2 presenta una visión más detallada de la propuesta de solución. En primer lugar, se realizará una adaptación del proceso de software, posteriormente, se realizará la configuración del proyecto.
Figura 2. Solución del Proyecto ADAPTE
El modelo de proceso de software fue definido usando el Eclipse Process Framework Composer (EPFC), lo cual ha sido muy bien recibido en cada una de las empresas participantes. Sin embargo, para realizar la adaptación del proceso se necesita que el proceso de software organizacional esté representado en un formato xmi (y no en xml), lo cual significaría trabajar usando Eclipse Modeling Framework (EMF), que no es una forma de trabajo muy amistosa para el ingeniero de procesos ni para el gestor del proyecto (Silvestre et al., 2014). Por lo tanto, se creó un inyector para realizar la conversión entre los formatos (ver Figura 3). A la vez, se creó un extractor para realizar el proceso contrario y dejar el proceso final representado en EPFC (Ortega et al., 2013).
La configuración del proyecto permitirá:
a) Desarrollar metamodelos que permitan comprender cómo funcionan las herramientas de los diferentes dominios (requerimientos, testing, gestión de configuración, etc.). Cada categoría de herramientas tiene un metamodelo que describe los conceptos que representa/manipula la herramienta.
b) Configurar el ambiente de desarrollo mediante mecanismos automáticos o semiautomáticos, denominados handlers. Un handler puede ser un mecanismo de configuración de diversa naturaleza, por ejemplo, un plugin, un programa stand-alone, una serie de instrucciones manuales, o un modelo de proceso (Giachetti et al., 2012).
c) Medir la ejecución del proceso de desarrollo con medidas establecidas acorde a las herramientas y tecnologías asociadas al proyecto.
Por lo tanto, el proyecto ADAPTE apoyará y facilitará la materialización de los procesos de desarrollo por medio de mecanismos automáticos de instrumentación y medición adaptados al contexto de proyectos específicos.
Figura 3. Propuesta Final de Adaptación
Conclusiones
El trabajo realizado en ADAPTE ha permitido la formalización de los procesos de software y adaptación de los procesos de software a proyectos específicos. Además, ha sido necesario crear herramientas que han permitido definir y configurar contextos para proyectos de software de una manera fácil e intuitiva.
El siguiente paso a realizar corresponde a incluir medidas para la configuración y monitoreo de los procesos y entornos de desarrollo. Finalmente, se desarrollará un prototipo del panel de control para visualizar los resultados de las métricas capturadas.
Referencias
CRUZ, G.; VILLARROEL, R. Método para la Incorporación de la Variabilidad en Procesos de Desarrollo de Familias de Productos de Software. En: Actas de las Jornadas Chilenas de Computación 2012, Valparaíso.
SILVESTRE, L.; BASTARRICA, M.C.; OCHOA, S. A Model-Based Tool for Generating Software Process Model Tailoring Transformation. En: Proceedings of the 2nd. International Conference on Model-Driven Engineering and Software Development (Modelsword´14), Lisbon, Portugal, January 5-7, 2014.
ORTEGA, D.; SILVESTRE, L.; BASTARRICA, M.C.; OCHOA, S. A Tool for Modeling Software Development Contexts in Small Software Organizations. En Post-Proceedings of the 31st International Conference of the Chilean Computer Sciences Society SCCC 2012. IEEE Press, 2013.
GIACHETTI, G.; CRUZ, P.; FREDES, D.; ASTUDILLO, H. ADAPTE Method: Tool Catalog, Measures Definition, and Process Configuration. [En línea]. Reporte Interno Proyecto ADAPTE, año 2012.[Consultado el 3 de marzo de 2014]. Disponible en:
http://www.adapte.cl/wp-content/uploads/2012/07/ADAPTE-ToolCatalogMethod.pdf
KILLISPERGER, P.; STUMPTNEM, M.; et al. Meta-Model Based Architecture for Software Process Instantiation. En: Proceedings of the International Conference on Software Process: Trustworthy Software Development Processes ICSP´09, pages 63-74, Springer-Verlag, 2009.
SVAHNBERG, M.; van GURP, J.; BOSCH, J. A Taxonomy of Variability Realization Techniques. Software- Practice & Experience, Volume 35 Issue 8, July 200, pages 705-754.