Наш заказчик, компания TreeAge, уже более двадцати лет успешно разрабатывает и развивает программные решения для визуального моделирования задач по принятию решений и для анализа этих моделей с целью выбора наиболее выгодных вариантов и стратегий решений. Более 15 тысяч пользователей используют продукты заказчика в страховой медицине, фармакоэкономике, геологоразведке, а также при минимизации рисков в судебных процессах и анализе инвестиций.
Одной из задач заказчика было увеличение охвата клиентов через обеспечение функционирования своей системы на различных операционных системах.
Мы портировали существующее приложение, изначально написанное на C++ для ОС Windows, на платформу Eclipse RCP. В результате система стала доступна пользователям Mac OS X и Linux – без необходимости создания и поддержки отдельных веток кода для каждой операционной системы.
При переходе на новую платформу появилась возможность использовать 64-битный доступ к памяти, что позволило рассчитывать с приемлемой скоростью массивные модели с большим количеством узлов без вытеснения данных из оперативной памяти. На больших моделях было зафиксировано 50-кратное увеличение производительности по сравнению с оригинальным приложением.
Переход на Eclipse RCP также позволил нам внедрить обновление установленного приложения «на ходу», непосредственно из меню – без необходимости вручную заходить на сайт заказчика, скачивать и устанавливать обновления.
Задание переменных для вычислений и фильтрация результатов анализа с помощью выражений на встроенном псевдоязыке.
Возможность использования в моделях формул и выражений на Python.
23 типа встроенных распределений, возможность задавать распределения в виде таблиц «аргумент–значение».
Десятки графических и табличных отчётов по результатам анализа (на основе BIRT).
Распределённые вычисления: каждая из машин с установленным приложением может быть использована для обсчёта части большой задачи по анализу модели, запущенной на машине-координаторе.
Тесная интеграция с MS Excel: экспорт графических и табличных отчётов; возможность задавать наборы исходных данных в файлах Excel; возможность обсчитывать модели в Excel.
Открытый интерфейс, позволяющий вызывать различные функции системы из собственных программ, написанных на Java или на VBA.