|
54 / 53 / 5
Регистрация: 14.08.2012
Сообщений: 252
|
|
Формализация предметной области. Написание правил для вычислений18.02.2016, 23:35. Показов 1114. Ответов 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
|
||
|
Модератор
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
|
|
| 21.02.2016, 17:10 | |
|
У Вас есть набор Задач, которые нужно вычислить.
Задачи можно поделить на Типы. Выполнение задачи каждого типа сводится к вызову определённой функции. Итого, для разных типов - разные функции. Для разных задач одного типа - одна функция с разными параметрами. Правила расчётов (Задачи) создавать легко. Пользователь на форме задаёт значения параметров вызова. Параметры сериализуются и сохраняются в БД. Если хорошо продумать набор Типов, то новые Типы Задач создавать придётся редко. Проще всего для этого писать новый код (патч к программному продукту). Хотя, кончено, можно хранить код (на обычном ЯП или на специально придуманном DSL) в виде строки и парсить/компилировать (интерпретировать) его на лету. Но тут возникает много проблем с безопасностью. Какой-нибудь чудик случайно или намеренно напишет правило типа "обнулить все счета" или "в конце месяца переводить с каждого счёта по копейке на мой счёт".
0
|
|
| 21.02.2016, 17:10 | |
|
Помогаю со студенческими работами здесь
5
Проектирование и реализация БД для указанной предметной области Выбор предметной области для реализации 3D моделирования Разработка приложения для предметной области 'телефонная станция' Пример использования для хранения описаний объектов предметной области списков Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|