Abstract
In software development, a major difficulty comes from the intrinsic complexity of software systems and the size of which can easily reach millions of lines of source code. But software is an intangible artifact that does not have any natural visual representation. While many software visualization techniques have been proposed in the literature, they are often difficult to interpret. In fact, the user of such representations is confronted with an artificial world that contains and represents intangible objects. The goal of our EvoSpaces project was to investigate effective visual metaphors (i.e., analogies) between natural objects and software objects so that we can exploit the cognitive understanding of the user. The difficulty of this approach is that the common sense expectations about the displayed world should also apply to the world of software objects. To solve this common sense representation problem for software objects our project addressed both the small-scale (i.e., the level of individual objects) and the large-scale (i.e., the level of groups of objects). After many experiments we decided for a ”city” metaphor: at the small scale we include different houses and their shapes as visual objects to cover size, structure and history. At the large-scale level we arrange the different types of houses in districts and include their history in diverse layouts. The user then is able to use the EvoSpaces virtual software city to navigate and explore all kinds of aspects of a city and its houses: size, age, historical evolution, changes, growth, restructurings, and evolution patterns such as code smells or architectural decay. For that we have developed a software environment named EvoSpaces as a plug-in to Eclipse so that visual metaphors can quickly be implemented in an easily navigable virtual space. Due to the large amount of information we complemented the flat 2D world with full-fledged immersive 3D representation. In this virtual software city, the dimensions and appearance of the buildings can be set according to software metrics. The user of the EvoSpaces environment can then explore a given software system by navigating through the corresponding virtual software city.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Erlikh, L.: Leveraging legacy system dollars for e-business. IT Professional 2, 17–23 (2000)
Zelkowitz, M., Shaw, A., Gannon, J.: Principles of Software Engineering and Design. Prentice-Hall, Englewood Cliffs (1979)
Pinzger, M., Gall, H., Fischer, M., Lanza, M.: Visualizing multiple evolution metrics. In: Proc. ACM Symp. on Softw. Visualization, pp. 67–75 (2005)
Lanza, M., Ducasse, S.: Polymetric views — a lightweight visual approach to reverse engineering. IEEE Trans. on Softw. Eng. 29, 782–795 (2003)
Pinzger, M.: ArchView - Analyzing Evolutionary Aspects of Complex Software Systems. Vienna University of Technology (2005)
McCabe, T.J.: A complexity measure. IEEE Trans. on Softw. Eng. 2 (1976)
Halstead, M.H.: Elements of software science, operating and programming system series. 7, Elsevier, Amsterdam (1977)
Fanea, E., Carpendale, S., Isenberg, T.: An interactive 3d integration of parallel coordinates and star glyphs. In: IEEE Symp. on Info. Visualization, 149–156 (2005)
Lanza, M., Marinescu, R.: Object-Oriented Metrics in Practice. Springer, Heidelberg (2006)
Wettel, R., Lanza, M.: Visualizing software systems as cities. In: Proceedings of VISSOFT 2007 (4th IEEE International Workshop on Visualizing Software For Understanding and Analysis), pp. 92–99 (2007)
Knight, C., Munro, M.C.: Virtual but visible software. In: International Conference on Information Visualisation, pp. 198–205 (2000)
Charters, S.M., Knight, C., Thomas, N., Munro, M.: Visualisation for informed decision making; from code to components. In: International Conference on Software Engineering and Knowledge Engineering (SEKE 2002), pp. 765–772. ACM Press, New York (2002)
Marcus, A., Feng, L., Maletic, J.I.: 3d representations for software visualization. In: Proceedings of the ACM Symposium on Software Visualization, pp. 27–36. IEEE, Los Alamitos (2003)
Balzer, M., Noack, A., Deussen, O., Lewerentz, C.: Software landscapes: Visualizing the structure of large software systems. In: VisSym, Symposium on Visualization, Eurographics Association, pp. 261–266 (2004)
Langelier, G., Sahraoui, H.A., Poulin, P.: Visualization-based analysis of quality for large-scale software systems. In: Proceedings of 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005), pp. 214–223. ACM, New York (2005)
Panas, T., Epperly, T., Quinlan, D., Saebjornsen, A., Vuduc, R.: Communicating software architecture using a unified single-view visualization. In: Proceedings of ICECCS 2007 (12th IEEE International Conference on Engineering Complex Computer Systems), pp. 217–228 (2007)
Wettel, R., Lanza, M.: Program comprehension through software habitability. In: Proceedings of ICPC 2007 (15th International Conference on Program Comprehension), pp. 231–240 (2007)
Wettel, R., Lanza, M.: Codecity: 3d visualization of large-scale software. In: ICSE Companion 2008: Companion of the 30th International Conference on Software Engineering, pp. 921–922. ACM, New York (2008)
Riel, A.: Object-Oriented Design Heuristics. Addison-Wesley, Reading (1996)
Few, S.: Show me the numbers: Designing Tables and Graphs to Enlighten. Analytics Press (2004)
Tukey, J.W.: Exploratory Data Analysis. Addison-Wesley, Reading (1977)
Triola, M.: Elementary Statistics. Addison-Wesley, Reading (2006)
Shneiderman, B.: Tree visualization with tree-maps: 2-d space-filling approach. ACM Trans. Graph. 11, 92–99 (1992)
Bentley, J.L.: Multidimensional binary search trees used for associative searching. Commun. ACM 18, 509–517 (1975)
Dugerdil, P.: Using trace sampling techniques to identify dynamic clusters of classes. In: Proc. of the IBM CAS Software and Systems Engineering Symposium (CASCON) (2007)
Hamou-Lhadj, A., Lethbridge, T.: Summarizing the content of large traces to facilitate the understanding of the behavior of a software system. In: Proc. of the IEEE Int. Conf. on Program Comprehension (ICPC 2006) (2006)
Hamou-Lhadj, A., Lethbridge, T.: Compression techniques to simplify the analysis of large execution traces. In: Proc. of the IEEE Workshop on Program Comprehension (IWPC) (2002)
Pauw, W.D., Lorenz, D., Vlissides, J., Wegman, M.: Execution patterns in object-oriented visualization. In: Proc. of the USENIX Conf. on Object-Oriented Technologies and Systems (COOTS) (1998)
Dugerdil, P., Alam, S.: Execution trace visualization in a 3d space. In: Proc. of ITNG 2008 (5th International Conference on Information Technology: New Generations) (2008)
Ball, T.: The concept of dynamic analysis. In: Proc. 7th European Software Engineering Conf. (ESEC 1999) (1999)
Dugerdil, P., Alam, S.: Evospaces: 3d visualization of software architecture. In: 19th International Conference on Software Engineering and Knowledge Engineering (SEKE 2007), Boston (2007)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Elements of Reusable Object Oriented Software. Addison-Wesley Inc., Reading (1995)
Demeyer, S., Tichelaar, S., Ducasse, S.: Famix 2.1 — the famoos information exchange model. Technical report, University of Bern (2001)
Sun: Java binding for opengl (jogl), https://jogl.dev.java.net
Boccuzzo, S., Gall, H.C.: Cocoviz: Supported cognitive software visualization. In: Proc. Working Conf. on Reverse Eng. (2007)
Boccuzzo, S., Gall, H.C.: Cocoviz: Towards cognitive software visualization. In: Proc. IEEE Int’l Workshop on Visualizing Softw. for Understanding and Analysis (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Alam, S., Boccuzzo, S., Wettel, R., Dugerdil, P., Gall, H., Lanza, M. (2009). EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution. In: Lalanne, D., Kohlas, J. (eds) Human Machine Interaction. Lecture Notes in Computer Science, vol 5440. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00437-7_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-00437-7_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00436-0
Online ISBN: 978-3-642-00437-7
eBook Packages: Computer ScienceComputer Science (R0)