A Generic method for assembling software product line components

dc.contributor.advisorMazo, Raúlspa
dc.contributor.advisorGiraldo Gómez, Gloria Luciaspa
dc.contributor.authorCorrea Botero, Danielspa
dc.contributor.corporatenameUniversidad Nacional de Colombia - Sede Medellínspa
dc.contributor.researchgroupIngeniería de Softwarespa
dc.date.accessioned2020-04-01T22:25:35Zspa
dc.date.available2020-04-01T22:25:35Zspa
dc.date.issued2020-03-31spa
dc.description.abstractSoftware product lines (SPL) facilitate the industrialization of software development. The main goal is to create a set of reusable software components for the rapid production of a software systems family. Many authors propose different approaches to implement and assemble the reusable components of an SPL. However, the construction and assembly of these components continue to be a complex and time-consuming process. This thesis analyzes the advantages and disadvantages of the current approaches to implement and assemble the reusable components of an SPL. Taking advantage of these elements and with the goal of developing a generic method (which can be applied to several software components developed in different software languages), we develop Fragment-oriented programming (FragOP), a framework to design, implement and reuse SPL domain components. FragOP is based on: (i) domain components, (ii) domain files, (iii) fragmentation points, (iv) fragments, (v) customization points, and (vi) customization files. FragOP was implemented in an open-source tool called VariaMos, and we also carried out three evaluations: (i) we created a clothing stores SPL, derived five different products, and discussed the results. (ii) We developed a discussion about the comparison between FragOP and other approaches. And (iii) we designed and executed a usability test of VariaMos to support the FragOP approach. The results show preliminary evidence that the use of FragOP reduces the manual intervention when assembling SPL domain components and it can be used as a generic method for assembling assets and SPL components developed in different software languages.spa
dc.description.abstractLas líneas de productos de software (LPS) promueven la industrialización del desarrollo de software mediante la definición y ensamblaje de componentes reutilizables de software. Actualmente existen diferentes propuestas para implementar y ensamblar estos componentes. Sin embargo, su construcción y ensamblaje continúa siendo un proceso complejo y que requiere mucho tiempo. Esta tesis analiza las ventajas y desventajas de las diferentes estrategias actuales para implementación y ensamblaje de componentes de LPS. Con base en esto y con el objetivo de desarrollar un método genérico (el cual se pueda aplicar a múltiples componentes de software desarrollados en diferentes lenguajes), esta tesis desarrolla la programación orientada a fragmentos (FragOP), la cual define un marco de trabajo para diseñar, implementar y reutilizar componentes de dominio de LPS. FragOP se basa en: (i) componentes de dominio, (ii) archivos de dominio, (iii) puntos de fragmentación, (iv) fragmentos, (v) puntos de personalización, y (vi) archivos de personalización. Además, se realizó una implementación de FragOP en una herramienta llamada VariaMos, y se llevaron a cabo tres evaluaciones: (i) se creó una LPS de tiendas de ropa, se derivaron cinco productos y se discutieron los resultados. (ii) Se realizó una discusión acerca de la comparación de FragOP y otras propuestas actuales. Y (iii) se diseñó una prueba de usabilidad acerca del soporte de VariaMos para FragOP. Los resultados muestran evidencia preliminar de que el uso de FragOP reduce la intervención manual cuando se ensamblan componentes, y que FragOP puede usarse como un método genérico para el ensamblaje de componentes.spa
dc.description.degreelevelDoctoradospa
dc.format.extent218spa
dc.format.mimetypeapplication/pdfspa
dc.identifier.citationCorrea, D (2020). A Generic Method for Assembling Software Product Line Components. Doctoral thesis, Universidad Nacional de Colombia.spa
dc.identifier.urihttps://repositorio.unal.edu.co/handle/unal/77398
dc.language.isoengspa
dc.publisher.branchUniversidad Nacional de Colombia - Sede Medellínspa
dc.relation.referencesAleixo, F. A., Kulesza, U., & Junior, E. A. O. (2013). Modeling variabilities from software process lines with compositional and annotative techniques: A quantitative study. In: Int. Conf. on Product Focused Software Process Improvement, pp. 153-168, Springer, Berlin.spa
dc.relation.referencesAlzahmi, S., Matar, M. A., & Mizouni, (2014). R. A Practical Tool for Automating Service Oriented Software Product Lines Derivation. 8th Int. Symposium on Service Oriented System Engineering (SOSE), pp. 90-97, IEEE.spa
dc.relation.referencesApel, S., Batory, D., Kästner, C., & Saake, G. (2013). Feature-oriented software product lines. Springer-Verlag Berlin An.spa
dc.relation.referencesAsadi, M., Bagheri, E., Gašević, D., Hatala, M., & Mohabbati, B. (2011, March). Goal-driven software product line engineering. In Proceedings of the 2011 ACM Symposium on Applied Computing, pp. 691-698, ACM.spa
dc.relation.referencesAzanza, M., Díaz, O., & Trujillo, S. (2010, July). Software factories: describing the assembly process. In International Conference on Software Process, pp. 126-137, Springer, Berlin, Heidelberg.spa
dc.relation.referencesBehringer, B., & Rothkugel, S. (2016, April). Integrating feature-based implementation approaches using a common graph-based representation. In Proceedings of the 31st Annual ACM Symposium on Applied Computing, pp. 1504-1511, ACM.spa
dc.relation.referencesBeuche, D. (2008, September). Modeling and building software product lines with pure::variants. In 12th International Software Product Line Conference, pp. 358-358, IEEE.spa
dc.relation.referencesBeuche, D., & Dalgarno, M. (2007). Software product line engineering with feature models. Overload Journal, vol. 78, pp. 5-8.spa
dc.relation.referencesBradley, A., & Manna, Z. (2007). The Calculus of Computation - Decision Procedures with Applications to Verification. ISBN 978-3-540-74112-1, Springer Berlin Heidelberg New York.spa
dc.relation.referencesChen, L., & Babar, M. A. (2011). A systematic review of evaluation of variability management approaches in software product lines. Information and Software Technology, vol. 53(4), pp. 344-362.spa
dc.relation.referencesCirilo, E., Kulesza, U., & Lucena, C. (2007) GenArch: A Model-Based Product Derivation Tool. In: Proceedings of Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS 2007), Campinas – Brazil.spa
dc.relation.referencesClements, P., & Northrop, L. (2001). Software product lines: practices and patterns. Addison-Wesley.spa
dc.relation.referencesCobaleda, L., Mazo, R., & Correa, D. (2018). Selección, personalización y aumento de componentes reutilizables de dominio para cada aplicación. In Guía para la adopción industrial de líneas de productos de software. Editorial Eafit, ISBN 978-958-720-506-0, pp. 447-458, Medellín-Colombia.spa
dc.relation.referencesCondori-Fernández, N., Panach Navarrete, J. I., Baars, A. I., Vos, T. E., & Pastor López, O. (2013). An empirical approach for evaluating the usability of model-driven tools. In Science of computer programming, vol. 78(11), pp. 2245-2258, Elsevier.spa
dc.relation.referencesCorrea, D. (2018). FragOP-Thesis GitHub repository, Available at: https://github.com/danielgara/FragOP-thesisspa
dc.relation.referencesCorrea, D., & Mazo, R. (2018). Implementación de componentes reutilizables de dominio. In Guía para la adopción industrial de líneas de productos de software. Editorial Eafit, ISBN 978-958-720-506-0, pp. 307-368, Medellín-Colombia.spa
dc.relation.referencesCorrea, D., Mazo, R., & Giraldo, G. L. (2019, June). Extending FragOP Domain Reusable Components to Support Product Customization in the Context of Software Product Lines. In International Conference on Software Reuse, pp. 17-33, Springer, Cham.spa
dc.relation.referencesCorrea, D., Mazo, R., & Giraldo-Goméz, G.L. (2018). Fragment-oriented programming: a framework to design and implement software product line domain components. DYNA, vol. 85(207), pp. 74-83.spa
dc.relation.referencesde Souza, L. O., O’Leary, P., de Almeida, E. S., & de Lemos Meira, S. R. (2015). Product derivation in practice. Information and Software Technology, vol. 58, pp. 319-337.spa
dc.relation.referencesDeelstra, S., Sinnema, M., & Bosch, J. (2005). Product derivation in software product families: a case study. Journal of Systems and Software, vol. 74(2), pp. 173-194.spa
dc.relation.referencesDhungana, D., Grünbacher, P., & Rabiser, R. (2011). The DOPLER meta-tool for decision-oriented variability modeling: a multiple case study. Automated Software Engineering, vol. 18(1), pp. 77-114.spa
dc.relation.referencesDyba, T., Dingsoyr, T., & Hanssen, G. K. (2007, September). Applying systematic reviews to diverse study types: An experience report. In First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007), pp. 225-234, IEEE.spa
dc.relation.referencesEngström, E., & Runeson, P. (2011). Software product line testing–a systematic mapping study. Information and Software Technology, vol. 53(1), pp. 2-13.spa
dc.relation.referencesEpifani, I., Ghezzi, C., Mirandola, R., & Tamburrelli, G. (2009, May). Model evolution by run-time parameter adaptation. In Proceedings of the 31st International Conference on Software Engineering, pp. 111-121, IEEE Computer Society.spa
dc.relation.referencesHeaven, W., & Finkelstein, A. (2004). UML profile to support requirements engineering with KAOS. IEE Proceedings-Software, vol. 151(1), pp. 10-27.spa
dc.relation.referencesHeidenreich, F., Savga, I., & Wende, C. (2008, September). On Controlled Visualisations in Software Product Line Engineering. In Software Product Line Conference, pp. 335-341.spa
dc.relation.referencesHorcas, J. M., Cortiñas, A., Fuentes, L., & Luaces, M. R. (2018, September). Integrating the common variability language with multilanguage annotations for web engineering. In Proceeedings of the 22nd International Conference on Systems and Software Product Line, pp. 196-207, ACM.spa
dc.relation.referencesIEEE. (1990). Standard Glossary of Software Engineering Terminology. IEEE Standard 610.12-1990.spa
dc.relation.referencesISO 9241-11. (1998). Ergonomic requirements for office work with visual display terminals (VDTs) - Part 11: Guidance on usability.spa
dc.relation.referencesISO/IEC 25062. (2006). Software engineering—Software product Quality Requirements and Evaluation (SQuaRE)—Common Industry Format (CIF) for usability test reports.spa
dc.relation.referencesJordan, H. R., Russell, S. E., O'Hare, G. M., & Collier, R. W. (2012) Reuse by Inheritance in Agent Programming Languages. In: Intelligent Distributed Computing V, volume 382 of Studies in Computational Intelligence, pp. 279-289, Springer Berlin Heidelberg.spa
dc.relation.referencesKang, K. C., Cohen, S. G., Hess, J. A., Novak, W. E. & Peterson, A. S. (1990). Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, Carnegie Mellon Software Engineering Institute.spa
dc.relation.referencesKästner, C., Apel, S., & Kuhlemann, M. (2008). Granularity in software product lines. In: 30th Int. Conf. on Software Engineering (ICSE), pp. 311-320.spa
dc.relation.referencesKästner, C., Apel, S., & Ostermann, K. The road to feature modularity? (2011). In Proc. of the 15th Int. Software Product Line Conference, vol. 2, pp. 5, ACM.spa
dc.relation.referencesKästner, C., & Apel, S. (2008, October). Integrating compositional and annotative approaches for product line engineering. In Proc. GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering, pp. 35-40.spa
dc.relation.referencesKim, S. D., Min, H. G., & Rhew, S. Y. (2005, May). Variability design and customization mechanisms for COTS components. In International Conference on Computational Science and Its Applications, pp. 57-66, Springer, Berlin, Heidelberg.spa
dc.relation.referencesKitchenham, B., & Charters, S. (2007). Guidelines for performing systematic literature reviews in software engineering.spa
dc.relation.referencesKoscielny, J., Holthusen, S., Schaefer, I., Schulze, S., Bettini, L., & Damiani, F. (2014, September). DeltaJ 1.5: delta-oriented programming for Java 1.5. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools, pp. 63-74, ACM.spa
dc.relation.referencesLago, P., Niemela, E., & Van Vliet, H. (2004, March). Tool support for traceable product evolution. In Eighth European Conference on Software Maintenance and Reengineering, 2004, pp. 261-269, IEEE.spa
dc.relation.referencesLaguna, M. A., & Crespo, Y. (2013). A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Science of Computer Programming, vol. 78(8), pp. 1010-1034.spa
dc.relation.referencesLahiani, N., & Bennouar, D. (2017). A DSL-based Approach to Product Derivation for Software Product Line. Acta Informatica Pragensia, vol. 5(2), pp. 138-143.spa
dc.relation.referencesLe, D. M., Lee, H., Kang, K. C., & Keun, L. (2013). Validating Consistency between a Feature Model and Its Implementation. In: ICSR, pp. 1-16.spa
dc.relation.referencesLecoutre, C. (2009). Constraint Networks, Wiley-IEEE Press.spa
dc.relation.referencesLi, Z., Avgeriou, P., & Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, vol. 101, pp. 193-220.spa
dc.relation.referencesLikert, R. (1932). A technique for the measurement of attitudes. Archives of psychology.spa
dc.relation.referencesLund, A. M. (2001). Measuring usability with the use questionnaire. Usability interface, vol. 8(2), pp. 3-6.spa
dc.relation.referencesMarimuthu, C., & Chandrasekaran, K. (2017, September). Systematic Studies in Software Product Lines: A Tertiary Study. In Proceedings of the 21st International Systems and Software Product Line Conference, pp. 143-152, ACM.spa
dc.relation.referencesMayer, P., & Bauer, A. (2015, April). An empirical analysis of the utilization of multiple programming languages in open source projects. In Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, pp. 4, ACM.spa
dc.relation.referencesMazo, R. (2014). Avantages et limites des modèles de caractéristiques dans la modélisation des exigences de variabilité. Journal "Génie Logiciel", no. 111, Paris-France, pp. 42-48.spa
dc.relation.referencesMazo, R., Martínez, J. C., López, J. I. (2018). Proceso de configuración como un proceso de ingeniería de requisitos. In Guía para la adopción industrial de líneas de productos de software, Editorial Eafit, ISBN 978-958-720-506-0, pp. 397-431, Medellín-Colombia.spa
dc.relation.referencesMazo, R., Muñoz-Fernández, J. C., Rincón, L., Salinesi, C. & Tamura, G. (2015). VariaMos: an extensible tool for engineering (dynamic) product lines. In: Proc. of the 19th Int. Conf. on Software Product Line, pp. 374-379, ACM.spa
dc.relation.referencesMens, T. (2004). A survey of software refactoring. IEEE Transactions on software engineering, vol. 2, pp. 126-139.spa
dc.relation.referencesMetzger, A., & Pohl, K. (2014, May). Software product line engineering and variability management: achievements and challenges. In Proceedings of the on Future of Software Engineering, pp. 70-84, ACM.spa
dc.relation.referencesMontalvillo, L., Díaz, O., & Azanza, M. (2017, September). Visualizing product customization efforts for spotting SPL reuse opportunities. In Proceedings of the 21st International Systems and Software Product Line Conference, pp. 73-80, ACM.spa
dc.relation.referencesNeto, P. A. D. M. S., do Carmo Machado, I., McGregor, J. D., De Almeida, E. S., & de Lemos Meira, S. R. (2011). A systematic mapping study of software product lines testing. Information and Software Technology, vol. 53(5), pp. 407-423.spa
dc.relation.referencesNielsen, J. (1993). Usability Engineering, Academic Press, Boston, MA.spa
dc.relation.referencesParr, T. (2013). The definitive ANTLR 4 reference. Pragmatic Bookshelf.spa
dc.relation.referencesPeffers, K., Tuunanen T., Chatterjee M.A, & Rothenberger S. A. (2007). Design science research methodology for information systems research. Journal of Management Information Systems, vol. 24(3), pp. 45-77.spa
dc.relation.referencesPereira, J. A., Constantino, K., & Figueiredo, E. (2015, January). A systematic literature review of software product line management tools. In International Conference on Software Reuse, pp. 73-89, Springer, Cham.spa
dc.relation.referencesPetersen, K., Feldt, R., Mujtaba, S., & Mattsson, M. (2008, June). Systematic mapping studies in software engineering. In Ease, vol. 8, pp. 68-77.spa
dc.relation.referencesPleuss, A., Hauptmann, B., Dhungana, D., & Botterweck, G. (2012, June). User interface engineering for software product lines: the dilemma between automation and usability. In Proceedings of the 4th ACM SIGCHI symposium on Engineering interactive computing systems, pp. 25-34, ACM.spa
dc.relation.referencesPrehofer, C. (1997). Feature-Oriented Programming: A Fresh Look at Objects. In: Proc. Europ. Conf. Object-Oriented Programming, pp. 419-443.spa
dc.relation.referencesRabiser, R., Grünbacher, P., & Lehofer, M. (2012, September). A qualitative study on user guidance capabilities in product configuration tools. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, pp. 110-119, ACM.spa
dc.relation.referencesRabiser, R., O’Leary, P., & Richardson, I. (2011). Key activities for product derivation in software product lines. Journal of Systems and Software, vol. 84(2), pp. 285-300.spa
dc.relation.referencesRabiser, R., Wolfinger, R., & Grunbacher, P. (2009, January). Three-level customization of software products using a product line approach. In 42nd Hawaii International Conference on System Sciences, pp. 1-10, IEEE.spa
dc.relation.referencesSalvaneschi, G., Ghezzi, C., & Pradella, M. (2012). Context-oriented programming: A software engineering perspective. J. of Systems and Software, vol. 85(8), pp. 1801-1817.spa
dc.relation.referencesSawant, A. A., Bari, P. H., & Chawan, P. M. (2012) Software testing techniques and strategies. International Journal of Engineering Research and Applications (IJERA), vol. 2(3), pp. 980-986.spa
dc.relation.referencesSawyer, P., Mazo, R., Diaz, D., Salinesi, C., & Hughes, D. (2012). Using constraint programming to manage configurations in self-adaptive systems. Computer, vol. 45(10), pp. 56-63.spa
dc.relation.referencesSchaefer, I., Bettini, L., Bono, V., Damiani, F., & Tanzarella, N. (2010). Delta-oriented programming of software product lines. In: SPLC. LNCS, vol. 6287, pp. 77-91.spa
dc.relation.referencesSiegmund, N., Rosenmüller, M., Kuhlemann, M., Kästner, C., & Saake, G. (2008, December). Measuring non-functional properties in software product line for product derivation. In 2008 15th Asia-Pacific Software Engineering Conference, pp. 187-194, IEEE.spa
dc.relation.referencesSoltani, S., Asadi, M., Gašević, D., Hatala, M., & Bagheri, E. (2012, September). Automated planning for feature model configuration based on functional and non-functional requirements. In Proceedings of the 16th International Software Product Line Conference, pp. 56-65, ACM.spa
dc.relation.referencesSouza, L. O., O’Leary, P., de Almeida, E. S., & de Lemos Meira, S. R. (2015). Product derivation in practice. Information and Software Technology, vol. 58, pp. 319-337.spa
dc.relation.referencesTeruel, M. A., Navarro, E., López-Jaquero, V., Montero, F., & González, P. (2014). A CSCW requirements engineering CASE tool: development and usability evaluation. Information and Software Technology, vol. 56(8), pp. 922-949.spa
dc.relation.referencesTizzei, L. P., Rubira, C. M., & Lee, J. (2012). An aspect-based feature model for architecting component product lines. In: SEAA, pp. 85-92, IEEE.spa
dc.relation.referencesThüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G., & Leich, T. (2014). FeatureIDE: An extensible framework for feature-oriented software development. Science of Computer Programming, vol. 79, pp. 70-85.spa
dc.relation.referencesVan Ommering, R., & Bosch, J. (2002, August). Widening the scope of software product lines—from variation to composition. In International Conference on Software Product Lines, pp. 328-347, Springer, Berlin, Heidelberg.spa
dc.relation.referencesYu, Y., do Prado Leite, J. C. S., Lapouchnian, A., & Mylopoulos, J. (2008, March). Configuring features with stakeholder goals. In Proceedings of the 2008 ACM symposium on Applied computing, pp. 645-649, ACM.spa
dc.relation.referencesWalkingshaw, E., & Erwig, M. (2012, September). A calculus for modeling and implementing variation. In ACM SIGPLAN Notices, vol. 48(3), pp. 132-140, ACM.spa
dc.relation.referencesWang, A. J. A., & Qian, K. (2005). Component-oriented programming. John Wiley & Sons.spa
dc.relation.referencesWileden, J. C., & Kaplan, A. (1999, May). Software interoperability: Principles and practice. In Proceedings of the 21st international conference on Software engineering, pp. 675-676, ACM.spa
dc.relation.referencesWohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. (2000). Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers.spa
dc.relation.referencesWohlin, C., Runeson, P., Neto, P. A. D. M. S., Engström, E., do Carmo Machado, I., & De Almeida, E. S. (2013). On the reliability of mapping studies in software engineering. Journal of Systems and Software, vol. 86(10), pp. 2594-2610.spa
dc.relation.referencesZheng, Y., & Cu, C. (2016, May). Towards implementing product line architecture. In IEEE/ACM 1st International Workshop on Bringing Architectural Design Thinking into Developers' Daily Activities, pp. 5-10, IEEE.spa
dc.rightsDerechos reservados - Universidad Nacional de Colombiaspa
dc.rights.accessrightsinfo:eu-repo/semantics/openAccessspa
dc.rights.licenseAtribución-NoComercial 4.0 Internacionalspa
dc.rights.spaAcceso abiertospa
dc.rights.urihttp://creativecommons.org/licenses/by-nc/4.0/spa
dc.subject.ddc000 - Ciencias de la computación, información y obras generales::003 - Sistemasspa
dc.subject.proposalProgramación orientada a fragmentosspa
dc.subject.proposalFragment-oriented programmingeng
dc.subject.proposalLíneas de productos de softwarespa
dc.subject.proposalSoftware product lineseng
dc.subject.proposalComponent developmenteng
dc.subject.proposalDesarrollo de componentesspa
dc.subject.proposalComponent compositioneng
dc.subject.proposalEnsamblaje de componentesspa
dc.titleA Generic method for assembling software product line componentsspa
dc.typeTrabajo de grado - Doctoradospa
dc.type.coarhttp://purl.org/coar/resource_type/c_db06spa
dc.type.coarversionhttp://purl.org/coar/version/c_970fb48d4fbd8a85spa
dc.type.contentTextspa
dc.type.driverinfo:eu-repo/semantics/doctoralThesisspa
dc.type.versioninfo:eu-repo/semantics/publishedVersionspa
oaire.accessrightshttp://purl.org/coar/access_right/c_abf2spa

Archivos

Bloque original

Mostrando 1 - 1 de 1
Cargando...
Miniatura
Nombre:
1036632996.2020.pdf
Tamaño:
4.82 MB
Formato:
Adobe Portable Document Format
Descripción:
Tesis de Doctorado en Ingeniería - Sistemas

Bloque de licencias

Mostrando 1 - 1 de 1
Cargando...
Miniatura
Nombre:
license.txt
Tamaño:
3.9 KB
Formato:
Item-specific license agreed upon to submission
Descripción: