Cross-cutting concern

Origem: Wikipédia, a enciclopédia livre.

Em ciência da computação, cross-cutting concerns (em português: interesses transversais[1] ou características transversais) são aspectos de um programa que afetam outros concerns (em português: interesse, característica). Estes concerns, muitas vezes não podem ser decompostos de forma clara do resto do sistema, tanto no projeto e implementação, e podem resultar numa dispersão (duplicação de código), enrolamento (dependências significativas entre os sistemas), ou ambos.[2]

Por exemplo, uma aplicação é escrita para o tratamento de registros médicos, a indexação de tais registros é um concern central, ao registrar um histórico de alterações no banco de dados de registro ou banco de dados do usuário, ou um sistema de autenticação, seriam concerns transversais, uma vez que ele toca mais partes do programa.

Plano de fundo[editar | editar código-fonte]

Cross-cutting concerns são partes de um programa que dependem ou devem afetar muitas outras partes do sistema. Eles formam a base para o desenvolvimento de aspectos.[3] Tais cross-cutting concerns não se encaixam corretamente em programação orientada a objetos ou programação procedural.[4]

Cross-cutting concerns podem ser diretamente responsáveis pelo embaraçamento, ou inter-dependências de sistema, dentro de um programa. Devido as construções de linguagem procedural e funcional consistir inteiramente de chamadas de procedimento, não há semântica através do qual dois objetivos (a capacidade de ser aplicado e cross-cuting concern relacionados) podem ser tratados simultaneamente.[5] Como resultado, o código de abordar o cross-cutting concern deve ser espalhado, ou repetido, entre os vários locais disponíveis, resultando numa perda de modularidade.[4]

A programação orientada a aspectos visa encapsular os cross-cutting concerns em aspectos para reter a modularidade. Isso permite o isolamento claro e a reutilização de código abordando o cross-cutting concern.[6] Ao basear projetos em cross-cutting concerns, os benefícios da engenharia de software são afetados, incluindo modularidade e manutenção simplificada.[7]

Exemplos[editar | editar código-fonte]

Exemplos de concerns que tendem a ser cross-cutting incluem:

Referências

Ícone de esboço Este artigo sobre computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.