SlideShare a Scribd company logo
Interactive Visualization
(of Software)
Markus Scheidgen
1
DEMO
2
Visual Analytics Framework
3
source
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
datameasurements
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
datameasurements
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
datameasurements
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
datameasurements visualizationprojection
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
datameasurements visualizationprojection
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
complex/interactive
visualization
‣ multiple connected charts for
different properties
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
➜ visual analytics / explorative data analysis / multi-variant data analysis ➜
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
complex/interactive
visualization
‣ multiple connected charts for
different properties
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
➜ visual analytics / explorative data analysis / multi-variant data analysis ➜
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
‣ concrete measurements, projections, and combinations depend
on the use case
‣ description and realization of measurement classes/types are use
case dependent
‣ description language for projections and combinations based on
a common data meta-model and popular chart types are
independent from specific use cases
complex/interactive
visualization
‣ multiple connected charts for
different properties
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
➜ visual analytics / explorative data analysis / multi-variant data analysis ➜
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
‣ concrete measurements, projections, and combinations depend
on the use case
‣ description and realization of measurement classes/types are use
case dependent
‣ description language for projections and combinations based on
a common data meta-model and popular chart types are
independent from specific use cases
meta-model
complex/interactive
visualization
‣ multiple connected charts for
different properties
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
➜ visual analytics / explorative data analysis / multi-variant data analysis ➜
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
‣ concrete measurements, projections, and combinations depend
on the use case
‣ description and realization of measurement classes/types are use
case dependent
‣ description language for projections and combinations based on
a common data meta-model and popular chart types are
independent from specific use cases
meta-model
DSL
complex/interactive
visualization
‣ multiple connected charts for
different properties
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
➜ visual analytics / explorative data analysis / multi-variant data analysis ➜
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
‣ concrete measurements, projections, and combinations depend
on the use case
‣ description and realization of measurement classes/types are use
case dependent
‣ description language for projections and combinations based on
a common data meta-model and popular chart types are
independent from specific use cases
meta-model
DSL
DSL
complex/interactive
visualization
‣ multiple connected charts for
different properties
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
➜ visual analytics / explorative data analysis / multi-variant data analysis ➜
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
‣ concrete measurements, projections, and combinations depend
on the use case
‣ description and realization of measurement classes/types are use
case dependent
‣ description language for projections and combinations based on
a common data meta-model and popular chart types are
independent from specific use cases
meta-model
DSL
DSL
library
complex/interactive
visualization
‣ multiple connected charts for
different properties
Visual Analytics Framework
3
source
software, artifacts
‣ code,
‣ models,
‣ execution traces,
‣ snapshots, histories
metrics
dependencies
structure
histories of metrics
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common meta-model
‣ data-set, comprising
‣ data-points, comprising
‣ properties
common nomenclature
➜ visual analytics / explorative data analysis / multi-variant data analysis ➜
datameasurements visualizationprojection
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
combination
natural phenomena
‣ dust particles
‣ seismic activity
‣ traffic
‣ concrete measurements, projections, and combinations depend
on the use case
‣ description and realization of measurement classes/types are use
case dependent
‣ description language for projections and combinations based on
a common data meta-model and popular chart types are
independent from specific use cases
meta-model
DSL
DSL
library
framework
complex/interactive
visualization
‣ multiple connected charts for
different properties
Agenda
▶ Visual Analytics Framework
▶ Measuring Software
▶ Related Work
▶ Meta-Model
▶ Complex Interactive Visualization-Language
▶ Framework: Architecture and Realization
▶ Conclusions
4
Measuring Software
▶ Artifacts primarily include: models, source code (compilation units)
▶ Data as representation of abstractions within a piece of software
▶ Three kinds of abstractions
▶ structures => hierarchies, trees
▶ dependencies => graphs
▶ metrics => metric data
▶ Metrics
▶ defined by (mathematical) functions that assign numeric values (measures) to software
components to represent certain properties about set components
▶ metrics are abstractions derived from statics or even dynamics of software components
▶ for existing (e.g. classes, methods) and derived software components (e.g. dependencies)
▶ can be aggregated alongside other abstractions; e.g. package metrics based on class metrics
▶ Aggregations: abstractions that summaries other abstractions, usually in the form
mathematical (usually statistical) operations, e.g. sum, average, median, etc.
5
Measuring Software
▶ Eclipse Java Projects and MoDisco as a case study
▶ complex source artifact language
▶ complex meta-model (350+ classes)
▶ well understood abstractions
▶ containment hierarchies (package / class / method)
▶ inheritance hierarchies
▶ dependencies: call graphs, class and package dependencies
▶ metrics: CK-metrics, complexity metrics (Halstead, McCabe)
6
Related Work
7
source data visualization
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
complex/interactive
visualization
‣ multiple connected charts for
different properties
common meta-model
measurements projection
combination
lots of programming
Visual analytics as a conceptual
framework
1. Visual analysis and design: Tamara Munzner, 2014
lots of programming
lots of programming
Related Work
8
source data visualization
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
complex/interactive
visualization
‣ multiple connected charts for
different properties
common meta-model
measurements projection
combination
library
Caleydo – A visual analysis
framework
1. Alexander Lex, Marc Streit, Ernst Kruijff, Dieter Schmalstieg: Caleydo –
Design and Evaluation of a Visual Analysis Framework for Gene Expression
Data in its Biological Context, 2010
2. Samuel Gratzl et al.: Caleydo Web: An Integrated Visual Analysis Platform
for Biomedical Data, 2015
lots of programming
lots of programming
eclipse-based framework
Related Work
9
source data visualization
‣ tables
(nominal, ordinal, metric)
‣ relations
‣ hierarchies
‣ time series
‣ (geo-)spatial data
‣ ontologies
common charts
‣ histogram, parallel coordinates,
scatter, box&whiskers, spider
web, ...
‣ graphs, chords, edge, ...
‣ graphs, trees, tree map, sun
burst, ...
‣ line (time series), ...
‣ maps, ...
‣ graphs (taxonomy/ontology), ...
complex charts
‣ multiple properties of data points in
a single chart (polymetric views)
‣ one per data point, but multiple
dimensions on each symbol
complex/interactive
visualization
‣ multiple connected charts for
different properties
common meta-model
measurements projection
combination
Specific software visualization
solutions
10
Related Work
Polymetric Views Software Maps
Lanza, M., & Ducasse, S. (2003). Polymetric views - A
lightweight visual approach to reverse engineering. IEEE
Transactions on Software Engineering, 29(9), 782–795.
Kuhn, A., Loretan, P., & Nierstrasz, O. (2008). Consistent
layout for thematic software maps. Proceedings - Working
Conference on Reverse Engineering, WCRE, 209–218.
11
Related Work
Wettel, R. (2010). Software Systems as Cities. Università Della Svizzera Italiana. http://doi.org/
10.1145/1985793.1985868
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC RFC
A 1 2
B 1 1
C 2 1
program
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
WMC RFC
A 1 2
B 1 1
C 2 1
program
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
WMC RFC
A 1 2
B 1 1
C 2 1
program
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
WMC RFC
A 1 2
B 1 1
C 2 1
program
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
WMC RFC
A 1 2
B 1 1
C 2 1
program
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
WMC RFC
A 1 2
B 1 1
C 2 1
program
Same events and styles for all DOM elements!
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
WMC RFC
A 1 2
B 1 1
C 2 1
program
Same events and styles for all DOM elements!
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
traces
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
WMC
RFC
A
B C
browser
WMC RFC
A 1 2
B 1 1
C 2 1
program
Same events and styles for all DOM elements!
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
traces
scatter plot library
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
Programming Libraries for Visualizations
12
WMC
RFC
A
B C
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
WMC
RFC
A
B C
browser
WMC RFC
A 1 2
B 1 1
C 2 1
program
Same events and styles for all DOM elements!
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
traces
DOM
Web Technologies: D3.js, DOM, Events, Styles
13
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
WMC
RFC
A
B C
browser
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
Same events and styles for all DOM elements!
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
WMC
NOC
A
B
C
D3.js – a transformation
language for all kinds of
visualizations rather
than a library of some
specific visualizations.
General Data Model
▶ directed (non hyper) graphs
▶ nodes (or data points: a set of one or more
measurements on a single member of a population.)
■ type
■ key-value pairs (properties, measurements)
■ same keys for same type
▶ edges
■ key, source nodes of same type have edges for same keys
(property of the source type)
■ can be composite
■ key-value pairs (properties, measurements)
■ same keys for same edge key and source type
▶ (property)-values (measures) are either
■ nominal: unordered (finite=categorial) possible feature
values (e.g. sex, boolean values, colors)
■ ordinal: (finite) feature values with order (e.g. school
marks)
■ metric: infinite values with order and null value (a.k.a
numbers)
14
{ a: 32, b: “good” }
{ c: 1.2 }
General Data Model
▶ directed (non hyper) graphs
▶ nodes (or data points: a set of one or more
measurements on a single member of a population.)
■ type
■ key-value pairs (properties, measurements)
■ same keys for same type
▶ edges
■ key, source nodes of same type have edges for same keys
(property of the source type)
■ can be composite
■ key-value pairs (properties, measurements)
■ same keys for same edge key and source type
▶ (property)-values (measures) are either
■ nominal: unordered (finite=categorial) possible feature
values (e.g. sex, boolean values, colors)
■ ordinal: (finite) feature values with order (e.g. school
marks)
■ metric: infinite values with order and null value (a.k.a
numbers)
14
{ a: 32, b: “good” }
{ c: 1.2 }
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
General Data Model
▶ directed (non hyper) graphs
▶ nodes (or data points: a set of one or more
measurements on a single member of a population.)
■ type
■ key-value pairs (properties, measurements)
■ same keys for same type
▶ edges
■ key, source nodes of same type have edges for same keys
(property of the source type)
■ can be composite
■ key-value pairs (properties, measurements)
■ same keys for same edge key and source type
▶ (property)-values (measures) are either
■ nominal: unordered (finite=categorial) possible feature
values (e.g. sex, boolean values, colors)
■ ordinal: (finite) feature values with order (e.g. school
marks)
■ metric: infinite values with order and null value (a.k.a
numbers)
15
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
type:String
label:String
DataPoint
name:String
Property
isComposite:Boolean
Reference
value:any
Attribute
properties *
properties *
dataPoints *
<<DataType>>
any
<<Dat
Nu
<<DataType>>
Ordinal
<<DataType>>
Nominal
General Data Model
// DataPoints of same type have the same Properties
context DataPoint
inv: DataPoint::allInstances->select(type=self.type)->forAll(other|
other.properties->forAll(p1|self.properties->exist(p2|
p1.name = p2.name and
p1.typeOf = p2.typeOf and
p1.isComposite = p2.isComposite and
p1.value.typeOf() == p2.value.typeOf()))
// References from same type DataPoints and same name have
same properties
context DataPoint
inv: self.references->forAll(ref1|DataPoint::allInstances->select(dp|
dp.type = self.type)->forAll(dp|dp.refernces->forAll(ref2|
ref1.name = ref2.name implies ref1.properties->forAll(p1|
ref2.properties.exist(p2|
p1.name=p2.name and
p1.typeOf = p2.typeOf and
p1.value.typeOf() == p2.value.typeOf()))))
// References reference DataPoints with consistent type
context Reference:
inv: self.dataPoints.forAll(a,b|a.type = b.type)
// Composite References form circle free graphs
...
16
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
type:String
label:String
DataPoint
name:String
Property
isComposite:Boolean
Reference
value:any
Attribute
properties *
properties *
dataPoints *
<<DataType>>
any
<<Dat
Nu
<<DataType>>
Ordinal
<<DataType>>
Nominal
DEMO
17
Complex Interactive Visualization-Language
18
type
pattern
configuration
Chart
color
Group
Data
uri
Sourcegroups *
* charts
input
1
context Chart::allInputGroups
query: if (input.isInstanceOf(Group))
input.charts->collect(allInputGroups)->union({input})
else {}
// Charts cannot take input that is based on their own selection
context Chart
inv: not allInputGroups->collect(charts)->contains(self)
/allInputGroups*
A
r
B
Complex Interactive Visualization-Language
19
D is a set of data-points
I ✓ D the set of input data-points
selC a selection function for each chart
IC
= selC(I) ✓ children?
(I)
iSC
r = {d 2 IC
|9d0
: d 2 parent?
(d0
_ d0
2 parent?
(d)}
dSC
r a user selection with dSC
r ✓ IC
✓ D
iSr =
[
C2charts(r)
dSC
r
D
I ✓ D
IA
IB
A
r
B
iSr
iSA
r
iSr
iSB
r
dSA
r dSB
r
iSr = dSA
r [ dSB
r
I I
IA
IB
Complex Interactive Visualization-Language
20
D is a set of data-points
I ✓ D the set of input data-points
selC a selection function for each chart
IC
= selC(I) ✓ children?
(I)
iSC
r = {d 2 IC
|9d0
: d 2 parent?
(d0
_ d0
2 parent?
(d)}
dSC
r a user selection with dSC
r ✓ IC
✓ D
iSr =
[
C2charts(r)
dSC
r
...
...
...
D
I ✓ D
IA
IB
A
r
B
iSr
iSA
r
iSr
iSB
r
dSA
r dSB
r
iSr = dSA
r [ dSB
r
I I
IA
IB
Complex Interactive Visualization-Language
21
A
r
B C
b
r
A
B B
r
A
b
C
A
r
B
Complex Interactive Visualization-Language
22
r
A
B
r
A
B b
type
pattern
configuration
Chart
color
Group
Data
uri
Sourcegroups *
* charts
input
1
context Chart::allInputGroups
query: if (input.isInstanceOf(Group))
input.charts->collect(allInputGroups)->union({input})
else {}
// Charts cannot take input that is based on their own selection
context Chart
inv: not allInputGroups->collect(charts)->contains(self)
/allInputGroups*
Complex Interactive Visualization-Language
23
DOM
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
WMC
RFC
A
B C
browser
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
Same events and styles for all DOM elements!
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
WMC
NOC
A
B
C
A
r
B
iSr
iSA
r
iSr
iSB
r
dSA
r dSB
r
iSr = dSA
r [ dSB
r
I I
IA
IB
Complex Interactive Visualization-Language
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
WMC
RFC
A
B C
browser
Complex Interactive Visualization-Language
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
WMC
RFC
A
B C
browser
Complex Interactive Visualization-Language
WMC
browser
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
WMC
RFC
A
B C
browser
Complex Interactive Visualization-Language
WMC
browser
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
WMC
RFC
A
B C
browser
Complex Interactive Visualization-Language
WMC
browser
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
traces
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
Complex Interactive Visualization-Language
25
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
iSr ✓ DI
C
iSC
r ✓ IC
✓ D
prC(iSC
r )
IC
= selC(I)
prC(IC
)
SC
r ✓ DC
dSC
r = pr 1
(SC
r ) ✓ I
IC
✓ children?
(I) ✓ D
prC(IC
) ✓ DC
D
dSC
r = pr 1
(SC
r ) ✓ IC
A
r
iSr
iSA
r
iSr = dSA
r [
I
IA
Complex Interactive Visualization-Language
25
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
iSr ✓ DI
C
iSC
r ✓ IC
✓ D
prC(iSC
r )
IC
= selC(I)
prC(IC
)
SC
r ✓ DC
dSC
r = pr 1
(SC
r ) ✓ I
IC
✓ children?
(I) ✓ D
prC(IC
) ✓ DC
D
dSC
r = pr 1
(SC
r ) ✓ IC
A
r
iSr
iSA
r
iSr = dSA
r [
I
IA
Complex Interactive Visualization-Language
25
Class { WMC: 3, RFC: 15, ... }
calls { amount: 2 }
Package
classessubpackages
<svg:g>
<svg:circle .../>
<svg:circle .../>
<svg:circle .../>
<svg:g>
...
</svg:g>
transformation
DOM
traces
<svg:g>
<svg:rect .../>
<svg:rect .../>
<svg:g>
...
</svg:g>
DOM
iSr ✓ DI
C
iSC
r ✓ IC
✓ D
prC(iSC
r )
IC
= selC(I)
prC(IC
)
SC
r ✓ DC
dSC
r = pr 1
(SC
r ) ✓ I
IC
✓ children?
(I) ✓ D
prC(IC
) ✓ DC
D
dSC
r = pr 1
(SC
r ) ✓ IC
A
r
iSr
iSA
r
iSr = dSA
r [
I
IA
Framework: Architecture and Realization
▶ DOM, Styles, Events
▶ JSON
▶ D3.js
▶ Web-Components and Angular2
■ components
■ data-binding and events
26
Framework: Architecture and Realization
27
<d3ng-groups class="chart" (selectedChanged)="selection=$event.selected"
[groups]="[0]" [context]="context">
<d3ng-scatter-plot d3ngSource [source]="data"
pattern="container"
x="x" y="y"
[config]="scatterPlotConfig">
</d3ng-scatter-plot>
</d3ng-groups>
<d3ng-scatter-plot class="chart" d3ngSource
[source]="selection"
pattern="container/contents" [allowEmpty]="true"
x="x" y="y"
[config]="scatterPlotConfig">
</d3ng-scatter-plot>
data = [{
type:"container",
x:1, y:1
children: [{
type:"contents",
x:0.85, y:0.85
},...]
},...]
Future Work
28

More Related Content

Similar to Interactive Visualization of Software

GIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.pptGIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.ppt
safayetmim1
 
GIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.pptGIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.ppt
vikramvsu
 
GIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.pptGIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.ppt
GodwinKingNyamador
 
Cartographic data structures
Cartographic data structuresCartographic data structures
GIS Data Types
GIS Data TypesGIS Data Types
GIS Data Types
John Reiser
 
3 D Analyst
3 D Analyst3 D Analyst
3 D Analyst
Hartanto Sanjaya
 
Gis capabilities on Big Data Systems
Gis capabilities on Big Data SystemsGis capabilities on Big Data Systems
Gis capabilities on Big Data Systems
Ahmad Jawwad
 
R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016
R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016
R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016
Henk Sierdsema
 
Time series and forecasting from wikipedia
Time series and forecasting from wikipediaTime series and forecasting from wikipedia
Time series and forecasting from wikipedia
Monica Barros
 
Probabilistic Modelling with Information Filtering Networks
Probabilistic Modelling with Information Filtering NetworksProbabilistic Modelling with Information Filtering Networks
Probabilistic Modelling with Information Filtering Networks
Tomaso Aste
 
Gis Geographical Information System Fundamentals
Gis Geographical Information System FundamentalsGis Geographical Information System Fundamentals
Gis Geographical Information System Fundamentals
Uroosa Samman
 
GIS data structure
GIS data structureGIS data structure
GIS data structure
Thana Chirapiwat
 
Coates p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...
Coates  p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...Coates  p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...
Coates p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...
ArchiLab 7
 
John McGaughey - Towards integrated interpretation
John McGaughey - Towards integrated interpretationJohn McGaughey - Towards integrated interpretation
John McGaughey - Towards integrated interpretation
The University of Western Australia
 
08 Agency Of Mapping
08 Agency Of Mapping08 Agency Of Mapping
08 Agency Of Mapping
ctc3b
 
Scattered gis handbook
Scattered gis handbookScattered gis handbook
Scattered gis handbook
Waleed Liaqat
 
spatial databases ADBMS ppt
spatial databases ADBMS pptspatial databases ADBMS ppt
spatial databases ADBMS ppt
RitaThakkar1
 
Create swath profiles in GRASS GIS
Create swath profiles in GRASS GISCreate swath profiles in GRASS GIS
Create swath profiles in GRASS GIS
Skyler Sorsby
 
Geotagging Photographs By Sanjay Rana
Geotagging Photographs By Sanjay RanaGeotagging Photographs By Sanjay Rana
Geotagging Photographs By Sanjay Rana
sanjay_rana
 
081.ppt
081.ppt081.ppt
081.ppt
amil baba
 

Similar to Interactive Visualization of Software (20)

GIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.pptGIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.ppt
 
GIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.pptGIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.ppt
 
GIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.pptGIS_Whirlwind_Tour.ppt
GIS_Whirlwind_Tour.ppt
 
Cartographic data structures
Cartographic data structuresCartographic data structures
Cartographic data structures
 
GIS Data Types
GIS Data TypesGIS Data Types
GIS Data Types
 
3 D Analyst
3 D Analyst3 D Analyst
3 D Analyst
 
Gis capabilities on Big Data Systems
Gis capabilities on Big Data SystemsGis capabilities on Big Data Systems
Gis capabilities on Big Data Systems
 
R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016
R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016
R-tools to analyse bird data_Henk sierdsema_Bird numbers 2016
 
Time series and forecasting from wikipedia
Time series and forecasting from wikipediaTime series and forecasting from wikipedia
Time series and forecasting from wikipedia
 
Probabilistic Modelling with Information Filtering Networks
Probabilistic Modelling with Information Filtering NetworksProbabilistic Modelling with Information Filtering Networks
Probabilistic Modelling with Information Filtering Networks
 
Gis Geographical Information System Fundamentals
Gis Geographical Information System FundamentalsGis Geographical Information System Fundamentals
Gis Geographical Information System Fundamentals
 
GIS data structure
GIS data structureGIS data structure
GIS data structure
 
Coates p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...
Coates  p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...Coates  p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...
Coates p 1999: exploring 3_d design worlds using lindenmeyer systems and gen...
 
John McGaughey - Towards integrated interpretation
John McGaughey - Towards integrated interpretationJohn McGaughey - Towards integrated interpretation
John McGaughey - Towards integrated interpretation
 
08 Agency Of Mapping
08 Agency Of Mapping08 Agency Of Mapping
08 Agency Of Mapping
 
Scattered gis handbook
Scattered gis handbookScattered gis handbook
Scattered gis handbook
 
spatial databases ADBMS ppt
spatial databases ADBMS pptspatial databases ADBMS ppt
spatial databases ADBMS ppt
 
Create swath profiles in GRASS GIS
Create swath profiles in GRASS GISCreate swath profiles in GRASS GIS
Create swath profiles in GRASS GIS
 
Geotagging Photographs By Sanjay Rana
Geotagging Photographs By Sanjay RanaGeotagging Photographs By Sanjay Rana
Geotagging Photographs By Sanjay Rana
 
081.ppt
081.ppt081.ppt
081.ppt
 

More from Markus Scheidgen

Creating and Analyzing Source Code Repository Models - A Model-based Approach...
Creating and Analyzing Source Code Repository Models - A Model-based Approach...Creating and Analyzing Source Code Repository Models - A Model-based Approach...
Creating and Analyzing Source Code Repository Models - A Model-based Approach...
Markus Scheidgen
 
Model Comparison for Delta-Compression
Model Comparison for Delta-CompressionModel Comparison for Delta-Compression
Model Comparison for Delta-Compression
Markus Scheidgen
 
Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...
Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...
Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...
Markus Scheidgen
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
Markus Scheidgen
 
Model-based Analysis of Large Scale Software Repositories
Model-based Analysis of Large Scale Software RepositoriesModel-based Analysis of Large Scale Software Repositories
Model-based Analysis of Large Scale Software Repositories
Markus Scheidgen
 
Reference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based DatasetsReference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based Datasets
Markus Scheidgen
 
Research Training Group METRIK
Research Training Group METRIKResearch Training Group METRIK
Research Training Group METRIK
Markus Scheidgen
 
HWL - A High Performance Wireless Sensor Research Network
HWL - A High Performance Wireless Sensor Research NetworkHWL - A High Performance Wireless Sensor Research Network
HWL - A High Performance Wireless Sensor Research Network
Markus Scheidgen
 

More from Markus Scheidgen (8)

Creating and Analyzing Source Code Repository Models - A Model-based Approach...
Creating and Analyzing Source Code Repository Models - A Model-based Approach...Creating and Analyzing Source Code Repository Models - A Model-based Approach...
Creating and Analyzing Source Code Repository Models - A Model-based Approach...
 
Model Comparison for Delta-Compression
Model Comparison for Delta-CompressionModel Comparison for Delta-Compression
Model Comparison for Delta-Compression
 
Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...
Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...
Metamodeling vs Metaprogramming, A Case Study on Developing Client Libraries ...
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
 
Model-based Analysis of Large Scale Software Repositories
Model-based Analysis of Large Scale Software RepositoriesModel-based Analysis of Large Scale Software Repositories
Model-based Analysis of Large Scale Software Repositories
 
Reference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based DatasetsReference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based Datasets
 
Research Training Group METRIK
Research Training Group METRIKResearch Training Group METRIK
Research Training Group METRIK
 
HWL - A High Performance Wireless Sensor Research Network
HWL - A High Performance Wireless Sensor Research NetworkHWL - A High Performance Wireless Sensor Research Network
HWL - A High Performance Wireless Sensor Research Network
 

Recently uploaded

在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
v7oacc3l
 
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
mkkikqvo
 
writing report business partner b1+ .pdf
writing report business partner b1+ .pdfwriting report business partner b1+ .pdf
writing report business partner b1+ .pdf
VyNguyen709676
 
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens""Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
sameer shah
 
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCAModule 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
yuvarajkumar334
 
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
wyddcwye1
 
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
sameer shah
 
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
nuttdpt
 
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
hyfjgavov
 
Intelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicineIntelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicine
AndrzejJarynowski
 
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
Timothy Spann
 
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data LakeViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
Walaa Eldin Moustafa
 
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
apvysm8
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
bmucuha
 
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
ihavuls
 
Monthly Management report for the Month of May 2024
Monthly Management report for the Month of May 2024Monthly Management report for the Month of May 2024
Monthly Management report for the Month of May 2024
facilitymanager11
 
一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理
一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理
一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理
slg6lamcq
 
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
taqyea
 
Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024
ElizabethGarrettChri
 
Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......
Sachin Paul
 

Recently uploaded (20)

在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
 
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
 
writing report business partner b1+ .pdf
writing report business partner b1+ .pdfwriting report business partner b1+ .pdf
writing report business partner b1+ .pdf
 
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens""Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
 
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCAModule 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
Module 1 ppt BIG DATA ANALYTICS_NOTES FOR MCA
 
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
 
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
 
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
 
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
 
Intelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicineIntelligence supported media monitoring in veterinary medicine
Intelligence supported media monitoring in veterinary medicine
 
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
 
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data LakeViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data Lake
 
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
 
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
 
Monthly Management report for the Month of May 2024
Monthly Management report for the Month of May 2024Monthly Management report for the Month of May 2024
Monthly Management report for the Month of May 2024
 
一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理
一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理
一比一原版南十字星大学毕业证(SCU毕业证书)学历如何办理
 
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
一比一原版(harvard毕业证书)哈佛大学毕业证如何办理
 
Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024
 
Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......Palo Alto Cortex XDR presentation .......
Palo Alto Cortex XDR presentation .......
 

Interactive Visualization of Software

  • 4. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories
  • 5. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic
  • 6. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories datameasurements natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic
  • 7. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature datameasurements natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic
  • 8. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature datameasurements natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic
  • 9. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature datameasurements visualizationprojection natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic
  • 10. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature datameasurements visualizationprojection natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic
  • 11. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic
  • 12. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic complex/interactive visualization ‣ multiple connected charts for different properties
  • 13. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature ➜ visual analytics / explorative data analysis / multi-variant data analysis ➜ datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic complex/interactive visualization ‣ multiple connected charts for different properties
  • 14. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature ➜ visual analytics / explorative data analysis / multi-variant data analysis ➜ datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic ‣ concrete measurements, projections, and combinations depend on the use case ‣ description and realization of measurement classes/types are use case dependent ‣ description language for projections and combinations based on a common data meta-model and popular chart types are independent from specific use cases complex/interactive visualization ‣ multiple connected charts for different properties
  • 15. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature ➜ visual analytics / explorative data analysis / multi-variant data analysis ➜ datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic ‣ concrete measurements, projections, and combinations depend on the use case ‣ description and realization of measurement classes/types are use case dependent ‣ description language for projections and combinations based on a common data meta-model and popular chart types are independent from specific use cases meta-model complex/interactive visualization ‣ multiple connected charts for different properties
  • 16. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature ➜ visual analytics / explorative data analysis / multi-variant data analysis ➜ datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic ‣ concrete measurements, projections, and combinations depend on the use case ‣ description and realization of measurement classes/types are use case dependent ‣ description language for projections and combinations based on a common data meta-model and popular chart types are independent from specific use cases meta-model DSL complex/interactive visualization ‣ multiple connected charts for different properties
  • 17. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature ➜ visual analytics / explorative data analysis / multi-variant data analysis ➜ datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic ‣ concrete measurements, projections, and combinations depend on the use case ‣ description and realization of measurement classes/types are use case dependent ‣ description language for projections and combinations based on a common data meta-model and popular chart types are independent from specific use cases meta-model DSL DSL complex/interactive visualization ‣ multiple connected charts for different properties
  • 18. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature ➜ visual analytics / explorative data analysis / multi-variant data analysis ➜ datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic ‣ concrete measurements, projections, and combinations depend on the use case ‣ description and realization of measurement classes/types are use case dependent ‣ description language for projections and combinations based on a common data meta-model and popular chart types are independent from specific use cases meta-model DSL DSL library complex/interactive visualization ‣ multiple connected charts for different properties
  • 19. Visual Analytics Framework 3 source software, artifacts ‣ code, ‣ models, ‣ execution traces, ‣ snapshots, histories metrics dependencies structure histories of metrics common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common meta-model ‣ data-set, comprising ‣ data-points, comprising ‣ properties common nomenclature ➜ visual analytics / explorative data analysis / multi-variant data analysis ➜ datameasurements visualizationprojection complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol combination natural phenomena ‣ dust particles ‣ seismic activity ‣ traffic ‣ concrete measurements, projections, and combinations depend on the use case ‣ description and realization of measurement classes/types are use case dependent ‣ description language for projections and combinations based on a common data meta-model and popular chart types are independent from specific use cases meta-model DSL DSL library framework complex/interactive visualization ‣ multiple connected charts for different properties
  • 20. Agenda ▶ Visual Analytics Framework ▶ Measuring Software ▶ Related Work ▶ Meta-Model ▶ Complex Interactive Visualization-Language ▶ Framework: Architecture and Realization ▶ Conclusions 4
  • 21. Measuring Software ▶ Artifacts primarily include: models, source code (compilation units) ▶ Data as representation of abstractions within a piece of software ▶ Three kinds of abstractions ▶ structures => hierarchies, trees ▶ dependencies => graphs ▶ metrics => metric data ▶ Metrics ▶ defined by (mathematical) functions that assign numeric values (measures) to software components to represent certain properties about set components ▶ metrics are abstractions derived from statics or even dynamics of software components ▶ for existing (e.g. classes, methods) and derived software components (e.g. dependencies) ▶ can be aggregated alongside other abstractions; e.g. package metrics based on class metrics ▶ Aggregations: abstractions that summaries other abstractions, usually in the form mathematical (usually statistical) operations, e.g. sum, average, median, etc. 5
  • 22. Measuring Software ▶ Eclipse Java Projects and MoDisco as a case study ▶ complex source artifact language ▶ complex meta-model (350+ classes) ▶ well understood abstractions ▶ containment hierarchies (package / class / method) ▶ inheritance hierarchies ▶ dependencies: call graphs, class and package dependencies ▶ metrics: CK-metrics, complexity metrics (Halstead, McCabe) 6
  • 23. Related Work 7 source data visualization ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol complex/interactive visualization ‣ multiple connected charts for different properties common meta-model measurements projection combination lots of programming Visual analytics as a conceptual framework 1. Visual analysis and design: Tamara Munzner, 2014 lots of programming lots of programming
  • 24. Related Work 8 source data visualization ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol complex/interactive visualization ‣ multiple connected charts for different properties common meta-model measurements projection combination library Caleydo – A visual analysis framework 1. Alexander Lex, Marc Streit, Ernst Kruijff, Dieter Schmalstieg: Caleydo – Design and Evaluation of a Visual Analysis Framework for Gene Expression Data in its Biological Context, 2010 2. Samuel Gratzl et al.: Caleydo Web: An Integrated Visual Analysis Platform for Biomedical Data, 2015 lots of programming lots of programming eclipse-based framework
  • 25. Related Work 9 source data visualization ‣ tables (nominal, ordinal, metric) ‣ relations ‣ hierarchies ‣ time series ‣ (geo-)spatial data ‣ ontologies common charts ‣ histogram, parallel coordinates, scatter, box&whiskers, spider web, ... ‣ graphs, chords, edge, ... ‣ graphs, trees, tree map, sun burst, ... ‣ line (time series), ... ‣ maps, ... ‣ graphs (taxonomy/ontology), ... complex charts ‣ multiple properties of data points in a single chart (polymetric views) ‣ one per data point, but multiple dimensions on each symbol complex/interactive visualization ‣ multiple connected charts for different properties common meta-model measurements projection combination Specific software visualization solutions
  • 26. 10 Related Work Polymetric Views Software Maps Lanza, M., & Ducasse, S. (2003). Polymetric views - A lightweight visual approach to reverse engineering. IEEE Transactions on Software Engineering, 29(9), 782–795. Kuhn, A., Loretan, P., & Nierstrasz, O. (2008). Consistent layout for thematic software maps. Proceedings - Working Conference on Reverse Engineering, WCRE, 209–218.
  • 27. 11 Related Work Wettel, R. (2010). Software Systems as Cities. Università Della Svizzera Italiana. http://doi.org/ 10.1145/1985793.1985868
  • 28. Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12
  • 29. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12
  • 30. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A 1 2 B 1 1 C 2 1 program
  • 31. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C WMC RFC A 1 2 B 1 1 C 2 1 program
  • 32. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C WMC RFC A 1 2 B 1 1 C 2 1 program
  • 33. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C WMC RFC A 1 2 B 1 1 C 2 1 program
  • 34. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages WMC RFC A 1 2 B 1 1 C 2 1 program
  • 35. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages WMC RFC A 1 2 B 1 1 C 2 1 program Same events and styles for all DOM elements! <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM
  • 36. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages WMC RFC A 1 2 B 1 1 C 2 1 program Same events and styles for all DOM elements! <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM traces
  • 37. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages WMC RFC A B C browser WMC RFC A 1 2 B 1 1 C 2 1 program Same events and styles for all DOM elements! <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM traces
  • 38. scatter plot library Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages Programming Libraries for Visualizations 12 WMC RFC A B C Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages WMC RFC A B C browser WMC RFC A 1 2 B 1 1 C 2 1 program Same events and styles for all DOM elements! <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM traces
  • 39. DOM Web Technologies: D3.js, DOM, Events, Styles 13 Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages WMC RFC A B C browser <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> Same events and styles for all DOM elements! <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> WMC NOC A B C D3.js – a transformation language for all kinds of visualizations rather than a library of some specific visualizations.
  • 40. General Data Model ▶ directed (non hyper) graphs ▶ nodes (or data points: a set of one or more measurements on a single member of a population.) ■ type ■ key-value pairs (properties, measurements) ■ same keys for same type ▶ edges ■ key, source nodes of same type have edges for same keys (property of the source type) ■ can be composite ■ key-value pairs (properties, measurements) ■ same keys for same edge key and source type ▶ (property)-values (measures) are either ■ nominal: unordered (finite=categorial) possible feature values (e.g. sex, boolean values, colors) ■ ordinal: (finite) feature values with order (e.g. school marks) ■ metric: infinite values with order and null value (a.k.a numbers) 14 { a: 32, b: “good” } { c: 1.2 }
  • 41. General Data Model ▶ directed (non hyper) graphs ▶ nodes (or data points: a set of one or more measurements on a single member of a population.) ■ type ■ key-value pairs (properties, measurements) ■ same keys for same type ▶ edges ■ key, source nodes of same type have edges for same keys (property of the source type) ■ can be composite ■ key-value pairs (properties, measurements) ■ same keys for same edge key and source type ▶ (property)-values (measures) are either ■ nominal: unordered (finite=categorial) possible feature values (e.g. sex, boolean values, colors) ■ ordinal: (finite) feature values with order (e.g. school marks) ■ metric: infinite values with order and null value (a.k.a numbers) 14 { a: 32, b: “good” } { c: 1.2 } Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages
  • 42. General Data Model ▶ directed (non hyper) graphs ▶ nodes (or data points: a set of one or more measurements on a single member of a population.) ■ type ■ key-value pairs (properties, measurements) ■ same keys for same type ▶ edges ■ key, source nodes of same type have edges for same keys (property of the source type) ■ can be composite ■ key-value pairs (properties, measurements) ■ same keys for same edge key and source type ▶ (property)-values (measures) are either ■ nominal: unordered (finite=categorial) possible feature values (e.g. sex, boolean values, colors) ■ ordinal: (finite) feature values with order (e.g. school marks) ■ metric: infinite values with order and null value (a.k.a numbers) 15 Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages type:String label:String DataPoint name:String Property isComposite:Boolean Reference value:any Attribute properties * properties * dataPoints * <<DataType>> any <<Dat Nu <<DataType>> Ordinal <<DataType>> Nominal
  • 43. General Data Model // DataPoints of same type have the same Properties context DataPoint inv: DataPoint::allInstances->select(type=self.type)->forAll(other| other.properties->forAll(p1|self.properties->exist(p2| p1.name = p2.name and p1.typeOf = p2.typeOf and p1.isComposite = p2.isComposite and p1.value.typeOf() == p2.value.typeOf())) // References from same type DataPoints and same name have same properties context DataPoint inv: self.references->forAll(ref1|DataPoint::allInstances->select(dp| dp.type = self.type)->forAll(dp|dp.refernces->forAll(ref2| ref1.name = ref2.name implies ref1.properties->forAll(p1| ref2.properties.exist(p2| p1.name=p2.name and p1.typeOf = p2.typeOf and p1.value.typeOf() == p2.value.typeOf())))) // References reference DataPoints with consistent type context Reference: inv: self.dataPoints.forAll(a,b|a.type = b.type) // Composite References form circle free graphs ... 16 Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages type:String label:String DataPoint name:String Property isComposite:Boolean Reference value:any Attribute properties * properties * dataPoints * <<DataType>> any <<Dat Nu <<DataType>> Ordinal <<DataType>> Nominal
  • 45. Complex Interactive Visualization-Language 18 type pattern configuration Chart color Group Data uri Sourcegroups * * charts input 1 context Chart::allInputGroups query: if (input.isInstanceOf(Group)) input.charts->collect(allInputGroups)->union({input}) else {} // Charts cannot take input that is based on their own selection context Chart inv: not allInputGroups->collect(charts)->contains(self) /allInputGroups* A r B
  • 46. Complex Interactive Visualization-Language 19 D is a set of data-points I ✓ D the set of input data-points selC a selection function for each chart IC = selC(I) ✓ children? (I) iSC r = {d 2 IC |9d0 : d 2 parent? (d0 _ d0 2 parent? (d)} dSC r a user selection with dSC r ✓ IC ✓ D iSr = [ C2charts(r) dSC r D I ✓ D IA IB A r B iSr iSA r iSr iSB r dSA r dSB r iSr = dSA r [ dSB r I I IA IB
  • 47. Complex Interactive Visualization-Language 20 D is a set of data-points I ✓ D the set of input data-points selC a selection function for each chart IC = selC(I) ✓ children? (I) iSC r = {d 2 IC |9d0 : d 2 parent? (d0 _ d0 2 parent? (d)} dSC r a user selection with dSC r ✓ IC ✓ D iSr = [ C2charts(r) dSC r ... ... ... D I ✓ D IA IB A r B iSr iSA r iSr iSB r dSA r dSB r iSr = dSA r [ dSB r I I IA IB
  • 49. Complex Interactive Visualization-Language 22 r A B r A B b type pattern configuration Chart color Group Data uri Sourcegroups * * charts input 1 context Chart::allInputGroups query: if (input.isInstanceOf(Group)) input.charts->collect(allInputGroups)->union({input}) else {} // Charts cannot take input that is based on their own selection context Chart inv: not allInputGroups->collect(charts)->contains(self) /allInputGroups*
  • 50. Complex Interactive Visualization-Language 23 DOM Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages WMC RFC A B C browser <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> Same events and styles for all DOM elements! <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> WMC NOC A B C A r B iSr iSA r iSr iSB r dSA r dSB r iSr = dSA r [ dSB r I I IA IB
  • 51. Complex Interactive Visualization-Language <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM
  • 52. WMC RFC A B C browser Complex Interactive Visualization-Language <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM
  • 53. WMC RFC A B C browser Complex Interactive Visualization-Language WMC browser <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM
  • 54. WMC RFC A B C browser Complex Interactive Visualization-Language WMC browser Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM
  • 55. WMC RFC A B C browser Complex Interactive Visualization-Language WMC browser Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM traces <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM
  • 56. Complex Interactive Visualization-Language 25 <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM iSr ✓ DI C iSC r ✓ IC ✓ D prC(iSC r ) IC = selC(I) prC(IC ) SC r ✓ DC dSC r = pr 1 (SC r ) ✓ I IC ✓ children? (I) ✓ D prC(IC ) ✓ DC D dSC r = pr 1 (SC r ) ✓ IC A r iSr iSA r iSr = dSA r [ I IA
  • 57. Complex Interactive Visualization-Language 25 Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM iSr ✓ DI C iSC r ✓ IC ✓ D prC(iSC r ) IC = selC(I) prC(IC ) SC r ✓ DC dSC r = pr 1 (SC r ) ✓ I IC ✓ children? (I) ✓ D prC(IC ) ✓ DC D dSC r = pr 1 (SC r ) ✓ IC A r iSr iSA r iSr = dSA r [ I IA
  • 58. Complex Interactive Visualization-Language 25 Class { WMC: 3, RFC: 15, ... } calls { amount: 2 } Package classessubpackages <svg:g> <svg:circle .../> <svg:circle .../> <svg:circle .../> <svg:g> ... </svg:g> transformation DOM traces <svg:g> <svg:rect .../> <svg:rect .../> <svg:g> ... </svg:g> DOM iSr ✓ DI C iSC r ✓ IC ✓ D prC(iSC r ) IC = selC(I) prC(IC ) SC r ✓ DC dSC r = pr 1 (SC r ) ✓ I IC ✓ children? (I) ✓ D prC(IC ) ✓ DC D dSC r = pr 1 (SC r ) ✓ IC A r iSr iSA r iSr = dSA r [ I IA
  • 59. Framework: Architecture and Realization ▶ DOM, Styles, Events ▶ JSON ▶ D3.js ▶ Web-Components and Angular2 ■ components ■ data-binding and events 26
  • 60. Framework: Architecture and Realization 27 <d3ng-groups class="chart" (selectedChanged)="selection=$event.selected" [groups]="[0]" [context]="context"> <d3ng-scatter-plot d3ngSource [source]="data" pattern="container" x="x" y="y" [config]="scatterPlotConfig"> </d3ng-scatter-plot> </d3ng-groups> <d3ng-scatter-plot class="chart" d3ngSource [source]="selection" pattern="container/contents" [allowEmpty]="true" x="x" y="y" [config]="scatterPlotConfig"> </d3ng-scatter-plot> data = [{ type:"container", x:1, y:1 children: [{ type:"contents", x:0.85, y:0.85 },...] },...]