Logíca de negócios - Business logic

No software de computador , a lógica de negócios ou lógica de domínio é a parte do programa que codifica as regras de negócios do mundo real que determinam como os dados podem ser criados, armazenados e alterados . É contrastado com o restante do software, que pode estar preocupado com detalhes de nível inferior de gerenciamento de um banco de dados ou exibição da interface do usuário , infraestrutura do sistema ou, geralmente, conectar várias partes do programa.

Detalhes e exemplo

Logíca de negócios:

  • Prescreve como os objetos de negócios interagem uns com os outros
  • Impõe as rotas e os métodos pelos quais os objetos de negócios são acessados ​​e atualizados

Regras do negócio:

  • Modele objetos de negócios da vida real (como contas, empréstimos, itinerários e estoques)

A lógica de negócios compreende:

  • Fluxos de trabalho que são as tarefas ordenadas de passar documentos ou dados de um participante (uma pessoa ou um sistema de software) para outro.

A lógica de negócios deve ser diferenciada das regras de negócios. A lógica de negócios é a parte de um sistema corporativo que determina como os dados são transformados ou calculados e como são encaminhados para pessoas ou software (fluxo de trabalho). As regras de negócios são expressões formais da política de negócios. Qualquer coisa que seja um processo ou procedimento é lógica de negócios e tudo que não seja um processo nem um procedimento é uma regra de negócios. Receber um novo visitante é um processo (fluxo de trabalho) que consiste em etapas a serem seguidas, enquanto dizer que todo novo visitante deve ser bem-vindo é uma regra de negócios. Além disso, a lógica de negócios é procedural, enquanto as regras de negócios são declarativas.

Por exemplo, um site de comércio eletrônico pode permitir que os visitantes adicionem itens a um carrinho de compras, especifiquem um endereço de entrega e forneçam informações de pagamento. A lógica de negócios do site pode incluir um fluxo de trabalho como:

  • A sequência de eventos que acontecem durante o checkout, por exemplo, um formulário de várias páginas que primeiro pede o endereço de entrega, depois o endereço de cobrança, a próxima página conterá a forma de pagamento e a última página mostrará os parabéns.

Haverá também regras de negócios do site:

  • Adicionar um item mais de uma vez da página de descrição do item aumenta a quantidade desse item.
  • Formatos específicos que devem seguir o endereço do visitante, o endereço de e-mail e as informações do cartão de crédito.
  • Um protocolo de comunicação específico para falar com a rede de cartão de crédito

O software do site também contém outro código que não é considerado parte da lógica de negócios nem das regras de negócios:

  • Conteúdo periférico não relacionado aos principais dados de negócios, como o HTML que define as cores, aparência, imagem de fundo e estrutura de navegação do site
  • Código genérico de tratamento de erros (por exemplo, que exibe a página HTTP Error Code 500)
  • Código de inicialização que é executado quando o servidor web inicia o site, que configura o sistema
  • Infraestrutura de monitoramento para garantir que todas as partes do site estão funcionando corretamente (por exemplo, o sistema de faturamento está disponível)
  • Código genérico para fazer conexões de rede, transmitir objetos ao banco de dados , analisar a entrada do usuário por meio de eventos HTTP POST, etc.

Lógica de negócios e níveis / camadas

A lógica de negócios, em teoria, ocupa a camada intermediária de uma arquitetura de 3 camadas.

A lógica de negócios pode estar em qualquer lugar em um programa. Por exemplo, dado um determinado formato para um endereço, uma tabela de banco de dados pode ser criada com colunas que correspondam exatamente aos campos especificados na lógica de negócios e verificações de tipo adicionadas para garantir que nenhum dado inválido seja adicionado.

A lógica de negócios freqüentemente muda. Por exemplo, o conjunto de formatos de endereço permitidos pode mudar quando um varejista online começa a enviar produtos para um novo país. Portanto, é frequentemente visto como desejável tornar o código que implementa a lógica de negócios relativamente isolado ou fracamente acoplado . Isso torna mais provável que as mudanças na lógica de negócios exijam um pequeno conjunto de mudanças no código, em apenas uma parte do código. O código distante, mas fortemente acoplado, também cria um risco maior de que o programador faça apenas algumas das alterações necessárias e perca parte do sistema, levando a uma operação incorreta.

