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

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

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

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

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

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

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

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

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

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

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

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

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

Цитата Сообщение от AceOfSpades Посмотреть сообщение
Написание правил и их правка должны быть максимально прозрачными и доступными простым пользователям
Вот на это не надейтесь. Не будет бухгалтер учить какой-то язык интерпретатора. Неизбежно появляются "внедренцы". Это часто девочка которую разработчики обучают и которая на месте редактирует те самые "правила". А раз так то не лучше ли вместо изобретения своего языка задействовать Пытон (мощный и очень гибкий)
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru