In the current information technology society we are relying more and more on software systems. Maintenance has been identified to be the primary factor of the total cost of large software systems (more than 90% of the total cost). One of the key difficulties encountered in software maintenance is given by the intrinsic complexity of those systems, whose size can easily reach the tens of millions of lines of source code. Software complexity is recognized as one of the major challenges to the development and maintenance of industrial size software projects.
To that respect, the key aspect of software is that it is a virtual product. In other words, it is difficult to grasp the full complexity of a system that one cannot see or touch. However, many attempts to visually represent the structure of software systems have been proposed, essentially through flat representations. However, the quantity of information that can be represented in 2D drawings is limited. Handling the complexity and observing the evolution of very large software systems needs the analysis of large complex data models and the creation of condensed views of the system. In the context of visualization, software metrics have been used to compute and enrich such condensed views. However, current techniques concentrate on visualizing data of one particular software release, providing insufficient support for visualizing data of several releases. The goal of this project is to exploit multi-dimensional navigation spaces to efficiently visualize evolving software systems. Specifically it aims to answer the following questions:
We propose to tackle these questions by exploiting a unique feature of the human brain, the representation of objects in 3D space. For example, this feature is used efficiently in the domain of civil architecture where CAD/CAM software let architects navigate virtual buildings. We want to transfer this knowledge to the informatics domain to represent and investigate the structure of software systems and their evolution. We want to integrate expertise from areas of architecture and multimedia to explore new ways of multi-dimensional visualization of evolving software systems. Using the architectural metaphor we want to investigate the multiplicity of views given by construction plans and apply these techniques for software visualization in the form of software blueprints.
The central theme of our project will be the development of a prototype implementing such visualizations and its application on large-scale systems both from the open source domain and the industrial area.
The project consists of the following tracks: