Loading…
Monday, March 27 • 14:30 - 15:10
CodeCompass: An Open Software Comprehension Framework

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Bugfixing or new feature development requires a confident understanding of all details and consequences of the planned changes. For long existing large telecom systems, where the code base have been developed and maintained for decades by fluctuating teams, original intentions are lost, the documentation is untrustworthy or missing, the only reliable information is the code itself. Code comprehension of such large software systems is an essential, but usually very challenging task. As the method of comprehension is fundamentally different from writing new code, development tools are not performing well. During the years, different programs have been developed with various complexity and feature set for code comprehension but none of them fulfilled all requirements.

CodeCompass is an open source LLVM/Clang based tool developed by Ericsson Ltd. and the Eötvös Loránd University, Budapest to help understanding large legacy software systems. Based on the LLVM/Clang compiler infrastructure, CodeCompass gives exact information on complex C/C++ language elements like overloading, inheritance, the (read or write) usage of variables, possible call. on function pointers and the virtual functions -- features that various existing tools support only partially. The wide range of interactive visualizations extends further than the usual class and function call diagrams; architectural, component and interface diagrams are a few of the implemented graphs.

To make comprehension more extensive, CodeCompass is not restricted to the source code. It also utilizes build information to explore the system architecture as well as version control information when available: git commit history and blame view are also visualized. Clang based static analysis results are also integrated to CodeCompass. Although the tool focuses mainly on C and C++, it also supports Java and Python languages. Having a web-based, pluginable, extensible architecture, the CodeCompass framework can be an open platform to further code comprehension, static analysis and software metrics efforts.

Lecture outline:
- First we show why current development tools are not satisfactory for code comprehension
- Then we specify the requirements for such a tool
- Introduce codecompass architecture.
- Revail some challenges we have met and how we solve them
- Show a live demo
- Describe the open architecture and
- Talk about future plans and how the community can extend the feature set

Speakers
avatar for Zoltán Porkoláb

Zoltán Porkoláb

Ericsson Ltd., Eotvos Lorond University, Faculty of Informatics, Dept of Programming Languages and Compilers


Monday March 27, 2017 14:30 - 15:10 CEST
HS002, E1 3