In an integrated development environment, there is a tight coupling
between a design surface providing a visual representation of the various
physical and logical entities in a software model and the underlying code
structures that support the entities. The model can include varying
combinations of a component model, a high level design whiteboard, or a
physical model. Every object defined within the design surface is capable
of being mapped directly to an underlying code structure. The model is a
graphical representation of the actual code, thus providing two way
updating, i.e., the model is updated when the programmer changes the code
and vice versa.