Live Trace Visualization for System and Program Comprehension in Large Software Landscapes
()
About this ebook
In this thesis, we introduce a live trace visualization approach to support system and program comprehension in large software landscapes. It features two perspectives: a landscape-level perspective using UML elements and an application-level perspective following the 3D software city metaphor. Our main contributions are 1) an approach named ExplorViz for enabling live trace visualization of large software landscapes, 2) a monitoring and analysis approach capable of logging and processing the huge amount of conducted method calls in large software landscapes, and 3) display and interaction concepts for the software city metaphor beyond classical 2D displays and 2D pointing devices.
Extensive lab experiments show that our monitoring and analysis approach elastically scales to large software landscapes while imposing only a low overhead on the productive systems. Furthermore, several controlled experiments demonstrate an increased efficiency and effectiveness for solving comprehension tasks when using our visualization. ExplorViz is available as open-source software on www.explorviz.net. Additionally, we provide extensive experimental packages of our evaluations to facilitate the verifiability and reproducibility of our results.
Florian Fittkau
Florian Fittkau received the BSc and MSc degrees in computer science from the Kiel University. Afterwards, he has been a Ph.D. student and researcher with the Software Engineering Group at Kiel University where he has worked on the presented ExplorViz approach. His research interests include software visualization, HCI, cloud computing, and empirical methods.
Related to Live Trace Visualization for System and Program Comprehension in Large Software Landscapes
Titles in the series (2)
Live Trace Visualization for System and Program Comprehension in Large Software Landscapes Rating: 0 out of 5 stars0 ratingsSCCharts - Language and Interactive Incremental Compilation Rating: 0 out of 5 stars0 ratings
Related ebooks
Graph Layout Support for Model-Driven Engineering Rating: 0 out of 5 stars0 ratingsModel-Driven and Software Product Line Engineering Rating: 0 out of 5 stars0 ratingsSystems and Software Variability Management: Concepts, Tools and Experiences Rating: 0 out of 5 stars0 ratingsA Framework for Visualizing Information Rating: 0 out of 5 stars0 ratingsModel-Driven Online Capacity Management for Component-Based Software Systems Rating: 0 out of 5 stars0 ratingsReversing: Secrets of Reverse Engineering Rating: 4 out of 5 stars4/5Dataflow and Reactive Programming Systems Rating: 0 out of 5 stars0 ratingsLabVIEW – More LCOD Rating: 0 out of 5 stars0 ratingsEconomic Multi Agent Systems: Design, Implementation, and Application Rating: 4 out of 5 stars4/5Pipelined Processor Farms: Structured Design for Embedded Parallel Systems Rating: 0 out of 5 stars0 ratingsDesign and Analysis of Experiments Rating: 4 out of 5 stars4/5Requirements Engineering Rating: 2 out of 5 stars2/5The Art of Controller Design Rating: 0 out of 5 stars0 ratingsA Rigorous Semantics for BPMN 2.0 Process Diagrams Rating: 0 out of 5 stars0 ratingsRobot Operating System (ROS): The Complete Reference (Volume 5) Rating: 0 out of 5 stars0 ratingsCOBOL Software Modernization: From Principles to Implementation with the BLU AGE Method Rating: 1 out of 5 stars1/5Guide to Software Systems Development: Connecting Novel Theory and Current Practice Rating: 0 out of 5 stars0 ratingsLearn OpenCV with Python by Examples Rating: 0 out of 5 stars0 ratingsAphelion Software: Unlocking Vision: Exploring the Depths of Aphelion Software Rating: 0 out of 5 stars0 ratingsSoftware Engineering New Approach (Traditional and Agile Methodologies) Rating: 0 out of 5 stars0 ratingsRobot Operating System (ROS): The Complete Reference (Volume 6) Rating: 0 out of 5 stars0 ratingsLearning Software Engineering Rating: 0 out of 5 stars0 ratingsDebugging Systems-on-Chip: Communication-centric and Abstraction-based Techniques Rating: 0 out of 5 stars0 ratingsSystematic Cloud Migration: A Hands-On Guide to Architecture, Design, and Technical Implementation Rating: 0 out of 5 stars0 ratingsMulticopter Design and Control Practice: A Series Experiments based on MATLAB and Pixhawk Rating: 0 out of 5 stars0 ratingsModeling and Simulation Support for System of Systems Engineering Applications Rating: 0 out of 5 stars0 ratingsJavaScript Design Patterns: Deliver fast and efficient production-grade JavaScript applications at scale Rating: 0 out of 5 stars0 ratingsA Concise Guide to Microservices for Executive (Now for DevOps too!) Rating: 1 out of 5 stars1/5Windows Application Development with Visual Studio: from Basics to Advanced Rating: 0 out of 5 stars0 ratings
Data Visualization For You
The Big Book of Dashboards: Visualizing Your Data Using Real-World Business Scenarios Rating: 4 out of 5 stars4/5Data Visualization: A Practical Introduction Rating: 5 out of 5 stars5/5How to Lie with Maps Rating: 4 out of 5 stars4/5Data Analytics for Beginners: Introduction to Data Analytics Rating: 4 out of 5 stars4/5Teach Yourself VISUALLY Power BI Rating: 0 out of 5 stars0 ratingsHands-On Data Analysis with Pandas: Efficiently perform data collection, wrangling, analysis, and visualization using Python Rating: 0 out of 5 stars0 ratingsNo-Code Data Science: Mastering Advanced Analytics, Machine Learning, and Artificial Intelligence Rating: 5 out of 5 stars5/5Effective Data Storytelling: How to Drive Change with Data, Narrative and Visuals Rating: 4 out of 5 stars4/5The Little Book of Artificial Intelligence Rating: 0 out of 5 stars0 ratingsLearning pandas - Second Edition Rating: 4 out of 5 stars4/5Data Analytics & Visualization All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsDAX Patterns: Second Edition Rating: 5 out of 5 stars5/5Salesforce Reporting and Dashboards Rating: 4 out of 5 stars4/5Data Structures & Algorithms Interview Questions You'll Most Likely Be Asked Rating: 1 out of 5 stars1/5How to Become a Data Analyst: My Low-Cost, No Code Roadmap for Breaking into Tech Rating: 0 out of 5 stars0 ratingsTableau 10 Business Intelligence Cookbook Rating: 0 out of 5 stars0 ratingsChatgpt | Generative AI - The Step-By-Step Guide For OpenAI & Azure OpenAI In 36 Hrs. Rating: 0 out of 5 stars0 ratingsData Analysis with Stata Rating: 5 out of 5 stars5/5Functional Aesthetics for Data Visualization Rating: 0 out of 5 stars0 ratingsVisualizing Graph Data Rating: 0 out of 5 stars0 ratingsVisual Analytics with Tableau Rating: 0 out of 5 stars0 ratingsFieldwork Handbook: A Practical Guide on the Go Rating: 0 out of 5 stars0 ratingsThe Chicago Guide to Writing About Numbers Rating: 0 out of 5 stars0 ratingsGIS Tutorial for ArcGIS Pro 3.1 Rating: 0 out of 5 stars0 ratings
Reviews for Live Trace Visualization for System and Program Comprehension in Large Software Landscapes
0 ratings0 reviews
Book preview
Live Trace Visualization for System and Program Comprehension in Large Software Landscapes - Florian Fittkau
Bibliography
1
Introduction
This chapter provides an introduction to this thesis. Chapter 1.1 describes the motivation for our research. Afterwards, Chapter 1.2 presents the scientific contributions. Preliminary work is discussed in Chapter 1.3. Finally, Chapter 1.4 lists the structure of this thesis.
Previous Publications
Parts of this chapter are already published in the following works:
1. [Fittkau et al. 2013b] F. Fittkau, J. Waller, C. Wulf, and W. Hasselbring. Live trace visualization for comprehending large software landscapes: the ExplorViz approach. In: Proceedings of the 1st IEEE International Working Conference on Software Visualization (VISSOFT 2013). IEEE, Sept. 2013
2. [Fittkau 2013] F. Fittkau. Live trace visualization for system and program comprehension in large software landscapes. Technical report 1310. Department of Computer Science, Kiel University, Germany, Nov. 2013
1.1. Motivation and Problem Statement
In many enterprises, the number of software systems is constantly increasing. This can be a result of changing requirements due to, e.g., changing laws or customers, which the company has to satisfy. Furthermore, the legacy systems often interact with each other through defined interfaces. For example, the database may be accessed by different programs. In the whole, the applications form a large, complex software landscape [Penny 1993] which can include several hundreds or even thousands of applications.
The knowledge of the communication, internals, and utilization of this software landscape often gets lost over the years [Moonen 2003; Vierhauser et al. 2013] due to, for instance, missing documentation. For those software landscapes, tools that support the program and system comprehension of the software landscape become important. For example, they can provide essential insights into the landscape in the maintenance phase [Lewerentz and Noack 2004]. A software engineer might need to create or adapt features in the landscape. Therefore, she often needs to know the communication between the existing programs and also the control flow inside the application is of interest to find the locations where she needs to do the adaptations [Koschke and Quante 2005]. In this context, the goal of DFG SPP1593 Design For Future - Managed Software Evolution
is to invent approaches for so-called knowledge-carrying software to overcome the challenges of missing documentation [Goltz et al. 2015].
Another challenge concerning a large software landscape is the question which applications are actually used and to what extent they are used. The operation and support of software can cause substantial costs. These costs would not incur when the unused application gets removed from the software landscape. However, asking every user whether she uses each application is often not applicable and if it is, she might indirectly use applications such as a database, for instance.
Recent approaches in this field of software visualization, e.g., [Panas et al. 2003; Greevy et al. 2006; Wettel and Lanza 2007; Hamou-Lhadj 2007; Dugerdil and Alam 2008], focus on the visualization of a single application. A drawback of visualizing only one application is omitting the communication and linkage between the applications involved in a transaction.
Another drawback of current approaches is the possible lack of traces associated to a feature. For example, a software engineer might analyze a feature called add to cart. The investigation of this feature might lead to interest in the related feature checkout cart. However, this feature might not be available as a trace. Often the required trace can be generated manually for one application but this can become cumbersome in a large software landscape. In addition, one trace can only reveal information on its particular execution of operations, for instance, the response time of this single execution of a operation. If this response time is a statistical outlier, the user might draw false conclusions about the application.
Due to the huge amount of method calls conducted in a large software landscape – typically millions of method calls per second –, monitoring and creating the required traces of the executions for the visualization can become a further challenge [Vierhauser et al. 2013]. One server is not capable of processing such a huge amount of data in parallel to the actual execution of the software landscape.
1.2 Scientific Contributions
This thesis makes the following three major scientific contributions (SC1 – SC3) including nine subcontributions:
SC1: An approach named ExplorViz for enabling live trace visualization of large software landscapes
SC1.1: A software landscape visualization featuring hierarchies to provide visual scalability
SC1.2: An interactive extension of the software city metaphor for exploring runtime information of the monitored application
SC1.3: A landscape meta-model representing gathered information about a software landscape
SC1.4: A proof-of-concept implementation used in three controlled experiments for comparing our visualization approach to the current state of the art in system and program comprehension scenarios
SC2: A monitoring and analysis approach capable of logging and processing the huge amount of conducted method calls in large software landscapes
SC2.1: A scalable, elastic, and live analysis architecture for processing the gathered monitoring data by using cloud computing
SC2.2: A proof-of-concept implementation used in three lab experiments showing the low overhead of the monitoring approach, and the scalability and elasticity of our analysis approach by monitoring up to 160 instances of a web application
SC3: Display and interaction concepts for the software city metaphor beyond classical 2D displays and 2D pointing devices
SC3.1: A gesture-controlled virtual reality approach for the software city metaphor
SC3.2: An approach to create physical 3D-printed models following the software city metaphor
SC3.3: Proof-of-concept implementations and a controlled experiment comparing physical 3D-printed models to using virtual models on the computer screen in a team-based program comprehension scenario
For all evaluations, we provide experimental packages to facilitate the verifiability, reproducibility, and further extensibility of our results. In the following, each contribution is described.
SC1: ExplorViz Approach For Enabling Live Trace Visualization of Large Software Landscapes
The first scientific contribution (SC1) of this thesis is an approach to enable live trace visualization for large software landscapes named ExplorViz which supports a software engineer during system and program comprehension tasks. Our live trace visualization for large software landscapes combines distributed and application traces. It contains a 2D visualization on the landscape level. In addition, it features a 3D visualization utilizing the software city metaphor on the application level. By application level, we refer to the issues concerning one application and only this application. Whereas the landscape level provides knowledge about the different applications and nodes in the software landscape.
Since a live visualization updates itself after a defined interval, we feature a time shift mode where the software engineer can view the history of old states of the software landscape. Furthermore, she is able to jump to an old state and pause the visualization to analyze a specific situation.
To cope with the high density of information which should be visualized, the major concept of ExplorViz is based on interactively revealing additional details, e.g., the communication on a deeper system level, on demand. The concept is motivated by the fact that the working memory capacity of humans is limited to a small amount of chunks [Ware 2013]. Miller [1956] suggests seven, plus or minus two, chunks which is also referred to as Miller’s Law. The ExplorViz concept also follows Shneiderman’s Visual Information-Seeking Mantra: Overview first, zoom and filter, then details on demand
[Shneiderman 1996].
This contribution contains four subcontributions (SC1.1 – SC1.4) which are briefly described in the following.
SC1.1: Software Landscape Visualization Featuring Hierarchies to Provide Visual Scalability Our landscape-level perspective shows the nodes and applications of a software landscape. In addition, it summarizes nodes running the same application configuration into node groups. These equal application configurations typically exist in cloud environments. However, to understand the overall architecture of the software landscape, the user is interested in the existing application configuration. Afterwards, the details about the concrete instances can be interactively accessed.
To provide further visual scalability, the nodes and node groups are visualized within their belonging systems which act as an organizational unit. Again, the details about a system can be accessed interactively and out-of-focus systems can be closed to show only details about relevant systems.
SC1.2: Interactive Extension of the Software City Metaphor for Exploring Runtime Information On the application level, we use the 3D software city metaphor to display the structure and runtime information of a monitored application. Again, the visual scalability is provided by interactivity. When accessing the perspective, the components are only opened at the toplevel, i.e., details are hidden. In our terms, components are organizational units provided by the programming language, e.g., packages in Java. By interactively opening and closing the components, the software engineer is able to explore the application and the gathered runtime information.
SC1.3: Landscape Meta-Model for Representing Information of a Software Landscape Furthermore, we provide a landscape meta-model for representing the gathered information of the software landscape. This model can be used as input for other tools. Thus, the gathered data is also reusable for other scenarios, e.g., automatically updating the configuration of an enterprise application landscape based on the monitoring data.
SC1.4: Proof-of-Concept Implementation Used in Three Controlled Experiments The full ExplorViz approach is implemented as open-source software and available from our website.¹ To evaluate our live trace visualization approach, we conducted three controlled experiments.
The first controlled experiment compared the usage of ExplorViz to using the trace visualization tool EXTRAVIS [Cornelissen et al. 2007] in a program comprehension scenario of the quality tool PMD.² The experiment showed that ExplorViz was more efficient and effective than EXTRAVIS in supporting the solving of the defined program comprehension tasks. The second experiment was a replication of this experiment design where we used a smaller object system named Babsi.³ In this replication, the used time difference was not significant. However, the correctness of the task solution was significantly increased in the ExplorViz group. The third experiment compared our hierarchical landscape-level perspective to a mix of flat state-of-the-art landscape visualizations found in Application Performance Management (APM) tools in a system comprehension scenario. Again, the time difference was not significantly different but the correctness of the solutions was significantly increased in the ExplorViz group.
SC2: Monitoring and Analysis Approach for Applications in Large Software Landscapes
In large software landscapes, several millions of method calls can be conducted each second. Therefore, the monitoring and the analysis approach requires to scale with the size of the software landscape. Furthermore, the approach should be elastic to avoid producing unnecessary costs. A further requirement for the approach is the low overhead of the monitoring to keep the impact on the production systems as low as possible. According to those requirements, we developed our monitoring and analysis approach which is outlined in the following.
SC2.1: Scalable, Elastic, and Live Analysis Architecture Using Cloud Computing To provide a scalable, elastic, and live monitored data analysis approach, we utilize cloud computing and an automatic capacity manager named CapMan.⁴ Our approach is similar to the MapReduce pattern [Dean and Ghemawat 2010] but we feature multiple dynamically inserted preprocessing levels. When the master analysis node impends to get overutilized, a new preprocessing worker level is automatically inserted between the master and the monitored applications and thus the CPU utilization of the master node is decreased. If it impends to get overutilized again, another level of workers is inserted. In theory, this happens every time the master impends to get overutilized. If a worker level is not utilized enough anymore, it is dynamically removed and thus resources are saved.
SC2.2: Proof-of-Concept Implementation Used in Three Lab Experiments We implemented our monitoring and analysis approach as proof-of-concept implementation and provide necessary additional components such as the capacity manager as open-source software on our website. For the evaluation of our monitoring and analysis approach, we conducted three lab experiments.
We evaluated the low overhead in the first lab experiment by comparing Kieker⁵ [van Hoorn et al. 2012], which was already shown to impose a low overhead [Eichelberger and Schmid 2014], to our monitoring component using the monitoring benchmark MooBench [Waller 2014].⁶ As a result, we achieved a speedup of about factor nine and a 89% overhead reduction.
The second lab experiment extended the first experiment by the live analysis of the generated monitoring data. This experiment showed that adding the analysis step only negligibly impacts the throughput and thus is capable of live analyzing the monitored data. Furthermore, we achieved a speedup of about 250 in comparison to Kieker.
We used our private cloud for the third lab experiment to evaluate the scalability and elasticity of our approach by monitoring elastically scaled JPetStore⁷ instances. In the peak, 160 JPetStore instances were monitored by our approach with two dynamically started worker levels resulting in about 20 million analyzed method calls per second.
SC3: Display and Interaction Concepts for the Software City Metaphor
In addition to providing a live trace visualization, we investigated new ways to display and interact with the software city metaphor [Knight and Munro 1999] beyond the display on classical 2D monitors and usage of classical 2D pointing devices. For a more immersive user experience, we provide a Virtual Reality (VR) approach featuring an Oculus Rift DK1⁸ as display and a Microsoft Kinect v2⁹ for gesture recognition. Furthermore, we construct physical 3D-printed software city models from our application- level perspective to enhance, for instance, the amount of conducted gestures in a team-based program comprehension scenario. Both approaches and an evaluation are described in the following.
SC3.1: Gesture-Controlled Virtual Reality Approach By using an Oculus Rift DK1 and Microsoft Kinect v2 for our VR approach, we achieve a more immersive user experience for exploring the software city metaphor. The Oculus Rift enables to perceive the model in 3D as if the user is flying above the city. To provide an even more immersive experience, we utilize gestures for interacting with the model.
SC3.2: Approach to Create Physical 3D-Printed Software City Models We construct physical 3D-printed models following the software city metaphor of our application-level perspective and detail four envisioned scenarios where physical models could provide benefits. These are team-based program comprehension, effort visualization in customer dialog, saving digital heritage, and educational visualization.
SC3.3: Proof-of-Concept Implementations and a Controlled Experiment for Physical 3D-Printed Models For both approaches, we provide proofof-concept implementations available in branches of our ExplorViz Git repository.¹⁰ Furthermore, we conducted a controlled experiment investigating the first envisioned usage scenario for the physical models in a team-based program comprehension scenario. Teams (pairs of two subjects) in the experimental group solved program comprehension tasks using only a 3D-printed model and the control group solved the tasks using a virtual model on the computer screen. Two discussion tasks were influenced positively by using the 3D-printed model and one task was influenced negatively. We attribute the positive influence to an observed increased amount of conducted gestures and the negative influence to less readable labels in the 3D-printed model.
1.3 Preliminary Work
This thesis builds on preliminary work which was already published in several research papers. Furthermore, it bases on various student theses which were co-supervised by the author. In the following, we first briefly describe and list our publications according to three categories: Approach, Evaluations, and Support Projects. Papers fall into the former two categories if they are closely related and explicitly contribute to those parts of this thesis. The latter category contains work that is related but only indirectly contributes to this thesis. Afterwards, the related student theses and their contributions to this thesis are briefly presented.
Approach
[Fittkau et al. 2013b] F. Fittkau, J. Waller, C. Wulf, and W. Hasselbring. Live trace visualization for comprehending large software landscapes: the ExplorViz approach. In: Proceedings of the 1st IEEE International Working Conference on Software Visualization (VISSOFT 2013). IEEE, Sept. 2013
In this publication, we present our overall ExplorViz method and each of its steps. Furthermore, first sketches of the landscape-level and application-level perspective are shown.
[Fittkau et al. 2013c] F. Fittkau, J. Waller, P. C. Brauer, and W. Hasselbring. Scalable and live trace processing with Kieker utilizing cloud computing. In: Proceedings of the Symposium on Software Performance: Joint Kieker/Palladio Days 2013 (KPDays 2013). Volume 1083. CEUR Workshop Proceedings, Nov. 2013
In this work, we describe the idea of multiple worker levels for analyzing the huge amount of generated monitoring records. Therefore, a worker and master concept and a scaling architecture are introduced. In addition, we show the MooBench benchmark results for comparing the analysis component of Kieker 1.8 and ExplorViz.
[Fittkau 2013] F. Fittkau. Live trace visualization for system and program comprehension in large software landscapes. Technical report 1310. Department of Computer Science, Kiel University, Germany, Nov. 2013
This technical report presents a plan of the contributions of this thesis and details an evaluation scenario for the application-level perspective.
[Fittkau et al. 2014a] F. Fittkau, P. Stelzer, and W. Hasselbring. Live visualization of large software landscapes for ensuring architecture conformance. In: Proceedings of the 2nd International Workshop on Software Engineering for Systems-of-Systems (SESoS 2014). ACM, Aug. 2014
Architecture conformance checking is introduced as a further usage scenario beneath supporting system and program comprehension in this paper. Furthermore, we present a preliminary study of the scalability and thus applicability of our analysis approach.
[Fittkau et al. 2015g] F. Fittkau, S. Roth, and W. Hasselbring. ExplorViz: visual runtime behavior analysis of enterprise application landscapes. In: Proceedings of the 23rd European Conference on Information Systems (ECIS 2015). AIS, May 2015
Performance analysis is a further usage scenario of our approach. Beneath introducing important aspects of the functionality for the performance analysis, we exemplify it on monitoring data gathered from the Perl-based application EPrints¹¹ in this publication.
[Fittkau et al. 2015f] F. Fittkau, A. Krause, and W. Hasselbring. Exploring software cities in virtual reality. In: Proceedings of the 3rd IEEE Working Conference on Software Visualization (VISSOFT 2015). IEEE, Sept. 2015
In this work, we present our approach to use VR for exploring the application-level perspective to provide an immersive experience. To enable VR, we use an Oculus Rift and provide further gesture-based interaction possibilities using a Microsoft Kinect.
[Fittkau et al. 2015i] F. Fittkau, E. Koppenhagen, and W. Hasselbring. Research perspective on supporting software engineering via physical 3D models. In: Proceedings of the 3rd IEEE Working Conference on Software Visualization (VISSOFT 2015). IEEE, Sept. 2015
The approach of constructing physical 3D models of our application-level perspective is presented in this work. Additionally, four potential usage scenarios for these physical models are described.
Evaluations
[Fittkau et al. 2014b] F. Fittkau, A. van Hoorn, and W. Hasselbring. Towards a dependability control center for large software landscapes. In: Proceedings of the 10th European Dependable Computing Conference (EDCC 2014). IEEE, May 2014
IT administrators often lack trust in automatic adaption approaches for their software landscapes. Therefore, we developed a semi-automatic control center concept which is presented in this publication. This control center concept is used as a target specification in our extensibility evaluation for the ExplorViz implementation.
[Waller et al. 2014a] J. Waller, F. Fittkau, and W. Hasselbring. Application performance monitoring: trade-off between overhead reduction and maintainability. In: Proceedings of the Symposium on Software Performance 2014 (SOSP 2014). University of Stuttgart, Nov. 2014
In this publication, we present a structured benchmark-driven performance tuning approach exemplified on the basis of Kieker. The last performance tuning step is equal to our developed monitoring component of ExplorViz. Therefore, the paper contains a performance comparison between Kieker and the monitoring component of ExplorViz.
[Fittkau et al. 2015a] F. Fittkau, S. Finke, W. Hasselbring, and J. Waller. Comparing trace visualizations for program comprehension through controlled experiments. In: Proceedings of the 23rd IEEE International Conference on Program Comprehension (ICPC 2015). IEEE, May 2015
Providing efficient and effective tools to gain program comprehension is essential. Therefore, we compare the application-level perspective of ExplorViz to the trace visualization tool EXTRAVIS in two controlled experiments to investigate which visualization is more efficient and effective in supporting the program comprehension process.
[Fittkau et al. 2015j] F. Fittkau, E. Koppenhagen, and W. Hasselbring. Research perspective on supporting software engineering via physical 3D models. Technical report 1507. Department of Computer Science, Kiel