Show simple item record

dc.rights.licenseAtribución-NoComercial 4.0 Internacional
dc.contributor.advisorMazo, Raúl
dc.contributor.advisorGiraldo Gómez, Gloria Lucia
dc.contributor.authorCorrea Botero, Daniel
dc.identifier.citationCorrea, D (2020). A Generic Method for Assembling Software Product Line Components. Doctoral thesis, Universidad Nacional de Colombia.
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.
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.
dc.rightsDerechos reservados - Universidad Nacional de Colombia
dc.subject.ddc000 - Ciencias de la computación, información y obras generales::003 - Sistemas
dc.titleA Generic method for assembling software product line components
dc.rights.spaAcceso abierto
dc.contributor.corporatenameUniversidad Nacional de Colombia - Sede Medellín
dc.contributor.researchgroupIngeniería de Software
dc.publisher.branchUniversidad Nacional de Colombia - Sede Medellín
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.
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.
dc.relation.referencesApel, S., Batory, D., Kästner, C., & Saake, G. (2013). Feature-oriented software product lines. Springer-Verlag Berlin An.
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.
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.
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.
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.
dc.relation.referencesBeuche, D., & Dalgarno, M. (2007). Software product line engineering with feature models. Overload Journal, vol. 78, pp. 5-8.
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.
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.
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.
dc.relation.referencesClements, P., & Northrop, L. (2001). Software product lines: practices and patterns. Addison-Wesley.
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.
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.
dc.relation.referencesCorrea, D. (2018). FragOP-Thesis GitHub repository, Available at:
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.
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.
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.
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.
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.
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.
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.
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.
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.
dc.relation.referencesHeaven, W., & Finkelstein, A. (2004). UML profile to support requirements engineering with KAOS. IEE Proceedings-Software, vol. 151(1), pp. 10-27.
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.
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.
dc.relation.referencesIEEE. (1990). Standard Glossary of Software Engineering Terminology. IEEE Standard 610.12-1990.
dc.relation.referencesISO 9241-11. (1998). Ergonomic requirements for office work with visual display terminals (VDTs) - Part 11: Guidance on usability.
dc.relation.referencesISO/IEC 25062. (2006). Software engineering—Software product Quality Requirements and Evaluation (SQuaRE)—Common Industry Format (CIF) for usability test reports.
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.
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.
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.
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.
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.
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.
dc.relation.referencesKitchenham, B., & Charters, S. (2007). Guidelines for performing systematic literature reviews in software engineering.
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.
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.
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.
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.
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.
dc.relation.referencesLecoutre, C. (2009). Constraint Networks, Wiley-IEEE Press.
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.
dc.relation.referencesLikert, R. (1932). A technique for the measurement of attitudes. Archives of psychology.
dc.relation.referencesLund, A. M. (2001). Measuring usability with the use questionnaire. Usability interface, vol. 8(2), pp. 3-6.
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.
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.
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.
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.
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.
dc.relation.referencesMens, T. (2004). A survey of software refactoring. IEEE Transactions on software engineering, vol. 2, pp. 126-139.
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.
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.
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.
dc.relation.referencesNielsen, J. (1993). Usability Engineering, Academic Press, Boston, MA.
dc.relation.referencesParr, T. (2013). The definitive ANTLR 4 reference. Pragmatic Bookshelf.
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.
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.
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.
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.
dc.relation.referencesPrehofer, C. (1997). Feature-Oriented Programming: A Fresh Look at Objects. In: Proc. Europ. Conf. Object-Oriented Programming, pp. 419-443.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
dc.relation.referencesWang, A. J. A., & Qian, K. (2005). Component-oriented programming. John Wiley & Sons.
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.
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.
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.
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.
dc.subject.proposalProgramación orientada a fragmentos
dc.subject.proposalFragment-oriented programming
dc.subject.proposalLíneas de productos de software
dc.subject.proposalSoftware product lines
dc.subject.proposalComponent development
dc.subject.proposalDesarrollo de componentes
dc.subject.proposalComponent composition
dc.subject.proposalEnsamblaje de componentes

Files in this item


This item appears in the following Collection(s)

Show simple item record

Atribución-NoComercial 4.0 InternacionalThis work is licensed under a Creative Commons Reconocimiento-NoComercial 4.0.This document has been deposited by the author (s) under the following certificate of deposit