BARBOSA, A. E. V.; http://lattes.cnpq.br/1135602078298154; BARBOSA, Ana Emília Victor.
Resumo:
In this work we propose and develop a technique that allows to detect the violation of
behavior properties of concurrent systems. The technique was inspired by the Design by
Contract (DbC) programming methodology, which proposes the use of assertions and their
evaluation at runtime to check programs behavior. The use of simple assertions to express properties of concurrent and parallel programs, however, is not sufficient. Many of the relevant properties of those systems,s uch as liveness and security, can not be expressed with simple assertions. Thesepropertiesrequiretheuseof temporal operators. In our work, we used Linear Time Logic (LTL) to specify the expected behavior. To support the runtime checking of the program against the expected behavior, we propose a technique, based on Aspect-Oriented Programming, that allows the program to be continuously monitored (behavior is checked against automata that allows the detection of unexpected behaviors). Each property is mapped to a set of points of interest in the target
program. Those points are then monitored during the system execution through aspects.
Among other benefits, the technique allows the instrumentation of the target software to
be performed automatically and in a non-intrusive way — in particular, no code must be
changed toturn monitoring on or off. To validate the work, we developed a proof of concept prototype tool that implements the technique and allows the monitoring of multi-threaded Java programs, called DesignMonitor. The tool was used in case study that has allowed the evaluation and the discussion of practical issues related with the technique.