  We set down the principles behind a modeling language for quantum software.
We present a minimal set of extensions to the well-known Unified Modeling
Language (UML) that allows it to effectively model quantum software. These
extensions are separate and independent of UML as a whole. As such they can be
used to extend any other software modeling language, or as a basis for a
completely new language. We argue that these extensions are both necessary and
sufficient to model, abstractly, any piece of quantum software. Finally, we
provide a small set of examples that showcase the effectiveness of the
extension set.
