
I’ve just realized that while I’ve written a bunch of posts referring to snapshots and using snapshots, I’ve never explained what they are and how they can fit into a software engineer’s workflow. Hence the “missing piece of the puzzle” clip art above.
Q: What are snapshots?
A: A snapshot is a binary store included within an Understand database. A database can hold be any number of snapshots. Each contains three things:
- a complete Understand database containing analysis (parse) information
- all source, including any include files, needed to rebuild that analysis
- certain cached information used to speed up working with them (metrics and file information)
Q: What are snapshots used for?
A: They are used throughout Understand 2.0 to provide details and metrics about what has changed in source code between two points of time. The “Change”, “Metrics”, and “Estimate” menus all use snapshots intensively.
“Change” will tell you what has changed at the semantic level. For instance, what classes or types changed, versus just what files/lines changed.
“Metrics” can tell you the number of semantic changes – classes removed, changed, added, so forth.