Símbolo do diagrama de classe UML para uma função de nível superior

13

Na notação de diagrama de classe UML, como denotar uma função de nível superior que não possui nenhuma classe de encapsulamento ou outra estrutura?

por exemplo, tenho uma função usada para recuperar dados de um URL. Como é uma função (no sentido matemático) de apenas seus parâmetros e um estado global compartilhado, a função não é colocada em uma classe, mas deixada como um método de nível superior.

Agora, porém, preciso criar um diagrama UML para um programa que o utilize e não consigo encontrar nada sobre como denotar uma função de nível superior. Como eu faço isso?

AJMansfield
fonte
Você pode modelar-lo como staticmétodo de uma classe especial chamado por exemploglobal
xmojmr
1
As respostas abaixo são boas. No entanto, ao invés de chamar a classe ou estereótipo de "global", acho que "StandaloneFunction" é melhor, pois é muito explícito para sua intenção. Dito isto, a IMO ainda melhor seria colocar as funções de "nível superior" em um espaço para nome bem nomeado, o que permite organizar as funções e, em seguida, fornece uma classe para colocá-las. Assim, colocar a função em um espaço para nome chamado UrlUtilities é muito superior ao fato de apenas ser uma função de "nível superior". Mas, novamente, neste ponto, você também pode colocá-lo em uma classe UrlUtilities como um método estático, que é a melhor opção.
Dunk

Respostas:

10

A linguagem UML não suporta a noção de funções independentes. Dentro da UML, todas as funções devem fazer parte de uma classe.

Como solução alternativa, você pode modelar suas funções independentes como membros estáticos de uma classe com a qual eles estão intimamente relacionados. Se não houver essa classe, você poderá modelar essas funções como parte de uma classe fictícia, como a globalclasse mencionada por @xmojmr nos comentários.

Bart van Ingen Schenau
fonte
7

Crie um estereótipo que você possa anexar ao classificador "class", por exemplo <<global function>>,. Você pode criar uma única "classe" estereotipada para cada função global que contenha uma operação estática totalmente especificada.

O estereótipo que proponho diz à pessoa que lê o diagrama para interpretar o classificador como uma função. O retângulo (com o estereótipo) em um determinado diagrama representaria uma única função, enquanto suas dependências representam as dependências dessa única função.

Doug Knesek
fonte
Estou tendo um momento difícil ver como a sua resposta é diferente do que Bart ...
Adam Zuckerman
3
@AdamZuckerman - Bart cria uma única classe chamada "global" que agrega todas as funções globais, dificultando o conhecimento de quais funções e dependências globais se aplicam no contexto de fornecimento. O estereótipo que proponho diz à pessoa que lê o diagrama para interpretar a classe como uma função. Um retângulo de classe (com o estereótipo) representaria uma única função, enquanto suas dependências representam as dependências dessa única função.
Doug Knesek