Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
13 views17 pages

SoftwareDataVisualization Reportv2AjishManoharan

Uploaded by

Amit Wadile
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views17 pages

SoftwareDataVisualization Reportv2AjishManoharan

Uploaded by

Amit Wadile
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/339688919

Software Data Visualization (A Research Report)

Article · May 2017

CITATIONS READS

0 4,345

2 authors, including:

Ajish Manoharan
Technische Universität Ilmenau
3 PUBLICATIONS 0 CITATIONS

SEE PROFILE

All content following this page was uploaded by Ajish Manoharan on 04 March 2020.

The user has requested enhancement of the downloaded file.


RESEARCH SEMINAR - II

Software / Data Visualization

(A Written Report)

Prepared By,
Ajish Manoharan
(Matrikel Nr. 56613)

Faculty of IA,
Technische Universitat of Ilmenau, Germany

Supervised
By
Dr.-Ing. Detlef Streitferdt
Software Architecture & Product Lines

31st May, 2017


S/W Visualization

Table of Contents

Abstract 2

I. Introduction 2
1 Definition 2
2 Need & Objective of Visualization 2
3 Difference between Modelling & Visualization 3

II. What can/should be visualized? 3

III. Key Data required for Software Visualization 3

IV. Visualization Techniques 4


1 Trees & Graphs 4
2 Geometric Projections 5
3 Text Based Visualizations 6
4 Infographics & Timelines 7

V. Visualization Attributes 7

VI. Different Software Visualizations


1 CodeCity 8
2 Code Ownership Distribution Map 8
3 Dependency Structure Matrix 9

VII. Software/Data Visualization Tools


1 R Programming 10
2 Plotly 11
3 Tableau & Qlikview 11

VIII. Software Quality Visualization 12


1 Impactful software metrics 13
2 Tools 13

IX. Conclusion & Future Work 13

References 15

Research Seminar May 31, 2017 1


S/W Visualization

Abstract
In recent years with the rise in amount of applications deployed in many enterprises,
the interest and need of Software Visualization has only increased. Software Visualization is
a field that focuses on visualization of the structure, behavior and evolution of software. It
helps developers to understand, analyze and compare large scale software development data.
This report will give an insight to the Software Data Visualization and the analysis of some
tools used for the visualization of data and also some sample visualizations are explained.

I. Introduction
Why visualization? Because it provides insights, answers questions, supports way
finding, tells stories and communicates knowledge and awareness.

1. Definition

Software visualization is a field of information visualization that offers


techniques and methods to visualize abstract software data.
The technical definition however has evolved with the course of time and
technology. Some of them are as follows:

Author Definition
Price et "Software visualisation is the use of the crafts of typography, graphic
al.[1993] design, animation and cinematography with modern human- computer
interaction technology to facilitate both the human understanding and
effective use of computer software."
Knight and "Software visualization is a discipline that makes use of various forms
Munro[1999] of imagery to provide insight and understanding and to reduce
complexity of the existing software system under consideration."
Reiss[2005] "The development and evaluation of methods for graphically
representing different aspects of software, including its structure, its
abstract and concrete execution, and its evolution."
Diehl[2007] "The visualization of artifacts related to software and its development
process..Visualizing the structure, behavior, and evolution of software."

What to Visualize?
 Software Architecture
 Software metrics of runtime behavior

2. Need & Objective of Software Visualization

A software project includes a large number of packages, classes and methods. It is


not an easy task for developers to work on a software project which is so large scale as
they have to browse the source code to get more information about the contents of the
project.
So software visualization is needed to help the developers understand the internal
structure of the projects and also compare between multiple projects in an efficient
manner.

The major objective is to provide role and task specific views of the artifacts
related to software and its development process for stakeholders. The visualized aspects of

Research Seminar May 31, 2017 2


S/W Visualization

a software system may be structural, behavioral, and evolutionary. While source code,
data structures, or static call graphs are sources of information regarding the structure of a
software system, execution traces provide behavioral information about it. Additionally,
information regarding the evolution can be obtained from version control systems, such as
Concurrent Versions System (CVS), Git, e.t.c.
For example, a developer can use a structural view of the system to detect design
flaws during software quality assessment, a tester is provided with a behavioral view to
detect bottlenecks during execution, and a manager is supported in planning and decision
making by an aggregated evolutionary view.
In general, software
visualization tools support
stakeholders in software
comprehension, finding errors,
improving the quality of the
software, and managing
complexity.

3. Difference between
Modelling and Visualization

Software as an entity does not


