Scroll to top
Качественное создание и продвижение сайтов To-Dev.Ru

Бизнес логика приложения + Бизнес-правила


SirAix - 03.10.2018 - 0 комментариев

Основная информация:

Бизнес-логика — где первое слово Бизнес можно заменить на понятие Предметная Область, в таком случае будет проще понять что из себя это представляет.

Бизнес-логика – это логика самой доменной модели. Всё, что в вашем приложении происходит в терминах предметной области – это и есть там самая Бизнес-логика.

 Бизнес-логика, в свою очередь, реализует бизнес-правила. А что такое бизнес-правило?

Бизнес-правило – это положение, определяющее или ограничивающее какие-либо стороны бизнеса (предметной области). Его назначение – защитить структуру бизнеса, контролировать или влиять на его операции.

  1. Бизнес-правила разделяют примерно на шесть основных категорий:Бизнес-термины – фундаментальная форма бизнес-правила. Это фразы, слова, аббревиатуры из предметной области. Обычно такие термины хранятся в документе под названием «бизнес глоссарий» или «словарь терминов». Примеры бизнес-терминов: читатель; книга; ISBN — уникальный номер книжного издания; читательский абонемент – документ, где учитываются книги выданные читателю; и т.д.
  2. Факты (facts) — это верные утверждения о бизнесе. Зачастую они описывают связи и отношения между важными бизнес-терминами. Факты также называют инвариантами — неизменными истинами о сущности данных и их атрибутах. Бизнес-правила во многих случаях могут ссылаться на определенные факты, однако последние обычно не преобразуются напрямую в функциональные требования к программному обеспечению. Сведения о сущности данных, важных для системы, применяют в моделях данных, создаваемых аналитиком или архитектором базы данных.

Примеры фактов:

  • каждая книга должна иметь международный стандартный книжный номер;
  • клиент оплачивает доставку каждого заказа;
  • заказ должен содержать не менее одной позиции;
  • блиц-цена лота аукциона устанавливается продавцом;
  • каждый авиарейс имеет аэропорт вылета и аэропорт прилета;
  • автосалон реализует автомобили нескольких производителей (является мультибрэндовым дилером)

3. Выводы (inference), иногда называемые предположительным знанием — это правила, устанавливающие новые реалии на основе достоверности определенных условий. Вывод создает новый факт на основе других фактов или вычислений. Выводы зачастую записывают в формате «если — то», применяемом также при записи бизнес-правил, активирующих операции. Тем не менее, раздел «то» вывода заключает в себе факт или предположение, а не действие.

Примеры выводов:

  •  если поставщик не может поставить заказанный товар в течение пяти дней с момента получения заказа, заказ считается невыполненным;
  • считается, что срок хранения контейнеров с химикатами, разлагающимися на взрывоопасные составляющие, истекает через один год c даты изготовления;
  • если выставленный участнику аукциона счет не был оплачен в течение трех дней с момента окончания аукциона, счет считается просроченным;
  • если привезенный автосалоном под заказ автомобиль не был выкуплен клиентом в течение 10 дней, автомобиль считается находящимся в свободном наличии;
  • если в расписании зимнего сезона отсутствуют сведения о рейсе, выполняемом в летний период, рейс считается отмененным на весь период действия нового расписания.

4. Вычисления (computations)представляют собой еще один тип бизнес-правил, реализуемых с использованием математических формул или алгоритмов. Многие вычисления выполняются по внешним для предприятия правилам, например по формулам удержания подоходного налога. В отличие от активаторов, реализация которых предполагает создание специфических функциональных требований к системе, правила вычислений в той форме, в которой они выражены, можно рассматривать в качестве требований к программному обеспечению. Ниже в текстовой форме дано несколько примеров бизнес-правил для вычислений; как вариант, их можно представить в символьной форме, например в виде математического выражения.

  • цена единицы товара снижается на 10% при заказе от 6 до 10 единиц, на 20% — при заказе от 11 до 20 единиц и на 30% — при заказе свыше 20 единиц;

