|
54 / 53 / 5
Регистрация: 14.08.2012
Сообщений: 252
|
|
Формализация предметной области. Написание правил для вычислений18.02.2016, 23:35. Показов 1136. Ответов 4
Метки нет (Все метки)
Есть предметная область - законодательство РФ, - бухгалтерская сфера. Есть база данных. Задача написать универсальный механизм, который будет вытягивать данные из базы SQL и производить вычисления на основании файлов с правилами расчётов (или проверок на корректность). Т.е. в этих правилах должны быть формализованы законы и особенности предметной области. Написание правил и их правка должны быть максимально прозрачными и доступными простым пользователям (например с помощью отдельной утилиты по их созданию). Добавление новых правил или изменение старых должно происходить без перекомпиляции самой программы (аналог базы эвристик у антивируса. Добавили что-то новое и изменилось всё поведение) Сложность самого механизма по разбору этих правил, анализу и расчётам значения не имеет. Имеет значение оптимальная скорость выполнения. Ах, да, еще все вычисления должны отображаться в понятной для пользователя форме и с описанием почему именно так было сделано с цитатами и ссылками на законы. Механизм должен уметь находить конфликты данных на основании своей базы правил, т.е. сам себя проверять.
Пока не знаю с чего начать и в какую сторону копать. Задумываюсь над написанием метаязыка и его транслятора, с помощью которых создавать правила, но вот в целом механизм представить не могу и что для этого нужно тоже. Правила должны описывать не только законы, но и формулы расчётов, а возможно и желания самих пользователей (например написание правила что Иван Иванычу в конце года нужно начислить премию в 1000000р.). Надеюсь сюда хотя бы случайно зайдут гуру программирования или архитекторы, которые смогут подсказать решение.
0
|
|
| 18.02.2016, 23:35 | |
|
Ответы с готовыми решениями:
4
Описание предметной области Формализация предметной области Книги для 1С-ника (по предметной области) |
|
|
|
| 19.02.2016, 02:53 | |
|
В этой задаче много разнородных подзадач. Например, нужно определиться, что есть объект предметной области (закон РФ с формулами). Кроме этого, стоит указать, что пользователь желает предоставлять программе и что от неё требовать. Кроме этого, чётко выделяются две подзадачи описания/задания правил и формирование выдачи на запрос пользователя. Изменение базы данных и проверка корректности осуществляются на первом этапе; язык запросов, стало быть, относится ко второму.
Кроме уточнения предметной области необходимо построить вычислительную модель. Выбор модели определяет скорость обработки и особенности работы с данными. Эта задача является нетривиальной и ныне очень востребованой. Откуда она у Вас возникла?
0
|
|
|
|
|
| 19.02.2016, 06:26 | |
|
у нас тут есть компания - лидер рынка, понимаешь, 500 человек разных специальностей, )))
вот как раз ее решает вы хотите в одиночку? малой группой? по ночам? Добавлено через 1 минуту начните с начисления пенсии, вдруг получится хотя-бы в законе разобраться
0
|
|
| 19.02.2016, 06:41 | ||
|
В начале 90-х работал с ребятами которые делали бухгалтерский софт на Clipper. У них это была любимая манечка - определять правила "извне" и скармливать их интерпретатору. Иначе просто не получалось - правила менялись очень часто. В общем, сам подход далеко не нов.
0
|
||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,879
|
|
| 21.02.2016, 17:10 | |
|
У Вас есть набор Задач, которые нужно вычислить.
Задачи можно поделить на Типы. Выполнение задачи каждого типа сводится к вызову определённой функции. Итого, для разных типов - разные функции. Для разных задач одного типа - одна функция с разными параметрами. Правила расчётов (Задачи) создавать легко. Пользователь на форме задаёт значения параметров вызова. Параметры сериализуются и сохраняются в БД. Если хорошо продумать набор Типов, то новые Типы Задач создавать придётся редко. Проще всего для этого писать новый код (патч к программному продукту). Хотя, кончено, можно хранить код (на обычном ЯП или на специально придуманном DSL) в виде строки и парсить/компилировать (интерпретировать) его на лету. Но тут возникает много проблем с безопасностью. Какой-нибудь чудик случайно или намеренно напишет правило типа "обнулить все счета" или "в конце месяца переводить с каждого счёта по копейке на мой счёт".
0
|
|
| 21.02.2016, 17:10 | |
|
Помогаю со студенческими работами здесь
5
Проектирование и реализация БД для указанной предметной области Выбор предметной области для реализации 3D моделирования Разработка приложения для предметной области 'телефонная станция' Пример использования для хранения описаний объектов предметной области списков Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|