Publicado

2018-10-01

Fragment-oriented programming: a framework to design and implement software product line domain components

Programación orientada a fragmentos: un marco para diseñar e implementar componentes de dominio de líneas de productos de software

DOI:

https://doi.org/10.15446/dyna.v85n207.71908

Palabras clave:

software product lines, fragment-oriented programming, component development, component composition (en)
líneas de productos de software, programación orientada a fragmentos, desarrollo de componentes, ensamblaje de componentes (es)

Autores/as

Software product lines 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 have proposed different approaches to design and implement the components of a product line. However, the construction and integration of these components continue to be a complex and time-consuming process. This paper introduces Fragment-oriented programming (FragOP), a framework to design and implement software product line domain components, and derive software products. FragOP is based on: (i) domain components, (ii) fragmentations points and (iii)fragments. FragOP was implemented in the VariaMos tool and using it we created a clothing stores software product line. We derivedfive different products, integrating automatically thousands of lines of code. On average, only three lines of code were manually modified;which provided preliminary evidence that using FragOP reduces manual intervention when integrating domain components.
Las líneas de productos de software promueven la industrialización del desarrollo de software mediante la definición y ensamblaje de componentes de software. Actualmente existen diferentes propuestas para implementar estos componentes. Sin embargo, su construcción y ensamblaje continúa siendo un proceso complejo y que requiere mucho tiempo. Este artículo introduce la programación orientada a fragmentos (FragOP), la cual define un marco para implementar y ensamblar componentes de software. FragOP se basa en: (i) componentes de dominio, (ii) puntos de fragmentación y (iii) fragmentos. Utilizamos VariaMos y FragOP para crear una línea de productos de software, la cual contiene 20 componentes y miles de líneas de código. Se derivaron 5 productos y en promedio solo 3 líneas de código se modificaron manualmente para completar cada derivación; lo cual provee una evidencia preliminar de que la utilización de FragOP reduce la intervención manual en el proceso de integración de componentes de dominio.

Referencias

Frakes, W.B. and Kang, K., Software reuse research: Status and future. IEEE transactions on Software Engineering, 31(7), pp. 529-536, 2005. DOI: 10.1109/TSE.2005.85

Laguna, M.A. and Marqués, J.M., UML support for designing software product lines: The package merge mechanism. J. of Universal Computer Science, 16(17), pp. 2313-2332, 2010. DOI: 10.3217/jucs-016-17-2313

Botterweck, G., Lee, K. and Thiel, S., Automating product derivation in software product line engineering, In: Software Engineering, pp. 177-182, 2009.

Azanza, M., Díaz, O. and Trujillo, S., Software Factories: Describing the Assembly Process. In ICSP, pp. 126-137, 2010. DOI: 10.1007/978-3-642-14347-2_12

Apel, S., Batory, D., Kästner, C. and Saake, G., Feature-oriented software product lines: concepts and implementation. Springer Science & Business Media, 2013. DOI: 10.1007/978-3-642-37521-7

Prehofer, C., Feature-oriented programming: A fresh look at objects, Proceedings of the Europ. Conf. Object-Oriented Programming, pp. 419-443, 1997. DOI: 10.1007/BFb0053389

Schaefer, I., Bettini, L., Bono, V., Damiani, F. and Tanzarella, N., Delta-oriented programming of software product lines, In: SPLC. LNCS, 6287, pp. 77-91, 2010. DOI: 10.1007/978-3-642-15579-6_6

Salvaneschi, G., Ghezzi, C. and Pradella, M., Context-oriented programming: A software engineering perspective. J. of Systems and Software, 85(8), pp. 1801-1817, 2012. DOI: 10.1016/j.jss.2012.03.024

Tizzei, L.P., Rubira, C.M. and Lee, J., An aspect-based feature model for architecting component product lines, In: SEAA, pp. 85-92, 2012. DOI: 10.1109/SEAA.2012.64

Alzahmi, S., Matar, M.A. and Mizouni, R., A practical tool for automating service oriented software product lines derivation, Proceedings of the 8th Int. Symposium on Service Oriented System Engineering (SOSE), pp. 90-97, 2014. DOI: 10.1109/SOSE.2014.16

Kästner, C., Apel, S. and Kuhlemann, M., Granularity in software product lines, Procedings of the 30th Int. Conf. on Software Engineering (ICSE), pp. 311-320, 2008. DOI: 10.1145/1368088.1368131

Aleixo, F.A., Kulesza, U. and Junior, E.A.O., Modeling variabilities from software process lines with compositional and annotative techniques: A quantitative study. Proceedings of the Int. Conf. on Product Focused Software Process Improvement, pp. 153-168, Springer, Berlin, 2013. DOI: 10.1007/978-3-642-39259-7_14

Jordan, H.R., Russell, S.E., O'Hare, G.M. and Collier, R.W., Reuse by inheritance in agent programming languages. In: Intelligent Distributed Computing V, Studies in Computational Intelligence, pp. 279-289, Springer, Berlin, Heidelberg, 2011. DOI: 10.1007/978-3-642-24013-3_30

Le, D.M., Lee, H., Kang, K.C. and Keun, L., Validating consistency between a feature model and its implementation. In: ICSR, pp. 1-16, 2013. DOI: 10.1007/978-3-642-38977-1_1

Kästner, C., Apel, S. and Ostermann, K., The road to feature modularity?, Proceedings of the 15th Int. Software Product Line Conference, 2, pp. 5, 2011. DOI: 10.1145/2019136.2019142

FragOP, GitHub [Online]. [date of reference: April 26th of 2018]. Available at: https://github.com/danielgara/FragOP

VariaMos - Families of systems & SAS modeling tool [Online]. [date of reference: September 9th of 2018]. Available at: https://variamos.com/home/

