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