Ээ, есть разница между чтением кода и чтением постановок, например. И это не про 'получает представление', эта формулировка очень неточна, нужна какая-то другая.
Формулировку я просто подвел под определение архитектуры Рольфа Джонсона.
На самом деле, понимание того, как устроена система, из "чтения" программы, уже характеризует высокое качество программы. Хуже, когда для понимания того, что делает тот или иной класс, нужно открывать его реализацию, и пытаться что-то там понять. Еще хуже, когда для этого нужно залазить в отладчик. Еще хуже, кода непонятно, как и где отразится изменение кода.
Это, кстати, одна из причин популярности юнит-тестов - время их написания прогнозируемо, а время на отладку прогнозировать невозможно.
У Стива МакКоннела была такая фраза - если непонятно, что делает класс, исходя из его интерфейса, то не открывайте реализацию, - попросите автора интерфейса сделать его более понятным. В таком случае программу можно "читать", и в таком случае абстракции выполняют свое назначение управления сложностью.