ALCSP: um complicador baseado em AspectJ para modularizar a programação concorrente em programas Java

Detalhes bibliográficos
Ano de defesa: 2011
Autor(a) principal: Elias Queiroga da Costa Araújo, José
Orientador(a): Massa Ferreira Lima, Ricardo
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Pernambuco
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
CSP
Link de acesso: https://repositorio.ufpe.br/handle/123456789/2834
Resumo: 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