9
votes

Outils pour la modélisation des systèmes Erlang

Pour la modélisation des systèmes OO, un outil commun est le diagramme de classe. À Erlang, l'accent est mis sur les processus plutôt que sur les classes. Quels outils utilisez-vous pour la modélisation des systèmes Erlang et des interactions entre les processus?


0 commentaires

4 Réponses :


5
votes

Les diagrammes de séquence peuvent être un bon outil pour visualiser les processus et le flux de messages et de contrôle entre eux. Je semble vous rappeler qu'ils existaient réellement avant UML.


2 commentaires

Les diagrammes de séquence semblent être un bon moyen de visualiser un certain cas d'utilisation, mais cela ne fournit pas d'aperçu du système dans son ensemble. Merci Robert pour votre réponse et pour l'excellent cours que vous avez tenu la semaine dernière!


Oh, et c'est le meilleur outil que j'ai jamais trouvé pour écrire des diagrammes de séquence: webEnfoundagrams.com



10
votes

J'ai "essayé" un peu de vendre des bigraphes comme un outil modèle. Un bigrophe est défini comme suit:

  • Un hypergraphe appelé le graphique link . Il dispose d'un processus de sommets et d'hyperedges de la communication entre ceux-ci. Dans un hypergraphe, un bord peut aller entre n'importe quelle quantité de processus, pas seulement deux. En effet, le graphique plante les canaux de communication ou les itinéraires de communication dans le programme. "Qui parle avec qui". Exemple: texte alt

  • Un arbre avec les mêmes sommets appelé le localisation graphique. Cela forme la superviseure-hiérarchie que les processus sont assis. En d'autres termes, il correspond à la responsabilité de chaque processus. Plus dans l'arbre, plus il est volatil. Un processus près de la racine est généralement ceux qui sont assis avec état et doivent être protégés. Exemple: text alt

    J'espère que cela vous donnera un moyen de visualiser et de traiter des programmes Erlang. Si quelque chose n'est pas clair, n'hésitez pas à me pousser.


4 commentaires

Comment distinguer la communication Sync vs Async dans le graphique de lien? Ces lignes pointillées envoient-elles ou gen_casts et sont des lignes pleines Gen_Calls?


Je suppose que vous pouvez encoder cette information, mais les lignes en pointillés ne sont que des communications avec le monde "extérieur", via des sockets ou une bibliothèque client HTTP de haut niveau. Vous pouvez rendre le graphique dirigé, en ajoutant de petites flèches peut-être - ne l'ont pas donné beaucoup de temps ou de pensée.


L'hypergraphe ressemble à un bon ajustement pour décrire le système global. Il se sent presque comme un diagramme de classe mais avec des noms de module au lieu des noms de classe.


Il a des similitudes avec un diagramme de collaboration - mais j'ai hésisté à l'écrire en premier.



3
votes
  • SDL pour la modélisation FSM (OTP) - Bien que le code soit aussi aussi facile à lire.
  • bi-graphique pour le superviseur d'arbre
  • MSCS pour les séquences de message entre les processus et / ou les applications

0 commentaires

2
votes

Je viens de découvrir cela, même s'il a été mentionné en 2011 sur Liste de diffusion Erlang .

Concepts de modélisation fondamentale (FMC): http://fmc-modeling.org/

Il est destiné à modéliser les systèmes logiciels et semble être exactement au niveau droit de l'abstraction. Toute la notation est englobée en juste Trois types de diagramme différents . Regardez cette belle notation (type de diagramme de Petri-net):

 Entrez la description de l'image ici

Ils fournissent également une belle présentation comparant FMC à UML ici . < / p>


0 commentaires