• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 35
  • 2
  • Tagged with
  • 37
  • 37
  • 37
  • 26
  • 25
  • 25
  • 24
  • 14
  • 11
  • 10
  • 9
  • 9
  • 9
  • 8
  • 8
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Aspecth: uma extensão de Haskell orientada a aspectos

ANDRADE, Carlos Andreazza Rego January 2005 (has links)
Made available in DSpace on 2014-06-12T16:01:06Z (GMT). No. of bitstreams: 2 arquivo7160_1.pdf: 1101431 bytes, checksum: 69c90a543a0c30de3b872aae2a3bb5a2 (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2005 / Uma das principais técnicas de abstração oferecida pelas linguagens de programação atuais é a possibilidade de dividir um sistema em unidades de código que capturam suas funcionalidades. Esta abstração permite que mudanças em uma unidade em particular não se propaguem por todo sistema. No entanto, isto é apenas aplicável quando tais funcionalidades ou preocupações podem de fato ser classificadas como unidades separadas. Algumas funcionalidades ou preocupações - conhecidas como preocupações entrelaçadas (crosscutting concerns) - repercutem por todo o sistema e não podem ser definidas em módulos tradicionais. Assim, todo o código que as implementa fica espalhado e misturado por diversos módulos. O paradigma de programação orientado a aspectos (AOP) tem sido apresentado na literatura como uma maneira alternativa de implementar os crosscutting concerns de um sistema, disponibilizando construções que permitem separá-los em unidades adequadamente. Um conceito central neste paradigma é o de aspecto, que é sua unidade modular. Uma linguagem de programação orientada a aspectos é usualmente estabelecida como uma extensão de uma linguagem de programação existente, provendo ao programador tanto as unidades modulares desta linguagem (conhecida como linguagem base) quanto os aspectos. Este trabalho apresenta a linguagem AspectH, uma extensão orientada a aspectos de Haskell. AspectH implementa o mecanismo AOP de pointcuts e advice como em AspectJ e foi projetada para atuar em programas Haskell que utilizam mônadas. Por meio de AspectH, investigamos os benefícios que uma abordagem AOP pode oferecer no contexto de uma linguagem puramente funcional. Em outras palavras, pretendemos demonstrar que AOP pode fazer por Haskell e linguagens funcionais o que já faz, como exemplo, por linguagens orientadas a objetos. AspectH oferece ao programador a possibilidade de implementar os crosscutting concerns de programas monádicos em aspectos, ajudando-o a criar programas mais modulares e conseqüentemente mais legíveis, mais fáceis de manter e reusar
2

Uma abordagem para migração de aplicações monolíticas para microservices baseada em programação orientada a aspectos / An Approach for Migrating Monolithic Applications to Microservices based on Aspect-Oriented Programming (Inglês)

Medeiros, Otavio Soares Cavalcante de 14 December 2018 (has links)
Made available in DSpace on 2019-03-30T00:23:41Z (GMT). No. of bitstreams: 0 Previous issue date: 2018-12-14 / Recently, organizations are facing difficulties related to the migration of their systems in production from a traditional monolithic architecture to a distributed, decoupled solution based on a set of services developed, deployed and scaled independently, called microservices. An example of success of implementation of this pattern is the Netflix software whose migration process took 10 years due to the complexity involved in migrating a solution that was already in production with a vast customer base. This work proposes an approach for migrating monolithic systems to microservices based on the concept of aspect-oriented programming that enables a simple way to implement the migration in a gradual fashion with few code changes. This enables not only to change the monolithic code gradually, but also to switch back to the monolithic easily by switching off the aspects based on configuration properties. A case study conducted demonstrates the efficiency of the approach for migrating a real monolithic application with low effort and few code changes. Keywords: Software Engineering. Architecture. Monolithic. Microservices, Migration Process. Production. Distributed Computing / Recentemente, organizações estão enfrentando dificuldades na migração de seus sistemas em produção de um modelo arquitetural tradicional monolítico para uma arquitetura de solução distribuída e mais desacoplada baseada em um conjunto de serviços desenvolvidos, implantados e escalados de forma independente, chamados microservices. Um exemplo de sucesso de implementação deste padrão é o software Netflix cujo processo de migração levou 10 anos devido à complexidade envolvida em migrar uma solução já em produção e com uma vasta base de clientes. Este trabalho propõe uma abordagem para a migração de sistemas monolíticos para microservices baseado no conceito de programação orientada a aspectos, que permite uma maneira simples de realizar a migração de forma gradual e com poucas modificações no código do monolítico. Isso permite não apenas migrar a aplicação aos poucos, mas também voltar para o monolítico facilmente apenas através da desativação dos aspectos baseado em propriedades de configuração. Um Estudo de caso realizado demonstra a eficácia da abordagem na migração de uma aplicação real monolítica com pouco esforço e poucas modificações no código. Palavras-Chave: Engenharia de Software. Arquitetura. Monolítico. Microservice. Processo de Migração. Produção. Computação Distribuída
3

Specifying design rules in aspect-oriented systems

Costa Neto, Alberto 05 March 2010 (has links)
Programação Orientada a Aspectos é conhecida como uma técnica para modularização de interesses transversais. Entretanto, construções que visam apoiar a modularidade transversal podem quebrar a modularidade de classe. Como consequência, os desenvolvedores de classes enfrentam problemas de modificabilidade, desenvolvimento em paralelo e entendimento, porque precisam estar conscientes da implementação dos aspectos sempre que forem desenvolver ou dar manutenção em uma classe. Ao mesmo tempo, aspectos são vulneráveis a mudanças nas classes, já que não existe um contrato especificando os pontos de interação entre estes elementos. Estes problemas podem ser mitigados através de Regras de Projeto entre classes e aspectos. Nós apresentamos uma linguagem para especificação de Regras de Projeto (LSD) e exploramos seus benefícios desde as fases iniciais do processo de desenvolvimento, especialmente com o objetivo de dar apoio ao desenvolvimento modular de classes e aspectos. Nós discutimos como nossa linguagem melhora a modularidade transversal sem quebrar a modularidade de classe. Além disso, especificamos a semântica da linguagem em Alloy. A linguagem é implementada através de uma extensão do abc (AspectBench Compiler), tornando mais fácil expressar e checar muitas das Regras de Projeto encontradas em sistemas Orientados a Aspectos. Nós avaliamos LSD usando o sistema Health Watcher como estudo de caso e comparamos com abordagens existentes._________________________________________________________________________________________ ABSTRACT: Aspect-Oriented Programming is known as a technique for modularizing crosscutting concerns. However, constructs aimed to support crosscutting modularity might actually break class modularity. As a consequence, class developers face changeability, parallel development and comprehensibility problems, because they must be aware of aspects whenever they develop or maintain a class. At the same time, aspects are vulnerable to changes in classes, since there is no contract specifying the points of interaction amongst these elements. These problems can be mitigated by using adequate Design Rules between classes and aspects. We present a Design Rule specification language (LSD) and explore its benefits since the initial phases of the development process, specially with the aim of supporting modular development of classes and aspects. We discuss how our language improves crosscutting modularity without breaking class modularity. Besides, we specify the language semantics in Alloy. The language is implemented through an extension of abc (AspectBench Compiler), making it easy to express and check most of the Design Rules found in Aspect-Oriented systems. We evaluate the language using the Health Watcher system as case study and compare it with existent approaches.
4

Catalogue of unexpected interactions between aspects

Aguiar, Mário Rui Cabral January 2009 (has links)
Tese de mestrado integrado. Engenharia Informática e Computação. Faculdade de Engenharia. Universidade do Porto. 2009
5

"Uma ferramenta baseada em aspectos para apoio ao teste funcional de programas Java"

André Dantas Rocha 22 March 2005 (has links)
A disponibilidade de ferramentas de teste de software propicia maior qualidade e produtividade para as atividades de teste. Diversas ferramentas têm sido propostas para o apoio ao teste estrutural, mas nota-se a falta de ferramentas que ofereçam suporte ao teste funcional e implementem os diversos critérios dessa técnica. Visando a preencher essa lacuna, uma ferramenta para apoio ao teste funcional de programas Java foi desenvolvida e é apresentada. A ferramenta apóia os principais critérios funcionais, tais como o Particionamento de Equivalência e Análise de Valor-limite, e oferece análise de cobertura baseada nos critérios da técnica funcional. A análise de cobertura é uma característica normalmente encontrada nas ferramentas que apóiam o teste estrutural, mas raramente disponível nas ferramentas que oferecem suporte ao teste funcional. O projeto da ferramenta é apresentado, no qual o conceito de separação de interesses é utilizado. A Programação Orientada a Aspectos é utilizada nas etapas de instrumentação e execução dos critérios de teste. O uso dessa técnica permite a separação clara entre o código de teste e o código do programa, assim como torna mais fácil a adição e remoção dos aspectos que implementam o teste, além de ser uma solução eficaz para o projeto da ferramenta. Um exemplo de uso da ferramenta é apresentado.
6

Uma abordagem genérica para gridificação de aplicações concorrentes utilizando programação orientada a aspectos / Uma Abordagem Genérica para Gridificação de Aplicações Concorrentes Utilizando Programação Orientada a Aspectos (Inglês)

Barros, Marcelo Bedê 10 December 2010 (has links)
Made available in DSpace on 2019-03-29T23:27:30Z (GMT). No. of bitstreams: 0 Previous issue date: 2010-12-10 / This work presents a model for semi-automatic transformation of multi-thread applications into grid-enabled applications, focusing on algorithms that present communication and synchronization. The model uses Java threads and aspect-oriented programming to convert threads into grid tasks, maintaining the state of shared objects during the execution. In this work we also present performance and ease of use evaluation results. Keywords: Software Engineering, Distributed Systems, Grid Computing, Aspect Oriented Programming / Este trabalho apresenta um modelo para transformação semi-automática de aplicações multi-thread em aplicações para grades computacionais, focando em algoritmos com comunicação e sincronização entre tarefas. O modelo utiliza Java threads e programação orientada a aspectos para converter threads em tarefas para a grade, mantendo o estado de objetos compartilhados durante a execução. Neste trabalho apresentamos ainda resultados de avaliações de desempenho e facilidade de uso do modelo. Palavras-chave: Engenharia de Software, Sistemas Distribuídos, Computação em Grade, Programação Orientada a Aspectos
7

"Uma ferramenta baseada em aspectos para apoio ao teste funcional de programas Java"

Rocha, André Dantas 22 March 2005 (has links)
A disponibilidade de ferramentas de teste de software propicia maior qualidade e produtividade para as atividades de teste. Diversas ferramentas têm sido propostas para o apoio ao teste estrutural, mas nota-se a falta de ferramentas que ofereçam suporte ao teste funcional e implementem os diversos critérios dessa técnica. Visando a preencher essa lacuna, uma ferramenta para apoio ao teste funcional de programas Java foi desenvolvida e é apresentada. A ferramenta apóia os principais critérios funcionais, tais como o Particionamento de Equivalência e Análise de Valor-limite, e oferece análise de cobertura baseada nos critérios da técnica funcional. A análise de cobertura é uma característica normalmente encontrada nas ferramentas que apóiam o teste estrutural, mas raramente disponível nas ferramentas que oferecem suporte ao teste funcional. O projeto da ferramenta é apresentado, no qual o conceito de separação de interesses é utilizado. A Programação Orientada a Aspectos é utilizada nas etapas de instrumentação e execução dos critérios de teste. O uso dessa técnica permite a separação clara entre o código de teste e o código do programa, assim como torna mais fácil a adição e remoção dos aspectos que implementam o teste, além de ser uma solução eficaz para o projeto da ferramenta. Um exemplo de uso da ferramenta é apresentado.
8

Abordagem Aspecting: Migração de Sistemas OO para Sistemas OA.

Ramos, Ricardo Argenton 21 May 2004 (has links)
Made available in DSpace on 2016-06-02T19:06:05Z (GMT). No. of bitstreams: 1 DissRAR.pdf: 964879 bytes, checksum: f99870bf861c3fdf768f6f369bb6fe13 (MD5) Previous issue date: 2004-05-21 / Universidade Federal de Sao Carlos / An approach, named Aspecting, is proposed for eliciting aspects in Object Oriented systems and subsequently re-factoring these systems as aspect oriented systems. The approach has three phases: Understand the System Functionality, Treat the Interests and Compare the Object Oriented System with the Aspect Oriented System. Each phase is presented with the details to be observed by the software engineer for the migration of the systems to be made safely and to obtain a quality product. Techniques of separation of concerns and aspect oriented programming are used in three prospective study cases, in order to induce formulating the approach. Guidelines are established to model the concerns identified, using class diagrams in UML notation. Other guidelines govern the implementation of concerns as aspects, using the Aspect J language. The use of regression tests in the system after the system code reorganization now implemented with aspects, for checking if the original functionality has been preserved in the migration, completes the approach. A fourth study case, for illustrating the approach application, is also presented. / Uma abordagem denominada Aspecting é proposta para a elicitação de aspectos em sistemas Orientados a Objetos e posterior implementação desses sistemas no paradigma Orientado a Aspectos. A Abordagem tem três etapas distintas: Entender a Funcionalidade do Sistema, Tratar Interesses e Comparar o Sistema Orientado a Aspectos com o Orientado a Objetos. Cada etapa é desenvolvida apresentando os detalhes que devem ser cuidados pelo engenheiro de software para que a migração dos sistemas seja realizada de forma segura e obtenha-se um produto de qualidade. Técnicas de separação de interesses e de programação Orientada a Aspectos são utilizadas em três estudos de caso para elaborar a Abordagem. Diretrizes auxiliam a modelagem dos interesses identificados, utilizando diagrama de classes com a notação UML. Outras Diretrizes auxiliam a implementação desses interesses em aspectos, utilizando a linguagem AspectJ. A utilização de testes de regressão no sistema após a reorganização do código do sistema agora implementado com aspectos, verificando que a funcionalidade original foi preservada, completa a abordagem. Um quarto estudo de caso, para demonstrar a aplicação da abordagem, é também realizado.
9

Design rules for increasing modularity with CaesarJ

Eduardo 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.
10

Structuring Adaptive Applications using AspectJ

Dé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

Page generated in 0.1143 seconds