Com relação a banco de dados distribuído e à programação or...
Com relação a banco de dados distribuído e à programação orientada a aspectos (POA), julgue o item subsequente.
A POA permite separar a atividade de desenvolver as
funcionalidades requeridas da atividade de integrar software,
o que possibilita alterar sua estrutura interna, como atributos e
métodos, assim como reutilizar componentes de outros
sistemas.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C - certo
Para esclarecer a questão e por que a alternativa correta é "Certo", precisamos entender o conceito de Programação Orientada a Aspectos (POA) ou Aspect-Oriented Programming (AOP) em inglês. A POA é um paradigma de programação que visa aumentar a modularidade, permitindo a separação de cross-cutting concerns, ou seja, aspectos que afetam diversas partes de um programa e que não se encaixam bem nas abstrações tradicionais como classes e métodos. Exemplos típicos desses aspectos são log, segurança, transações e tratamento de erros.
A afirmação da questão está correta porque a POA permite isolar esses aspectos em unidades separadas chamadas aspectos. Esses aspectos podem ser aplicados de forma declarativa a pontos específicos de um programa, conhecidos como join points, sem a necessidade de modificar a estrutura interna dos componentes, como seus atributos e métodos. Isso facilita a manutenção e a reutilização de código, já que o desenvolvedor pode adicionar ou alterar funcionalidades de aspectos sem afetar o código principal das funcionalidades do sistema.
Além disso, a POA facilita a integração de software ao permitir que aspectos sejam aplicados sobre os componentes de uma aplicação de maneira transparente, o que pode incluir componentes vindos de outros sistemas. Dessa forma, é mais simples adaptar e reutilizar código em diferentes projetos, o que é uma prática valiosa no desenvolvimento de software.
Compreender a POA é importante para os desenvolvedores porque ela oferece um meio eficaz de gerenciar a complexidade do software e melhorar a qualidade do código. A resposta correta reflete o entendimento de que a POA é uma técnica poderosa para modularizar preocupações secundárias e promover a reutilização, sem interferir nas funcionalidades principais do sistema.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Em ciência da computação, programação orientada a aspectos ou POA, é um paradigma de programação de computadores que permite aos desenvolvedores de software separar e organizar o código de acordo com a sua importância para a aplicação (separation of concerns). Todo o programa escrito no paradigma orientado a objetos possui código que é alheio a implementação do comportamento do objeto. Este código é todo aquele utilizado para implementar funcionalidades secundárias e que se encontra espalhado por toda a aplicação (crosscutting concern). A POA permite que esse código seja encapsulado e modularizado.
O conceito foi criado por Gregor Kiczales e a sua equipe na Xerox PARC, a divisão de pesquisa da Xerox. Eles desenvolveram o AspectJ, a primeira e mais popular linguagem POA.
Os paradigmas de programação mais antigos, como a programação procedural e programação orientada a objeto, implementam a separação do código, através de entidades únicas. Por exemplo, a funcionalidade de log de dados, numa linguagem orientada a objetos, é implementada em uma única classe, que é referenciada em todos os pontos onde é necessário fazer log de dados. Como praticamente todo método necessita que alguns dados sejam registrados em log, as chamadas a essa classe são espalhadas por toda a aplicação.
Tipicamente uma implementação da POA busca encapsular essas chamadas através de uma nova construção chamada de "aspecto". Um aspecto pode alterar o comportamento de um código (a parte do programa não orientada a aspectos) pela aplicação de um comportamento adicional, advice, sobre um "ponto de execução", ou join point. A descrição lógica de um conjunto de join points é chamada de pointcut.
Em muitas linguagens POA, a execução de um método e referências a atributos são exemplos de join points. Um pointcut consiste, por exemplo, de todas as referências a um conjunto de atributos.
Certo
https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspecto
A Programação Orientada a Aspectos envolve quebrar a lógica do programa em partes distintas chamadas de interesses (concerns);
As funções que abrangem vários pontos de um aplicativo são chamadas de interesses transversais (cross-cutting concerns) e esses interesses transversais são conceitualmente separados da lógica de negócios do aplicativo;
A unidade chave de modularidade em POO é a classe, enquanto que em AOP a unidade de modularidade é o aspecto;
Voltada a complementar outras formas de Programação como por exemplo a POO;
Unidade de modularidade é o Aspecto;
Ex.:
Registro de Log;
Auditorias de códigos;
Terminologias de POA:
Aspect - Este é um módulo que possui um conjunto de APIs que fornecem requisitos transversais;
Join point - Representa um ponto em seu aplicativo onde você pode plugar o aspecto AOP;
Advice - Esta é a ação real a ser tomada antes ou depois da execução do método;
before - Execute o advice antes da execução do método;after - Execute o advice após a execução do método, independentemente de seu resultado;after-returning - Execute o advice após a execução do método a somente se o método for concluído com êxito;after-throwing - Execute o advice após a execução do método a somente se o método finalizar lançando uma exceção;around - Execute o advice antes e depois que o método for invocado;
Pointcut - Este é um conjunto de um ou mais pontos de junção onde um advice deve ser executado;
Introduction - Uma introdução permite adicionar novos métodos ou atributos às classes existentes;
Target object - O objeto instrumentado com advices por um ou mais aspectos;
Weaving - É o processo de vincular aspectos com outros tipos de aplicativos ou objetos para criar um objeto advised;
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo