Símbolo de diagrama de clase UML para una función de nivel superior

13

En notación de diagrama de clase UML, ¿cómo denoto una función de nivel superior que no tiene ninguna clase de encapsulación u otra estructura?

Por ejemplo, tengo una función utilizada para recuperar datos de una URL. Dado que es una función (en el sentido matemático) de solo sus parámetros y un estado global compartido, la función no se coloca en una clase sino que se deja como un método de nivel superior.

Ahora, sin embargo, necesito crear un diagrama UML para un programa que lo usa, y no puedo encontrar nada sobre cómo denotar una función de nivel superior. ¿Cómo hago esto?

AJMansfield
fuente
Puede modelarlo como staticmétodo de una clase especial llamada pglobal
xmojmr
1
Las respuestas a continuación son buenas. Sin embargo, en lugar de llamar a la clase o estereotipo "global", creo que "StandaloneFunction" es mejor, ya que es muy explícito para su intención. Dicho esto, la OMI sería aún mejor poner las funciones de "nivel superior" en un espacio de nombres bien nombrado que permite organizar las funciones y luego le da una clase para ponerlas. Por lo tanto, poner la función en un espacio de nombres llamado UrlUtilities es muy superior a que esta sea una función de "nivel superior". Pero, de nuevo, en este punto, también puede colocarlo en una clase UrlUtilities como método estático, que es la mejor opción.
Dunk

Respuestas:

10

El lenguaje UML no admite la noción de funciones independientes. Dentro de UML, todas las funciones deben ser parte de una clase.

Como solución alternativa, puede modelar sus funciones independientes como miembros estáticos de una clase con la que están estrechamente relacionadas. Si no existe tal clase, podría modelar esas funciones como parte de una clase ficticia, como la globalclase mencionada por @xmojmr en los comentarios.

Bart van Ingen Schenau
fuente
7

Crear un estereotipo que se puede adjuntar al clasificador de "clase", por ejemplo, <<global function>>. Luego puede crear una única "clase" estereotipada para cada función global que contenga una operación estática completamente especificada.

El estereotipo que propongo le dice a la persona que lee el diagrama que interprete el clasificador como una función. El rectángulo (con el estereotipo) en un diagrama dado representaría una sola función, mientras que sus dependencias representan las dependencias de esa única función.

Doug Knesek
fuente
Me está costando ver cómo su respuesta es diferente a la de Bart ...
Adam Zuckerman
3
@AdamZuckerman: Bart crea una sola clase llamada "global" que agrega todas las funciones globales, lo que dificulta saber qué funciones y dependencias globales se aplican en el contexto de entrega. El estereotipo que propongo le dice a la persona que lee el diagrama que interprete la clase como una función. Un rectángulo de clase (con el estereotipo) representaría una sola función, mientras que sus dependencias representan las dependencias de esa única función.
Doug Knesek