Алгоритмы и бизнес-правила
В платформе GreenData логика работы строится на основе настройки бизнес-правил и алгоритмов, которые позволяют определять правила обработки данных, расчеты, логику бизнес-процессов и свойства интерфейса. Для их описания в системе используется упрощенный бизнес-язык, разработанный на базе groovy. Он позволяет оперировать любыми атрибутами созданной пользователем объектной модели, использовать логические операторы и операторы цикла, определять переменные и любые другие конструкции для работы с данными, характерные для большинства языков программирования.
Для пользователей доступна возможность упрощенной настройки бизнес-правил и алгоритмов с помощью интуитивно понятного редактора алгоритмов с богатым набором разнообразных функций. Запуск алгоритмов и бизнес-правил может осуществляться при наступлении событий и по расписанию.
Система позволяет использовать данные для комплексных расчетов и анализа: возможно использование нейросетей и машинного обучения, а при необходимости – использование Python в ходе расчетов.
Бизнес-логика в Django и архитектура Django проектов — на настоящем примере
В платформе GreenData существует возможность использовать данные для комплексного анализа и расчетов.
- Настройка бизнес-логики и выполнение расчетов в редакторе алгоритмов с богатыми функциональными возможностями.
- Сложные схемы и цепочки расчетов.
- Пакетные расчеты – по множеству объектов и/или на множество периодов.
- Использование нейросетей и машинного обучения.
- Использование Python в ходе расчетов.
- Визуализация результатов расчетов.
- Вывод результатов расчетов в печатную форму.
Источник: greendata.store
Презентация на тему Архитектура ИС. Структурирование слоя бизнес-логики
Основные определения Предметная область — часть реального мира, рассматриваемая в пределах данного контекста. Под контекстом здесь может пониматься, например, область исследования или область, которая является объектом некоторой деятельности.
- Главная
- Бизнес и предпринимательство
- Архитектура ИС. Структурирование слоя бизнес-логики
Слайды и текст этой презентации
Слайд 1Архитектура ИС
Структурирование слоя бизнес-логики.

Слайд 2Основные определения
Предметная область — часть реального мира,
рассматриваемая в пределах данного контекста. Под контекстом
здесь может пониматься, например, область исследования или область, которая является объектом некоторой деятельности.

КАК ПИСАТЬ БИЗНЕС ЛОГИКУ В DJANGO PYTHON? КАК СОЗДАТЬ ПРАВИЛЬНЫЕ СЕРВИСЫ В DJANGO?
Слайд 3Основные определения
Бизнес-процесс (Business process) – это совокупность
взаимосвязанных мероприятий или задач, направленных на создание
определенного продукта или услуги для потребителей. Для наглядности бизнес-процессы визуализируют при помощи блок-схемы бизнес-процессов.
Учёт успеваемости, Согласование договора, Формирование бюджета, и т.п., Учёт нематериальных активов, Подготовка специалиста в вузе.

Слайд 4Основные определения
Бизнес-правило (БП) (Business rule) – правило,
принятое в компании (бизнесе). Правило, которое определяет
или ограничивает некоторый аспект бизнеса и при применении принимает значения Ложь или Истина. БП могут быть применены к людям, процессам, поведению компьютерных систем.
БП: Операция списания средств по кредитной карте не может быть проведена, если будет превышен допустимый овердрафт.
Дополнительные сведения здесь

Слайд 5Основные определения
Бизнес-логика (Business logic, Domain logic) –
Совокупность бизнес-правил, принципов, зависимостей поведения объектов предметной
области (области человеческой деятельности, которую система поддерживает).

Слайд 6Основные определения
Бизнес-транзакция (Business transaction) –
Определение 1.
Это взаимодействие между бизнесом (компанией) и его
клиентами, вендорами и другими партнёрами.
Определение 2. Событие в экономике компании, в результате которого инициируется процесс учёта и производится запись данных о событии в информационной системе компании.
Регистрация ? Выбор счетов ? Указание суммы перевода ? Ввод подтверждающего кода (пришёл по SMS)

Слайд 7Слои информационной системы
Источник картинки

Слайд 8Структурирование слоя БЛ по М. Фаулеру
Сценарий транзакции
Модуль
таблицы
Модель предметной области

Слайд 9Предметная область для примера

Слайд 10Сценарий транзакций
Способ организации бизнес-логики по процедурам, каждая
из которых обслуживает один запрос, инициируемый споем
представления

Слайд 11
Пример сценария транзакций
Вычисление зачётного дохода

Слайд 12Пример
class RecognitionService
private IDataGateway _dataGateway;
public SystemController(IDataGateway dataGateway)dataGateway;>
public void CalculateRecognitions(int contractID)
public void CalculateRecognitions(int contractID)
var contract = _dataGateway.findContract(contractID);
var newRecognition = Calculate(contract);
_dataGateway.InsertRecognition(contractID, newRecognition);
>
>

Слайд 13Варианты реализации сценария транзакции
Источник картинки здесь

Слайд 14Сценарий транзакции. «За и против»
Преимущества:
представляет собой удобную
процедурную модель, легко воспринимаемую всеми разработчиками;
удачно сочетается
с простыми схемами организации слоя источника данных на основе типовых решений
определяет четкие границы транзакции.
Недостатки:
При возрастании сложности системы существенно повышается дублирование кода в различных сценариях выполнения
Поддержка состояний на уровне слоя БЛ затруднена.
Низкая тестопригодность

