Uma operação é uma função ou transformação que pode ser aplicada a ou por objetos em uma classe. Por exemplo, abrir, salvar e imprimir são operações que podem ser aplicadas a objetos da classe Arquivo. Todos objetos em uma classe compartilham as mesmas operações.
Toda operação tem um objeto-alvo como um argumento implícito. O comportamento de uma operação depende da classe de seu alvo. Como um objeto ``sabe'' qual sua classe, é possível escolher a implementação correta da operação. Além disto, outros argumentos (parâmetros) podem ser necessários para uma operação.
Uma mesma operação pode se aplicar a diversas classes diferentes. Uma operação como esta é dita ser polimórfica, ou seja, ela pode assumir distintas formas em classes diferentes.
Um método é a implementação de uma operação para uma classe. Por exemplo, a operação imprimir pode ser implementada de forma distinta, dependendo se o arquivo a ser impresso contém apenas texto ASCII, é um arquivo de um processador de texto ou binário. Todos estes métodos executam a mesma operação -- imprimir o arquivo; porém, cada método será implementado por um diferente código.
A assinatura de um método é dada pelo número e tipos de argumentos do método, assim como por seu valor de retorno. Uma estratégia de desenvolvimento recomendável é manter assinaturas coerentes para métodos implementando uma dada operação, assim como um comportamento consistente entre as implementações.
Em termos de diagramas OMT, operações são listadas na
terceira parte da caixa de uma classe. Cada nome de
operação pode ser seguida por detalhes opcionais, tais como
lista de argumentos e tipo de retorno. A lista de argumentos é
apresentada entre parênteses após o nome da
operação. Uma lista de argumentos vazia indica que a
operação não tem argumentos; da ausência da lista de
argumentos não se pode concluir nada. O tipo de resultado vem
após a lista de argumentos, sendo precedido por dois pontos
(:). Caso a operação retorne resultado, este não deve
ser omitido -- esta é a forma de distinguí-la de
operações que não retornam resultado. Exemplos de
representação de operações em OMT são
apresentados na Figura .