You are here: Visual LANSA Logical Modeler > 8. Abstractions > 8.3 Work with Abstractions > 8.3.11 Hiding Complexity

8.3.11 Hiding Complexity

Abstractions can contain entities and other abstractions. When you include an abstraction object within another abstraction, you create a drill-down effect.

When an abstraction is activated, only those entities and abstractions contained within the active abstraction will be shown on the model diagram. Only those relationships that link the entities within the abstraction are shown. You can create a new abstraction with the active abstraction or you may activate another abstraction if it is listed as part of the active abstraction.

If you activate another abstraction within the active abstraction, only the objects in the newly activated abstraction will be shown. You are able to drill-down to the next level of the abstraction.

Using the drill-down structure, abstractions can be used to hide the complexity of the model. For example, you may hundreds of entities in a model diagram. You can create a new abstraction named "My Model" with nothing in it. When the My Model abstraction is activated, all objects in the model will disappear. The diagram will only show the My Model Abstraction. In effective, you have hidden the complexity of the diagram. You now have your own abstraction in which you can create your own small model.

If you wish to organize your entities into smaller models, you can also use the drill-down structure to create an abstraction menu to access these smaller models. For example, you may have an abstraction named Order Processing with all entities used for your Order Processing database. You may have an abstraction named Inventory Management with all entities used for your Inventory Management database. Simply create a new abstraction named "My Models" that contains the Order Processing and Inventory Management abstraction. When you activate "My Models", you will only see the Order Processing and Inventory Management abstractions. In effect, this is a menu to your other models. You can now activate the model you wish to develop.

It is very important that you do not create a loop in your abstractions when drilling down. For example, if Abstraction A contains Abstraction B, and Abstraction B contains Abstraction C, then do not include Abstractions A or B into C.