2009-12-22 7 views
7

¿Existe una buena herramienta que pueda modelar un esquema de simultaneidad/bloqueo de aplicaciones de una manera gráfica y que pueda simular algunos de los aspectos?¿Existe alguna herramienta para modelar/simular concurrencia de software?

Sé que las redes de Petri se pueden usar para eso más o menos, pero no conozco una buena herramienta de GUI que pueda diseñar y simular.

¿Es UML de alguna manera utilizable para tales fines?

Cualquier buen enlace es muy apreciado.

Respuesta

3

Los diagramas de actividad UML pueden expresarse como redes de Petri (por ejemplo, see this paper). Lamentablemente, no conozco ninguna herramienta orientada a la industria para la simulación de Redes de Petri o Diagrama de actividades (pero hay muchos proyectos académicos que puede encontrar fácilmente).

¿Estás seguro de que quieres simular tu modelo (por simulación quiero decir que realmente quieres sentarte y ver cómo se ejecuta tu red Perti)? Usualmente este tipo de análisis es aplicable para algoritmos pequeños y simples. En la situación del mundo real, es probable que desee hacer model checking de su algoritmo en lugar de simulación. Le recomendaría que compruebe SPIN (utilizado por muchas empresas, por ejemplo, Siemens). También tengo una experiencia positiva con Alloy y Prism. Pero si se enfoca en verificar algoritmos paralelos, le sugiero que considere primero SPIN.

Editar: he comprobado algunas herramientas para la simulación y me puede asesorar mirando

1) http://sourceforge.net/projects/visual-petri/

2) http://www.renew.de/

3) http://www.winpesim.de/index.html

+0

Muchas gracias por su respuesta. De hecho, quiero hacer simulación solo con propósitos de presentación y solo para el modelo simplificado de ciertas situaciones: digamos que 3-4 hilos intentan hacer lo mismo cuando la configuración de datos es D1 y los parámetros son P1. –

+0

De nada. He agregado algunos enlaces a mi respuesta. –

2

SPIN es una herramienta popular para la verificación de sistemas distribuidos, pero creo que es solo una línea de comando. Pero en la página web de Spin hay un enlace a una herramienta GUI estrechamente relacionada llamada GOAL

1

Ha sido un largo tiempo desde que Lo he visto, pero parece que Ptolemy sería una buena opción.

2

Estoy duda esto es lo que busca, pero le pongo mi granito de arena:

En mi universidad, en nuestra clase de sistemas de software concurrentes, se utiliza una herramienta llamada Labelled Transition System Analyser (LTSA). En realidad, es un lenguaje que puede usar para modelar el comportamiento de un sistema.

El "código" se convierte en un diagrama de estado y una tabla de transición.

1

Puede consultar Petri Net Sim, para simular Petrinets común/temporizado/de color, viene con una buena GUI que muestra la ejecución de la red de Petri en tiempo real.

0

Pruebe usar la herramienta de simultaneidad, LTSA. Programa Java (Etiquetado Transition System Analyzer), para simular programas. Se puede descargar de:

http://www.doc.ic.ac.uk/ltsa/

Pero hay que ser paciente mientras que la usa, puede tardar un par de horas para aprender a usarlo.Probablemente funciona mejor al modelar programas Java.

Y siempre es bueno usar modelos UML por supuesto :)

Cuestiones relacionadas