Software Feathers - Figurative Visualization of Software Metrics

Fabian Beck


In order to give the code entities of a software system a discernible and recognizable face, this paper presents Software Feathers, an approach for mapping characteristics of object-oriented code entities to features of artificially generated feathers. A parameterized drawing algorithm is described that generates pseudo-realistic feathers as 2D graphics. The parameters of the feathers are connected to characteristic software metrics measuring, among others, the size, complexity, and quality of interfaces and classes. Applying the approach demonstrates that categories of code entities can be discerned, problems in the code can be detected, and the evolution of code can be studied. A promising application is embedding the feathers into documentation and IDEs for improving navigation and unobtrusively educating software developers in software metrics.


  1. Alam, S. and Dugerdil, P. (2007). EvoSpaces Visualization Tool: Exploring Software Architecture in 3D. In WCRE 7807: Proceedings of the 14th Working Conference on Reverse Engineering, pages 269-270. IEEE Computer Society.
  2. Beck, F., Hollerich, F., Diehl, S., and Weiskopf, D. (2013a). Visual Monitoring of Numeric Variables Embedded in Source Code. VISSOFT 7813: Proceedings of the 1st IEEE Working Conference on Software Visualization.
  3. Beck, F., Moseler, O., Diehl, S., and Rey, G. D. (2013b). In Situ Understanding of Performance Bottlenecks through Visually Augmented Code. In ICPC 7813: Proceedings of the 21st IEEE International Conference on Program Comprehension, pages 63-72. IEEE.
  4. Beddow, J. (1990). Shape coding of multidimensional data on a microcomputer display. In VIS 7890: Proceedings of the 1st Conference on Visualization 7890, pages 238-246. IEEE Computer Society Press.
  5. Biegel, B., Beck, F., Hornig, W., and Diehl, S. (2012). The Order of Things: How Developers Sort Fields and Methods. In ICSM 7812: Proceedings of the 28th IEEE International Conference on Software Maintenance, pages 88-97. IEEE.
  6. Borgo, R., Kehrer, J., Chung, D. H. S., Maguire, E., Laramee, R. S., Hauser, H., Ward, M., and Chen, M. (2013). Glyph-based Visualization: Foundations, Design Guidelines, Techniques and Applications. In Eurographics State of the Art Reports, pages 39-63. Eurographics Association.
  7. Briand, L. C., Daly, J. W., and Wü st, J. (1998). A Unified Framework for Cohesion Measurement in ObjectOriented Systems. Empirical Software Engineering, 3(1):65-117.
  8. Briand, L. C., Daly, J. W., and Wü st, J. K. (1999). A Unified Framework for Coupling Measurement in ObjectOriented Systems. IEEE Transactions on Software Engineering, 25(1):91-121.
  9. Chan, W. W. (2006). A Survey on Multivariate Data Visualization. Technical report, Department of Computer Science and Engineering. Hong Kong University of Science and Technology.
  10. Chau, M. (2011). Visualizing Web Search Results Using Glyphs: Design and Evaluation of a Flower Metaphor. ACM Transactions on Management Information Systems, 2(1):2+.
  11. Chen, Y., Xu, Y., Guo, B., and Shum, H. Y. (2002). Modeling and Rendering of Realistic Feathers. In SIGGRAPH 7802: Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, volume 21, pages 630-636. ACM.
  12. Chernoff, H. (1973). The Use of Faces to Represent Points in k-Dimensional Space Graphically. Journal of the American Statistical Association, 68(342):361-368.
  13. Chidamber, S. R. and Kemerer, C. F. (1994). A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 20(6):476-493.
  14. Chuah, M. C. and Eick, S. G. (1998). Information Rich Glyphs for Software Management Data. IEEE Computer Graphics and Applications, 18(4):24-29.
  15. DeLine, R., Czerwinski, M., Meyers, B., Venolia, G., Drucker, S., and Robertson, G. (2006). Code Thumbnails: Using Spatial Memory to Navigate Source Code. In VL/HCC 7806: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, volume 0, pages 11-18. IEEE.
  16. Draper, G. M., Livnat, Y., and Riesenfeld, R. F. (2009). A Survey of Radial Methods for Information Visualization. IEEE Transactions on Visualization and Computer Graphics, 15(5):759-776.
  17. Ducasse, S. and Lanza, M. (2005). The Class Blueprint: Visually Supporting the Understanding of Classes. IEEE Transactions on Software Engineering, 31(1):75-90.
  18. Eick, S. G., Steffen, J. L., and Sumner, E. E. (1992). Seesoft-A Tool for Visualizing Line Oriented Software Statistics. IEEE Transactions on Software Engineering, 18(11):957-968.
  19. Erdemir, U., Tekin, U., and Buzluca, F. (2011). E-Quality: A Graph Based Object Oriented Software Quality Visualization Tool. In VISSOFT 7811: Proceedings of the 6th IEEE International Workshop on Visualizing Software for Understanding and Analysis, pages 1-8. IEEE.
  20. Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, 1 edition.
  21. Franco, C. G. and Walter, M. (2001). Modeling the Structure of Feathers. In SIBGRAPI 7801: Proceedings of the XIV Brazilian Symposium on Computer Graphics and Image Processing, pages 381+. IEEE Computer Society.
  22. Graham, H., Yang, H. Y., and Berrigan, R. (2004). A Solar System Metaphor for 3D Visualisation of Object Oriented Software Metrics. In APVis 7804: Proceedings of the 2004 Australasian Symposium on Information Visualisation, pages 53-59. Australian Computer Society, Inc.
  23. Harward, M., Irwin, W., and Churcher, N. (2010). In Situ Software Visualisation. In ASWEC 7810: Proceedings of the 21st Australian Software Engineering Conference, pages 171-180. IEEE Computer Society.
  24. Hindle, A., Barr, E. T., Su, Z., Gabel, M., and Devanbu, P. (2012). On the Naturalness of Software. In ICSE 7812: Proceedings of the 34th International Conference on Software Engineering, pages 837-847. IEEE.
  25. Knight, C. and Munro, M. (1999). Comprehension with[in] Virtual Environment Visualisations. In IWPC 7899: Proceedings of the 7th International Workshop on Program Comprehension, pages 4-11. IEEE Computer Society.
  26. Ko, A. J., Myers, B. A., Coblenz, M. J., and Aung, H. H. (2006). An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks. IEEE Trans. Softw. Eng., 32(12):971-987.
  27. Lanza, M. and Ducasse, S. (2003). Polymetric Views - A Lightweight Visual Approach to Reverse Engineering. IEEE Transactions on Software Engineering, 29(9):782- 795.
  28. Lucas, P. R. and Stettenheim, A. M. (1972). Avian Anatomy: Integument. US Department of Agriculture Handbook. U. S. Government Printing Office, 1st edition.
  29. McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, SE-2(4):308-320.
  30. Murphy-Hill, E. and Black, A. P. (2010). An Interactive Ambient Visualization for Code Smells. In SOFTVIS 7810: Proceedings of the 5th International Symposium on Software Visualization, pages 5-14. ACM.
  31. Nocke, T., Schlechtweg, S., and Schumann, H. (2005). Icon-based Visualization using Mosaic Metaphors. In IV 7805: Proceedings of the 9th International Conference on Information Visualisation, pages 103-109. IEEE.
  32. Passos, E. B., Medeiros, D. B., Neto, P. A. S., and Clua, E. W. G. (2011). Turning Real-World Software Development into a Game. In SBGAMES 7811: Brazilian Symposium on Games and Digital Entertainment, pages 260- 269. IEEE.
  33. Pickett, R. M. and Grinstein, G. G. (1988). Iconographic Displays For Visualizing Multidimensional Data. In SMC 7888: Proceedings of the 1988 IEEE International Conference on Systems, Man, and Cybernetics, volume 1, pages 514-519. IEEE.
  34. Pinzger, M., Gall, H., Fischer, M., and Lanza, M. (2005). Visualizing Multiple Evolution Metrics. In SOFTVIS 7805: Proceedings of the 2005 ACM Symposium on Software Visualization, pages 67-75. ACM.
  35. Podulka, S., Rohrbaugh, R. W., and Bonney, R. (2004). Handbook of Bird Biology. Princeton University Press.
  36. Singer, L. and Schneider, K. (2012). It Was a Bit of a Race: Gamification of Version Control. In GAS 7812: Proceedings of the 2nd International Workshop on Games and Software Engineering, pages 5-8. IEEE.
  37. Steinbrückner, F. and Lewerentz, C. (2013). Understanding software evolution with software cities. Information Visualization, 12(2):200-216.
  38. Streit, L. and Heidrich, W. (2002). A BiologicallyParameterized Feather Model. Computer Graphics Forum, 21(3):565-573.
  39. Ward, M. O. (2008). Multivariate Data Glyphs: Principles and Practice. In Handbook of Data Visualization, Springer Handbooks Comp.Statistics, pages 179-198. Springer Berlin Heidelberg.
  40. Wettel, R. and Lanza, M. (2008). Visual Exploration of Large-Scale System Evolution. In WCRE 7808: Proceedings of the 15th Working Conference on Reverse Engineering, pages 219-228. IEEE.
  41. Wong, P. C. and Bergeron, R. D. (1997). 30 Years of Multidimensional Multivariate Visualization. In Scientific Visualization, Overviews, Methodologies, and Techniques, pages 3-33. IEEE Computer Society.

Paper Citation

in Harvard Style

Beck F. (2014). Software Feathers - Figurative Visualization of Software Metrics . In Proceedings of the 5th International Conference on Information Visualization Theory and Applications - Volume 1: IVAPP, (VISIGRAPP 2014) ISBN 978-989-758-005-5, pages 5-16. DOI: 10.5220/0004650100050016

in Bibtex Style

author={Fabian Beck},
title={Software Feathers - Figurative Visualization of Software Metrics},
booktitle={Proceedings of the 5th International Conference on Information Visualization Theory and Applications - Volume 1: IVAPP, (VISIGRAPP 2014)},

in EndNote Style

JO - Proceedings of the 5th International Conference on Information Visualization Theory and Applications - Volume 1: IVAPP, (VISIGRAPP 2014)
TI - Software Feathers - Figurative Visualization of Software Metrics
SN - 978-989-758-005-5
AU - Beck F.
PY - 2014
SP - 5
EP - 16
DO - 10.5220/0004650100050016