Dynamically laying out a graphical diagram based on a graph-like visual
language into a two dimensional tree-like structure to allow ease of user
interaction with and optimal display. A graphical tree-like structure is
displayed that includes at least one branch that starts at the root of
the tree-like structure and includes one or more sub-portions that are
configured to be modified in a vertical direction and a horizontal
direction. The sub-portions represent an overall object model in terms of
functional relationships and internal behaviors for one or more objects,
attributes, operations, and associations. User input is received that
modifies one or more of the sub-portions other than the end portion.
Based on the user input, one or more sub-portions are modified
horizontally, vertically, or both to allow for ease of user interaction,
optimization of the display of the graphical tree-like structure or both.