Software Components, Architectures and Reuse:
Software Product Line Engineering and Source Code Enhancements
J.UCS Special Issue
Marcelo Fantinato
(USP - University of São Paulo, Brazil
m.fantinato@usp.br)
Uira Kulesza
(UFRN - Federal University of Rio Grande do Norte, Brazil
uira@dimap.ufrn.br)
Flavio Oquendo
(IRISA - University of South Brittany, France
flavio.oquendo@irisa.fr)
The aim of this Special Issue is to report the state of research and
practice on the theme of Software Components, Architectures and Reuse
- Software Product Line Engineering and Source Code Enhancements. This
special issue is comprised of selected papers drawn from submissions
from an open international Call for Papers and extended peer-reviewed
versions of the best papers presented at the 6th Brazilian Symposium
on Software Components, Architectures and Reuse (SBCARS 2012), held in
Natal, RN, Brazil, September 24-25, 2012
(http://www.cbsoft.dimap.ufrn.br/sbcars_apresentacao.php?lang=en) and
at the 7th Brazilian Symposium on Software Components, Architectures
and Reuse (SBCARS 2013), held in Braslia, DF, Brazil, September 30 and
October 1, 2013 (http://cbsoft2013.unb.br/en/sbcars-en).
The call for this Special Issue received 27 submissions. The submissions originated from co-authors of 13 countries (Austria,
Brazil, Chile, China, France, Germany, Iran, Japan, Portugal, Republic
of Korea, Spain, Tunisia, and USA).
Each submission was reviewed by at least three reviewers. The
reviewing process was organized in two phases. First submissions were
selected to provide revised versions based on the reviewers'
recommendations or definitively rejected. The revised versions were
then checked by the reviewers, and a second selection carried out out
of which nine high-quality papers were finally accepted to be included
in the special issue. In total, 75 reviewers participated in the
process.
The special issue is composed by nine accepted papers and
presents high-quality research carried out by co-authors from Austria,
Brazil, France, Portugal, Spain and USA.
Contents of this Issue
The first paper, entitled "A Toolset for Checking SPL Refinements"
(F. Ferreira, R. Gheyi, P. Borba, G. Soares) proposes and implements
four tools for software product line (SPL) refinements that allow
checking if refinement transformations preserve the behavior of the
original SPL products. The tools are founded on a formal notion of SPL
refinement, which guarantees that the observable behavior of products
in the original SPL is preserved by corresponding products in the
evolved SPL. To evaluate the proposed tools, the authors analyze 35
evolution scenarios of an SPL with 32 KLOC and compare the approaches
with respect soundness, performance, and code coverage.
The second paper, entitled "Comparing Two Black-box Testing Strategies
for Software Product Lines" (P. Accioly, P. Borba, R. Bonifácio)
presents two controlled experiments conducted to assessing two
different approaches for software product lines testing from the
perspective of productivity and quality of the testing execution
activities. The two evaluated testing approaches are: the Generic
Technique (GT) that uses general test suites specifications without
variability representation; and the Specific Technique (ST) that
adopts product customized test suites. The results of both controlled
experiments show that ST can improve the test execution process
productivity by reducing test execution time and invalid change
request rates.
The third paper, entitled "Consistency Checking in Early Software
Product Line Specifications - The VCC Approach" (M. Alférez,
R. E. Lopez-Herrejón, A. Moreira, V. Amaral, A. Egyed) addresses
the challenge of checking, in a Software Product Line (SPL), that
different models used in early SPL specification do not contain
inconsistent information that may be propagated and generate
inconsistent products that do not conform to its requirements. The
approach proposed by these authors, called Variability Consistency
Checking (VCC), relates information inferred from the relationships
between features and from base models related to those
features. Validating if all products in an SPL satisfy user-defined
consistency constraints is based on searching for a satisfying
assignment of each of the formulas generated by VCC. Results of case
studies to validate VCC are presented in their paper.
The fourth paper, entitled "Defining and Validating a Feature-Driven
Requirements Engineering Approach" (R. P. Oliveira, D. Blanes,
J. Gonzalez-Huerta, E. Insfran, S. Abraho, S. Cohen, E. S. Almeida)
describes the Feature-Driven Requirements Engineering (FeDRE)
approach, which provides support to the requirements engineering of
software product lines. The approach focuses mainly on the
specification of requirements at early stages of domain engineering,
taking as input the scoping artifacts. The authors also present a case
study involving the development of a mobile application for emergency
notifications using the FeDRE approach. The study results show that
the analysts perceived the approach as easy to use and useful for
specifying the functional requirements for this particular SPL.
The fifth paper, entitled "Flexible Feature Binding with AspectJ-based
Idioms" (R. Andrade, H. Reblo, M. Ribeiro, P. Borba) proposes
AspectJ-based idioms to implement flexible feature binding, which
address existing design deficiencies of recent research work. To
evaluate their idioms, the authors present an empirical study that
applies the proposed idioms to the extracted code of 16 features of
five different software product lines.
The study then compares those
idioms through of: (i) a quantitative analysis using cloning,
scattering, and tangling metrics; and (ii) a qualitative analysis
discussing the code reusability, changeability, and instrumentation
overhead. The results of the study show that one of the proposed
idioms brings advantages with respect to both quantitative and
qualitative assessments.
The sixth paper, entitled "Verification of Software Product Line
Artefacts: A Checklist to Support Feature Model Inspections"
(R. M. Mello, E. N. Teixeira, M. Schots, C. M. L. Werner,
G. H. Travassos) presents the results of a quasi-systematic review of
the technical literature that point to a lack of techniques to support
the inspection of Software Product Line artifacts, including the
feature models that are largely used in domain modeling. As a result,
these authors developed a checklist-based inspection technique, called
FMCheck, to support the detection of defects on feature
models. FMCheck is configurable and applicable to different feature
model notations. In their paper, authors present results of an
empirical evaluation, comparing FMCheck to ad-hoc techniques.
The seventh paper, entitled "A Catalogue of Refactorings to Remove
Incomplete Annotations" (F. Medeiros, M. Ribeiro, R. Gheyi,
B. Fonseca) addresses the needs to efficiently remove incomplete
annotations used by developers. In this paper, the authors propose a
catalogue of refactorings that converts incomplete annotations into
complete ones without cloning code and hence without increasing Lines
of Code (LOC), differently from other existing solutions. They
implemented an Eclipse plug-in to support the proposed approach. To
evaluate the proposed catalogue, the authors performed a study to
analyze questions related to code cloning, LOC, and number of
directives. And, to answer their research questions, they analyze
releases of 12 program families of different domains ranging from 4.9
thousand to 1.5 million LOC. The results of this study are presented
in their paper.
The eighth paper, entitled "Thesaurus-Based Tag Clouds for Test-Driven
Code Search" (O. A. L. Lemos, A. C. Paula, G. Konishi, S. Bajracharya,
J. Ossher, C. Lopes) proposes the adoption of thesaurus-based tag
clouds to improve test-driven code search, which consists on the usage
of code search and reuse that makes use of more semantic information
available on test cases. The thesaurus-based tag clouds allow showing
developers terms that are more frequently used in the code repository
to improve their search. Terms are generated by looking up words
similar to the initial keywords on a thesaurus. Tag clouds are then
formed based on the frequency in which these terms appear in the code
base. The authors have implemented the approach as an extension to
CodeGenie - a Java-based test-driven code search tool. The paper also
presents the approach evaluation conducted through an applicability
study and a controlled experiment, which bring evidences of the
approach's benefits.
The ninth paper, entitled "What Should I Code Now?" (L. L. N. Silva
Jr, A. Plastino, L. G. P. Murta) addresses the relevant knowledge that
can be extracted from the huge amount of data related to the
documentation and to the source code during software development. In
their paper, they present a new approach for code completion based on
sequential patterns mined from previous developed source code. Using
data mining as tool, their approach can consider what is being coded
to provide suggestions of new code sequences based on the mined
patterns. The proposed approach was implemented as a plug-in for the
Eclipse IDE, named Vertical Code Completion, and applied over widely
known open source systems. Their paper presents the results of these
studies.
Reviewers for this Issue
Adenilso Simao, Brazil
Alberto Costa Neto, Brazil
Alexandre Alvaro, Brazil
Alexandre Correa, Brazil
Aline Vasconcelos, Brazil
Andre Endo, Brazil
Antonio Francisco Prado, Brazil
Antony Tang, Australia
Camila Nunes, Brazil
Carlos Cuesta, Spain
Carlos da Silva, Brazil
Carlos Ramón Lopez Paz, Cuba
Cecilia Rubira, Brazil
Claudia Werner, Brazil
Cláudio Sant'Anna, Brazil
Daniel Lucrédio, Brazil
Danny Weyns, Belgium
Darko Huljenic, Croatia
Edson Oliveira Junior, Brazil
Eduardo Almeida, Brazil
Elder Cirilo, Brazil
Elisa Yumi Nakagawa, Brazil
Ellen Francine Barbosa, Brazil
Fernando Castor, Brazil
Fernando Figueira Filho, Brazil
Flavia Delicato, Brazil
Francisco Dantas, Brazil
Frederico Durao, Brazil
Frederico Lopes, Brazil
Genaina Rodrigues, Brazil
Gibeon Soares de Aquino Junior, Brazil
Gledson Elias, Brazil
Henry Muccini, Italy
Ingrid Nunes, Brazil
Isela Macía, Brazil
Ivica Crnkovic, Sweden
|
|
|
Jobson Massollar, Brazil
Johannes Koskinen, Finland
John Grundy, Australia
Jose Miguel Horcas, Spain
José Pérez-Alcazar, Brazil
Kiev Gama, Brazil
Luciano Digiampietri, Brazil
Márcio Barros, Brazil
Marco Antonio Pereira Araujo, Brazil
Marco Tulio Valente, Brazil
Martin Becker, Germany
Maurizio Morisio, Italy
Mehdi Mirakhorli, USA
Nelio Cacho, Brazil
Nelson Rosa, Brazil
Oliver Hummel, Germany
Padraig O'Leary, Ireland
Paris Avgeriou, The Netherlands
Patricia Machado, Brazil
Paulo Pires, Brazil
Raffaela Mirandola, Italy
Regina Braga, Brazil
Rick Rabiser, Austria
Roberta Coelho, Brazil
Roberto Bittencourt, Brazil
Roberto dos Santos Rocha, Brazil
Rodrigo Bonifacio, Brazil
Rogerio de Lemos, Great Britain
Rosana Braga, Brazil
Sarajane Peres, Brazil
Tiago da Silva, Brazil
Uwe Zdun, Austria
Vander Alves, Brazil
Vanilson Buregio, Brazil
Vinicius Garcia, Brazil
|
Marcelo Fantinato
Uirá Kulesza
Flavio Oquendo
Brazil/France, April 2014
|