Implementation models vs User mental models

When building digital products, we often find some that "feel" very techy and others that feel "more natural". I believe this is because some of the Product decisions are made based on different Mental models: The implementation model and the User mental model.

Implementation Model

Explained very briefly, implementation model is the one that is more aligned with how is constructed technically. It describes the details of the ways a program is implemented in code. This is usually called System Model (by Donald Normal and others).

User Mental Model

As we all know, users of a product does not have the need to know how something works in order to use it. and this is what we call User Mental model. The user comes with a simple yet most of the time different explanation about how something works in order for them to know how to interact with it. An example is a cellphone; People does not need to know how a cellphone works in order to use it, neither the explanation helps too much to really explain how to use it.

Represented Models

Because usually these two models (Implementation and User) are distinct and apart from each other, Software developers and designers come up with what is called Represented Models" with can be describe as the intermediate models between the two, to make it clear to users what is happening without getting into too much technical details.
This Represented models are constraint by both the Implementation and the User mental model, but in general guidelines, the closer this represented model is to the user mental model the better!
Have you heard about this concepts? Is there other concepts you've heard that explains the same ideas?