Jump to content

Introduction to the Coverity Architecture Library

The Architecture Library includes one or more block diagrams and the associated architecture data files that have been generated for each of over 2,500 open source projects. The images shown in this introduction are for 'Acunia Jam'.

Each block in the diagram represents a summary of all of the cross reference information for a set of functions, variables, structures, and #defines. In the smaller diagrams, consolidation is at the directory level. In the larger diagrams, each block represents one source file. Using the Coverity Architecture Analyzer application, the user can interactively manipulate the diagrams, moving blocks, rearranging layering, or consolidating files together with other logically associated files.

Blocks in the diagram are ordered based on the number of references between blocks. The blocks on the bottom of the diagram are those that the upper blocks build on. This normally results in the lower layers consisting of include files and library functions.

When a project's source files are all in one directory, the directory level diagram will show the project directory, and a block for the system include file directories. Larger projects will show a block for each source directory. In the file level diagrams, system include files have been omitted to save space.

The majority of relationships between files flow downward on the diagrams. The reference arrows pointing downward have been omitted for the sake of readability. Upwards arrows are relationships that are in the opposite direction to most control flow in the program. They can highlight callback mechanisms, circular data structure definitions, circular code references, or conditional compilation, such as where an #ifdef in the lower file is controlled by a #define in a higher file.