Software map
Software maps are a type of software visualization Software visualization, which were developed at the Hasso Plattner Institute. Software maps allow costs and risks in software development projects to be presented to management and developer teams in a user-friendly manner.
Software development projects are difficult to manage, in general, due to the friction between completing system features and, at the same time, obtaining a high degree of code quality to ensure maintainability of the system in the future.
A major challenge of this optimization problem is that code quality is less visible to stakeholders in the development process, particularly to management.
Software maps offer a solution to this issue. They communicate the status of applications currently being developed or further developed to project leaders and management at a glance. The representations are based on objective, hard facts as determined by the KPI driven code analysis.
As an instrument of communication, software maps create transparency which enables priorities of code quality and the creation of new functions to be balanced against one another and to decide upon and implement necessary measures to improve the software development process.
For example, they facilitate decisions as to where in the code an increase of quality would be beneficial both for speeding up current development activities and for reducing risks of future maintenance problems.
Hence, a software map represents an adaptive, hierarchical representation of software implementation artifacts such as source code files being organized in a modular hierarchy. The maps can express and combine information about software development, software quality, and system dynamics; they can systematically be specified, automatically generated, and organized by templates.
Due to their high degree of expressiveness and their instantaneous generation, the maps additionally serve as up-to-date information tools, bridging an essential information gap between management and development, improve awareness, and serve as early risk detection instrument.
A software map resembles somewhat the city map of New York. The individual modules and classes are displayed as rectangular buildings.
The height, surface area, and color of the building also give conclusions on the nature of the source code.
- The height of the building specifies the complexity of the code unit and whether the condition of the code has been improved or not.
- The ground area of the building shows how many lines of code in the module or class have been implemented.
- And finally, the color indicates whether the developers are currently in the code unit. Therefore, if there is an acute risk, because the developer are only slowly working through the difficult to understand code.
In this way, it is visible at a glance where the critical points in the source code are. In other words, it becomes obvious at a glance what to change in order to:
- implement changes quickly.
- evaluate quickly the impact of changes in one place on functionality elsewhere.
- reduce entanglements that lead to uncontrolled processes in the application.
- find errors faster.
- discover and eliminate bad programming style.
Software Maps can be used, in particular, as a presentation form for business intelligence systems, which are specialized in the analysis of software related data.