Correa et al / Revista DYNA, 85(207), pp. 74-83, Octubre - Diciembre, 2018.
components as distinct (physically separated) code units.
Annotative approaches commonly use #ifdef and #endif
statements to surround the component code; but including the
code variants and relationship inside the domain components
code. FragOP introduces fragmentation points in the
components code, but uses separated fragments that contain
the code to be injected. Language independence refers to
the applicability of each approach to be used independently
from the language. Annotative approaches are line-based or
character-based, and therefore language-independent.
Compositional approaches are usually dependent on a
particular host language. As shown, FragOP could be used
for implementing domain components that contain multiple
7. Conclusions and future work
This paper presents FragOP, a framework used to design
and implement SPL domain components; which is a mix
between a compositional and an annotative approach.
FragOP takes advantage of the main benefits of each
approach and tries to dismiss the disadvantages of each one.
FragOP is based on the definition of (i) domain components,
(ii) fragmentations points and (iii) fragments. We enhanced
the VariaMos software tool to support the FragOP process
and to carry out a preliminary evaluation of the new
approach. In particular, we (i) designed and implemented
clothing stores SPL and (ii) used FragOP to derive five
products. The results showed that only three LOC were
manually modified in order to complete the product
derivation. We also showed that FragOP could be used to
develop domain components in languages such as Java, PHP,
HTML, SQL, CSS, and JSP.
In the short term we plan to (i) improve FragOP and its
VariaMos implementation to support complex binding
relationships; (ii) include the product customization process
inside the FragOP approach; (iii) increase the number of
programming languages supported by FragOP with the use
of ANTLR; and (iv) support other variability models such as
Orthogonal Variability Model (OVM). In addition, we think
that further studies about how to deal with dynamic
composition and dynamic binding are important research
directions that will make FragOP suitable to be used in the
context of dynamic product lines and domain-derived self-
From an experimentation point of view, we find valuable
and therefore we invite our colleagues and we ourselves
account (i) to develop rigorous experiments to validate the
FragOP benefits; (ii) to compare the different approaches to
design and implement the domain components [27,28]; and
(iii) to develop more software product lines (e.g., at industrial
level) with the FragOP approach in order to provide valuable
evidence about the benefits and limitations of FragOP.
Another research topic that is not addressed in this paper
is the downstream of economic benefits behind the use of
FragOP in industry. For example, one could raise the
question how much can software companies really benefit
with the use of FragOP in their projects? How much does it
cost to implement FragOP? These complex issues have yet to
be investigated. Finally, how to improve the fragment quality
and how to detect the errors before the product derivation
activity remains as an important research area.
 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:
 Botterweck, G., Lee, K. and Thiel, S., Automating product derivation
in software product line engineering, In: Software Engineering, pp.
 Azanza, M., Díaz, O. and Trujillo, S., Software Factories: Describing
the Assembly Process. In ICSP, pp. 126-137, 2010. DOI:
 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:
 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.
 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:
 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-
 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:
 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.