Declarative, Defect, Generative, Impossible

This lesson introduces the following analysis patterns: declarative trace, defect group, generative trace, impossible trace, and sparse trace.

Declarative trace

The trace statements in the source code can be considered as a declarative trace from analogy with variable declaration and definition in programming languages such as C and C++. Declaration of the variable doesn’t mean that the variable is used. Some declared variables such as arrays expand in memory when used (as in .bss sections). The same is true for trace messages from a declarative trace. Some don’t appear in the actual software execution trace, and some are repeated because of loops and multiple code reentrance. However, declarative traces are useful for studying the possibilities of trace and log designs, implementation, and coverage (for example, sparse trace). Some trace analysis patterns are also applicable for declarative traces such as message sets and bifurcation points among different source code versions. This is illustrated in the following picture:

Get hands-on with 1200+ tech skills courses.