Здравствуйте, OpenMinded, Вы писали:
OM> Кроме того, если рассмотреть такую программу, как компилятор — то получается, что реального объекта нет, а вот программа и объектная модель — есть. 
Да, компиляторы и интерпретаторы — хороший пример.
OM> Программы НЕ моделируют реальный мир. Это делают разработчики программ для того, что бы облегчить себе проектирование. Сложную прогаммную систему гораздо легче представить и понять, если рассматривать её как набор объектов, уровней, модулей, служб и т.д. чем как алгоритм. 
Так всё-таки. Должен ли программист уметь моделировать? Входит ли это в его должностные обязанности?