Otro diagrama disponible en UML 2 es el diagrama de comunicación.

El diagrama de comunicación permite modelar la interacción entre los diferentes objetos que se produce mediante mensajes en secuencia, es decir, muestra que mensajes se pasan los objetos entre si y en que orden. Es un diagrama muy útil, pues muestra tanto información estática, tomada del diagrama de clases, como información dinámica, tomada del diagrama de casos de uso y del  diagrama de secuencia.

A continuación muestro el diagrama de comunicación que he realizado mediante Visual Paradigm for UML de SPHysics:

Técnicamente, tendríamos que hablar de un pseudodiagrama de comunicación, pués el lenguaje de programción es fortran que no trabaja con orientación a objetos, por lo que en lugar de clases  tenemos módulos. Sin embargo, y salvando las distancias, cumple sobradamente su propósito semántico.

Una vez un profesor nos dijo algo así como: “No programeis lo que ya esta programado”, una especie de versión light de la reinvención de la rueda. Lo que quería decir era, sencillamente, que antes de empezar a diseñar algo desde cero para resolver un problema teniamos que investigar si ya existia un software capaz de hacerlo. Si la respuesta era negativa, adelante, pero si la respuesta era positiva, teniamos que plantearnos una serie de preguntas: ¿Es gratuito o hay que pagar por él? ¿Se adapta perfectamente a mis necesidades o necesita cierto grado de adaptación? ¿Tengo acceso al código fuente y tengo permiso para modificarlo a mi medida? ¿Que piensa el cliente al respecto? etc.

En el caso que nos ocupa, un sofware que promete es SPHysics, un esfuerzo conjunto de investigadores en la Johns Hopkins University (U.S.A.), la University of Vigo (Spain), la University of Manchester (U.K.) y la University of Rome La Sapienza (Italy). Evidentemente, se trata de hidrodinámica newtoniana y no magnetohidrodinámica relativista, por lo que hay un salto cualitativo en la física considerada, además de que se trata de programación modular y no orientada a objetos. Sin embargo, al ser de código abierto y disponer de versión paralela sobre CUDA, nos puede servir de mucha ayuda a la hora de implementar muchas cosas.

A continuación se enlazan dos simulaciones con 100M y 226M partículas en las que se puede apreciar la potencia del software:

Anuncios