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

Resumo


Neste artigo, apresenta-se um algoritmo para coloração automática de código responsável por implementar variabilidades em linhas de produtos. O algoritmo proposto é baseado em uma ferramenta para implementação de variabilidades chamada CIDE (Colored IDE), a qual permite colorir manualmente trechos de código associados a uma determinada variabilidade. Além disso, essa ferramenta permite gerar projeções de um sistema nas quais o código anotado com uma determinada cor não é mais exibido. O algoritmo proposto foi capaz de extrair automaticamente quatro variabilidades do framework de persistência Prevayler.

Referências

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.
Publicado
09/09/2009
OLIVEIRA, Virgílio Borges de; VALENTE, Marco Túlio. Coloração Automática de Variabilidades em Linhas de Produtos de Software. In: SIMPÓSIO BRASILEIRO DE COMPONENTES, ARQUITETURAS E REUTILIZAÇÃO DE SOFTWARE (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.