Mazo, R., Muñoz-Fernández, J.C., Rincón, L., Salinesi, C. and Tamura, G., VariaMos: an extensible tool for engineering (dynamic) product lines, Proceedings of the 19th Int. Conf. on Software Product Line, pp. 374-379, 2015. DOI: 10.1145/2791060.2791103

Kang, K.C., Cohen, S.G., Hess, J.A., Novak,W.E. and Peterson, A.S., Feature-oriented domain analysis (FODA) feasibility study. technical report, Carnegie Mellon Software Engineering Institute, 1990.

Lecoutre, C., Constraint Networks. Wiley-IEEE Press, 2009. DOI: 10.1002/9780470611821

Parr, T., The definitive ANTLR 4 reference. Pragmatic Bookshelf, 2013.

Oneproduct.jsp file P5 – FragOP, GitHub [Online]. [date of reference: September 13th of 2018]. Available at: https://github.com/danielgara/FragOP/blob/master/cstoresp5/integrated/WebContent/views/oneproduct.jsp

Oneproduct.jsp file P1 – FragOP, GitHub [Online]. [date of reference: September 13th of 2018]. Available at: https://github.com/danielgara/FragOP/blob/master/cstoresp1/integrated/WebContent/views/oneproduct.jsp

Mezini, M. and Ostermann, K., Variability management with feature-oriented programming and aspects. In: ACM SIGSOFT Software Engineering Notes, 29(6), pp. 127-136, 2004. DOI: 10.1145/1041685.1029915

Kästner, C. and Apel, S., Integrating compositional and annotative approaches for product line engineering, Proceedings of the GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering, pp. 35-40, 2008.

Apel, S. and Hutchins, D., A calculus for uniform feature composition. ACM Transactions on Programming Languages and Systems (TOPLAS), 32(5), pp. 19, 2010. DOI: 10.1145/1745312.1745316

Rincón, L. and Mazo, R., Análisis y diseño de componentes reutilizables de dominio. In: Guía para la adopción industrial de líneas de productos de software, pp. 259-306, Editorial Eafit, Medellín, Colombia, 2018. ISBN 978-958-720-506-0

Correa, D. and Mazo, R., Implementación de componentes reutilizables de dominio. In: Guía para la adopción industrial de líneas de productos de software, pp. 307-368, Editorial Eafit, Medellín, Colombia, 2018. ISBN 978-958-720-506-0

Cómo citar

IEEE

[1]
D. Correa, R. Mazo, y G. L. Giraldo Goméz, «Fragment-oriented programming: a framework to design and implement software product line domain components», DYNA, vol. 85, n.º 207, pp. 74–83, oct. 2018.

ACM

[1]
Correa, D., Mazo, R. y Giraldo Goméz, G.L. 2018. Fragment-oriented programming: a framework to design and implement software product line domain components. DYNA. 85, 207 (oct. 2018), 74–83. DOI:https://doi.org/10.15446/dyna.v85n207.71908.

ACS

(1)
Correa, D.; Mazo, R.; Giraldo Goméz, G. L. Fragment-oriented programming: a framework to design and implement software product line domain components. DYNA 2018, 85, 74-83.

APA

Correa, D., Mazo, R. & Giraldo Goméz, G. L. (2018). Fragment-oriented programming: a framework to design and implement software product line domain components. DYNA, 85(207), 74–83. https://doi.org/10.15446/dyna.v85n207.71908

ABNT

CORREA, D.; MAZO, R.; GIRALDO GOMÉZ, G. L. Fragment-oriented programming: a framework to design and implement software product line domain components. DYNA, [S. l.], v. 85, n. 207, p. 74–83, 2018. DOI: 10.15446/dyna.v85n207.71908. Disponível em: https://revistas.unal.edu.co/index.php/dyna/article/view/71908. Acesso em: 7 mar. 2026.

Chicago

Correa, Daniel, Raúl Mazo, y Gloria Lucia Giraldo Goméz. 2018. «Fragment-oriented programming: a framework to design and implement software product line domain components». DYNA 85 (207):74-83. https://doi.org/10.15446/dyna.v85n207.71908.

Harvard

Correa, D., Mazo, R. y Giraldo Goméz, G. L. (2018) «Fragment-oriented programming: a framework to design and implement software product line domain components», DYNA, 85(207), pp. 74–83. doi: 10.15446/dyna.v85n207.71908.

MLA

Correa, D., R. Mazo, y G. L. Giraldo Goméz. «Fragment-oriented programming: a framework to design and implement software product line domain components». DYNA, vol. 85, n.º 207, octubre de 2018, pp. 74-83, doi:10.15446/dyna.v85n207.71908.

Turabian

Correa, Daniel, Raúl Mazo, y Gloria Lucia Giraldo Goméz. «Fragment-oriented programming: a framework to design and implement software product line domain components». DYNA 85, no. 207 (octubre 1, 2018): 74–83. Accedido marzo 7, 2026. https://revistas.unal.edu.co/index.php/dyna/article/view/71908.

Vancouver

1.
Correa D, Mazo R, Giraldo Goméz GL. Fragment-oriented programming: a framework to design and implement software product line domain components. DYNA [Internet]. 1 de octubre de 2018 [citado 7 de marzo de 2026];85(207):74-83. Disponible en: https://revistas.unal.edu.co/index.php/dyna/article/view/71908

Descargar cita

CrossRef Cited-by

CrossRef citations1

1. Daniel Correa, Raúl Mazo, Gloria Lucia Giraldo. (2019). Reuse in the Big Data Era. Lecture Notes in Computer Science. 11602, p.17. https://doi.org/10.1007/978-3-030-22888-0_2.

Dimensions

PlumX

Visitas a la página del resumen del artículo

599

Descargas

Los datos de descargas todavía no están disponibles.