I am a PhD student at the IT University of Copenhagen in Denmark.
I am interested in Software Engineering and Computer Graphics!
Below, you can find some of my work and hobby projects.
Utilizing Software Architecture Recovery to Explore Large-Scale Software Systems in Virtual Reality
In this paper, we describe a method for visualizing the architecture and design of a large-scale software system in virtual reality, so that one can explore and comprehend its structure visually instead of only reading code.
We implemented this method in our prototype Immersive Software Archaeology.
Exploring an unfamiliar large-scale software system is challenging especially
when based solely on source code. While software visualizations help in gaining
an overview of a system, they generally neglect architecture knowledge in their
representations, e.g., by arranging elements along package structures rather than
functional components or locking users in a specific abstraction level only
slightly above the source code. In this paper, we introduce an automated approach
for software architecture recovery and use its results in an immersive 3D virtual
reality software visualization to aid accessing and relating architecture knowledge.
We further provide a semantic zoom that allows a user to access and relate
information both horizontally on the same abstraction level, e.g., by following
method calls, and vertically across different abstraction levels, e.g., from a
member to its parent class. We evaluate our contribution in a controlled experiment
contrasting the usefulness regarding software exploration and comprehension of our
concepts with those of the established CityVR visualization and the Eclipse IDE.
Visiting Researcher at Università della Svizzera italiana
I visited the REVEAL research group at Università della Svizzera italiana (USI) from September to December 2022.
Experiences with Constructing and Evolving a Software Product Line with Delta-Oriented Programming
In this paper, we report on insights into developing a software product line using delta-oriented programming.
The concrete tool used was DeltaJava.
A Software Product Line (SPL) captures families of closely related
software variants. The configuration options of an SPL are represented
by features. Typically, SPLs are developed in a featurecentric manner
and, thus, require different development methods
and technologies from developing software products individually.
For developers of single systems, this means a shift in paradigm and
technology. Especially with invasive variability realization mechanisms,
such as Delta-Oriented Programming (DOP), centering development around
configurable features realized via source code
transformation is commonly expected to pose an obstacle, but concrete
experience reports are lacking. In this paper, we investigate
how DOP and cutting-edge SPL development tools are picked up
by non-expert developers. To this end, we report on our experiences from
a student capstone SPL development project. Our results show that
participants find easy access to SPL development
concepts and tools. Based on our observations and the participants’
practices, we define guidelines for developers using DOP.
Towards Immersive Software Archaeology: Regaining Legacy Systems’ Design Knowledge via Interactive Exploration in Virtual Reality
In this short paper, we outline our goals for the ISA project and what challenges we want to address:
Many of today’s software systems will become the legacy systems of
tomorrow, comprised of outdated technology and inaccurate design
documents. Preparing for their eventual re-engineering requires engineers
to regain lost design knowledge and discover re-engineering
opportunities. While tools and visualizations exist, comprehending
an unfamiliar code base remains challenging. Hence, software archaeology
suffers from a considerable entry barrier as it requires
expert knowledge, significant diligence, tenacity, and stamina. In
this paper, we propose a paradigm shift in how legacy systems’
design knowledge can be regained by presenting our vision for an
immersive explorable software visualization in virtual reality (VR).
We propose innovative concepts leveraging benefits of VR for a)
immersion in an exoteric visualization metaphor, b) effective navigation
and orientation, c) guiding exploration, and d) maintaining
a link to the implementation. By enabling immersive and playful
legacy system exploration, we strive for lowering the entry barrier,
fostering long-term engagement, strengthening mental-model
building, and improving knowledge retention in an effort to ease
coping with the increased number of tomorrow’s legacy systems.
This is the complementary conference talk/video:
Augmenting Metamodels with Seamless Support for Planning, Tracking, and Slicing Model Evolution Timelines
In model-based software engineering, models are central artifacts for management, design and implementation.
To meet new requirements, engineers need to plan and perform model evolution. So far, model evolution
histories are captured using version control systems, e.g., Git. However, these systems are unsuitable for
planning model evolution as they do not have a notion of future changes. Furthermore, formally assigning
responsibilities to engineers for performing evolution of model parts is achieved by using additional tools
for access control. To remedy these shortcomings, we provide a method to generate evolution-aware modeling
notations by augmenting existing metamodels with concepts for capturing previous performed and planned
evolution as first-class entity. To provide a clear overview, we automatically generate a Gantt-style viewer
for augmented models and capabilities to slice models for certain time periods. Our method enables engineers
to seamlessly plan future model evolution while actively developing the current model state using a
centralized access point for evolution. With the generated Gantt-style viewers and the slicing
functionality, we enable engineers to inspect relevant model evolution while reducing model size and hiding
unnecessary complexity. In our evaluation, we provide an implementation of our method in the tool
TemporalRegulator3000. We show applicability for real-world metamodels and capture the entire evolution
timeline of corresponding models.
ISA - Immersive Software Archaeology
My PhD project ISA is is a virtual reality software visualization project.
Its goal is to foster the rediscovery of unfamiliar legacy Java software systems' architecture and design.
Long-living legacy software systems grow old over time in tact with engineers retiring or changing jobs and
technologies becoming obsolete even though they are still in use. Software archaeology helps new generations
of engineers to understand such legacy systems to enable maintenance and modernization. Yet, the code base
is large, hard to navigate and incomprehensible. The project ISA will exploit immersive 3D virtual reality
to increase the effectiveness of software archaeology. We will create a virtual reality representation of a
software system that can be explored interactively, for example, a city with buildings, floors and streets
representing modules, functions and dependencies. We will analyze system usage to guide through meaningful
exploration routes and highlight particularly important system areas as targets. The project will be
conducted by internationally recognized researchers from the ITU Copenhagen in collaboration with a
world-leading Swiss visualization expert, a high-tech German startup and two Danish virtual reality
companies. The project results have the potential to substantially advance practices in software archaeology
and make the field more accessible to classically trained software engineers, which is fundamental for
coping with a dramatically increased number of legacy systems in the future.
My work at ITU is supported by the DFF (Independent Research Fund Denmark) within the project ISA –
Immersive Software Archaeology (0136-00070B).
PhD Student - IT University of Copenhagen (ITU)
I am a PhD student at the IT University of Copenhagen since January 2021 where I work in the computer science department.
Member of SQUARE Research Group
Three months prior to my PhD, I joined the Software Quality Research (or short: SQuaRe) group at ITU.
Consistency-Preserving Evolution Planning on Feature Models
In this paper, we present a method that enables to safely plan evolution based on an evolving feature model:
A software product line (SPL) enables large-scale reuse in a family of related software systems through
configurable features. SPLs represent a long-term investment so that their ongoing evolution becomes
paramount and requires careful planning. While existing approaches enable to create an evolution plan for an
SPL on feature-model (FM) level, they assume the plan to be rigid and do not support retroactive changes. In
this paper, we present a method that enables to create and retroactively adapt an FM evolution plan while
preventing undesired impacts on its structural and logical consistency. This method is founded in structural
operational semantics and linear temporal logic. We implement our method using rewriting logic, integrate it
within an FM tool suite and perform an evaluation using a collection of existing FM evolution scenarios.
Automated Metamodel Augmentation for Seamless Model Evolution Tracking and Planning
In this paper, we present a method that allows to automatically extend any given model with the ability to
keep track of its evolution:
In model-based software engineering, models are central artifacts used for management, design and
implementation. To meet new requirements, engineers need to plan and perform model evolution. So far, model
evolution histories are captured using version control systems, e.g., Git. However, these systems are
unsuitable for planning model evolution as they do not have a notion of future changes. Furthermore,
formally assigning responsibilities to engineers for performing evolution of model parts is achieved by
using additional tools for access control. To remedy these shortcomings, we provide a method to generate
evolution-aware modeling notations by augmenting existing metamodels with concepts for capturing past and
planned evolution as first-class entity. Our method enables engineers to seamlessly plan future model
evolution while actively developing the current model state, both using a centralized access point for
evolution. In our evaluation, we provide an implementation of our method in the tool TemporalRegulator3000,
show applicability for realworld metamodels, and capture the entire evolution time line of corresponding
DarwinSPL - Evolution-Aware Feature Modeling
DarwinSPL is a tool for modeling and analyzing evolving software product lines. It was started, developed
and maintained by Michael Nieke at TU Braunschweig's ISF.
In 2019, I joined the DarwinSPL development team and started to implemented the concepts that we created
in the LTEP project.
LTEP - Long-Term Evolution Planning for Highly Variable Software Systems
LTEP was a research project funded by the German Academic Exchange Service (DAAD) and the Research Council
of Norway (NFR).
Starting in 2019, it paved the way for a great collaboration between four researchers from Norway and three
researchers from Germany (i.a., me), on different academic career levels from MSc students to PhD students,
post-docs and associate professors.
The objectives of LTEP were:
Strengthening / reinforcement of academic relations
Complementary cooperative research work at a high academic level
Qualification of young academics in an international environment
Kids at a Lake
Character on Bridge
DeltaJava - Delta-Oriented Programming for Java
DeltaJava is a programming language designed for the development of Software Product Lines consisting of Java code.
DeltaJava implements the delta-oriented programming paradigm, i.e., code is encapsulated in delta modules which can
add, remove, or modify functionality to and from an existing code base or other delta modules.
Applying different sets of deltas thus results in different products.
DeltaJava can be downloaded from its website - tutorial videos included!
Research Assistant - TU Braunschweig
During my studies at Technische Universität Braunschweig, I was a research assistant for the Institute
of Software Engineering and Automotive Informatics (ISF).
At adrianhoff.de, accessible from http://www.adrianhoff.de/, one of my main priorities is the privacy of my
adrianhoff.de and how I use it.
depends on the Personal Information I collect and the specific context in which I collect the information:
adrianhoff.de needs to perform a contract with you
You have given adrianhoff.de permission to do so
Processing your personal information is in adrianhoff.de legitimate interests
adrianhoff.de needs to comply with the law
adrianhoff.de will retain your personal information only for as long as is necessary for the purposes set out in
obligations, resolve disputes, and enforce my policies.
If you are a resident of the European Economic Area (EEA), you have certain data protection rights. If you wish
to be informed what Personal Information I hold about you and if you want it to be removed from my systems,
please contact me.
In certain circumstances, you have the following data protection rights:
The right to access, update or to delete the information I have on you.
The right of rectification.
The right to object.
The right of restriction.
The right to data portability
The right to withdraw consent
adrianhoff.de follows a standard procedure of using log files. These files log visitors when they visit
websites. All hosting companies do this and a part of hosting services' analytics. The information collected by
log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time
stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is
personally identifiable. The purpose of the information is for analyzing trends, administering the site,
tracking users' movement on the website, and gathering demographic information.
in their respective advertisements and links that appear on adrianhoff.de, which are sent directly to users'
browser. They automatically receive your IP address when this occurs. These technologies are used to measure the
effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on
websites that you visit.
Note that adrianhoff.de has no access to or control over these cookies that are used by third-party advertisers.
Third Party Privacy Policies
consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may
include their practices and instructions about how to opt-out of certain options.
You can choose to disable cookies through your individual browser options. To know more detailed information
about cookie management with specific web browsers, it can be found at the browsers' respective websites.
Another part of my priority is adding protection for children while using the internet. I encourage parents and
guardians to observe, participate in, and/or monitor and guide their online activity.
adrianhoff.de does not knowingly collect any Personal Identifiable Information from children under the age of
13. If you think that your child provided this kind of information on my website, I strongly encourage you to
contact me immediately and I will do my best efforts to promptly remove such information from my records.
the information that they shared and/or collect in adrianhoff.de. This policy is not applicable to any
information collected offline or via channels other than this website.