Love this sentence from Dijkstra (as part of his ACM Turing Lecture on 1972: the Humble Programmer)
The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise
I couldn’t agree more with him. When modeling we can omit details that are irrelevant from a given point of view but this does not mean that we lose precision! And you, what’s your take?