Coloração Automática de Variabilidades em Linhas de Produtos de Software

  • Virgílio Borges de Oliveira PUC Minas
  • Marco Túlio Valente PUC Minas

Abstract


This paper details an algorithm that automatically annotates blocks of code associated to variabilities in software product lines. The proposed algorithm is based on a tool to implement variabilities called CIDE (Colored IDE). CIDE enhances standard IDE with the ability to associate colors to lines of code in charge of implementing variabilities. Furthermore, the tool supports the generation of projections of a system in which the code annotated with a given color is not showed. Using the proposed algorithm, we have automatically extracted four variabilities from the Prevayler persistence framework.

References

Bram Adams, Wolfgang De Meuter, Herman Tromp, and Ahmed E. Hassan. Can we refactor conditional compilation into aspects? In 8th ACM International Conference on Aspect-Oriented Software Development (AOSD), pages 243-254, 2009.

Don Batory. Feature-oriented programming and the AHEAD tool suite. In 26th International Conference on Software Engineering (ICSE), pages 702-703, 2004.

David Binkley, Mariano Ceccato, Mark Harman, Filippo Ricca, and Paolo Tonella. Tool-supported refactoring of existing object-oriented code into aspects. IEEE Transactions Software Engineering, 32(9):698-717, 2006.

Paul Clements and Linda M. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.

Irum Godil and Hans-Arno Jacobsen. Horizontal decomposition of prevayler. In Conference of the Centre for Advanced Studies on Collaborative Research (CASCON), pages 83-100, 2005.

Christian Kästner, Sven Apel, and Martin Kuhlemann. Granularity in software product lines. In 30th International Conference on Software Engineering (ICSE), pages 311-320, 2008.

Christian Kästner, Salvador Trujillo, and Sven Apel. Visualizing software product line variabilities in source code. In 2nd International Workshop on Visualisation in Software Product Line Engineering (ViSPLE), pages 303-313, 2008.

Brian W. Kernighan and Dennis M. Ritchie. The C programming language. Prentice Hall, 1988.

Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In 11th European Conference on Object-Oriented Programming (ECOOP), volume 1241 of LNCS, pages 220-242. Springer Verlag, 1997.

Charles W. Krueger. Easing the transition to software mass customization. In 4th International Workshop on Software Product-Family Engineering, volume 2290 of Lecture Notes in Computer Science, pages 282-293. Springer, 2001.

Christian Kästner, Sven Apel, and Don Batory. A case study implementing features using AspectJ. In 11th International Software Product Line Conference (SPLC), pages 223-232, 2007.

Jia Liu, Don Batory, and Christian Lengauer. Feature oriented refactoring of legacy applications. In 28th International Conference on Software Engineering (ICSE), pages 112-121, 2006.

Roberto Lopez-Herrejon, Don Batory, and William R. Cook. Evaluating support for features in advanced modularization technologies. In 19th European Conference on Object-Oriented Programming (ECOOP), volume 3586 of LNCS, pages 169-194. Springer-Verlag, 2005.

Gail C. Murphy, Albert Lai, Robert J. Walker, and Martin P. Robillard. Separating features in source code: an exploratory study. In 23rd International Conference on Software Engineering (ICSE), pages 275-284, 2001.

Marcelo Nassau and Marco Tulio Valente. Object-oriented transformations for extracting aspects. Information and Software Technology, 51(1):138-149, 2009.

David Lorge Parnas. On the design and development of program families. IEEE Transactions on Software Engineering, 2(1):1-9, 1976.

Henry Spencer. ifdef considered harmful, or portability experience with C News. In USENIX Conference, pages 185-197, 1992.

Vijayan Sugumaran, Sooyong Park, and Kyo C. Kang. Introduction to the special issue on software product line engineering. Communications ACM, 49(12):28-32, 2006.

Jilles van Gurp, Jan Bosch, and Mikael Svahnberg. On the notion of variability in software product lines. In 2nd IEEE/IFIP Working Conference on Software Architecture (WICSA), pages 45-54, 2001.
Published
2009-09-09
OLIVEIRA, Virgílio Borges de; VALENTE, Marco Túlio. Coloração Automática de Variabilidades em Linhas de Produtos de Software. In: BRAZILIAN SYMPOSIUM ON SOFTWARE COMPONENTS, ARCHITECTURES, AND REUSE (SBCARS), 3. , 2009, Natal/RN. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2009 . p. 67-80. DOI: https://doi.org/10.5753/sbcars.2009.24102.