Jump to content

Software map

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Juergen.doellner (talk | contribs) at 10:59, 8 April 2014 (Added headings and scientific references as well as citations to consolidate the statements about software maps.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A software map visually represents software system information by means of 2D or 3D map-oriented visualization and aims at giving insight into the static, dynamic, and evolutionary status of software systems and related software engineering processes such as monitoring code quality or development progress [1].


Applications

Complex, long-term software development projects are commonly difficult to manage 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.

Software maps generally allow costs and risks in software development projects to be presented to management and developer teams in a user-friendly manner. They communicate the status of applications currently being developed or further developed to project leaders and management at a glance. "A key aspect for this decision making is that software maps provide the structural context required for correct interpretation of these performance indicators" [2]. 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.

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.


Contents of Software Maps

Software maps are based on objective information as determined by the KPI driven code analysis or imported from repository systems or software development tools.

Software maps use the hierarchy of the software implementation artifacts such as source code files as base to build a tree map, i.e., a rectangular area that represents the whole hierarchy, subdividing the area into rectangular sub-areas. A software map, informally speaking, looks similar to a virtual 3D city model, whereby artifacts of the software system appear as virtual, rectangular 3D buildings or towers, which are placed according to their position in the software implementation hierarchy.

Software maps can express and combine information about software development, software quality, and system dynamics by mapping that information onto visual variables of the tree map such as footprint size, height, color or texture. They can systematically be specified, automatically generated, and organized by templates.

Example of Mapping Software System Information

Software maps "combine thematic information about software development processes (evolution), software quality, structure, and dynamics and display that information in a cartographic manner" [3]. The height, surface area, and color of the software map elements also give conclusions on the nature of the source code. For example:

  • The height of a virtual building can specify the complexity of the code unit and whether the condition of the code has been improved or not.
  • The ground area of the virtual building can show how many lines of code in the module or class have been implemented.
  • The color can indicate 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 as Business Intelligence Tools and Recommendation Systems

Software Maps can be used, in particular, as analysis and presentation tool of business intelligence systems, specialized in the analysis of software related data. Furthermore, software maps serve as "recommendation systems for software engineering" [4].


History

Software maps methods and techniques belong the scientific displine of Software visualization. Software maps can be based on tree maps, "a space-filling approach to the visualization of hierarchical information structures"[5]. Software maps have been first developed at the Hasso Plattner Institute for IT systems engineering.

  1. ^ Monitoring Code Quality and Development Activity by Software Maps Johannes Bohnet and Döllner, Jürgen. In: Proceedings of the IEEE ACM ICSE Workshop on Managing Technical Debt, pp. 9-16, 2011.
  2. ^ Interactive Software Maps for Web-Based Source Code Analysis. Limberger, Daniel et al. In: Proceedings of the International Web3D Conference, ACM, pp. 8, 2013.
  3. ^ Extending Recommendation Systems with Software Maps. Jonas Trümper and Jürgen Döllner. In: Proceedings of the 3rd International ICSE Workshop on Recommendation Systems for Software Engineering (RSSE), IEEE Computer Society, pp. 92-96, 2012.
  4. ^ Extending Recommendation Systems with Software Maps. Jonas Trümper and Jürgen Döllner. In: Proceedings of the 3rd International ICSE Workshop on Recommendation Systems for Software Engineering (RSSE), IEEE Computer Society, pp. 92-96, 2012.
  5. ^ Tree-maps: a space-filling approach to the visualization of hierarchical information structures. B. Johnson and B. Sneiderman. In Proc. of IEEE VIS, 284–291, 1991