Fig 1: [8] have a natural representation
beyond the source code. So it is
common to have an ambiguity between Modelling and Visualization. However, modelling
only evaluates how an organization manages its data while visualization evaluates the data
itself and makes the software/data more explorable.

II. What can/should be visualized?


These are the visual modes or representations used to visualize the following described
parts of a particular software project:

 Design – UML(Unified Modelling Language) Diagrams

 Code, Dependencies – Graph representation

 Dynamic Behavior – Hierarchical or Tree representation

 Architecture – CodeCity representation

 Human Activities – CodeSwarm representation

 Software Ecosystem – Repositories like Github

III. Key Data Required


Software visualization can be done only if the right data from the efficient sources are
available.

Some of the most important software related data required for visualization are listed
below:

Research Seminar May 31, 2017 3


S/W Visualization

 Implementation Source codes

 Software metric data (LOCs, NOMs, NOAs, e.t.c)

 Run-time behavior traces

 Software Testing data

 Change log repository

IV. Visualization Techniques


Following are the known types or techniques used for general visualization:

1. Trees & Graphs

\\
Fig 2.1 Tree visualization

Above image is a visualization that depicts a family tree which is also a layered
graph in a color coded formation (same color nodes represents same generation according
to the person’s birth date). Newer generation is at top and older at the bottom. This view
provides a clear visualization but it is not very compact and requires a bigger space and
also has a complex connectivity structure.

Graph visualization makes the dependencies among nodes easier to understand


also in a color coded manner. Figure 2.2 is an example of Pathfinder which ensures all
project dependencies are gathered and sent to the server to be processed and updated,
while the graph visualization interface provides an immediate feedback on many-to-many
relations across all possible dependencies.

Research Seminar May 31, 2017 4


S/W Visualization

Fig. 2.2 Graph Visualization of Pathfinder

Here, the red nodes are the crucial packages which needs the most care, yellow
ones are the branch packages which are stable but still needs some care and the blue ones
are the standard release code which can actually be trusted.

2. Geometric projections

Fig. 2.3 Bar Visualization

Research Seminar May 31, 2017 5


S/W Visualization

Fig 2.3 shows the widgets development in a software production organization


via a cylindrical bar representation. It clearly depicts the progress made in the
development of multiple widgets across different months in a year.

Fig. 2.4 Pie Graph Visualization

Fig 2.4 depicts the amount of disk space utilized by different group of files on
the system. There are many disk usage tools that can show a similar type of visualization
for the same purpose.

3. Text Based Visualization

Fig. 2.5 Wordcloud Text Visualization

It helps to understand the gist of the source and for grouping classification. It is
also used to compare patterns in text to those in other data. Fig 2.5 is an example of
visualization based on text from Wordcloud. It depicts the set of words more widely and
commonly used in the social media. Larger the font size, more is the usage based on the
data set provided to analyze.

Research Seminar May 31, 2017 6


S/W Visualization

4. Infographics & Timelines

Inforgraphics are a type of visualization


created to tell a specific story and for a specific
audience. They are designed and presented with a
context and graphics of the visualization is closely
related to either the website on which it is presented
or the other source on which it can be visualized.
Major difference of infographic type
visualization from other types of visualization is that
the process used to create other visualization forms
can be reused and applied to another data sets as
infographics is more contextual and presented with
more of a graphical flair as can be clearly see from
Figure 2.6.

Fig. 2.6 Infographic Visualization Fig. 2.7 Timeline Visualization of EMC system files

Timelines is a graphical way of displaying a list of events in chronological order. Figure


2.7 is an example of timeline visualization which is a count of events across almost two months
period of time taken from a set of predefined log files residing in each node of an EMC system
used for Root Cause Analysis. Larger the circle, higher is the count value.

V. Visualization Attributes
There are some major attributes that are considered while using any of these above
mentioned visualization techniques which are as follows:

 Color

 Spatial position

 Size

 Shape

 Animation

Research Seminar May 31, 2017 7


S/W Visualization

VI. Different Software Visualizations

1. CodeCity

CodeCity is an integrated environment for software analysis. The below image is


an example of CodeCity visualization.
This view provides a hierarchical visualization structure of a particular software
project.

Fig. 3.1 Example of CodeCity Visualization [5]

Software systems in CodeCity visualizations are interactive and navigable 3D


cities as shown in image. Buildings depict Classes, Height of a building depicts number of
methods, Districts depicts Packages in which the buildings reside and Base is the number
of attributes.
Metrics that can influence the appearance of the city is decided and depended upon
the purpose of visualization. For example, Number of methods (NOM) metric is mapped
on the height to denote the amount of functionality of a class and Number of attributes
(NOA) on size of base of building. So, a class with many methods and less attributes will
be represented as a tall and thin building. On the other hand, a class with high number of
attributes and few methods will appear like a platform/parking lot. Thus, CodeCity reveals
such extremes of a system very easily.

