The imminent public release of Structure101 v7 includes an entirely new kind of C/C++ source parser. Three years in the making, this parser feeds a high-fidelity “super-model” into our familiar visual desktop applications, as well as into our brand-new SQL dependency database which comes with a powerful query language, REST API, and web frontend.
C++ is a complex language with not just compile-time, but also pre-compiler and link-time dependencies. Not to mention separate definitions/declarations, macros, templates, etc. And then there’s build system to be understood …
This complexity makes it extremely difficult to extract a complete and accurate codebase-wide dependency model. Yet this level of detail and precision is an absolute prerequisite to truly supporting the wide range of daily challenges that face developers on large-scale C++ projects.
After countless iterations and refinements on large-scale industrial projects, using a wide range of compilers and build systems, our new baby is finally up to the job!
What can you use this for?
The new hi-fidelity model makes Structure101 even better for the usual activities: understanding internal dependencies; identification, tracking, and repairing structural over-complexity; extraction of features into new components; specification of dependency constraints, repairing violations, etc.
Additionally, the new database opens up a wide range of new queries: general pattern-based dependency queries, API checking, impact analysis, finding superfluous #includes, test prioritisation, finding the changes that may have caused unit-test failures, library upgrade estimation, UML compliance, and many more.
We have implemented many queries directly, plus you can easily create your own queries. Queries can be called though the UI in our browser frontend, and/or they can be called from your own workflow tooling. The possibilities are limitless.
Version 7 also brings support for Docker, AWS, JFrog, etc. and can be more easily deployed to most CI environments.
Structure101 v7 for C/C++ offers hard queryable dependency data to inform your important development decisions.
Please contact us for more info.