Skip to content

Problem statement (Draft)

Lotte Juul Damgaard edited this page Jan 30, 2026 · 13 revisions

New Draft

Architectural awareness is crucial for developers, ensuring that they keep in line with the intended architecture. However, keeping a mental model of the system's structure and dependencies can be hard and requires good program comprehension. Developers often resort to outdated documentation for help, or look directly into an overwhelming codebase, which does not help them get an overview of the system (Facilitating program comprehension with call graph multilevel hierarchical abstractions; Applications of Multi-view Learning Approaches for Software Comprehension).

Multi-Level Dependency Views (MLDVs) aim to support architectural awareness and program comprehension by visualising the internal workings of software with multiple scopes, illustrating how folders are connected with edges to represent import dependencies between files and folders. Prior research argues that such views can support architectural awareness during development (Visualization of the Static Aspects of Software: A Survey), including change-impact analysis and the conservation of dependency structure (Drift and Erosion in Software Architecture: Summary and Prevention Strategies). However, there is limited evidence establishing whether such MLDV tools provide measurable benefits in realistic developer tasks.

This thesis investigates ArchLens, a tool that extracts static dependencies from a codebase and presents them as multi-level dependency views. The goal is to evaluate whether ArchLens improves architectural awareness for developers.

The thesis addresses the following research question:

RQ1: To what extent does ArchLens improve developers’ architectural awareness of a system?

To answer this question, we will conduct a user study with developers using ArchLens. We will analyse quantitative performance measures alongside developer feedback to characterise when ArchLens helps, when it does not, and analyse what features are missing for the multi-level dependency tool to reach its full potential.

Old draft

Program comprehension is a crucial skill for developers, requiring developers to be able to rapidly form a mental model of a system’s structure and dependencies. This skill is required both when a developer is being onboarded to a new system, and during maintenance and development of the system. In practice, developers often resort to outdated documentation or look into an overwhelming codebase, which does not support their understanding (Facilitating program comprehension with call graph multilevel hierarchical abstractions; Applications of Multi-view Learning Approaches for Software Comprehension).

Multi-Level Dependency Views (MLDVs) aim to support program comprehension by visualising the internal workings of software with multiple scopes, illustrating how folders are connected with edges to represent import dependencies between files and folders. Prior research argues that such views can support program comprehension and maintenance activities (Visualization of the Static Aspects of Software: A Survey), including change-impact analysis and the conservation of dependency structure (Drift and Erosion in Software Architecture: Summary and Prevention Strategies). However, there is limited evidence establishing whether such MLDV tools provide measurable benefits in realistic developer tasks, nor whether the same dependency views can support both initial comprehension and maintaining dependency structure during feature development.

This thesis investigates ArchLens, a tool that extracts static dependencies from a codebase and presents them as multi-level dependency views. The goal is to evaluate whether ArchLens improves (i) comprehension during onboarding to an unknown codebase and (ii) ongoing development that respects dependency constraints.

The thesis addresses two research questions:

RQ1: To what extent does ArchLens improve developers’ performance on comprehension tasks in an unknown codebase?

RQ2: To what extent does ArchLens improve developers’ ability to implement changes while preserving intended dependency structure?

To answer these questions, we will conduct a controlled lab study in which participants perform representative comprehension and change tasks with and without ArchLens. We will analyse quantitative performance measures alongside developer feedback to characterise when ArchLens helps, when it does not, and analyse what features are missing for the multi-level dependency tool to reach its full potential.

Clone this wiki locally