On the Use of Software Visualization to Analyze Library Dependency Evolution: an Exploratory Study
Resumo
Software evolution produces a large amount of data. Software engineers may benefit from these data while carrying out daily activities. The challenge is to understand all the data and recovery valuable information. One of these activities is to maintain library dependencies of a project. This is a complex task, since it is usual a system and its library dependencies evolving separately. It is necessary to be careful when updating the libraries of a project. The aintainers need to know the history about a system ́s past upgrade decisions and which dependencies were adopted at the same time. Software Evolution Visualization (SEV) can be a promising approach to this end. In this paper, we present an exploratory study that uses a SEV tool, called EVOWAVE, to analyze Library Dependency Evolution. EVOWAVE is able to visualize different types of data generated in software evolution using both overview-based and detail based approaches. In the study, we performed an analysis of FindBug’s library dependency history. The results highlighted the benefits of the SEV tool on analyzing a large amount of data that encompasses more than 10 years.
Palavras-chave:
Library, Dependency, Evolution
Referências
Basili, V. R. and Rombach, H. D. (1988). The tame project: Towards improvement-oriented software environments. IEEE Trans. Softw. Eng., 14(6):758–773.
Bergel, A., Bañados, F., Robbes, R., and Binder, W. (2011). Execution profiling blueprints. Software: Practice and Experience, pages n/a–n/a.
Carneiro, G., Magnavita, R., and Mendonça, M. (2008). Combining software visualization paradigms to support software comprehension activities. In Proceedings of the 4th ACM Symposium on Software Visualization, SoftVis ’08, pages 201–202, New York, NY, USA. ACM.
Carneiro, G., Silva, M., Mara, L., Figueiredo, E., Sant’Anna, C., Garcia, A., and Mendonca, M. (2010). Identifying code smells with multiple concern views. In Software Engineering (SBES), 2010 Brazilian Symposium on, pages 128–137.
Cornelissen, B., Holten, D., Zaidman, A., Moonen, L., van Wijk, J., and van Deursen, A. (2007). Understanding execution traces using massive sequence and circular bundle views. In Program Comprehension, 2007. ICPC ’07. 15th IEEE International Conference on, pages 49–58.
D’Ambros, M., Lanza, M., and Lungu, M. (2009). Visualizing cochange information with the evolution radar. IEEE Trans. Softw. Eng., 35(5):720–735.
Diehl, S. (2007). Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software. Springer-Verlag New York, Inc., Secaucus,NJ, USA.
Kuhn, A., Erni, D., Loretan, P., and Nierstrasz, O. (2010). Software cartography: thematic software visualization with consistent layout. J. Softw. Maint. Evol., 22(3):191–210.
Kula, R., De Roover, C., German, D., Ishio, T., and Inoue, K. (2014). Visualizing the evolution of systems and their library dependencies. In Software Visualization (VISSOFT), 2014 Second IEEE Working Conference on, pages 127–136.
Lanza, M. (1999). Combining metrics and graphs for object oriented reverse engineering.
Lungu, M. (2008). Towards reverse engineering software ecosystems. In Software Maintenance, 2008. ICSM 2008. IEEE International Conference on, pages 428 –431.
Magnavita, R. (2016). EVOWAVE: A Multiple Domain Metaphor for Software Evolution Visualization. Dissertation, Universidade Federal da Bahia.
Magnavita, R., Novais, R., and Mendonça, M. (2015).Using evowave to analyze software evolution. In Proceedings of the 17th International Conference on Enterprise Information Systems, pages 126–136.
Mazza, R. (2009). Introduction to Information Visualization. Springer Publishing Company, Incorporated, 1 edition.
Novais, R., Lima, C., de F Carneiro, G., Paulo, R., and Mendonça, M. (2011). An interactive differential and temporal approach to visually analyze software evolution. In Visualizing Software for Understanding and Analysis (VISSOFT), 2011 6th IEEE International Workshop on, pages 1–4.
Novais, R., Nunes, C., Lima, C., Cirilo, E., Dantas, F., Garcia, A., and Mendonca, M. (2012). On the proactive and interactive visualization for feature evolution comprehension: An industrial investigation. In Software Engineering (ICSE), 2012 34th International Conference on, pages 1044–1053.
Novais, R. L., Torres, A., Mendes, T. S., Mendonça, M., and Zazworka, N. (2013). Software evolution visualization: A systematic mapping study. Inf. Softw. Technol., 55(11):1860–1883.
Olivera, F.R. (2015). Mvnrepository. Retrieved fromhttp://mvnrepository.com/.
ProcessingJS (2015). A port of the processing visualization language. Retrieved fromhttp://processingjs.org/.
Quante, J. (2008). Using library dependencies for clustering. In 10th Workshop Software Reengineering, 5-7 May 2008, Bad Honnef, pages 171–175.
Staples, M. L. and Bieman, J. M. (1999). 3-D visualization of software structure. volume 49 of Advances in Computers, pages 95 – 141. Elsevier.
Voinea, L. and Telea, A. (2006). Multiscale and multivariate visualizations of software evolution. In Proceedings of the 2006 ACM symposium on Software visualization, SoftVis ’06, pages 115–124, New York, NY, USA. ACM.
Wettel, R. and Lanza, M. (2008). Codecity: 3d visualization of large-scale software. In Companion of the 30th international conference on Software engineering, ICSE Companion ’08, pages 921–9.
Bergel, A., Bañados, F., Robbes, R., and Binder, W. (2011). Execution profiling blueprints. Software: Practice and Experience, pages n/a–n/a.
Carneiro, G., Magnavita, R., and Mendonça, M. (2008). Combining software visualization paradigms to support software comprehension activities. In Proceedings of the 4th ACM Symposium on Software Visualization, SoftVis ’08, pages 201–202, New York, NY, USA. ACM.
Carneiro, G., Silva, M., Mara, L., Figueiredo, E., Sant’Anna, C., Garcia, A., and Mendonca, M. (2010). Identifying code smells with multiple concern views. In Software Engineering (SBES), 2010 Brazilian Symposium on, pages 128–137.
Cornelissen, B., Holten, D., Zaidman, A., Moonen, L., van Wijk, J., and van Deursen, A. (2007). Understanding execution traces using massive sequence and circular bundle views. In Program Comprehension, 2007. ICPC ’07. 15th IEEE International Conference on, pages 49–58.
D’Ambros, M., Lanza, M., and Lungu, M. (2009). Visualizing cochange information with the evolution radar. IEEE Trans. Softw. Eng., 35(5):720–735.
Diehl, S. (2007). Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software. Springer-Verlag New York, Inc., Secaucus,NJ, USA.
Kuhn, A., Erni, D., Loretan, P., and Nierstrasz, O. (2010). Software cartography: thematic software visualization with consistent layout. J. Softw. Maint. Evol., 22(3):191–210.
Kula, R., De Roover, C., German, D., Ishio, T., and Inoue, K. (2014). Visualizing the evolution of systems and their library dependencies. In Software Visualization (VISSOFT), 2014 Second IEEE Working Conference on, pages 127–136.
Lanza, M. (1999). Combining metrics and graphs for object oriented reverse engineering.
Lungu, M. (2008). Towards reverse engineering software ecosystems. In Software Maintenance, 2008. ICSM 2008. IEEE International Conference on, pages 428 –431.
Magnavita, R. (2016). EVOWAVE: A Multiple Domain Metaphor for Software Evolution Visualization. Dissertation, Universidade Federal da Bahia.
Magnavita, R., Novais, R., and Mendonça, M. (2015).Using evowave to analyze software evolution. In Proceedings of the 17th International Conference on Enterprise Information Systems, pages 126–136.
Mazza, R. (2009). Introduction to Information Visualization. Springer Publishing Company, Incorporated, 1 edition.
Novais, R., Lima, C., de F Carneiro, G., Paulo, R., and Mendonça, M. (2011). An interactive differential and temporal approach to visually analyze software evolution. In Visualizing Software for Understanding and Analysis (VISSOFT), 2011 6th IEEE International Workshop on, pages 1–4.
Novais, R., Nunes, C., Lima, C., Cirilo, E., Dantas, F., Garcia, A., and Mendonca, M. (2012). On the proactive and interactive visualization for feature evolution comprehension: An industrial investigation. In Software Engineering (ICSE), 2012 34th International Conference on, pages 1044–1053.
Novais, R. L., Torres, A., Mendes, T. S., Mendonça, M., and Zazworka, N. (2013). Software evolution visualization: A systematic mapping study. Inf. Softw. Technol., 55(11):1860–1883.
Olivera, F.R. (2015). Mvnrepository. Retrieved fromhttp://mvnrepository.com/.
ProcessingJS (2015). A port of the processing visualization language. Retrieved fromhttp://processingjs.org/.
Quante, J. (2008). Using library dependencies for clustering. In 10th Workshop Software Reengineering, 5-7 May 2008, Bad Honnef, pages 171–175.
Staples, M. L. and Bieman, J. M. (1999). 3-D visualization of software structure. volume 49 of Advances in Computers, pages 95 – 141. Elsevier.
Voinea, L. and Telea, A. (2006). Multiscale and multivariate visualizations of software evolution. In Proceedings of the 2006 ACM symposium on Software visualization, SoftVis ’06, pages 115–124, New York, NY, USA. ACM.
Wettel, R. and Lanza, M. (2008). Codecity: 3d visualization of large-scale software. In Companion of the 30th international conference on Software engineering, ICSE Companion ’08, pages 921–9.
Publicado
24/10/2016
Como Citar
MAGNAVITA, Rodrigo; NOVAIS, Renato; MENDES, Thiago; MENDONÇA, Manoel.
On the Use of Software Visualization to Analyze Library Dependency Evolution: an Exploratory Study. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 15. , 2016, Maceió.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2016
.
p. 196-210.
DOI: https://doi.org/10.5753/sbqs.2016.15135.