1. A method for programmatically enforcing referential integrity constraints among associations between class instances, comprising steps of: evaluating a request to set an association end to reflect an association from an instance of a first class to an instance of a second class, setting the requested association end; and programmatically modifying an inverse association end of the association to reflect an inverse association from the instance of the second class to the instance of the first class.