Слайд 15Модуль таблицы
Объект, охватывающий логику обработки всех записей
хранимой или виртуальной таблицы базы данных

Слайд 16Модуль таблицы
Источник картинки здесь

Слайд 17Пример
class Contracts : DataTable
public void
Insert( int ContractId, string contractor, …)
public void Update( int ContractId, string newContractor, …) <…>
public void Delete( int ContractId) <…>
public bool Find( int ContractId) <…>
public object GetValue( string columnName)<…>
public void SetValue( string columnName, object value)<…>
void CalculateRecognitions( int ContractId)
>

Слайд 18Пример
class Contract.
public void CalculateRecognitions( int contractID)
DataRow contractRow = this[contractID]; Decimal amount = (Decimal)contractRow[«amount»]; RevenueRecognition rr = new RevenueRecognition( table.DataSet);
Product prod = new Product(table.DataSet);
int prodID = GetProductld(contractID);
if (prod.GetProductType(prodID) == ProductType.WP) rr.Insert(contractID, amount, (DateTime)GetWhenSigned( contractlD) ) ;
> else if (prod.GetProductType(prodID) == ProductType.SS)
Decimal!] allocation = allocate (amount, 3); rr.Insert(contractID, allocation[0],(DateTime)GetWhenSigned(contractID));
rr.Insert(contractID, allocation[1], (DateTime)
GetWhenSigned(contractID).AddDays(60)); rr.Insert(contractID, allocation [2], (DateTime)
GetWhenSigned(contractID) .AddDays(90) ) ; > else if (prod.GetProductType(prodID) == ProductType.DB)

Слайд 19Пример
Decimal!]
allocation = allocate(amount, 3); rr.Insert (contractID, allocation[0],
(DateTime)GetWhenSigned(contractID) ) ;
rr.Insert (contractID, allocation[1], (DateTime)
GetWhenSigned(contractID).AddDays(30)); rr.Insert (contractID, allocation[2],
(DateTime)
GetWhenSigned(contractID).AddDays(60));
>
else throw new Exception(«invalid product id»);
>
![Пример Decimal!] allocation = allocate(amount, 3);](https://thepresentation.ru/img/tmb/6/505169/8cdbfd17c8da8529e672489876e6ef46-800x.jpg)
Слайд 20Модуль таблицы. «За и против»
Преимущества:
Представляет понятное решение
– компромиссный вариант между сценарием транзакции и
моделью предметной области
Представляет удобную абстракцию реляционного (или другой модели) хранилища на уровне слоя
Позволяет использовать некоторые объектно-ориентированные решения для декомпозиции системы в соответствие с моделью базы данных
Поддерживается многими средами разработки для создания приложений, ориентированных на взаимодействие с базами данных.
Тестопригодность – средняя.
Недостатки:
Невозможно задействовать многие из техник объектного подхода (типовых шаблонов проектирования), таких как наследование, стратегия, состояние, прокси и другие при разработке
Сильная привязка к модели хранения данных
Оперирование наборами данных не позволяет проводить объектную декомпозицию до уровня отдельных сущностей, ограничиваясь назначением обязанностей на уровне таблицы в целом.

Слайд 21DataSet (.NET Framework)
Представляет т.н. отсоединённый набор данных
в табличном виде
Не зависит от используемой СУБД.
Для
управления данными (выборка, обновление, вставка, удаление) в наборе используются адаптеры таблиц

Слайд 22public partial class OrderWindow : Form
public OrderWindow()
private void OrderWindow_Load(object sender, EventArgs e)
orderItemTableAdapter.Fill(sampleData.OrderItem);
orderTableAdapter.Fill(sampleData.Order);
private void SaveBtn_Click(object sender, EventArgs e)
orderTableAdapter.Update(sampleData.Order);
orderItemTableAdapter.Update(sampleData.OrderItem);
>
>
Источник: thepresentation.ru
Информационные системы предприятия
Бизнес-логика ИКИСП отражает определенную иерархическую зависимость понятий: единая бизнес–система предприятия, бизнес–система предметной области, бизнес–процесс и элементарная функция.
Любой уровень бизнес — логики может быть представлен в различных схемах, которые и представляют бизнес–модели изучаемого процесса. Создание бизнес–модели осуществляется с помощью различных инструментов и методов моделирования.
К настоящему моменту разработано множество инструментов моделирования, в основе которых применяются различные языки описания процессов: SADT, DFD UML, Ericsson–Penker, Rational Unified Process, ARIS. В качестве компьютерной поддержки используется множество программных средств, которые носят общее название CASE–систем (Computer Aided System Engineering). К ним относятся: ARIS Toolset , BPwin, BRwin, AllFusion Modeling Suite, Rational Rose и др.
Для общей характеристики методов моделирования их можно разделить на методы неформализованного и формализованного моделирования. Формализо¬ванные модели условно делятся на модели подготовки информации для принятия решения и модели принятия решения. Методы моделирования подготовки информации для принятия решения иначе называют методами отражения общей взаимосвязи показателей Процесс принятия решения, как правило, связан с выбором критерия оптимальности — величи¬ны какого-либо показателя для достижения конкретной цели. По этой причине задачи принятия решения получили название оптимизационных моделей.
Источник: isystemspro.blogspot.com
