Maintaining large C++ codebases with hundreds of developers is a complex problem.
In the KDE community, work is being undertaken to improve documentation, as well as to automate and systematize internal processes such as testing and QA (see current KDE Goals). Our tool, currently under development sponsored by Bloomberg, supports these processes, making it possible for developers to visualize and, therefore, better comprehend existing C++ architectures. This visualization, analysis, and development tool is based on the ideas from John Lakos' book "Large Scale C++ Software Design".
Our presentation has two parts. In the first, we explain how the ideas from John's book are implemented in the tool; in the second, we demonstrate how we've been using the tool to understand KDE projects, improve their code quality, and fix architectural suboptimalities.
Tarcísio Fischer is a software engineer at Codethink. He's graduated in Computer Science and has a Master's in Engineering with focus on Optimization software.
Tomaz Canabrava is a C++ software engineer at Codethink, and the maintainer of Konsole since 2017.
We'll show and explain our tool (currently under development sponsored by Bloomberg) and how we've been using the KDE project as a case study. Tool is relevant to software developers trying to visualize and understand the code and those trying to maintain and analyse their code that, for instance, are part or make use of the KDE Frameworks (KF5 / KF6). This visualization, analysis, and development tool is based on the ideas from John Lakos' book "Large Scale C++ Software Design".