5. Ограничения (constraints)— определяют, какие операции может выполнять система и ее пользователи. Вот некоторые слова и фразы, которые применяются при описании ограничивающего бизнес-правила:должен / не должен, может / не может, только.

Примеры ограничений:

  • постоянный посетитель библиотеки может отложить для себя до 10 книг;
  •  сотрудник может запросить вещество из списка химикатов первого уровня опасности, только если за последние 12 месяцев он прошел обучающий курс работы с опасными соединениями;
  • все программы должны соответствовать правительственным постановлениям, касающимся использования их людьми с ослабленным зрением;
  •  экипажи коммерческих авиарейсов должны каждые 24 часа отдыхать не менее 8 часов;
  •  возраст участника аукциона должен превышать 18 лет;
  • автосалон может обменять старый автомобиль клиента на новый с минимальными для клиента финансовыми потерями.

Как правило, в целевой организации существуют политики безопасности, определяющие порядок доступа к информационным системам. Обычно они констатируют, какие пароли следует применять, как часто их необходимо менять, можно ли применять старые пароли и т.д. Все эти ограничения, касающиеся доступа к приложению, можно считать бизнес-правилами. Ввод каждого такого правила в конкретный код упрощает обновление систем, необходимое для соответствия их новым правилам. Например, изменение необходимой частоты обновления паролей с 90 до 30 дней.

6. Активатором операции (action enabler) называется бизнес-правило, приводящее к выполнению каких-либо действий при определенных условиях. Человек может выполнять эти действия вручную. Иногда правило может управлять некоторыми функциями программы, благодаря которым приложение при выполнении определенных условий реализует нужную модель поведения. Выражение вида «Если <некоторое условие верно или наступило определенное событие>, то <что-то произойдет>»— это ключ, который описывает активатор операции.

Примеры активаторов:

  • если на складе имеются контейнеры с запрошенным химикатом, их следует предложить запросившему химикат лицу;
  • если срок хранения контейнера с химикатом истек, необходимо уведомить лицо, у которого в данный момент находится контейнер;
  • если клиент заказал книгу автора, написавшего несколько книг, клиенту следует предложить другие книги этого автора, прежде чем принять заказ;
  • если на запрошенную клиентом дату вылета рейс не выполняется, необходимо предоставить ему расписание вылетов по данному направлению;
  • если к моменту проведения расчетов с победителем аукциона его лицевой счет не содержит нужной суммы, право приобретения лота переходит к лицу, сделавшему вторую лучшую ставку;
  • если клиент подал корректную заявку на прохождение тест-драйва, необходимо связаться с ним по телефону для согласования деталей.

 

Абстрактный Пример:

Допустим, вы программируете софт для приюта животных и для детского приюта.

По бизнес-логике приюта для животных, предположим, котика, которого за неделю не забрали новые хозяева, нужно усыпить. Однако, до этого его надо кормить, поить и спать укладывать.

По бизнес-логике детского приюта – ребенка надо кормить, поить и спать укладывать. В него нельзя втыкать шприц со смертельной дозой морфина.

При этом все структуры данных, алгоритмы и т.д. – в двух программах практически одинаковы. Кроме вот этой маленькой детали. Если вы перепутаете бизнес-логику приюта для животных и детского приюта, и усыпите ребенка, а котенку подарите куклу.

Не важно, бизнес это, расчет конфигурации молекул, приют или управление кораблем. Бизнес-логика – это та самая часть, которая в итоге должна работать правильно и надежно, та, результатов которой ждет заказчик.

Если не отделять, допустим интерфейс от бизнес-логики, то вместо нажатия кнопки “отдать ребенка новым родителям” или “усыпить котенка”, на двух аккуратных – почти похожих – пультах управления (интерфейсах) вы будете бегать туда-сюда, пытаясь понять, кого утопить, кого усыпить, кого отдать новым родителям и почему ничего не работает.

Вы не отделили интерфейс (панель управления для запуска котят на луну) от бизнес-логики и все запуталось. Важно, чтобы бизнес-логика работала правильно. Под правильно подразумевается корректность результатов в приемлемое время. Все остальное ваших заказчиков не интересует.

Добавить комментарий