2. Code Ownership Distribution Map

A software project is more efficient if all members of the development team can
understand all parts of the code base which also leads to more consistency in the code
written. This leads to increase in collective code ownership.
Collective code ownership also leads to reuse of existing code because developers
are aware of how to leverage each other’s work.

This distribution map visualization helps to understand who owns the code base
which ultimately leads to collective code ownership analysis.
It also helps to determine which parts of codebase are owned by a team or by a
single committer.

Research Seminar May 31, 2017 8


S/W Visualization

In Figure 3.2, rectangle


blocks are directories,
colored squares are the
source code files and
different color represents
different owners of those
files.

Fig. 3.2 Example of Code


Ownership Distribution Map
[10]

3. Dependency Structure Matrix

This visualization helps to determine how isolated and modular the code is. Any
professional programmer will tell you that the software code you develop for a project
should have a high cohesion (methods in class similar and can stand alone) and low
coupling (inter-dependencies between software modules). If the code follows these
principles, it becomes easier to understand the code and also to extend if needed.
Dependence structure matrix visualization shows if the code is high in cohesion
and low in coupling. It also shows if there is recursion in code. The focus is more on
spotting the patterns like cohesion inside components and coupling outside.

3.3 [10] is a
< < Figure
DSM matrix with
two axes. The
columns,
components across
the x-axis represents
outgoing
dependencies, while
the rows,
components across
the y-axis shows
incoming
dependencies.
Squares in
orange depict
cohesive
components/package
and areas with high
cohesion are
highlighted in pink.
When you see a
small number of
dependencies outside of that package (i.e. outside the orange zone), it suggests a low
coupling. A row filled with dots (in blue) signifies a component that many other
components depend on. This can be acceptable but often it is a sign of a lack of cohesion.

Research Seminar May 31, 2017 9


S/W Visualization

While a column filled with dots (in green) represents a component that depends on many
other components, which is usually a sign of bad coupling.
As the systems get larger with more and more classes and modules to visualize it’s
useful to highlight such patterns, such as coupling within a component, or rows and
columns of dependencies outside a component, become easier to spot.

VII. Software/Data Visualization Tools


There are many popular tools available for creating data visualizations. Its interactive
capabilities and powerful visualization features helps the experts in this field to create some
innovative and advanced visualizations.
Following are some of the tools with their respective visualization & its features:

1. R Programming

Fig. 4.1 Combining power of R with D3.js [6]

R Programming language was created for the purpose of data analysis.


1) It is a free and open source software. You can view, modify & redistribute
source code.
2) It can automatically download, install and load third party data visualization
packages into memory at runtime.
3) It can use server side scripts.

Research Seminar May 31, 2017 10


S/W Visualization

2. Plotly

1) Plotly is a free and


online tool with good
Graphical User Interface.
2) It has libraries for
Python, R, Matlab, e.t.c.
3) Plotly.js is an open
source Javascript library
for creating graphs and
custom dashboards.

In the example in Figure


4.2, different colors are
different groups of twitter
users which are basically
based on how many
friends they follow and
how many followers they
have.

Fig. 4.2 Example of combining Plotly.js with R

3. Tableau & Qlikview

Fig. 4.3 World GDP visualization in Tableau

Both Tableau and Qlikview are commercial and more popular softwares for data
visualizations.

Research Seminar May 31, 2017 11


S/W Visualization

1) They are more focused on Business Intelligence.


2) It can plot latitude and longitude co-ordinates.
3) Expensive but it has a mobile application as well.
4) Almost any data source can be imported on these software.

In terms of visualization criteria, Qlikview is more mature than Tableau because it


has a better Data interactivity and Visualization drilldown but at the same time it is more
expensive and faster in implementation than Tableau.

VIII. Software Quality Visualization


Development of software is always a challenge. That is why, it is necessary to have
professionals who understands the quality of source code and this directly impacts the overall cost
of the project. These professionals should know to reveal all the risks behind low quality code and
this revelation has to be done at the time of development and not when it’s already too late. This
is where visualization of software quality is essential at the development stages which will help
these professionals to interpret the metrics that impact the development of the software project.

As you can see in the


Figure 5.1, whenever there
is a feature request during
the process of software
planning and development,
the development team has
two choices, either to
develop a clean and smart
solution or give a quick and
dirty one.

Suppose the
organization that makes the
application decides to give
quick and dirty solutions.
Fig. 5.1 Feature request during software
production

Every application development


goes through multiple SPRINT levels with
the aim that each succeeding level is
better than the predecessor in terms of
development progress. In the mentioned
scenario, quick and dirty solutions will
only give a temporary illusion that
everything is ok by carrying over the
technical debt and will only have a ripple
effect on the later levels as shown in the
Figure 5.2.
Fig. 5.2 Effect of bad solutions in SPRINT levels

After a few months of development, the software application version will have more bugs,
more inconsistencies and more redundancies in code which will lead to slower development,
more testing and late release and deployment.

Research Seminar May 31, 2017 12


S/W Visualization

 Impactful Software Metrics

1. Code Coverage

2. Nested Code

3. Code Complexity

4. Code Duplication

5. Code Leftovers

 Tools

Following are the two most widely used tooling platforms for Software quality
inspection and visualization with their features.

1. SonarQube

- Open source platform written in Java and expandable with plugins.


- Offers reports on duplicated code, coding standards, unit tests, code coverage,
code complexity, comments, bugs, and security vulnerabilities.
- Records metrics history and provides evolution graphs.
- Provides fully automated analysis.

2. Seerene

- It is a code with people management platform that lets top management and
executives of an IT organization to see across all of their software initiatives.
- Visualizes aspects like effort, costs, and risks which makes it easy to understand.
- Does not require change in behavior and no code leaves the firewall.
- Compares software performance to industry benchmarks (i.e. data aggregated
from competitors) and predicts how it well it will perform in the future.

IX. Conclusion & Future Work


Software Data Visualization thus provides the users an efficient manner to:

 Understand the source code structure.

 Interpret the various software metrics and prioritize them with respect to its impact and
influence on the project.

 Analyze the data with the help of different tools.

 Determine the complexity of the systems.

Few of the researched and common visualizations that helps in analysis of different
aspects of the software for various stakeholders are integrated in the table below:

Visualization View Visualization Type Analysis


CodeCity 3D Visualization Quickly detects design
weakness and also suggests

Research Seminar May 31, 2017 13


S/W Visualization

restructuring
recommendations.
Code ownership Distribution Memory Map Commonalities and
Map Visualization differences in program code
ownership
Dependency Structure Matrix Visualization Isolation and modularity of
Matrix program code
Graphical View Graph visualization Project completion status,
code dependecies
Algorithm Animations Interactive visualization Easy algorithm
understanding leading to
exploratory learning
State Chart Information visualization Diagrammatic description
of requirements using
statechart notations
Post Deployment View End-user Software Finding bugs, testing,
Engineering visualization maintenance and
requirements specifications
support

Even though Visualization development has already progressed in above mentioned view
areas and also in 3D & Virtual Reality (VR) space at present, there is a very good future scope of
Software Data Visualization in Augmented Reality (AR) where the interactivity also increases
and is more user friendly.
Following image shows the step-wise execution of visualization in AR which will help in
visualization of software product evolution:

Fig. 6 Example of CodeCity visualization in Augmented Reality

Advantages of AR Visualization Disadvantages


Light, portable, inexpensive Data Conversion required
Confidential Data Encryption Static scene has to be set up
Personalized Data View Specific App development required

Research Seminar May 31, 2017 14


S/W Visualization

References
1. Julia Paredes, Craig Anslow, and Frank Maurer. "Information Visualization for Agile
Software Development." 2014 Second IEEE Working Conference on Software
Visualization (2014)

2. Florian Fittkau, Alexander Krause, and Wilhelm Hasselbring. "Exploring Software Cities
in Virtual Reality." 2015 IEEE 3rd Working Conference on Software Visualization
(VISSOFT) (2015)

3. Mustafa Hammad. “Visualization Approach for Software Projects.” Canadian Journal of


Pure and Applied Sciences (2015)

4. Müller, Richard “Software Visualization in 3D – Implementation, Evaluation, and


Applicability.” Leipzig University (2015)

5. CodeCity Visualization clips >> http://wettel.github.io/codecity-movies.html

6. Create Data Visualizations with R >> https://www.pluralsight.com/blog/software-


development/data-visualization-r

7. Understanding Data Visualization >> http://seeingdata.org/

8. Fabian Beck. “Perspectives on Software Visualization.” University of Stuttgart

9. Stephen Diehl, Peter Eades, John Stasko. “Software Visualization”

10. Collection of Visualizations >> http://www.softviscollection.org/

*********************** END OF DOCUMENT ***************************

Research Seminar May 31, 2017 15


View publication stats

You might also like