Bachelor Thesis BCLR-2022-46

BibliographyChen, Steven: Supporting the documentation of architectural decision records in IDEs : a VS code plugin for the ADR manager.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Bachelor Thesis No. 46 (2022).
86 pages, english.

Software architecture is largely shaped by decisions made during the software development life cycle. These architectural decisions contain information about the underlying architecture that is relevant for creating a unified view of the architecture across all stakeholders of the software project. Disregarding the documentation of architectural decisions leads to a multitude of problems during the maintenance of the software. One way of capturing architectural decisions along with their rationale is using so-called architectural decision records (ADRs). Tools for managing ADRs already exist, but they often operate in a context that feels unfamiliar to software developers or requires them to switch to a different tool. This thesis explores the possibility of providing ADR tooling as an IDE plugin, making ADR management features conveniently available for developers. The result of the research is the ADR Manager extension for the Visual Studio Code IDE, available on the Visual Studio Code Marketplace. This extension is based on the web-based tool with the same name and provides features for creating, editing, and managing ADRs on a local repository in a Markdown format. In addition to providing two form-based ADR editors with varying levels of detail, the extension enhances the functionality of the raw Markdown editor of the IDE by providing linting support and quick insertion of ADR templates in the form of snippets. In an empirical user study with seven software professionals, the ADR Manager extension received resounding feedback from evaluation participants regarding its usability in the context of Visual Studio Code. The participants praised the simple yet effective extension functionality, stating that it fits nicely in the IDE environment. On the other hand, they wished that the extension was at times more concise in communicating which inputs are available to the user and how the extension expects the user to enter them such that they receive their desired result. Still being a prototype, there are multiple ways the extension can be improved in the future. Examples include enhancing existing functionality, extending the functionality to appeal to more users, or implementing the support for more ADR formats.

Full text and
other links
Department(s)University of Stuttgart, Institute of Software Technology, Empirical Software Engineering
Superviser(s)Wagner, Prof. Stefan; Bogner, Dr. Justus
Entry dateOctober 27, 2022
   Publ. Computer Science