Calling by reference is one of the possible implementations of inout and out , yes.
Remember that UML describes behavior in a neutral language. It depends on the implementation of this interface in real language to determine what it means.
In a language such as Ada, with in , out and in out level parameters at the language level, this can be expressed directly in the language, and the compiler can decide where the link or copy is the best implementation. In a language such as Python, where all parameters are passed by reference (view), this designation of intent at the UML level does not lead to a difference at the implementation level. And in a language such as C, with explicit pointer types and all parameters passed by value, these intentions expressed in UML turn into explicit references to the addresses and markups of the pointer.
In other words, the short answer is “yes, that's about what it means, but it may not be what it does.”
source share