To view a code-base in Structure101 Studio for Clang C/C++, you first need to generate a .cpa file containing all the raw data about the composition and inter-dependencies in the source code. Once you have this, the next step is to set up a Structure101 Studio project to point at that .cpa file.
You will then be confronted with a bunch of other project settings. All in all, project set-up is somewhat complex, but it is important to be aware of and understand the options. Get the right view of your code and you'll never want to be without Structure101 Studio again. But the wrong view will likely leave you cold...
The key settings are:
- Model - do you want to see the code-base in a compiler-oriented view or with linker dependencies shown?
- Granularity - do you want to see the entire (detail) model, down to the code items, or roll up to overview for a bird's eye view? Or perhaps just includes-only?
- Modules - Are you going to define protected scopes with defined APIs in your project? If so this tab lets you select which kinds of module violations to check for.
- File merging - do you want to see .h and .c files separately, or merged together into logical modules?
- Excludes - do you want to see the entire code-base including system and third-party libraries, or do you want to filter in/out subsystems? Similarly, do you want to see dependency types or just some (for instance, it is common to hide "includes" dependencies when primarily interested in code-level dependencies)?
- Pre-transformations - important to normalize (and truncate long) source paths.
- Name map - lets you efficiently import a rename map from file.
Note:
- Some other project settings are viewed/edited separately but also saved as part of the project, e.g. structure specs, architecture diagrams, transformations and association.
- The properties that alter the fully-qualified name of items (name map, pre-transformations, excludes, transformations) are evaluated in a specific sequence, and can interact with each other.