2009-12-22 5 views
7

C'è un buon strumento là fuori che può modellare uno schema di simultaneità/blocco dell'applicazione in modo grafico e che può simulare alcuni degli aspetti?Esiste uno strumento per modellare/simulare la concorrenza del software?

So che le reti di Petri possono essere utilizzate per più o meno, ma non conosco uno strumento GUI valido in grado di progettare e simulare.

UML è in qualche modo utilizzabile per tali scopi?

Qualsiasi link valido è molto apprezzato.

risposta

3

I diagrammi di attività UML possono essere espressi come reti di Petri (ad esempio see this paper). Sfortunatamente non conosco nessun buon strumento orientato all'industria per la simulazione di Petri Nets o Activity Diagram (ma ci sono molti progetti accademici che puoi facilmente trovare).

Sei sicuro di voler simulare il tuo modello (per simulazione voglio dire che vuoi davvero sederti e guardare come viene eseguita la rete Perti)? Di solito questo tipo di analisi è applicabile per algoritmi piccoli e semplici. Nella situazione del mondo reale probabilmente ti piacerebbe fare il model checking del tuo algoritmo piuttosto che la simulazione. Ti consiglio di controllare SPIN (utilizzato da molte aziende, ad esempio Siemens). Inoltre ho un'esperienza positiva con Alloy e Prism. Ma se ci si concentra sulla verifica degli algoritmi paralleli, suggerirei di considerare prima SPIN.

Edit: ho controllato alcuni strumenti per la simulazione e posso consigliare guardando

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

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

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

+0

La ringrazio molto per la risposta. In realtà voglio fare la simulazione solo per scopi di presentazione e solo per il modello semplificato di determinate situazioni: supponiamo che 3-4 thread stiano cercando di fare la stessa cosa quando l'impostazione dei dati è D1 ei parametri sono P1. –

+0

Prego. Ho aggiunto alcuni collegamenti alla mia risposta. –

2

SPIN è uno strumento popolare per la verifica dei sistemi distribuiti ma è a linea di comando solo credo. Ma sulla pagina Web Spin c'è un collegamento a uno strumento GUI strettamente correlato chiamato GOAL

1

E 'passato molto tempo da quando ho L'ho guardato, ma suona come Ptolemy sarebbe una buona misura.

2

Sono dubbio questo è quello che stai cercando, ma mi butto in miei due centesimi:

Alla mia università, nella nostra classe sui sistemi software concorrenti, usiamo uno strumento chiamato Labelled Transition System Analyser (LTSA). In realtà è un linguaggio che puoi usare per modellare il comportamento di un sistema.

Il "codice" viene trasformato in un diagramma di stato e una tabella di transizione.

1

È possibile controllare Petri Net Sim, per simulare petroliere comuni/temporizzate/colorate, viene fornito con una bella GUI che mostra l'esecuzione di Petri Net in tempo reale.

0

Provare a utilizzare lo strumento di concorrenza, LTSA. Programma Java (Labeled Transition System Analyzer), per simulare i programmi. È possibile scaricarlo da:

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

Ma devi essere paziente mentre lo si utilizza, si può prendere un paio d'ore per imparare a usarlo.Probabilmente funziona meglio durante la modellazione di programmi Java.

Ed è sempre bene utilizzare modelli UML ovviamente :)