Uma arquitetura multicamadas formaliza esse desacoplamento criando uma camada de lógica de negócios que é separada de outras camadas ou camadas, como a camada de acesso a dados ou camada de serviço . Cada camada "conhece" apenas uma quantidade mínima sobre o código nas outras camadas - apenas o suficiente para realizar as tarefas necessárias. Por exemplo, em um paradigma modelo-visão-controlador , as camadas do controlador e da visão podem ser feitas tão pequenas quanto possível, com toda a lógica de negócios concentrada no modelo. No exemplo de e-commerce, o controlador determina a sequência de páginas da web na sequência de checkout e também é responsável por validar se o e-mail, endereço e informações de pagamento atendem às regras de negócios (em vez de deixar isso para o próprio banco de dados ou código de acesso ao banco de dados de nível inferior).

Paradigmas alternativos são possíveis. Por exemplo, com entidades de negócios relativamente simples, uma visão genérica e um controlador podem acessar objetos de banco de dados que contêm toda a lógica de negócios relevante sobre quais formatos eles aceitam e quais mudanças são possíveis (conhecido como modelo de banco de dados ).

Alguns esquemas em camadas usam uma camada de aplicativo distinta ou uma camada de serviço , ou consideram a camada de lógica de negócios igual a uma delas.

Ferramentas e técnicas

A lógica de negócios pode ser extraída do código de procedimento usando um sistema de gerenciamento de regras de negócios (BRMS).

A abordagem de regras de negócios de desenvolvimento de software usa BRMSs e impõe uma separação muito forte da lógica de negócios de outro código. Os sistemas de gerenciamento de interface do usuário são outra tecnologia usada para impor uma forte separação entre a lógica de negócios e outro código. O botão mágico é considerado um "antipadrão": uma técnica que, neste caso, cria restrições indesejáveis ​​que tornam difícil codificar a lógica de negócios de uma maneira fácil de manter.

Um modelo de domínio é uma representação abstrata dos tipos de armazenamento de dados exigidos pelas regras de negócios.

Veja também

Referências

Leitura adicional

  • Brett McLaughlin (março de 2002). "Lógica de negócios, parte 1" . Building Java Enterprise Applications, Vol I: Architecture . O'Reilly and Associates. ISBN 0-596-00123-1.- McLaughlin discute o padrão de fachada para implementar a camada de negócios de um aplicativo.
  • Kathy Bohrer (novembro de 1997). “Middleware isola lógica de negócios” . Revista Objeto . Nova York, EUA: SIGS Publications, Inc. 7 (9): 41–46. ISSN  1055-3614 .
  • Harumi Kuno; Mike Lemon; Alan Karp e Dorothea Beringer (2001). "Conversas + Interfaces = Lógica de Negócios". Em F. Casati; D. Georgakopoulos & M.-C. Shan (eds.). Technologies for E-Services: Second International Workshop, TES 2001, Rome, Italy, September 14-15, 2001, Proceedings . Notas de aula em Ciência da Computação . 2193 . Springer Berlin / Heidelberg. ISSN  0302-9743 .
  • Volker Turau (2002). "Uma estrutura para geração automática de aplicativos de entrada de dados baseados na web baseados em XML" . Proceedings of the 2002 ACM symposium on Applied computing, Madrid, Spain: Web and e-business application . ACM Press. pp. 1121–1126. ISBN 1-58113-445-2.- Turau apresenta uma estrutura de aplicativo implementada usando Java Servlets e JavaServer Pages que permite a separação entre a lógica de negócios e a lógica de apresentação, permitindo que o desenvolvimento de cada uma prossiga em paralelo ao longo de trilhas relativamente independentes, mas cooperantes.
  • Pau, L.-F. & Vervest, PHM (2003-12-08). "Gerenciamento de processos de negócios baseado em rede: incorporando lógica de negócios em redes de comunicações". ERIM Report Series Research in Management. Erasmus University . hdl : 1765/1070 . Citar diário requer |journal=( ajuda )- Pau e Vervest desenvolvem uma abordagem para a incorporação da lógica de negócios na rede de comunicações que sustenta uma aplicação distribuída com uma multiplicidade de atores , a fim de otimizar a alocação de recursos de negócios do ponto de vista da rede.

links externos