Как лучше решить эту ООП задачу?
А ваш метод GetUniversity у профессора не нарушит SOLID и агрегацию? По моему тут обычный DI - инжектируйте зависимость в профессора, просто не через конструктор, а через поле, раз профессор может туда-сюда бегать из университета в колледж.
University содержит множество экземпляров Professor.
В смысле? Университет может порождать множество экземпляров университетов, а профессор - профессоров. И они не могут наследовать - профессор не имеет ни свойств, ни методов университета.
Как верно подсказал коллега выше, принадлежность к университету - обычное свойство профессора, причем может быть многие-ко-многим. Следовательно, ответ на ваш вопрос: обычный геттер.