Generador de Código Utilizando el Paradigma de Líneas de Producto Software

Autores/as

  • Jaime P. Sayago Heredia Pontificia Universidad Católica del Ecuador, Sede Esmeraldas.

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

2018-07-10

Cómo citar

Sayago Heredia, J. P. (2018). Generador de Código Utilizando el Paradigma de Líneas de Producto Software. Revista Científica Hallazgos21, 3(2), 190–212. Recuperado a partir de https://revistas.pucese.edu.ec/hallazgos21/article/view/281

Número

Sección

Artículos Originales