web-dev-qa-db-fra.com

Qu'est-ce qu'une règle commerciale exactement?

J'essaie de mieux organiser l'architecture de mon application, j'ai donc fait quelques lectures, mais je continue de rencontrer des références à "Business Logic" et "Business Rules". Je n'ai jamais vraiment compris ce que c'est réellement. Je me concentre généralement sur les cas d'utilisation et les "User Stories". Quelqu'un pourrait-il expliquer ce qu'est la logique métier et les règles métier, et comment elles sont liées aux cas d'utilisation?

Toutes les définitions que j'ai trouvées semblent concerner des entreprises réelles, pas le développement de logiciels.

Parce que le logiciel n'est pas toujours représentatif d'une entreprise, cela signifie-t-il que le logiciel n'a pas toujours une logique métier? Ou...

19
moss

Les gens utilisent les termes "règle métier" et "logique métier" pour faire référence à la partie de votre application qui est spécifique à votre application et représente le comportement de base de la façon dont les choses sont censées fonctionner, par opposition aux fonctionnalités génériques qui pourraient être utiles dans les logiciels. écrit pour un autre client/entreprise/base de clients ou code existant pour prendre en charge l'infrastructure de l'application.

Souvent, la logique métier est sujette à changement lorsque les besoins du client changent, nous aimons donc la placer dans un endroit/niveau spécial afin de pouvoir la modifier selon les besoins.

Bien que le terme semble impliquer le contraire, les logiciels non commerciaux ont également une logique commerciale. Par exemple, une règle qui stipule que "lorsqu'un utilisateur effectue xyz, l'application doit valider quelque chose" peut être classée comme une règle métier.

Le code utilitaire, tel que l'analyse/le traitement/l'accès aux données, etc. ne serait pas considéré comme une logique métier.

C'est une sorte de terme nébuleux et pourrait signifier différentes choses pour différentes personnes dans différents contextes. Ça ne vaut pas la peine de se raccrocher. L'idée générale est de séparer votre application en parties logiques, chacune étant responsable de quelque chose de spécifique. Comment cela se fait exactement est quelque chose que vous apprenez de l'expérience et du travail sur de grandes applications bien conçues. Mais il n'y a pas de règles strictes et rapides. Demandez à trois bons développeurs et vous obtiendrez six opinions.

21
Aaron Greenwald

Voici un extrait de Wikipedia:

C'est une règle qui définit ou contraint certains aspects de l'entreprise et se résout toujours en vrai ou en faux. Les règles métier sont destinées à affirmer la structure de l'entreprise ou à contrôler ou influencer le comportement de l'entreprise Les règles métier décrivent les opérations, définitions et contraintes qui s'appliquent à une organisation. Les règles métier peuvent s'appliquer aux personnes, aux processus, au comportement de l'entreprise et aux systèmes informatiques d'une organisation, et sont mises en place pour aider l'organisation à atteindre ses objectifs.

En ce qui concerne ce que @aarong a dit, les règles commerciales ou la logique métier ne signifient pas vraiment que vous avez besoin d'une forme d'entité commerciale pour inventer cela.

Cela peut signifier n'importe quelle contrainte ou définition d'un processus que votre application est censée faire. Ces règles sont destinées à affirmer le comportement de votre application et ce qu'elle fait.

Par exemple, mettons cette logique dans un guichet automatique.

Les règles commerciales peuvent être:

  • L'utilisateur doit avoir une carte ATM
  • L'utilisateur doit connaître le code PIN de la carte ATM
  • Le montant que l'utilisateur essaie de retirer ne doit pas dépasser le solde du compte
  • En cas d'erreur, annulez toutes les modifications apportées au système et inversez les transactions si possible

Ou dans un endroit plus commun comme Facebook:

  • Vous avez besoin d'un compte Facebook pour vous connecter
  • Vous devez être connecté pour ajouter des amis
  • L'utilisateur doit pouvoir sélectionner qui peut voir ses publications et ses photos
  • L'utilisateur doit être informé des demandes d'amis
  • L'utilisateur peut accepter ou refuser les demandes d'amis

Des trucs comme ça.

4
Maru

Les règles métier sont des règles qui existent dans le domaine problématique qui définissent ou restreignent les processus dans ce domaine.

Ce sont des règles qui peuvent être appliquées par le logiciel.

Les cas d'utilisation sont des observations documentées des règles métier dans la pratique.

Exemple, si le domaine problématique prescrit, alors:

  1. une règle commerciale pourrait être "Ne peut pas faire de recharges sur les médicaments Control-II".
  2. un cas d'utilisation ou une histoire pourrait être "Le patient demande une recharge de médicament ... Le système refuse la recharge car les recharges ne sont pas autorisées sur les médicaments Control-II ..."

Les règles métier ne sont pas nécessairement associées aux applications informatiques.

Lorsque vous voyez le terme dans un livre, vous pouvez généralement le considérer comme "Exigences", bien que les exigences englobent plus que les règles métier.

0
codenheim