DetectEr 2.0 - An Innovative Runtime Monitoring Tool for Erlang Programs.
(Development has moved to: https://bitbucket.org/casian/adapter)

       Name: Ian Cassar      
      Email: ian.cassar.10@um.edu.mt     
Institution: University of Malta
       Name: Adrian Francalanza      
      Email: adrian.francalanza@um.edu.mt     
Institution: University of Malta

Why should we use DetectEr 2.0?
Software solutions tend to become very complex over time to the extent that at one point developers would start finding it difficult to realise which system behaviour should be considered to be CORRECT and which behaviour should be considered as INCORRECT.

DetectEr 2.0 allows you to define SEQUENCES of system actions which are considered as INCORRECT!! We commonly refer to these action sequences as BEHAVIOURAL PROPERTIES (or Properties for short).

System actions may include Function calls and Function Returns, together with message sends and message receives. This means that with DetectEr 2.0 you can create properties that DEFINE INCORRECT LOCAL AND GLOBAL behaviours.

LOCAL behaviours normally refer to a sequence of actions which pertain to a SINGLE Erlang Actor (eg. Actor1 should execute this sequence of functions).
GLOBAL behaviours are what normally cause TROUBLE in a system...GLOBAL behaviours refer to the way ACTORS interact with each other!! (ie. message sends and receives) as these interactions are generally NON-DETERMINISTIC due to CONCURRENCY!! ...

...but if GLOBAL Behaviours are the ones that give trouble...why do we bother defining LOCAL Behaviours??!! ... Basically GLOBAL behaviours DEPEND on Local ones! Think about it...an Actor may send different messages depending on which functions it calls and what values the functions RETURN! So if a function returns an incorrect value and sends it to another actor, the recieving actor may crash due to the incorrect input!!

For more information take a look at our WIKI!!!

Aldrin Seychell - the creator of DetectEr 1.0 may be dowloaded from: