Вы действительно ищете свойство isQuery для операции .
Согласно спецификации UML (2.5):
Если свойство isQuery имеет значение true, вызов Операции не должен изменять состояние экземпляра или любого другого элемента в модели.
В отношении нотации UML говорит следующее:
[<visibility>] <name> ‘(‘ [<parameter-list>] ‘)’ [‘:’ [<return-type>] [‘[‘ <multiplicity-range> ‘]’][‘{‘ <oper-property> [‘,’<oper-property>]* ‘}’]]
, где
<oper-property>
указывает свойства Операции.
<oper-property> ::= ‘redefines’ <oper-name> | ‘query’ | ‘ordered’ |‘unordered’ | ‘unique’ | ‘nonunique’ | ‘seq’ |‘sequence’ |<oper-constraint>
Так что для вас пример, который станет
+ func() : void {query}