Spelling suggestions: "subject:"programação orientador a aspectos"" "subject:"programaçãoo orientador a aspectos""
1 |
Aspecth: uma extensão de Haskell orientada a aspectosANDRADE, 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 |
Catalogue of unexpected interactions between aspectsAguiar, 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
|
4 |
Specifying design rules in aspect-oriented systemsCosta 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.
|
5 |
"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.
|
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"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.
|
8 |
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 programsRé, Reginaldo 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
|
9 |
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 toolPereira Junior, Carlos Alberto de Freitas 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
|
10 |
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.
|
Page generated in 0.1393 seconds