Spelling suggestions: "subject:"programação orientada a aspectos"" "subject:"programação orientada a spectos""
11 |
Design rules for increasing modularity with CaesarJEduardo Pontual de Lemos Castro, Carlos 31 January 2011 (has links)
Made available in DSpace on 2014-06-12T15:55:28Z (GMT). No. of bitstreams: 2
arquivo2238_1.pdf: 2132040 bytes, checksum: 7403ada2f7f20b6592ef20ce13dad893 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2011 / Conselho Nacional de Desenvolvimento Científico e Tecnológico / 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.
|
12 |
Structuring Adaptive Applications using AspectJDébora Dantas de Souza, Ayla January 2004 (has links)
Made available in DSpace on 2014-06-12T15:58:29Z (GMT). No. of bitstreams: 2
arquivo4584_1.pdf: 1969312 bytes, checksum: ebc699427e4ae5f379c7d0e4b5d9b28f (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2004 / Os dispositivos computacionais estão se tornando ubíquos. Com um celular, atualmente,
podemos acessar e manipular informação praticamente em qualquer lugar e a qualquer
instante. Neste cenário de computação ubíqua, tem-se exigido que tais sistemas sejam
adaptativos, ou seja, tenham a capacidade de se adaptar em decorrência de mudanças
no contexto em que estão inseridos.
É importante destacar, porém, que a adaptabilidade adiciona certa complexidade ao
desenvolvimento de aplicações. Um dos problemas é que a implementação de comportamentos
adaptativos em muitos casos se entrelaça com outras preocupações da aplicação,
como apresentação, negócio e dados, levando a problemas de legibilidade que podem
prejudicar a manutenabilidade do código.
A programação orientada a aspectos pode ser usada para facilitar a resolução de
problemas relacionados a código entrela¸cado, e dar suporte ao desenvolvimento de programas
adaptativos, e ao mesmo tempo adaptáveis (fáceis de modificar) com bons níveis
de qualidade e produtividade. Essa dissertação mostra como podemos usar aspectos, em
especial em AspectJ, para estruturar aplicações adaptativas, minimizando dessa forma o
entrelaçamento de código. AspectJ é uma linguagem orientada a aspectos, de propósito
geral, e que estende a linguagem Java. Ela é voltada `a separação de preocupações. Em
nosso trabalho ela é utilizada para promover a separação da preocupação adaptabilidade ,
obtendo-se assim uma implementação modular.
Através do uso dessa linguagem, identificamos boas práticas para a estruturação de
aplicações adaptativas, as quais foram resumidas em um padrão denominado Adaptability
Aspects. Escolhemos a plataforma Java 2 Micro Edition para implementar várias
preocupações relativas a adaptabilidade, principalmente pelo fato de ser uma tecnologia
destinada a dispositivos ubíquos e com recursos limitados.
Al´em de AspectJ, analisamos também uma outra abordagem para a estruturação
de aplicações adaptativas: o uso do estilo arquitetural denominado Adaptive Object-
Models . Verificamos a partir dessa análise que ele poderia ser combinado com o nosso
padrão, e portanto, beneficiar-se com o uso de aspectos. Dessa forma, poderia-se oferecer
suporte a um conjunto maior de adaptações e ao mesmo tempo obter-se uma estrutura
ção no código mais fácil de compreender.
Por fim, avaliamos o impacto de AspectJ, através do uso do padrão Adaptability
Aspects, para implementar alguns requisitos de adaptabilidade em aplicações J2ME.
Comparamos nossa implementação com uma solução em que a implementação destes
requisitos não é tão modular e com uma outra solução utilizando padrões de projeto
puramente orientados a objeto na qual se buscava tal modularidade. Alguns dos aspectos
comparados foram tempo de execução, memória utilizada, tamanho da aplicação e de
seu código. Além de medir tais fatores, descrevemos os ganhos que a programação
orientada a aspectos pode trazer para a estruturação de aplicações adaptativas visando
obter qualidade em termos de reuso e facilidade de manutenção
|
13 |
Modularização de tratamento de exceções usando programação orientada a aspectosFerreira, Raquel de Albuquerque Maranhão 24 February 2006 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado profissional) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-08T18:11:26Z (GMT). No. of bitstreams: 1
Ferreira_RaqueldeAlbuquerqueMaranhao_M.pdf: 440934 bytes, checksum: f6d34e1edb2b80cf97eea73766e5621f (MD5)
Previous issue date: 2006 / Resumo: Programação Orientada a Aspectos (POA) tem sido considerada uma abordagem interessante para modularizar o comportamento excepcional de um sistema. Porém, ainda existem algumas questões em aberto sobre o uso de POA com este objetivo. Nenhum trabalho na literatura tentou verificar se POA realmente promove melhorias em atributos de qualidade quando usada para modularizar código de tratamento de exceções não-trivial, objetivando: avaliar a escalabilidade dos aspectos ao modularizar tratamento de exceções em sistemas com um número significativo de tratadores; e avaliar a interação entre aspectos de tratamento de exceções e aspectos de outros interesses como, por exemplo, distribuição, persistência, segurança etc. Este trabalho apresenta um estudo quantitativo da adequação de POA para modularizar código de tratamento de exceções em sistemas que possuem um número significativo de tratadores não-triviais, e também em sistemas nos quais interesses transversais diferentes de tratamento de exceções, no caso distribuição e persistência, já foram modularizados com aspectos. Este estudo consistiu na refatoração de dois sistemas orientados a objetos e um sistema orientado a aspectos, que tiveram seu código responsável pelo tratamento de exceções movido para aspectos. Foi utilizado um conjunto de métricas para avaliar atributos de qualidade das versões original e refatorada desses sistemas. Observou-se que POA promoveu a separação de interesses entre o código de tratamento de exceções e o código normal dos sistemas. Porém, contradizendo a intuição geral, a versão orientada a aspectos desses sistemas não apresentou ganhos significativos para as métricas de tamanho empregadas / Abstract: Aspect-Oriented Programming (AOP) has usually been considered as an approach to modularize the exceptional behavior of a system. However, there are questions related to possible trade-offs involved in using AOP with this objective that are not yet well known. To the best of our knowledge, no work in literature has attempted to assess whether AOP really promotes an enhancement in well-understood quality attributes, when used for modularizing nontrivial exception handling code with focus on: evaluation of the scalability of aspects for modularizing exception handling in systems with a significant number of handlers; and evaluation of interactions between exception handling aspects and aspects implementing other concerns like distribution and persistence. This work presents a quantitative study of the adequacy of AOP for modularizing exception handling code in systems with a significant number of nontrivial handlers, and also in systems possessing aspects implementing other concerns. The study consisted of refactoring two object-oriented and one aspect-oriented systems so that the code responsible for handling exceptions was moved to aspects. It was employed a suite of metrics to measure quality attributes of the original and refactored systems. It was found that AOP improved separation of concerns between exception handling code and normal application code. However, contradicting the general intuition, the aspect-oriented version of the system did not present significant gains for any of size metrics employed. / Mestrado / Mestre Profissional em Computação
|
14 |
Geração de aplicações para linhas de produtos orientadas a aspectos com apoio da ferramenta Captor-AO / Application generation for aspect oriented product lines with Captor-AO toolCarlos Alberto de Freitas Pereira Junior 19 November 2008 (has links)
Uma Linha de Produtos de Software (LPS) consiste de um conjunto de sistemas de software que compartilham características comuns e satisfazem às necessidades específicas de um segmento particular. Para tornar o processo de instanciação de produtos mais rápido e menos suscetível a erros, o projeto de uma LPS pode adotar a utilização de geradores de aplicação, que podem gerar os artefatos da LPS utilizando uma especificação das variabilidades de um certo produto. Adicionalmente, notase que determinadas características transversais de uma linha de produtos têm potencial de reúso em diferentes domínios, podendo ser implementadas usando a programação orientada a aspectos (POA). Neste trabalho é proposto um processo para o desenvolvimento de LPS e geração automatizada de produtos levando em consideração os interesses transversais existentes em cada domínio de aplicação. Os interesses transversais são as características comuns espalhadas pelas divisões ou módulos do programa de diferentes domínios. O processo aqui proposto tem a finalidade de aumentar o reúso de características de linhas de produtos por meio da POA, permitindo que as LPSs sejam projetadas de forma mais coesa e, consequentemente, facilitando sua manutenção e evolução. Visando diminuir o esforço necessário para a instanciação dos produtos provenientes dessas linhas de produtos, neste trabalho também é apresentada uma extensão do gerador Captor, denominada Captor-AO. Esse gerador fornece suporte ao processo proposto, permitindo a criação de produtos formados por características de diferentes domínios. Por fim, é apresentado um estudo de caso em que é realizada a configuração de um domínio transversal para o interesse de persistência, a definição de um domínio-base compatível com esse domínio transversal e a geração de produtos formados pelas características de ambos os domínios utilizando o gerador estendido Captor-AO / A Software Product Line (SPL) consists of a set of software systems that share common features and fulfill the specific requirements of a particular domain. In order to make the products instantiation process faster and less prone to errors, the project of a SPL can adopt the utilization of application generators, which can can automatically generate the SPL artifacts based on the specification of the variabilities of a particular product. Additionally, it can be noticed that certain crosscutting features of a product line have potencial to be reused in different domains, so they can be implemented using aspect oriented programming (AOP). In this work, a process is proposed for the development of SPLs and automatic generation of products, considering the crosscutting concerns present in each application domain. The crosscutting concerns are related to the common features that are scattered around program divisions or modules of different domains. The process proposed here has the goal of enhancing the reuse of SPL features using AOP, allowing the design of SPL in a more cohesive way and, thus, easing its maintenance and evolution. Aiming at decreasing the effort needed to instantiate products from these SPL, this work also presents an extension to the Captor application generator, named Captor-AO. This generator supports the proposed process, allowing the creation of products composed by features of different domains. Finally, a case study is presented in which Captor-AO is configured with two domains: a crosscutting domain for the persistence concern and a base domain compatible with this crosscutting domain, such that the generation of products can be done by composing features of both domains
|
15 |
Uma contribuição para a minimização do número de stubs no teste de integração de programas orientados a aspectos / A contribution to the minimization of the number of stubs during integration test of aspect-oriented programsReginaldo Ré 31 March 2009 (has links)
A programação orientada a aspectos é uma abordagem que utiliza conceitos da separação de interesses para modularizar o software de maneira mais adequada. Com o surgimento dessa abordagem vieram também novos desafios, dentre eles o teste de programas orientados a aspectos. Duas estratégias de ordenação de classes e aspectos para apoiar o teste de integração orientado a aspectos são propostas nesta tese. As estratégias de ordenação tem o objetivo de diminuir o custo da atividade de teste por meio da diminuição do número de stubs implementados durante o teste de integração. As estratégias utilizam um modelo de dependências aspectuais e um modelo que descreve dependências entre classes e aspectos denominado AORD (Aspect and Oriented Relation Diagram) também propostos neste trabalho. Tanto o modelo de dependências aspectuais como o AORD foram elaborados a partir da sintaxe e semântica da linguagem AspectJ. Para apoiar as estratégias de ordenação, idealmente aplicadas durante a fase de projeto, um processo de mapeamento de modelos de projeto que usam as notações UML e MATA para o AORD é proposto neste trabalho. O processo de mapeamento é composto de regras que mostram como mapear dependências advindas da programação orientada a objetos e também da programação orientada a aspectos. Como uma forma de validação das estratégias de ordenação, do modelo de dependências aspectuais e do AORD, um estudo exploratório de caracterização com três sistemas implementados em AspectJ foi conduzido. Durante o estudo foram coletadas amostras de casos de implementação de stubs e drivers de teste. Os casos de implementação foram analisados e classificados. A partir dessa análise e classificação, um catálogo de stubs e drivers de teste é apresentado / Aspect-oriented programming is an approach that uses principles of separation of concerns to improve the sofware modularization. Testing of aspect-oriented programs is a new challenge related to this approach. Two aspects and classes test order strategies to support integration testing of aspect-oriented programs are proposed in this thesis. The objective of these strategies is to reduce the cost of testing activities through the minimization of the number of implemented stubs during integration test. An aspectual dependency model and a diagram which describes dependencies among classes and aspects called AORD (Aspect and Object Relation Diagram) used by the ordering strategies are also proposed. The aspectual dependency model and the AORD were defined considering the syntax constructions and the semantics of AspectJ. As the proposed estrategies should be applied in design phase of software development, a process to map a desing model using UML and MATA notations into a AORD is proposed in order to support the ordering strategies. The mapping process is composed by rules that show how to map both aspect and object-oriented dependencies. A characterization exploratory study using three systems implemented with AspectJ was conducted to validate the ordering strategies, the aspectual dependency model and the AORD. Interesting samples of stubs implementations were collected during the study conduction. The stubs were analyzed and classified. Based on these analysis and classification a catalog of stubs and drivers is presented
|
16 |
Uma contribuição para o teste baseado em defeitos de software orientado a aspectos / A contribution to the fault-based testing of aspect-orientd softwareFerrari, Fabiano Cutigi 16 December 2010 (has links)
A Programação Orientada a Aspectos (POA) é uma técnica contemporânea de desenvolvimento de software fortemente baseada no princípio da separação de interesses. Ela tem como objetivo tratar de problemas de modularização de software por meio da introdução do aspecto como uma nova unidade de implementação que encapsula comportamento relacionado aos interesses transversais do software. A despeito dos benefícios que podem ser alcançados com o uso da POA, seus mecanismos de implementação representam novas potenciais fontes de defeitos que devem ser tratados durante a fase de teste de software. Nesse contexto, o teste de mutação consiste em um critério de seleção de testes baseado em defeitos que tem sido bastante investigado para demonstrar a ausência de defeitos pré-especifiados no software. Acredita-se que o teste de mutação seja uma ferramenta adequada para lidar com as particularidades de técnicas de programação contemporâneas como a POA. Entretanto, até o presente momento, as poucas iniciativas para adaptar o teste de mutação para o contexto de programas orientados a aspectos (OA) apresentam cobertura limitada em relação aos tipos de defeitos simulados, ou ainda requerem adequado apoio automatizado e avaliações. Esta tese visa a mitigar essas limitações por meio da definição de uma abordagem abrangente de teste de mutação para programas OA escritos na linguagem AspectJ. A tese inicia como uma investigação da propensão a defeitos de programas OA e define uma taxonomia de defeitos para tais programas. A taxonomia inclui uma variedade de tipos de defeitos e serviu como base para a definição de um conjunto de operadores de mutação para programas OA. Suporte automatizado para a aplicação dos operadores também foi disponibilizado. Uma série de estudos quantitativos mostra que a taxonomia de defeitos proposta é suficiente para classificar defeitos encontrados em vários sistemas OA. Os estudos também mostram que os operadores de mutação propostos são capazes de simular defeitos que podem não ser relevados por conjuntos de teste pré-existentes, não derivados para cobrir mutantes. Além disso, observou-se que o esforço requerido para evoluir tais conjuntos de teste de forma a torná-los adequados para os requisitos gerados pelos operadores / Aspect-Oriented Programming (AOP) is a contemporary software development technique that strongly relies on the Separation of Concerns principle. It aims to tackle software modularisation problems by introducing the aspect as a new implementation unit to encapsulate behaviour required to realise the so-called crosscutting concerns. Despite the benefits that may be achieved with AOP, its implementation mechanisms represent new potential sources of faults that should be handled during the testing phase. In this context, mutation testing is a widely investigated fault-based test selection criterion that can help to demonstrate the absence of prespecified faults in the software. It is believed to be an adequate tool to deal with testing-related specificities of contemporary programming techniques such as AOP. However, to date, the few initiatives for customising the mutation testing for aspect-oriented (AO) programs show either limited coverage with respect to the types of simulated faults, or a need for both adequate tool support and proper evaluation. This thesis tackles these limitations by defining a comprehensive mutation-based testing approach for AO programs written in the AspectJ language. It starts with a fault-proneness investigation in order to define a fault taxonomy for AO software. Such taxonomy encompasses a range of fault types and underlay the definition of a set of mutation operators for AO programs. Automated tool support is also provided. A series of quantitative studies show that the proposed fault taxonomy is able to categorise faults identified from several available AO systems. Moreover, the studies show that the mutation operators are able to simulate faults that may not be revealed by pre-existing, non-mutation-based test suites. Furthermore, the effort required to augment the test suites to provide adequate coverage of mutants does not tend to overwhelm the testers. This provides evidence of the feasibility of the proposed approach and represents a step towards the practical fault-based testing of AO programs
|
17 |
UM INTERCEPTADOR BASEADO EM AOP PARA TRATAR INTERESSES TRANSVERSAIS EM SERVIÇOS WEB / AN INTERCEPTOR BASED ON AOP TO TREAT TRANSVERSAL INTERESTS IN SERVICES WEBFrança, Rômulo Martins 19 March 2008 (has links)
Made available in DSpace on 2016-08-17T14:52:43Z (GMT). No. of bitstreams: 1
Romulo Martins Franca.pdf: 1732633 bytes, checksum: 8a571456863657a6d21fa5f8ca139e9d (MD5)
Previous issue date: 2008-03-19 / FUNDAÇÃO DE AMPARO À PESQUISA E AO DESENVOLVIMENTO CIENTIFICO E TECNOLÓGICO DO MARANHÃO / This research currently presents the description of a project in development in the
laboratory of intelligent systems (LSI), of the Federal University of the Maranhão
(UFMA). The current Middlewares ESB such as the BEA Web Logic, BizTalk, Mule
ESB and similars, does not possess a semantics for the treatment of the crosscutting
concerns neither before, during and after a group of operations being executed.
Many important concerns are spread by some modules, services and if they mix
other properties of system in an inner way, making it difficult the reuse and
maintenance of its components. This work presents a boarding called
InterceptadorAOP, for the treatment of crosscutting concerns in Web Services in the
middlewares ESB. The InterceptadoresAop is responsible elements for the treatment
of the crosscutting concerns as log of data, treatment of exceptions, debug and daily
paydefined
measurer of time already. They are based on the semantics of the
AspectJ language, deriving of the Aspectoriented
Programming that it aims at to
supply one better separation of the functional interests of the nonfunctional
of an
application, promoting services more easy to be kept, legible and modularized.
Already the Architectureoriented
Services stimulates and offers mechanisms for the
composition of distributed applications of flexible form and with reduced cost. The
research describes the state of the art, details technician of the InterceptadoresAOP
and its application in two scenes for the model validation. / Esta dissertação apresenta a descrição de um projeto atualmente em
desenvolvimento no laboratório de sistemas inteligentes (LSI), da Universidade
Federal do Maranhão (UFMA). Os middlewares ESB (Enterprise Services Bus )
atuais como o BEA Web Logic, BizTalk, Mule ESB e similares, não possuem uma
semântica para o tratamento dos interesses transversais antes, durante e depois de
um grupo de operações serem executadas. Muitos interesses importantes estão
espalhados por vários módulos, serviços e se misturam com outras propriedades de
sistema de maneira intrusiva, dificultando a reutilização e manutenção de seus
componentes. Este trabalho apresenta uma abordagem chamada de
InterceptadorAOP, para o tratamento de interesses transversais em Serviços Web
em middlewares ESB. Os InterceptadoresAop são elementos responsáveis pelo
tratamento dos interesses transversais como o log de dados, tratamento de
exceções, debug e medidor de tempo já prédefinidos.
São baseados na semântica
da linguagem AspectJ, oriunda da Programação Orientada a Aspectos que visa
fornecer uma melhor separação dos interesses funcionais dos nãofuncionais
de
uma aplicação, promovendo serviços mais fáceis de serem mantidos, legíveis e
modularizados. Já a Arquitetura Orientada a Serviço (SOA) estimula e oferece
mecanismos para a composição de aplicações distribuídas de forma flexível e com
custo reduzido. O trabalho descreve o estado da arte, detalhes técnicos dos
InterceptadoresAOP e a sua aplicação em dois cenários para a validação do
modelo.
|
18 |
Uma contribuição para o teste baseado em defeitos de software orientado a aspectos / A contribution to the fault-based testing of aspect-orientd softwareFabiano Cutigi Ferrari 16 December 2010 (has links)
A Programação Orientada a Aspectos (POA) é uma técnica contemporânea de desenvolvimento de software fortemente baseada no princípio da separação de interesses. Ela tem como objetivo tratar de problemas de modularização de software por meio da introdução do aspecto como uma nova unidade de implementação que encapsula comportamento relacionado aos interesses transversais do software. A despeito dos benefícios que podem ser alcançados com o uso da POA, seus mecanismos de implementação representam novas potenciais fontes de defeitos que devem ser tratados durante a fase de teste de software. Nesse contexto, o teste de mutação consiste em um critério de seleção de testes baseado em defeitos que tem sido bastante investigado para demonstrar a ausência de defeitos pré-especifiados no software. Acredita-se que o teste de mutação seja uma ferramenta adequada para lidar com as particularidades de técnicas de programação contemporâneas como a POA. Entretanto, até o presente momento, as poucas iniciativas para adaptar o teste de mutação para o contexto de programas orientados a aspectos (OA) apresentam cobertura limitada em relação aos tipos de defeitos simulados, ou ainda requerem adequado apoio automatizado e avaliações. Esta tese visa a mitigar essas limitações por meio da definição de uma abordagem abrangente de teste de mutação para programas OA escritos na linguagem AspectJ. A tese inicia como uma investigação da propensão a defeitos de programas OA e define uma taxonomia de defeitos para tais programas. A taxonomia inclui uma variedade de tipos de defeitos e serviu como base para a definição de um conjunto de operadores de mutação para programas OA. Suporte automatizado para a aplicação dos operadores também foi disponibilizado. Uma série de estudos quantitativos mostra que a taxonomia de defeitos proposta é suficiente para classificar defeitos encontrados em vários sistemas OA. Os estudos também mostram que os operadores de mutação propostos são capazes de simular defeitos que podem não ser relevados por conjuntos de teste pré-existentes, não derivados para cobrir mutantes. Além disso, observou-se que o esforço requerido para evoluir tais conjuntos de teste de forma a torná-los adequados para os requisitos gerados pelos operadores / Aspect-Oriented Programming (AOP) is a contemporary software development technique that strongly relies on the Separation of Concerns principle. It aims to tackle software modularisation problems by introducing the aspect as a new implementation unit to encapsulate behaviour required to realise the so-called crosscutting concerns. Despite the benefits that may be achieved with AOP, its implementation mechanisms represent new potential sources of faults that should be handled during the testing phase. In this context, mutation testing is a widely investigated fault-based test selection criterion that can help to demonstrate the absence of prespecified faults in the software. It is believed to be an adequate tool to deal with testing-related specificities of contemporary programming techniques such as AOP. However, to date, the few initiatives for customising the mutation testing for aspect-oriented (AO) programs show either limited coverage with respect to the types of simulated faults, or a need for both adequate tool support and proper evaluation. This thesis tackles these limitations by defining a comprehensive mutation-based testing approach for AO programs written in the AspectJ language. It starts with a fault-proneness investigation in order to define a fault taxonomy for AO software. Such taxonomy encompasses a range of fault types and underlay the definition of a set of mutation operators for AO programs. Automated tool support is also provided. A series of quantitative studies show that the proposed fault taxonomy is able to categorise faults identified from several available AO systems. Moreover, the studies show that the mutation operators are able to simulate faults that may not be revealed by pre-existing, non-mutation-based test suites. Furthermore, the effort required to augment the test suites to provide adequate coverage of mutants does not tend to overwhelm the testers. This provides evidence of the feasibility of the proposed approach and represents a step towards the practical fault-based testing of AO programs
|
19 |
Teste de programas orientados a aspectos: uma abordagem estrutural para AspectJ / Testing aspect-oriented programs: a structural approach for AspectJLemos, Otávio Augusto Lazzarini 04 February 2005 (has links)
Em meados dos anos 90, alguns pesquisadores constataram a existência de certos interesses que, independente da técnica de programação utilizada ou da maneira como o sistema venha a ser decomposto, não se encaixam em módulos individuais, mas ficam espalhados por várias unidades do software (também chamados de interesses transversais). A programação orientada a aspectos (POA) foi concebida como uma proposta de resolução desse problema, a partir do uso de mecanismos que permitem o isolamento dos interesses transversais. Entretanto, por ser uma técnica nova, nesses primeiros anos os pesquisadores preocuparam-se em estabelecer os conceitos e técnicas básicos das linguagens orientadas a aspectos, deixando para uma segunda fase a investigação de outras características do desenvolvimento de programas orientados a aspectos, como métodos de projeto e abordagens de teste. Nesta dissertação é apresentada uma abordagem de teste estrutural para programas orientados a aspectos baseados na linguagem AspectJ, que pode contribuir para o aumento da confiança no software desenvolvido utilizando essa técnica e auxiliar o entendimento das novas construções e comportamentos envolvidos nesses programas. Modelos de fluxo de controle e de dados baseados no código-objeto resultante da compilação/ combinação de programas escritos na linguagem AspectJ são propostos, bem como nove critérios de teste baseados nesses modelos. Uma ferramenta desenvolvida para apoiar o teste estrutural de unidade de programas Java foi estendida para dar apoio aos modelos e critérios propostos nesta dissertação. Além disso, algumas propriedades do teste de integração de programas orientados a aspectos são discutidas teoricamente.
|
20 |
Teste estrutural de integração contextual de programas orientados a objetos e a aspectos / Contextual integration structural testing of object-oriented and aspect-oriented programsCafeo, Bruno Barbieri de Pontes 15 July 2011 (has links)
Paradigmas e técnicas de desenvolvimento como a programação Orientada a Objetos (OO) e a programação Orientada a Aspectos (OA) procuram melhorar os níveis de reuso e manutenibilidade na produção de software. Contudo, com a introdução de mecanismos com maior poder de expressividade e, consequentemente, a possível introdução de novos tipos de defeitos, a utilização de linguagens OO e OA pode se tornar um obstáculo ao invés de um auxílio ao desenvolvimento de software. Para lidar com esse problema, nesta dissertação é proposta uma abordagem de teste estrutural de integração para programas orientados a objetos e a aspectos implementados em Java e AspectJ. É definido um modelo de fluxo de controle e de dados baseado no bytecode Java { chamado Grafo Def-Uso Contextual (ou Contextual Def-Use graph) - que é uma abstração formada pela integração dos grafos Def-Uso Orientados a Aspectos (AODU) da unidade sob teste com todas as unidades que interagem direta ou indiretamente com ela até um nível de profundidade de interação máximo ou definido pelo testador. São defiidos três critérios de teste: todos-nós-integrados-Nd, todas-arestas-integradas-Nd e todos-usos-integrados-Nd. Para automatizar o uso do modelo e critérios propostos, a ferramenta JaBUTi/AJ foi estendida. Exemplos de usos são discutidos e, por meio de um estudo experimental, uma análise de aplicabilidade da abordagem proposta é apresentada / Development paradigms and techniques such as Object-Oriented (OO) programming and Aspect-Oriented (AO) programming aim at improving reuse levels and maintenability in the software production. However, due to the introduction of mechanisms to support a greater power of expressiveness and, consequently, possible introduction of new type of faults, the use of OO and AO languages might become an obstacle instead of a benefit in the software development. To deal with these problems, in this dissertation is presented an integration structural testing approach for objectand aspect-oriented software based on Java and AspectJ. It is defined a control- and data- ow model based on Java bytecode { called Contextual Def-Use graph { that is an abstraction composed by the integration of Aspect-Oriented Def-Use graphs (AODU) of the unit under testing with the units triggered by the execution of the unit under testing considering either a maximum interaction depth level or an interaction depth level previously defined by the tester. Three testing criteria are also defined: all-integrated-nodes-Nd, all-integrated-edges-Nd and all-integrated-uses-Nd. To automate the use of the model and the testing criteria, the JaBUTi/AJ tool was extended. Usage examples are discussed to explain the approach and an exploratory study is conducted to evaluate the applicability of the proposed approach
|
Page generated in 0.1137 seconds