Требования к системам моделирования и Актуариум
Система моделирования Актуариум предназначена для широкого круга пользователей. Ниже приведена таблица требований к системам моделирования, и описание, как они реализуются в Актуариум.
|
Требование |
Реализация в Актуариум |
|
применение простых проблемно-ориентированных языков |
Язык является средством описания, в данном случае – средством описания математической модели. Как и в аналогичных системах, используется декларативный (дескриптивный) язык моделирования. Модель строится из связанных друг с другом компонент; сами компоненты могут описывать контракты страхования, перестрахование, выплаты по ним, случайные величины для других компонент, отчеты и т.п. Сам процесс моделирования состоит в описании свойств компонент, связывании их друг с другом и указания внешних входных данных. Технически дескриптивный язык на данный момент представляет собой таблицы базы данных, которые заполняются при описании модели через пользовательский интерфейс. Дополнительно существует возможность графического отображения диаграмм компонент. |
|
удобство использования (наличие интуитивно-понятного графического интерфейса пользователя) |
Актуариум представляет собой WEB-приложение с интерфейсом, близким к приложениям Windows. Есть внутренняя помощь, существуют подсказки при наведении курсора мыши на графический элемент, визуализация моделей и т.п. |
|
наличие средств диагностики ошибок пользователя |
Если пользователь вводит некорректные данные, то система подсказывает, какие из ограничений данные нарушают. Часть защиты реализована с помощью ограничения ввода с помощью предопределенных списков. |
|
надежность и правильность получения результатов моделирования |
В Актуариум есть системы тестов (которые вводятся прямо в интерфейсе приложения) по отдельным компонентам и по сценариям. Для моделирования генерируется код на языке Python, который может быть скачан с сервера и запущен / отлажен локально, - система моделирования полностью прозрачна. |
|
экономичность (эффективность по быстродействию и затратам памяти) |
Хотя моделирование происходит на языке Python, значительная часть вычислений производится с помощью высокопроизводительного пакета numpy. Таким образом используются компактные хранение массивов данных и вычисления с массивами. Для управления эффективностью существует параметр «размер пакета обработки», который позволяет несколько увеличить производительность за счет укрупнения блоком обработки с использованием большего количества памяти. Также можно управлять количеством используемых потоков при моделировании. |
|
универсальность по отношению к тем или иным ограничениям решаемых задач |
На данный момент моделирование ограничено компонентной моделью с прямым счетом (т.е. не должно быть систем уравнений и пр.). Сами компоненты внутри своей логики могут содержать не только прямой счет, но и задачи фиттинга и пр, например, подбор параметров распределений. Если задача не покрывается существующим на данный момент системой моделирования, то следует обратиться к поставщику – он сможет внести коррекцию в генерацию скрипта моделирования, создать редакторы новых типов данных и т.п. |
|
открытость (адаптируемость) относительно внесения изменений в процессе эксплуатации программ |
Непосредственно в приложении можно создавать собственные типы компонент и использовать их для построения моделей. Это можно сделать самостоятельно с помощью руководства разработчика, либо обратиться к поставщику решения. |
|
Безопасность / разделение прав доступа |
Приложение предполагает три вида деятельности в приложении: администрирование, разработка и моделирование. Для разделения доступа есть несколько ролей, с помощью которых ограничиваются права пользователей в системе. Также система защищается от разработчиков, которые имеют возможность писать код на Python непосредственно через WEB-интерфейс. Система имеет систему ограничений, который разрешает использование определенных пакетов и функций – по мере необходимости этот список может быть расширен. Основное ограничение связано с возможность считывания и записи данных на диск. Вместо опасных функций создаются их аналоги с разрешением записи только в рабочем каталоге |
|
Сопровождаемость |
|
|
Анализируемость |
WEB-приложение и фоновые процессы имеют журналы выполнения; журнал фоновых процессов доступен непосредственно из приложения. В случае сбоя администратор получает стек ошибки; в случае сбоя есть возможность отдельного выполнения фоновой задача с возможностью стандартной отладки Python
При моделировании ведется журнал и ведется профилирование. Компоненты могут создавать файлы в рабочем каталоге (для каждого запуска моделирования он свой), а также создавать/использовать таблицы SQLite для записи дополнительной информации. Есть возможность скачивания как скрипта моделирования, так и всей рабочей папки для анализа/отладки |
|
Изменяемость |
Используемый стек – PHP, Python, PostgreSql, js. Возможно добавление новых типов компонент, включая разработчиками заказчика, и фоновых процессов без прерывания работы приложения.
|
|
Стабильность |
Использование PHP не предполагает каких-либо серверных процессов для работы приложения через WEB кроме собственно WEB-сервера (Apache или nginx). Количество пользователей систем моделирования, как правило, относительно небольшое – поэтому сбой самого приложения маловероятен.
Самые тяжелые процессы связаны с процессом моделирования. Выполнение моделирования происходит с помощью фоновых процессов, - пользователь только инициирует запуск. В системе существует ограничение на количество одновременно выполняющихся фоновых процессов определенного типа, в том числе моделирования. Если множество пользователей запустят одновременно множество выполнений моделирования, то некоторое их количество будет запущено, а остальные будут ожидать своей очереди. Таким образом риск исчерпания памяти процессами и деградация производительности сервера моделирования значительно снижается. |
|
Тестируемость |
Есть возможность ведения модульных (по компонентам) тестов, и сценарных тестов, в которых используется множество связанных компонент. |
|
мобильность |
Так как Актуариум является WEB-приложением, то для работы с ним требуется только браузер. Так как часто данные для моделей создаются в электронных таблицах, то может потребоваться еще Excel или аналогичное приложение с возможностью сохранения в формате xslx |