ArticleslgStudy

computer science

Software map

Software map is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Software map rather than just read about it. In short: A software map represents static, dynamic, and evolutionary information of software systems and their software development processes by means of 2D or 3D map-oriented information visualization. It constitutes a fundamental concept and tool in software visualization, software analytics, and software diagnosis.

Key takeaways

  • Software map belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Software map to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Software map from memory before moving on to harder problems.

Reference excerpt

A software map represents static, dynamic, and evolutionary information of software systems and their software development processes by means of 2D or 3D map-oriented information visualization. It constitutes a fundamental concept and tool in software visualization, software analytics, and software diagnosis. Its primary applications include risk analysis for and monitoring of code quality, team activity, or software development progress and, generally, improving effectiveness of software engineering with respect to all related artifacts, processes, and stakeholders throughout the software engineering process and software maintenance.

Motivation and concepts Software maps are applied in the context of software engineering: Complex, long-term software development projects are commonly faced by manifold difficulties such as the friction between completing system features and, at the same time, obtaining a high degree of code quality and software quality to ensure software maintenance of the system in the future. In particular, "Maintaining complex software systems tends to be costly because developers spend a significant part of their time with trying to understand the system’s structure and behavior." The key idea of software maps is to cope with that challenge and optimization problems by providing effective communication means to close the communication gap among the various stakeholders and information domains within software development projects and obtaining insights in the sense of information visualization. Software maps take advantage of well-defined cartographic map techniques using the virtual 3D city model metaphor to express the underlying complex, abstract information space. The metaphor is required "since software has no physical shape, there is no natural mapping of software to a two-dimensional space". Software maps are non-spatial maps that have to convert the hierarchy data and its attributes into a spatial representation.

Applications Software maps generally allow for comprehensible and effective communication of course, risks, and costs of software development projects to various stakeholders such as management and development teams. They communicate the status of applications and systems 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". As an instrument of communication, software maps act as open, transparent information spaces which enable 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 in 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 (e.g., information density) and their instantaneous, automated generation, the maps additionally serve to reflect the current status of system and development processes, bridging an essential information gap between management and development teams, improve awareness about the status, and serve as early risk detection instrument.

Contents Software maps are based on objective information as determined by the KPI driven code analysis as well as by imported information from software repository systems, information from the source codes, or software development tools and programming tools. In particular, software maps are not bound to a specific programming language, modeling language, or software development process model. Software maps use the hierarchy of the software implementation artifacts such as source code files as a base to build a tree mapping, 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 elements such as footprint size, height, color or texture. They can systematically be specified, automatically generated, and organized by templates.

Mapping software system example Software maps "combine thematic information about software development processes (evolution), software quality, structure, and dynamics and display that information in a cartographic manner". For example:

The height of a virtual building can be proportional to the complexity of the code unit (e.g., single or combined software metrics). The ground area of a virtual 3D building can be proportional to the number of lines of code in the module or (e.g., non-comment lines-of-code NCLOC). The color can express the current development status, i.e., how many developers are changing/editing the code unit. With this exemplary configuration, the software map shows crucial points in the source code with relations to aspects of the software development process. For example, 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 represent key tools in the scope of automated software diagnosis software diagnostics.

As business intelligence tools and recommendation systems Software maps can be used, in particular, as analysis and presentation tools of business intelligence systems, specialized in the analysis of software related data. Furthermore, software maps "serve as recommendation systems for software engineering". Software maps are not limited by software-related information: They can include any hierarchical system information as well, for example, maintenance information about complex technical artifacts.

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Software map

Start with the simplest possible case. Write down what Software map claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Software map before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Software map ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Software map

In research
Software map appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Software map in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Software map is common in secondary-school and first-year university syllabi. It links to neighbouring topics Infographics, Software development, Software development process, so understanding it makes those chapters shorter.
In everyday life
Look for Software map outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Software map in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Software map means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Software map out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Software map in simple terms?

A software map represents static, dynamic, and evolutionary information of software systems and their software development processes by means of 2D or 3D map-oriented information visualization. It constitutes a fundamental concept and tool in software visualization, software analytics, and software…

Why does Software map matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Software map?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Software map.

Tags

  • Infographics
  • Software development
  • Software development process
  • Software maintenance
  • Software metrics
  • Software quality
  • Software testing
  • Visualization (graphics)

Keep exploring