Relationships Meet their Roles in Object Oriented Programming