Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
54 / 53 / 5
Регистрация: 14.08.2012
Сообщений: 252

Формализация предметной области. Написание правил для вычислений

18.02.2016, 23:35. Показов 1136. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть предметная область - законодательство РФ, - бухгалтерская сфера. Есть база данных. Задача написать универсальный механизм, который будет вытягивать данные из базы SQL и производить вычисления на основании файлов с правилами расчётов (или проверок на корректность). Т.е. в этих правилах должны быть формализованы законы и особенности предметной области. Написание правил и их правка должны быть максимально прозрачными и доступными простым пользователям (например с помощью отдельной утилиты по их созданию). Добавление новых правил или изменение старых должно происходить без перекомпиляции самой программы (аналог базы эвристик у антивируса. Добавили что-то новое и изменилось всё поведение) Сложность самого механизма по разбору этих правил, анализу и расчётам значения не имеет. Имеет значение оптимальная скорость выполнения. Ах, да, еще все вычисления должны отображаться в понятной для пользователя форме и с описанием почему именно так было сделано с цитатами и ссылками на законы. Механизм должен уметь находить конфликты данных на основании своей базы правил, т.е. сам себя проверять.

Пока не знаю с чего начать и в какую сторону копать. Задумываюсь над написанием метаязыка и его транслятора, с помощью которых создавать правила, но вот в целом механизм представить не могу и что для этого нужно тоже. Правила должны описывать не только законы, но и формулы расчётов, а возможно и желания самих пользователей (например написание правила что Иван Иванычу в конце года нужно начислить премию в 1000000р.).

Надеюсь сюда хотя бы случайно зайдут гуру программирования или архитекторы, которые смогут подсказать решение.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.02.2016, 23:35
Ответы с готовыми решениями:

Описание предметной области
Доброго времени суток)срочно требуется ваша помощь,суть дела такова: Необходимо дать описание предметной области программы "учет...

Формализация предметной области
Даны ограничения на данные. 1. Один и тот же слесарь может обслуживать оборудование только определенного типа. 2. В одном цехе может...

Книги для 1С-ника (по предметной области)
Решил заняться повышением квалификации. Платформу более менее понимаю, а вот знания в предметной области "хромают". Посоветуйте,...

4
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
19.02.2016, 02:53
В этой задаче много разнородных подзадач. Например, нужно определиться, что есть объект предметной области (закон РФ с формулами). Кроме этого, стоит указать, что пользователь желает предоставлять программе и что от неё требовать. Кроме этого, чётко выделяются две подзадачи описания/задания правил и формирование выдачи на запрос пользователя. Изменение базы данных и проверка корректности осуществляются на первом этапе; язык запросов, стало быть, относится ко второму.

Кроме уточнения предметной области необходимо построить вычислительную модель. Выбор модели определяет скорость обработки и особенности работы с данными.

Эта задача является нетривиальной и ныне очень востребованой. Откуда она у Вас возникла?
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,664
Записей в блоге: 21
19.02.2016, 06:26
у нас тут есть компания - лидер рынка, понимаешь, 500 человек разных специальностей, )))
вот как раз ее решает
вы хотите в одиночку? малой группой? по ночам?

Добавлено через 1 минуту
начните с начисления пенсии, вдруг получится хотя-бы в законе разобраться
0
1968 / 824 / 115
Регистрация: 01.10.2012
Сообщений: 4,870
Записей в блоге: 2
19.02.2016, 06:41
В начале 90-х работал с ребятами которые делали бухгалтерский софт на Clipper. У них это была любимая манечка - определять правила "извне" и скармливать их интерпретатору. Иначе просто не получалось - правила менялись очень часто. В общем, сам подход далеко не нов.

Цитата Сообщение от AceOfSpades Посмотреть сообщение
Написание правил и их правка должны быть максимально прозрачными и доступными простым пользователям
Вот на это не надейтесь. Не будет бухгалтер учить какой-то язык интерпретатора. Неизбежно появляются "внедренцы". Это часто девочка которую разработчики обучают и которая на месте редактирует те самые "правила". А раз так то не лучше ли вместо изобретения своего языка задействовать Пытон (мощный и очень гибкий)
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,879
21.02.2016, 17:10
У Вас есть набор Задач, которые нужно вычислить.
Задачи можно поделить на Типы. Выполнение задачи каждого типа сводится к вызову определённой функции.
Итого, для разных типов - разные функции. Для разных задач одного типа - одна функция с разными параметрами.

Правила расчётов (Задачи) создавать легко. Пользователь на форме задаёт значения параметров вызова. Параметры сериализуются и сохраняются в БД.

Если хорошо продумать набор Типов, то новые Типы Задач создавать придётся редко. Проще всего для этого писать новый код (патч к программному продукту). Хотя, кончено, можно хранить код (на обычном ЯП или на специально придуманном DSL) в виде строки и парсить/компилировать (интерпретировать) его на лету. Но тут возникает много проблем с безопасностью. Какой-нибудь чудик случайно или намеренно напишет правило типа "обнулить все счета" или "в конце месяца переводить с каждого счёта по копейке на мой счёт".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2016, 17:10
Помогаю со студенческими работами здесь

Приложение, предназначенное для автоматизации предметной области
Вот задания. Разработать приложение, предназначенное для автоматизации предметной области в соответствии с вариантом задания. Для...

Проектирование и реализация БД для указанной предметной области
Доброго времени суток! Необходимо спроектировать и реализовать в PostgreSQL базу данных. Предметные области следующие: - подсистема...

Выбор предметной области для реализации 3D моделирования
Вопрос будет не очень корректный, но нужны какие-то идеи. Нужно выбрать/придумать тему для создания 3D-модели в среде AnyLogic, предметная...

Разработка приложения для предметной области 'телефонная станция'
Разработка приложения для предметной области ''телефонная станция'' с применением языка программирования delphi ,позволяющее собирать и...

Пример использования для хранения описаний объектов предметной области списков
Будьте так любезны, покажите пример использования для хранения описаний объектов предметной области списков. Например, есть факты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера 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 и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru