Extending The Object-Oriented Paradigm To Support Relationships and Constraints