MagicDraw UML and SysML Plugin eSchool
Motto: "Learn good ways to work with MagicDraw UML and its SysML Plugin !"
About the eSchool
UML2 in MagicDraw
MagicDraw UML tips
MagicDraw SysML Plugin
MagicDraw for Java
MagicDraw for XML
Advanced UML and SysML Training

Recomended naming conventions for port-based engineering in MagicDraw UML and Java

I have found the following notation conventions to be a good compromise between readability and Java-friendliness for port-based systems engineering in MagicDraw UML. (Note also that the MD SysML plugin with SysML FlowPort and ItemFlow support makes representation of signal processing systems easier.)

Consider a system with Audio. I recommend:

  • Use additional stereotypes to aid your port-based engineering.
  • Use Audio for the Interface (if needed, in some cases an Interface is overkill).
    • Do NOT use the IAudio "Eclipse" style, it is too easily confused with "input".
  • <<port>>: Use Audio_ (with a trailing underscore) for the "default implementor <<port>> Class" that provides the Interface Audio.
  • <<conjugate>>: Use Audio$ (which a trailing doller) for the conjugate that requires the Interface Audio.
    • Do NOT use the ~Audio conjugate convention, it is not Java-friendly, and it is too easily confused with the signal convention Audio~ (below)
  • <<signal>>: Use Audio~ (with a trailing tilde) to type InformationFlows.
    • The '~' looks a bit like wave.
    • This is NOT Java Friendly.

The relationship between the Interface name and the implementor/conjugate pair breaks down (as it should) for complex ports.

The example below is from the "signal processing" domain, however the principles scale well to UMl-driven port-based Java software engineering. 

Image: 
Search
UML2 Tutorial Overview [under construction]