Design rules for increasing modularity with CaesarJ
| Ano de defesa: | 2011 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| 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: | |
| Link de acesso: | https://repositorio.ufpe.br/handle/123456789/2211 |
Resumo: | Programação Orientada a Aspectos (POA) é um mecanismo de programação proposto para modularizar os requisitos transversais, visando um aumento na modularidade de software. Entretanto, recentemente alguns autores tem alegado que o uso de POA quebra a modularidade das classes. Isso acontece pois, sem o uso de interfaces apropriadas entre classes e aspectos, diversas propriedades de um design modular, como compreensibilidade, manutenabilidade e desenvolvimento em paralelo, são comprometidas na presença de aspectos. Diversas interfaces especializadas (design rules) para desacoplar classes e aspectos foram propostas visando atenuar esse problema, como XPIs e LSD. Entretanto, tais interfaces são específicas para a linguagem AspectJ, que possui problemas de reúso e modularidade de aspectos. CaesarJ, por outro lado, é uma linguagem de programação orientada a aspectos com forte suporte para reúso e modularidade de aspectos. Essa linguagem combina as construções OA pointcut e advice com avan¸cados mecanismos de modularização OO. Nesse trabalho nós exploramos algumas construções de CaesarJ com o intuito de verificar se elas podem ser utilizadas para definir Design Rules que permitam um desenvolvimento modular de código OO e OA. Além disso, nós propomos CaesarJ+, uma extensão de CaesarJ que foca no aumento de modularidade. Essa extensão introduz construções que permitem impor restrições estruturais sobre os códigos OO e OA. Um compilador para CaesarJ+, que verifica se as restrições especificadas nas Design Rules estão sendo seguidas, e transforma o código CaesarJ+ em código CaesarJ também foi desenvolvido nesse trabalho. Para avaliar CaesarJ+, nós comparamos as implementações de três estudos de caso em CaesarJ+ e CaesarJ. Nossos resultados revelam que o uso de CaesarJ+ proporciona ganho de expressividade. |
| id |
UFPE_879b21132b34587e0dacdc904b52b7bd |
|---|---|
| oai_identifier_str |
oai:repositorio.ufpe.br:123456789/2211 |
| network_acronym_str |
UFPE |
| network_name_str |
Repositório Institucional da UFPE |
| repository_id_str |
|
| spelling |
Design rules for increasing modularity with CaesarJModularidade de softwareDesign rulesProgramação orientada a aspectosProgramação orientada a objetosCaesarJProgramação Orientada a Aspectos (POA) é um mecanismo de programação proposto para modularizar os requisitos transversais, visando um aumento na modularidade de software. Entretanto, recentemente alguns autores tem alegado que o uso de POA quebra a modularidade das classes. Isso acontece pois, sem o uso de interfaces apropriadas entre classes e aspectos, diversas propriedades de um design modular, como compreensibilidade, manutenabilidade e desenvolvimento em paralelo, são comprometidas na presença de aspectos. Diversas interfaces especializadas (design rules) para desacoplar classes e aspectos foram propostas visando atenuar esse problema, como XPIs e LSD. Entretanto, tais interfaces são específicas para a linguagem AspectJ, que possui problemas de reúso e modularidade de aspectos. CaesarJ, por outro lado, é uma linguagem de programação orientada a aspectos com forte suporte para reúso e modularidade de aspectos. Essa linguagem combina as construções OA pointcut e advice com avan¸cados mecanismos de modularização OO. Nesse trabalho nós exploramos algumas construções de CaesarJ com o intuito de verificar se elas podem ser utilizadas para definir Design Rules que permitam um desenvolvimento modular de código OO e OA. Além disso, nós propomos CaesarJ+, uma extensão de CaesarJ que foca no aumento de modularidade. Essa extensão introduz construções que permitem impor restrições estruturais sobre os códigos OO e OA. Um compilador para CaesarJ+, que verifica se as restrições especificadas nas Design Rules estão sendo seguidas, e transforma o código CaesarJ+ em código CaesarJ também foi desenvolvido nesse trabalho. Para avaliar CaesarJ+, nós comparamos as implementações de três estudos de caso em CaesarJ+ e CaesarJ. Nossos resultados revelam que o uso de CaesarJ+ proporciona ganho de expressividade.Conselho Nacional de Desenvolvimento Científico e TecnológicoUniversidade Federal de PernambucoHenrique Monteiro Borba, Paulo Eduardo Pontual de Lemos Castro, Carlos2014-06-12T15:55:28Z2014-06-12T15:55:28Z2011-01-31info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfEduardo Pontual de Lemos Castro, Carlos; Henrique Monteiro Borba, Paulo. Design rules for increasing modularity with CaesarJ. 2011. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2011.https://repositorio.ufpe.br/handle/123456789/2211porAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPE2019-10-25T05:41:35Zoai:repositorio.ufpe.br:123456789/2211Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-25T05:41:35Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
| dc.title.none.fl_str_mv |
Design rules for increasing modularity with CaesarJ |
| title |
Design rules for increasing modularity with CaesarJ |
| spellingShingle |
Design rules for increasing modularity with CaesarJ Eduardo Pontual de Lemos Castro, Carlos Modularidade de software Design rules Programação orientada a aspectos Programação orientada a objetos CaesarJ |
| title_short |
Design rules for increasing modularity with CaesarJ |
| title_full |
Design rules for increasing modularity with CaesarJ |
| title_fullStr |
Design rules for increasing modularity with CaesarJ |
| title_full_unstemmed |
Design rules for increasing modularity with CaesarJ |
| title_sort |
Design rules for increasing modularity with CaesarJ |
| author |
Eduardo Pontual de Lemos Castro, Carlos |
| author_facet |
Eduardo Pontual de Lemos Castro, Carlos |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Henrique Monteiro Borba, Paulo |
| dc.contributor.author.fl_str_mv |
Eduardo Pontual de Lemos Castro, Carlos |
| dc.subject.por.fl_str_mv |
Modularidade de software Design rules Programação orientada a aspectos Programação orientada a objetos CaesarJ |
| topic |
Modularidade de software Design rules Programação orientada a aspectos Programação orientada a objetos CaesarJ |
| description |
Programação Orientada a Aspectos (POA) é um mecanismo de programação proposto para modularizar os requisitos transversais, visando um aumento na modularidade de software. Entretanto, recentemente alguns autores tem alegado que o uso de POA quebra a modularidade das classes. Isso acontece pois, sem o uso de interfaces apropriadas entre classes e aspectos, diversas propriedades de um design modular, como compreensibilidade, manutenabilidade e desenvolvimento em paralelo, são comprometidas na presença de aspectos. Diversas interfaces especializadas (design rules) para desacoplar classes e aspectos foram propostas visando atenuar esse problema, como XPIs e LSD. Entretanto, tais interfaces são específicas para a linguagem AspectJ, que possui problemas de reúso e modularidade de aspectos. CaesarJ, por outro lado, é uma linguagem de programação orientada a aspectos com forte suporte para reúso e modularidade de aspectos. Essa linguagem combina as construções OA pointcut e advice com avan¸cados mecanismos de modularização OO. Nesse trabalho nós exploramos algumas construções de CaesarJ com o intuito de verificar se elas podem ser utilizadas para definir Design Rules que permitam um desenvolvimento modular de código OO e OA. Além disso, nós propomos CaesarJ+, uma extensão de CaesarJ que foca no aumento de modularidade. Essa extensão introduz construções que permitem impor restrições estruturais sobre os códigos OO e OA. Um compilador para CaesarJ+, que verifica se as restrições especificadas nas Design Rules estão sendo seguidas, e transforma o código CaesarJ+ em código CaesarJ também foi desenvolvido nesse trabalho. Para avaliar CaesarJ+, nós comparamos as implementações de três estudos de caso em CaesarJ+ e CaesarJ. Nossos resultados revelam que o uso de CaesarJ+ proporciona ganho de expressividade. |
| publishDate |
2011 |
| dc.date.none.fl_str_mv |
2011-01-31 2014-06-12T15:55:28Z 2014-06-12T15:55:28Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
Eduardo Pontual de Lemos Castro, Carlos; Henrique Monteiro Borba, Paulo. Design rules for increasing modularity with CaesarJ. 2011. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2011. https://repositorio.ufpe.br/handle/123456789/2211 |
| identifier_str_mv |
Eduardo Pontual de Lemos Castro, Carlos; Henrique Monteiro Borba, Paulo. Design rules for increasing modularity with CaesarJ. 2011. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2011. |
| url |
https://repositorio.ufpe.br/handle/123456789/2211 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
| publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
| instname_str |
Universidade Federal de Pernambuco (UFPE) |
| instacron_str |
UFPE |
| institution |
UFPE |
| reponame_str |
Repositório Institucional da UFPE |
| collection |
Repositório Institucional da UFPE |
| repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
| repository.mail.fl_str_mv |
attena@ufpe.br |
| _version_ |
1856041874506121216 |