VISON:	An	Ontology-Based	Approach	for	
Software	Visualization	Tool	Discoverability	
Ekaterina	Kozlova		
HSE	University,	Russia
Oscar	Nierstrasz			
University	of	Bern
Daniel	Weiskopf				
University	of	Stuttgart	
leonel_merino VISSOFT’19
Leonel	Merino	
University	of	Stuttgart
2
Motivation
3
How	developers	can	find	suitable	visualizations	for	particular	concerns?
How	developers	can	find	suitable	visualizations	for	particular	concerns?
4
How	developers	can	find	suitable	visualizations	for	particular	concerns?
5
How	developers	can	find	suitable	visualizations	for	particular	concerns?
6
How	developers	can	find	suitable	visualizations	for	particular	concerns?
7
8
How	researchers	can	find	available	visualizations	for	experiments?
How	researchers	can	find	available	visualizations	for	experiments?
9
How	researchers	can	find	available	visualizations	for	experiments?
10
VISON:	An	Ontology-Based	Approach	for	Software	Visualization	Tool	Discoverability	
11
12
Implementation
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
13
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
14
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
15
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
16
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
17
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
18
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
19
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
20
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
21
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
22
Ontology	design	considerations
• Step	1.	Determine	the	domain	and	scope	of	the	ontology.		
• What	is	the	domain	that	the	ontology	will	cover?		
• For	what	we	are	going	to	use	the	ontology?		
• For	what	types	of	questions	the	information	in	the	ontology	should	provide	answers?		
• Who	will	use	and	maintain	the	ontology?		
• Step	2.	Consider	reusing	existing	ontologies.		
• Step	3.	Enumerate	important	terms	in	the	ontology.		
• Step	4.	Define	the	concepts	and	the	concept	hierarchy.		
• Step	5.	Define	the	properties	of	concepts.		
• Step	6.	Define	the	restrictions	of	the	properties.		
• Step	7.	Create	instances.	
23
24
Protégé
25
26
27
28
29
30
31
A	Curated	Catalog	of	70	Publicly	Available	
Software	Visualization	Tools
32
Selection	Process
• Inclusion	criterion	
A	named	tool	that	is	described	amongst	the	180	papers	included	on	a	SLR	
on	software	visualization	evaluation	
• Exclusion	criterion	
An	identified	tool	is	not	publicly	available	(source	code	/	compiled	
application)
Behavior	(28)
33
Examples:	Clack
34
Examples:	GEM
35
Examples:	Jive
36
Examples:	Synchrovis
37
Structure	(22)
38
Examples:	CodeCity
39
Examples:	Softwarenaut
40
Evolution	(12)
41
Examples:	Clonevol
42
Examples:	CVSScan
43
Structure,	Behavior,	Evolution	(8)
44
Examples:	CodeBubbles
45
46
47
Usage	Scenarios
Scenario	1.	Find	suitable	visualization	tools	that	support	the	analysis	of	performance	issues	at	runtime.	
48
Scenario	2.	Find	visualization	tools	under	a	free	license	that	support	the	analysis	of	source	code.	
49
Future	Work
• Web	interface	for	querying	and	visualizing	(MetaVis	approach)	VISON	
• Git	repository	to	integrate	data	of	new	software	visualization	tools
50
Summary
VISON	—An	Ontology-Based	Approach	for	Software	Visualization	Tool	Discoverability	
leonel_merino VISSOFT’19

VISON: An Ontology-Based Approach for Software Visualization Discoverability