1 |
ALCSP: um complicador baseado em AspectJ para modularizar a programação concorrente em programas JavaElias Queiroga da Costa Araújo, José 31 January 2011 (has links)
Made available in DSpace on 2014-06-12T16:01:28Z (GMT). No. of bitstreams: 2
arquivo9411_1.pdf: 1518901 bytes, checksum: d645deca05140af7b59c0d3726ee9757 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2011 / Com o advento de processadores multicore, a programação concorrente ganhou importância
e tem se tornado um dos grandes desafios da área de engenharia de software. O
paradigma de programação concorrente, implementado por linguagens de programação
como Java, C, e C++, oferece um nível de expressividade muito baixo, dificultando a sua
utilização. Aliado a isso, o uso de bibliotecas que implementam abstração de concorrência,
requer um esforço de aprendizado adicional, como também produz programas cuja
lógica da regra de negócio está entrelaçada com chamadas para a biblioteca que implementa
concorrência de forma mais abstrata.
O presente trabalho propõe separar o código concorrente daquele usado no desenvolvimento
de código sequencial Java. Todo comportamento concorrente é extraído do
código e torna-se anotações de classe. Tais anotações seguem a sintaxe da linguagem
CSP, uma linguagem formal que foi criada para descrever sistemas concorrentes e distribuídos.
Para prover esta separação, este trabalho sugere um compilador, chamado
AJCSP, o qual reconhece as anotações nas classes Java, gerando código concorrente
utilizando a biblioteca JCSP.
A programação orientada a aspectos foi explorada para instrumentar o programa sequencial
Java com construções concorrentes contidas no código gerado. Para avaliar
o framework proposto, foram utilizadas métricas de separação de preocupações (SoC),
acoplamento, bem como tamanho em cinco sistemas distintos implementados nas diferentes
abordagens de concorrência (java thread, JCSP e AJCSP). A avaliação obtida
demonstrou que, quando utilizado AJCSP, a quantidade de linhas de código do sistema
diminui, assim como a dependência com a biblioteca de concorrência
|
Page generated in 0.0459 seconds