about the entire product line, such as: its products,
features of these products, and relationships between
the features. This model contributes to keep
information about the SPL that will aid the
developer to manage the fork product variants. The
authors also demonstrate their approach for the
management and evolution of forked product
variants using a real example. However, the authors
have not developed a concrete implementation of
PL-CDM that automates the forking variants
management. In contrast, our work proposes a delta-
oriented approach that helps the merging of SPLs
independently developed. In this paper, we have also
presented the tool support that automates our
approach.
(Nunes et al., 2010) propose the analysis of
historical evolution of family members in order to
classify the implementation elements according to
their variability nature. The work proposes history-
sensitive heuristics for feature recovering in the code
of degenerated program families. The historical
evolution analysis considers: (i) the history of each
member of the program family, called horizontal
history; and (ii) all the family members, called
vertical history. Through the usage of such
heuristics, the authors verify how features change
considering the vertical and horizontal perspectives
and classify them. Although the authors deal with
the problem of SPL evolution by identifying how
each feature has evolved, their research work has not
proposed concrete solutions to repair the feature
degeneration in SPLs.
(Ferreira et al., 2012) propose the
implementation and evaluation of four testing based
approaches and their implementations for checking
SPL refinement. Their work considers that a SPL is
safely evolved, when it addresses at least the same
products of the previous version. The first testing
approach – called All Product Pairs – checks all
products generated by the SPL after the evolution
against all products before evolution. It verifies if
the SPL continues generating at least all products
generated before evolution. However, how this
strategy is very onerous, they have proposed and
assessed three other approaches – called All
Products, Impacted Products and Impacted Classes
– which are optimization of the first one that have
lower precision, but it improves the execution
performance. Their approach only deals with the
evolution of the same SPL. In our work, we focus on
the reconciliation of SPLs independently evolved
after they are forked from the same initial version.
The testing approaches proposed by (Ferreira, 2012)
can be used to verify if the final reconciled target
SPL is a safe evolution of the target SPL. This is an
interesting research work that we are planning to
consider in the future.
6 CONCLUSIONS AND FUTURE
WORK
In this paper, we presented a delta-oriented approach
that provides support for the reconciliation of SPLs
independently evolved by different teams. Our
approach allows: (i) the automated detection of
feature conflicts in terms of code assets of the SPLs
evolved independently; and (ii) the resolution and
merge of such feature evolution conflicts. The
preliminary tests and results of our current
implementation show the potential of our approach
to deal with such the SPL reconciliation challenge
during the evolution of SPLs.
We are currently refining its implementation to
apply it to a case study of large-scale reconciliation
scenarios using the enterprise information SPLs
from SINFO/UFRN, independently evolved by
several federal Brazilian institutions. In particular,
new extensions are being developed to support: (i)
the automatic and semi-automatic merge of XML
template documents, such as Java Server Faces
(JSF) pages – that are usually used to implement
web pages; (ii) to automatically identify which
manual or automated testing cases needs to be re-
executed to verify the behavior preservation of the
reconciled features.
ACKNOWLEDGEMENTS
This work was partially supported by the National
Institute of Science and Technology for Software
Engineering (INES) - CNPq under grants
573964/2008-4 and CNPQ 560256/2010-8.
REFERENCES
Cirilo, E., Kulesza, U., Lucena, C. J. P., 2008. A Product
Derivation Tool Based on Model-Driven Techniques
and Annotations. Journal of Universal Computer
Science, vol. 14, no. 8.
Cirilo, E., Nunes, I., Kulesza, U., Lucena, C. J. P., 2012.
Automating the Product Derivation Process of Multi-
Agent Systems Product Lines. Journal of Systems and
Software (JSS), pp 258-276, vol. 85, number 2,
February 2012 .
ICEIS2013-15thInternationalConferenceonEnterpriseInformationSystems
262