In my design I decided to go for "design by interface" approach to improve decoupling, reusability and testability. In practice it means that every Service or Manager has an interface and implementation and if any other class uses it, it is references by interface. Classic, right? Especially when using EJB3 or Spring.
I got confused though when presenting such approach on diagrams. It clutters the picture a bit and it doesn't look like giving any value there. On the other hand it's pretty essential part of design so it should be presented somehow (or at least mentioned in assumptions for Class diagram).
What do you think about it? How you present Service/Manager-like classes in Class Diagram?
What about Sequence Diagrams: calls should go to interfaces or implementations?