OSGi Community Event 2018 Presentation by Lisa Nafeie (DLR)
Abstract: Classic software architecture visualizations such as UML diagrams are widely used in practice but are not always the best solution, for example to get an high level overview of large component-based software systems. In this talk, we show other suitable technologies for software visualization to understand complex software architectures. Especially, we show how to visualize OSGi based software architectures in Virtual Reality (VR) using VR headsets.
We address the question, how software visualizing can help during the development process and what are the resulting benefits for developers and software testers. We focus on four aspects: Development, evaluation, quality assurance, and visualization technology. We demonstrate software visualization using the software ”IslandViz”, which visualizes OSGi based software systems using an island metaphor, where islands on a virtual water level represents OSGi bundles, regions on the islands represents packages, and buildings represents classes. We describe how to get all relevant data for the visualization by repository mining on the whole source tree and data mining on source code level. We store all data in a graph database for further analysis and visualization.
Through software visualization we were able to answer many important questions, which have already taken a lot of time in development and test-phases. In addition, it’s very important to make the software architecture tangible, which makes it easier way to talk about technical problems in teams formed by people with different knowledge, communications skills, and backgrounds.
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa Nafeie (DLR)
1. Visualization of OSGi based
Software Architectures in Virtual Reality
Lisa Nafeie
Intelligent and Distributed Systems,
German Aerospace Center (DLR) &
Technische Hochschule Köln
Cologne, Germany
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 1
2. Introduction
Intelligent and Distributed Systems
German Aerospace Center (DLR)
University of Applied Sciences
Cologne, Germany
@LisaNafeie
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 2
3. Pointing out Problems
• Visualization of Software Architectures:
Large projects can become confusing
• Complex Systems: Uncluttered
• 2D Visualization: Less information
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 3
Software Dependencies
4. Software Projects in Space and Aerospace
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 4
5. Software
Analytics
Research Topics – DLR Intelligent and Distributed Systems
Machine
Learning
BlockchainsWorkflows &
Provenance
Distributed
Systems
</>
Software
Engineering
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 5
6. http://rcenvironment.de/
Distributed Integration System
Remote Component Environment
• Language Java
• Platform RCP
• Framework OSGi
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 6
7. Software Engineering
Focus on..
• Automated Testing
• Repository Mining
• Integration
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 7
8. Software
systems
• Quality
Developer & User
• Experience & Behavior
Development
process
• Productivity
Visualization of
information
Psychology &
Social
Sciences
Data Analysis
& Data Mining
Distributed
Computing
Software Analytics
Definition
• Human-machine-interface
• Insightful & actionable information
• Tasks
• software development
• Systems
• Users
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 8
9. Software Visualization
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 9
10. Interactive Visualization of OSGi
-based Software Architectures
Goals
• Getting an impression of the
dimensions of the application
• Introducing a new member of the
development team
• Checking for abnormalities in
the architecture
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 10
11. Java Framework: OSGi
Source: D. Seider, A. Schreiber, T. Marquardt and M. Brüggemann, "Visualizing
Modules and Dependencies of OSGi-Based Applications," 2016 IEEE Working
Conference on Software Visualization (VISSOFT), Raleigh, NC, 2016, pp. 96-100.
Components & Dependencies
• Bundle
• Package
• Service
• Class
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 11
12. Software Analytics – Source Code Analysis and Repository Mining
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 12
13. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 13
14. Source: D. Seider, A. Schreiber, T. Marquardt and M. Brüggemann, "Visualizing
Modules and Dependencies of OSGi-Based Applications," 2016 IEEE Working
Conference on Software Visualization (VISSOFT), Raleigh, NC, 2016, pp. 96-100.
Visualization in 2D:
Dependencies of Key Bundles
Pro Cons
Bundle size
visualized
Less information of all
components
• Bundle name
• Packages name
• Class name
Only 2 components
visualized
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 14
15. Visualization in 2D:
Package Structure of a Bundle
Pro Cons
Packages size
visualized
Class size
visualized
Less information of all components
• Bundle name
• Packages name
• Class name
Missing Relationships
• Import & Export of Packages
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 15
16. Visualization in 2D:
Dependencies Between Classes
Pro Cons
Shows Bundle
Dependencies
Missing Dependencies
between & inside
packages
Confusing for large
projects
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 16
17. Visualization in VR:
Prototype App “OSGiViewer”
Pro Cons
Less information of
all components
• Packages name
• Class name
Third dimension
Shows
depencencies
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 17
18. Technology
Oculus Rift
Microsoft HoloLens
Tobii Eye Tracking
HTC Vive
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 18
19. Virtual Reality & Augmented Reality
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 19
20. Virtual Reality App –
“Dependency Diver“
Software Architecture
• OSGi Framework
• RCE Project
• Android App (Beta version)
• Motion Sickness
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 20
21. VR Approach 1: Module Stacks
Bundle
Packages
Services
Classes
Imports
Exports
Source: A. Schreiber and M. Brüggemann, "Interactive Visualization of Software
Components with Virtual Reality Headsets," 2017 IEEE Working Conference on
Software Visualization (VISSOFT), Shanghai, 2017, pp. 119-123.
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 21
22. Components
• need constant positions
• need a realistic metaphor
… to reduce Motion Sickness
VR Approach 1: Prototype “Dependency Diver“
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 22
23. VR Approach 1: Prototype “Dependency Diver“
Components include
• Packages
• Classes
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 23
24. VR Approach 1: Prototype “Dependency Diver“
Pro Cons
Cheap Headsets
Interactive App
Motion Sickness
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 24
25. VR Approach 2: „IslandViz“
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 25
26. Virtual Table
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 26
27. Navigation
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 27
28. Virtual Tablet
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 28
29. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 29
30. Island Metaphor
Classes
Multi-storey buildings with a new
storey for every n lines of codes
Packages
Continuous regions
Bundles
Islands with multiple regions;
each island with distinct shape
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 30
31. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 31
32. Dependencies
Ports
Incoming and outgoing
package dependencies
Arrows
Strength and direction
of a package dependency
Services
OSGi service interfaces
and service components
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 32
33. Services
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 33
34. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 34
35. Augmented Reality
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 35
36. Positioning virtual surface on any surface
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 36
37. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 37
38. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 38
39. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 39
40. Approach 1: Dependency Diver Approach 2: IslandViz
Pro Cons Pro Cons
Cheap Headsets
Interactive App
Limited usage time
Motionsickness
“Any (Cheap) Headsets“
Real-world Metaphor
Interactive App
Open Source
Detailed information of
OSGi Components
Currently available
Java & OSGi
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 40
41. Approach 1: Dependency Diver Approach 2: IslandViz
https://github.com/DLR-SC/island-vizGooge PlayStore: “DependencyDiver“
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 41
42. > EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 42
Thanks!
Lisa.Nafeie@dlr.de
DLR.de/sc/ivs
@LisaNafeie
43. Links
GitHub “IslandViz”- https://github.com/DLR-SC/island-viz
DependencyDriver - https://play.google.com/store/apps/details?id=de.dlr.sc.DependencyDiver
jQAssistant - https://jqassistant.org/
RCE - http://rcenvironment.de/
VirtualSatellite- https://www.dlr.de/sc/en/desktopdefault.aspx/tabid-5135/8645_read-8374/
2D – 3D? - https://elib.dlr.de/110129/1/vissoft-toolpaper-osgivis_SeiderEtAl.pdf
DLR Jobs - https://www.dlr.de/dlr/jobs/#S:479
> EclipseCon Europe / OSGi Community Event 2018 > Lisa Nafeie • Visualization of OSGi based Software Architectures in Virtual Reality > 23.10.2018DLR.de • Chart 43