Christoph Knieke

h-index9
2papers

2 Papers

SENov 7, 2025
Generating Software Architecture Description from Source Code using Reverse Engineering and Large Language Model

Ahmad Hatahet, Christoph Knieke, Andreas Rausch

Software Architecture Descriptions (SADs) are essential for managing the inherent complexity of modern software systems. They enable high-level architectural reasoning, guide design decisions, and facilitate effective communication among diverse stakeholders. However, in practice, SADs are often missing, outdated, or poorly aligned with the system's actual implementation. Consequently, developers are compelled to derive architectural insights directly from source code-a time-intensive process that increases cognitive load, slows new developer onboarding, and contributes to the gradual degradation of clarity over the system's lifetime. To address these issues, we propose a semi-automated generation of SADs from source code by integrating reverse engineering (RE) techniques with a Large Language Model (LLM). Our approach recovers both static and behavioral architectural views by extracting a comprehensive component diagram, filtering architecturally significant elements (core components) via prompt engineering, and generating state machine diagrams to model component behavior based on underlying code logic with few-shots prompting. This resulting views representation offer a scalable and maintainable alternative to traditional manual architectural documentation. This methodology, demonstrated using C++ examples, highlights the potent capability of LLMs to: 1) abstract the component diagram, thereby reducing the reliance on human expert involvement, and 2) accurately represent complex software behaviors, especially when enriched with domain-specific knowledge through few-shot prompting. These findings suggest a viable path toward significantly reducing manual effort while enhancing system understanding and long-term maintainability.

SEApr 28, 2021
Tackling Software Architecture Erosion: Joint Architecture and Implementation Repairing by a Knowledge-based Approach

Christoph Knieke, Andreas Rausch, Mirco Schindler

Architecture erosion is a big challenge in modern architectures leading to a deterioration of the quality properties of these systems. Today, no comprehensive approach for regaining architecture consistency in eroded software systems exists and architecture consistency is essentially achieved by repairing the implementation level only. In this paper, we propose a novel approach enabling a joint architecture and implementation repairing for tackling software architecture erosion. By using a holistic view on violation causes and suitable repair actions in combination with learning mechanisms we build up a project specific knowledge-base improving accuracy and efficiency in consolidation of architecture and implementation over time.