## Hierarchy Views Show Multi-Level Relationships

Hierarchy views show the relationships between entities. Here are examples of the types of hierarchy views that Understand for Ada offers.

- Invocation - Shows the entire chain of invocations for a compilation unit. Each line between entities is read as “entity calls entity”. In this example, Mahjongg calls Showwhich calls ClearScreen (and others).
- Call By - Shows who uses a compilation unit by calling it, and who that compilation unit uses, for all successors. Each line connecting an entity is read as “entity is called by entity”. In this example, Show (also seen above) is called by Mahjongg and Load_Game. Load_Game is in turn called by Dispatch_Command and so on. Note that this view is read from the bottom up or right to left.
- With Tree - shows what compilation units are Withed by a given entity, and the units that they With until the top of the tree is reached. Each line is read as “Withs”. In this example, Mahjongg Withs Board, which Withs TileADT.
- WithBy Tree - Shows what compilation units With this compilation unit, and who Withs them, etc... Each line is read as “is Withed by” and the diagram is typically read from the bottom up. In this example, TileADT is Withed by Board, which is Withed by Mahjongg.
- Instantiation Tree - Shows generic instantiation hierarchy of a given entity. Each line reads as “is instantiated by”. In the example given below, Generic Package list is instantiated by SymList, ExprList, bindlist, and framelist. Also available is the “Instantiated From Tree” which shows only what generics a compilation unit is instantiated from.
- Type Derive Tree - Shows a root type and the types derived from it. The tree is read from the bottom up and each line is read as “is derived from”. This example shows the type derivation tree for types in the Standard Library. Also available is the “Type Derive From Tree”, which shows only what types an entity is derived from.
- Child Library Unit Tree - Shows the parent/child library hierarchy of an entity. This graph is read from the bottom and each line is read “is a child of”. In this example, Strings is a child of C, which is a child of Interfaces. Also available is the opposite view “Parent Library Unit”.

Scientific Toolworks, Inc. http://www.scitools.com