Software Evolution Characterization - A Complex Network Approach
##plugins.pubIds.doi.readerDisplayName##
https://doi.org/10.5753/sbqs.2011.15386
Resumen
Software evolution has been the subject of research in the last decades, revealing that a software system has continuing growth, continuing changes, increasing complexity and declining quality. However, the knowledge about how this process occurs is not consolidate yet. This paper presents the results of a study about software evolution characterization based on concepts of Complex Networks. We analyzed 16 open-source software systems and one commercial application, in a total of 129 versions. The results of this study show that: the density of a software network decreases as the software system grows; the diameter of such networks is short; the classes with higher in-degree keep this status; such classes are unstable and their internal cohesion degrades. Our investigations also revealed an interesting picture which models the macroscopic structure of software networks. We called it the little house.Citas
Abreu, F. B. and Carapua, R. (1994). Object-oriented software engineering: Measuring and controlling the development process. In Proceedings of 4th Int. Conf. of Software Quality, McLean, USA.
Baxter, G., Frean, M., Noble, J., Rickerby, M., Smith, H., Visser, M., Melton, H., and Tempero, E. (2006). Understanding the shape of java software. In OOPSLA ’06, pages 397–412, Portland, USA. ACM.
Broder, A., Kumar, R., Maghoul, F., Raghavan, P., Rajagopalan, S., Stata, R., Tomkins, A., and Wiener, J. (2000). Graph structure in the web. In WWW9 Conference, pages 309–320.
Ferreira, K. A. M. (2006). Avaliao de Conectividade em Sistemas Orientados por Objetos. Master Thesis - DCC/UFMG., Belo Horizonte, Brazil.
Ferreira, K. A. M. (2011). Um Modelo de Predio de Amplitude da Propagao de Modificaes Contratuais em Software Orientado por Objetos. PhD Dissertation - DCC/UFMG., Belo Horizonte, Brasil.
Fowler, M. (1999). Refactoring - Improving the Design of Existing Code. Addison Wesley.
Godfrey, M. and Tu, Q. (2001). Growth, evolution, and structural change in open source software. In Proc. of the IWPSE, pages 103–106, Vienna, Austria.
Herraiz, I., Robles, G., and Gonzalez-Barahon, J. M. (2006). Comparison between slocs and number of files as size metrics for software evolution analysis. In CSMR ’06, pages 206–213, Washington, DC, USA. IEEE Computer Society.
Hitz, M. and Montazeri, B. (1995). Measuring coupling and cohesion in object-oriented systems. In Int. Symposium on Applied Corporate Computing, Monterrey, Mxico.
Israeli, A. and Feitelson, D. G. (2010). The linux kernel as a case study in software evolution. The Journal of Systems and Software, 83(3):485–501.
Jenkins, S. and Kirk, S. R. (2007). Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution. Information Sciences: an International Journal, 177(12):2587–2601.
Jing, L., Keqing, H., Yutao, M., and Rong, P. (2006). Scale free in software metrics. In COMPSAC ’06, pages 229–235, Washington, USA.
Koch, S. (2007). Software evolution in open source projects - a large-scale investigation. J. Softw. Maint. Evol., 19(6):361–382.
Lee, Y., Yang, J., and Chang, K. H. (2007). Metrics and evolution in open source software. In QSIC ’07, pages 191–197, Washington, USA.
Lehman, M. M., Ramil, J. F., Wernick, P. D., Perry, D. E., and Turski, W. M. (1997). Metrics and laws of software evolution - the nineties view. In Metrics’97.
Leskovec, J., Kleinberg, J., and Faloutsos, C. (2007). Graph evolution: Densification and shrinking diameters. ACM Trans. Knowl. Discov. Data, 1.
Louridas, P., Spinellis, D., and Vlachos, V. (2008). Power laws in software. ACM Trans. Softw. Eng. Methodol., 18:2:1–2:26.
Mens, T., Fernndez-Ramil, J., and Degrandsart, S. (2008). The evolution of eclipse. In Proc. 24th Int’l Conf. on Software Maintenance, pages 386–395.
Meyer, B. (1997). Object-oriented software construction. Prentice Hall International Series, Estados Unidos, 2 edition.
Newman, M. E. J. (2003). The structure and function of complex networks. In SIAM Reviews, volume 45, pages 167–256.
PAJEK (2010). Networks / Pajek Program for Large Network Analysis - for Windows. http://vlado.fmf.uni-lj.si/pub/networks/pajek/.
Puppin, D. and Silvestri, F. (2006). The social network of java classes. In SAC ’06, pages 1409–1413, New York, NY, Estados Unidos. ACM.
Wheelson, R. and Counsell, S. (2003). Power law distributions in class relationships. In SCAM’03, Amsterd, Holanda.
Xie, G., Chen, J., and Neamtiu, I. (2009). Towards a better understanding of software evolution: An empirical study on open source software. In ICSM’09.
Zimmermann, T. and Nagappan, N. (2008). Predicting defects using network analysis on dependency graphs. In ICSE ’08, pages 531–540, Leipzig, Alemanha. ACM.
Baxter, G., Frean, M., Noble, J., Rickerby, M., Smith, H., Visser, M., Melton, H., and Tempero, E. (2006). Understanding the shape of java software. In OOPSLA ’06, pages 397–412, Portland, USA. ACM.
Broder, A., Kumar, R., Maghoul, F., Raghavan, P., Rajagopalan, S., Stata, R., Tomkins, A., and Wiener, J. (2000). Graph structure in the web. In WWW9 Conference, pages 309–320.
Ferreira, K. A. M. (2006). Avaliao de Conectividade em Sistemas Orientados por Objetos. Master Thesis - DCC/UFMG., Belo Horizonte, Brazil.
Ferreira, K. A. M. (2011). Um Modelo de Predio de Amplitude da Propagao de Modificaes Contratuais em Software Orientado por Objetos. PhD Dissertation - DCC/UFMG., Belo Horizonte, Brasil.
Fowler, M. (1999). Refactoring - Improving the Design of Existing Code. Addison Wesley.
Godfrey, M. and Tu, Q. (2001). Growth, evolution, and structural change in open source software. In Proc. of the IWPSE, pages 103–106, Vienna, Austria.
Herraiz, I., Robles, G., and Gonzalez-Barahon, J. M. (2006). Comparison between slocs and number of files as size metrics for software evolution analysis. In CSMR ’06, pages 206–213, Washington, DC, USA. IEEE Computer Society.
Hitz, M. and Montazeri, B. (1995). Measuring coupling and cohesion in object-oriented systems. In Int. Symposium on Applied Corporate Computing, Monterrey, Mxico.
Israeli, A. and Feitelson, D. G. (2010). The linux kernel as a case study in software evolution. The Journal of Systems and Software, 83(3):485–501.
Jenkins, S. and Kirk, S. R. (2007). Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution. Information Sciences: an International Journal, 177(12):2587–2601.
Jing, L., Keqing, H., Yutao, M., and Rong, P. (2006). Scale free in software metrics. In COMPSAC ’06, pages 229–235, Washington, USA.
Koch, S. (2007). Software evolution in open source projects - a large-scale investigation. J. Softw. Maint. Evol., 19(6):361–382.
Lee, Y., Yang, J., and Chang, K. H. (2007). Metrics and evolution in open source software. In QSIC ’07, pages 191–197, Washington, USA.
Lehman, M. M., Ramil, J. F., Wernick, P. D., Perry, D. E., and Turski, W. M. (1997). Metrics and laws of software evolution - the nineties view. In Metrics’97.
Leskovec, J., Kleinberg, J., and Faloutsos, C. (2007). Graph evolution: Densification and shrinking diameters. ACM Trans. Knowl. Discov. Data, 1.
Louridas, P., Spinellis, D., and Vlachos, V. (2008). Power laws in software. ACM Trans. Softw. Eng. Methodol., 18:2:1–2:26.
Mens, T., Fernndez-Ramil, J., and Degrandsart, S. (2008). The evolution of eclipse. In Proc. 24th Int’l Conf. on Software Maintenance, pages 386–395.
Meyer, B. (1997). Object-oriented software construction. Prentice Hall International Series, Estados Unidos, 2 edition.
Newman, M. E. J. (2003). The structure and function of complex networks. In SIAM Reviews, volume 45, pages 167–256.
PAJEK (2010). Networks / Pajek Program for Large Network Analysis - for Windows. http://vlado.fmf.uni-lj.si/pub/networks/pajek/.
Puppin, D. and Silvestri, F. (2006). The social network of java classes. In SAC ’06, pages 1409–1413, New York, NY, Estados Unidos. ACM.
Wheelson, R. and Counsell, S. (2003). Power law distributions in class relationships. In SCAM’03, Amsterd, Holanda.
Xie, G., Chen, J., and Neamtiu, I. (2009). Towards a better understanding of software evolution: An empirical study on open source software. In ICSM’09.
Zimmermann, T. and Nagappan, N. (2008). Predicting defects using network analysis on dependency graphs. In ICSE ’08, pages 531–540, Leipzig, Alemanha. ACM.
Publicado
06/06/2011
Cómo citar
FERREIRA, Kecia A. M.; BIGONHA, Mariza A. S.; BIGONHA, Roberto S.; GOMES, Bárbara M..
Software Evolution Characterization - A Complex Network Approach. In: ACTAS DEL SIMPOSIO BRASILEÑO DE CALIDAD DE SOFTWARE, 10. , 2011, Curitiba.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2011
.
p. 41-55.
DOI: https://doi.org/10.5753/sbqs.2011.15386.
