This tutorial trail presents some of the basic steps for managing port-based service oriented systems in MagicDraw UML using the provided/required Interface mechanism of UML2.
Define port-based services first at the Class/Component level in a "focus" diagram
I recommend that you have a class or implementation "focus" diagram for each port-based class and define/declare and document its ports and required and provided services there, BEFORE connecting it up in any particular usage context.
To create an InterfaceRealization from a typed Port to "provide" an Interface you can use:
- The InterfaceRealization menu item in the diagram toolbar:
- to an existing Interface in the diagram
- to a new Interface created on the fly
- The "smart manipulator" to draw an InterfaceRealization from the typed Port (a number of relationships appear right of the Port when you select it, one of them is InterfaceRealization):
- EITHER to an existing Interface in the diagram
- OR to a new Interface created on-the-fly
- The hotkey 'R' for realization
To create a Usage from a typed Port to "require" an Interface you can similarly use:
- The Usage menu item in the diagram toolbar.
- The "smart manipulator" from a typed Port.
- The hotkey 'U' for usage.
Note that the PORT MUST BE TYPED already, otherwise it makes no sense for it to realise or use anything, because it is in fact the TYPE that realises or uses the interface.
That Type (a BehavioredClassifier) of the Port will then be seen to realise (provide) and use (require) the same interfaces (see next images).

