From Expert to Novice: An Empirical Study on Software Architecture Explanations
Authors:
Satrio Adi Rukmono,
Filip Zamfirov,
Lina Ochoa,
Michel Chaudron
Abstract:
The sharing of knowledge about software architecture is crucial in software development, particularly during the onboarding of new developers. However, existing documentation often falls short due to issues like incompleteness and ambiguity. Consequently, oral explanations are used for knowledge transfer. This study investigates what constitutes a good explanation of software architecture through…
▽ More
The sharing of knowledge about software architecture is crucial in software development, particularly during the onboarding of new developers. However, existing documentation often falls short due to issues like incompleteness and ambiguity. Consequently, oral explanations are used for knowledge transfer. This study investigates what constitutes a good explanation of software architecture through an empirical study. It aims to explore how software architecture explanations are conducted, identify the main challenges, and suggest improvements. It addresses five key areas: relevant architectural concerns, explanation plans, supporting artefacts, typical questions, and expectations. An exploratory field study was conducted using semi-structured interviews with 17 software professionals, including 9 architecture explainers and 8 explainees. The study discovers that an explanation must balance both problem and technical domains while considering the explainee's role, experience, and the goal of the explanation. The concept of the explanation window, which adjusts the level of detail and scope, is introduced to address these variables. We also extend the Twin Peaks model to guide the interplay between problem and solution domains during architectural explanations by adding an emphasis to the context surrounding both domains. Future research should focus on developing better tools and processes to support architecture explanations.
△ Less
Submitted 11 March, 2025;
originally announced March 2025.
A literature review on different types of empirically evaluated bug localization approaches
Authors:
Filip Zamfirov
Abstract:
Today, software systems have a significant role in various domains among which are healthcare, entertainment, transport and logistics, and many more. It is only natural that with this increasing dependency on software, the number of software systems increases. Additionally, these systems become more and more complex. All this leads to a rise in the number of software faults also known as bugs. As…
▽ More
Today, software systems have a significant role in various domains among which are healthcare, entertainment, transport and logistics, and many more. It is only natural that with this increasing dependency on software, the number of software systems increases. Additionally, these systems become more and more complex. All this leads to a rise in the number of software faults also known as bugs. As a result, the ability to locate the source of a bug (e.g. a file or a commit) is vital for the development and maintenance of efficient software solutions. Bug localization refers to the automated process of discovering files that contain bugs, based on a bug report. This research project aims to make a literature review on different techniques for bug localization. This study distinguishes itself from other surveys and literature reviews [1] in one significant way. The focus of the work is on identifying, categorizing and analyzing existing bug localization methods and tools which were evaluated in an industrial setting. To the best of my knowledge, there are no other works that prioritise this aspect. Unfortunately, such literature is scarce, therefore, bug localization techniques evaluated on open source software are also included.
△ Less
Submitted 22 December, 2022;
originally announced December 2022.