Generador de Código Utilizando el Paradigma de Líneas de Producto Software
Palabras clave:
ingeniería de software; líneas de producto software; generación código; lenguaje de programación ruby; lenguajes específicos del dominio.Resumen
En esta investigación se elaboró un generador de código utilizando el paradigma de líneas de producto software junto con otras metodologías de desarrollo por analogía. En la actualidad las aplicaciones de desarrollo se enfocan a un ambiente web y requieren de seguridad, mensajería, control de usuarios, etc., por lo que cada día se vuelven más complejas. Una línea de producto software ofrece una alternativa para hacer frente a esa complejidad proporcionando herramientas que reutilicen el código y se mejore el desempeño, la calidad y el tiempo en el desarrollo de un producto software. El objetivo principal de este trabajo es dar a conocer las ventajas y utilidad potencial de la línea de productos software construido por analogía y la mejora en el desarrollo de una aplicación web Java EE. El generador pretende automatizar el proceso de codificación de las anotaciones de persistencia e implementación de los métodos con Java Persistence API (JPA) del Data Access Object (DAO) de la Entidad para el acceso a la base de datos. El prototipo fue desarrollado en lenguaje de programación Ruby, librerías Gtk2 para el entorno gráfico, ERB para el manejo de archivos de texto a través de un lenguaje de plantillas. Esta herramienta aumenta el desempeño de desarrollo y una disminución del tiempo de codificación comprobado por la estimación por intervalo que se realizó a un grupo de programadores.
Citas
Baird, K. C. (2007). Ruby by example: concepts and code. San Francisco: No Starch Press.
Barbosa, P. A., Contreras, C. G., & Rodriguez, J. M. M. (2005). AspectMDA: Hacia un desarrollo incremental consistente integrando MDA y Orientación a Aspectos. Actas Del II Taller Sobre Desarrollo de Software Dirigido Por Modelos, MDA Y Aplicaciones (DSDM 2005), 74.
Bergey, J. K., Cohen, S., Donohoe, P., & Jones, L. G. (2005). Software Product Lines: Experiences from the Eighth DoD Software Product Line Workshop. Retrieved from http://repository.cmu.edu/sei/426/
Boehm, B. W. (1988). A spiral model of software development and enhancement. Computer, 21(5), 61–72.
Carneiro Roos, F. (n.d.). Análisis Automático de Líneas de Producto Software Usando Distintos Modelos de Variabilidad.
Clements, P. C., Jones, L. G., Northrop, L. M., & McGregor, J. D. (2005). Project management in a software product line organization. IEEE Software, 22(5), 54–62.
Clements, P., & Northrop, L. (2015). Software Product Lines: Practices and Patterns: Practices and Patterns. Addison-Wesley. Retrieved from https://books.google.com.ec/books?id=ATFijgEACAAJ
Czarnecki, D.-I. K. (1999). Generative programming. TU Ilmenau, Germany. Retrieved from http://www.issi.uned.es/doctorado/generative/Bibliografia/TesisCzarnecki.pdf
Czarnecki, K., & Eisenecker, U. W. (1999). Components and generative programming. In ACM SIGSOFT Software Engineering Notes (Vol. 24, pp. 2–19). Springer-Verlag. Retrieved from http://dl.acm.org/citation.cfm?id=318779
Ford, N. (2008, July 24). Using the Ruby Development Tools plug-in for Eclipse. Retrieved May 17, 2017, from http://www.ibm.com/developerworks/library/os-rubyeclipse/index.html
Garzás, J., & Piattini, M. (2007). Concepto y Evolución de las Fábricas de Software. Kybele Consulting. Retrieved from https://pdfs.semanticscholar.org/32ec/f1537492e81315f57d1f1e413db67583cc16.pdf
Greenfield, J., & Short, K. (2003). Software factories: assembling applications with patterns, models, frameworks and tools. In Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (pp. 16–27). ACM. Retrieved from http://dl.acm.org/citation.cfm?id=949348
Heradio Gil, R. (2007). Metodología de desarrollo de software basada en el paradigma generativo: realización mediante la transformación de ejemplares. Retrieved from http://e-spacio.uned.es/fez/eserv/tesisuned:IngInf-Rheradio/Documento.pdf
Heradio, R., Cerrada, J. A., Lopez, J. C., & Coz, J. R. (2009). Code Generation with the Exemplar Flexibilization Language. Electronic Notes in Theoretical Computer Science, 238(2), 25–34. https://doi.org/10.1016/j.entcs.2009.05.004
Heradio, R., Fernandez-Amoros, D., de la Torre, L., & Abad, I. (2012). Exemplar driven development of software product lines. Expert Systems with Applications, 39(17), 12885–12896. https://doi.org/10.1016/j.eswa.2012.05.004
Herrington, J. (2003). Code generation in action. Greenwich, CT: Manning.
Jarzabek, S., & Seviora, R. (2000). Engineering components for ease of customisation and evolution. IEE Proceedings - Software, 147(6), 237. https://doi.org/10.1049/ip-sen:20000914
Laguna, M. A. (2009). Desarrollo de Líneas de Productos: un Caso de Estudio en Comercio Electrónico. 2009. Retrieved from http://www.laccei.org/LACCEI2009-Venezuela/Papers/IT155_Laguna.pdf
Laguna, M. A., González-Baixauli, B., & Marqués, J. M. (2007). Seamless development of software product lines. In Proceedings of the 6th international conference on Generative programming and component engineering (pp. 85–94). ACM. Retrieved from http://dl.acm.org/citation.cfm?id=1289988
Miller, J. (2007). mda. Retrieved from http://facepress.net/pdf/300.pdf
Muñoz, J., & Pelechano, J. (2004). MDA a Debate. Actas Del Primer Taller Sobre Desarrollo Dirigido Por Modelos, MDA Y Aplicaciones (DSDM’04). Retrieved from https://www.researchgate.net/profile/Vicente_Pelechano/publication/228871915_MDA_a_Debate/links/549403cc0cf295024eb465a8.pdf
Muñoz, J., & Pelechano, V. (2005). MDA vs Factorías de Software. Actas Del II Taller Sobre Desarrollo de Software Dirigido Por Modelos, MDA Y Aplicaciones (DSDM 2005), 1. Retrieved from https://www.researchgate.net/profile/Jesus_Torres10/publication/220776002_Implicaciones_de_Transformaciones_Oblicuas_en_el_Desarrollo_de_un_Framework_Generador_de_Aplicaciones_Orientadas_a_Aspectos/links/02bfe50d171e0461ec000000.pdf#page=9
Pennington, H., & others. (1999). GTK+/Gnome application development. New Riders Indianapolis. Retrieved from https://pdfs.semanticscholar.org/2366/f069aeae2ab4079b40f2e10572697e6c0f5f.pdf
Pérez, I. M. (2007). An Open Source Framework Oriented to Modular Web-Solution Development based in Software Product Lines. Este Libro Se Distribuye Bajo Licencia Creative Commons Reconocimiento CompartirIgual 2.5 Espa, 133.
Pohl, K., Böckle, G., & Linden, F. van der. (2005). Software product line engineering: foundations, principles, and techniques (1st ed). New York, NY: Springer.
Roos-Frantz, F., & Segura, S. (2008). Automated Analysis of Orthogonal Variability Models. A First Step. In SPLC (2) (pp. 243–248). Citeseer. Retrieved from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.505.4351&rep=rep1&type=pdf
Sepúlveda, S., Cachero, C., & Cares, C. (2012). Modelado de Características para Líneas de Producto de Software: una propuesta. In INTERNATIONAL WORKSHOP ON ADVANCED SOFTWARE ENGINEERING, Valparaíso. Retrieved from http://www.academia.edu/download/45233646/Modelado_de_Caractersticas_para_Lneas_de20160430-12534-ftjbt3.pdf
Thomas, D., Fowler, C., & Hunt, A. (2005a). Programming Ruby: the pragmatic programmers’ guide (2nd ed). Raleigh, N.C: Pragmatic Bookshelf.
Thomas, D., Fowler, C., & Hunt, A. (2005b). Programming Ruby: the pragmatic programmers’ guide (2nd ed). Raleigh, N.C: Pragmatic Bookshelf.
UMLDesigner. (2014). Getting started. Retrieved March 1, 2018, from http://www.umldesigner.org/tutorials/tuto-getting-started.html
Van Deursen, A., Klint, P., Visser, J., & others. (2000). Domain-specific languages: An annotated bibliography. Sigplan Notices, 35(6), 26–36.
Van Gurp, J., Bosch, J., & Svahnberg, M. (2000). On the notion of variability in software product lines. Reading, MA: Addison-Wesley.
Vasudevan, N., & Tratt, L. (2011). Comparative Study of DSL Tools. Electronic Notes in Theoretical Computer Science, 264(5), 103–121. https://doi.org/10.1016/j.entcs.2011.06.007
Voelter, M., & Groher, I. (2007). Product Line Implementation using Aspect-Oriented and Model-Driven Software Development (pp. 233–242). IEEE. https://doi.org/10.1109/SPLINE.2007.23
Vogel, L. (2014). Eclipse IDE tutorial. Vogella, http://www. vogella. de/articles/Eclipse/article. html# overview, accessed August. Retrieved from http://www.draelshafee.net/spring2011/Eclipse-tutorial.pdf
Descargas
Publicado
Cómo citar
Número
Sección
Licencia
Los artículos enviados a la Revista Científica Hallazgos21 deberán ser totalmente originales e inéditos.
Los autores son los responsables de los textos y las imágenes incluidas en los artículos y no necesariamente reflejan el pensamiento de la editorial o de la Pontificia Universidad Católica del Ecuador, Sede Esmeraldas (PUCESE).
Los autores disponen cederle a la Revista Científica Hallazgos21 todos los derechos inherentes para la edición, publicación y distribución o divulgación del mismo.
Se autoriza a las revistas firmantes de los acuerdos de Encuentros de Revistas Latinoamericanas para reproducir en parte o totalmente los artículos con la sola mención de la fuente claramente señalada.