Ситуация следующая:функциональность проекта в независимых модулей, архитектурное решение
Мы (студенты) должны написать программный проект кросс-платформенный для нашего университета, предназначенный для обработки статистических данных, вероятно, астрономические. Ожидается, что студенты (с разными навыками) смогут продолжать поддерживать/улучшать проект из года в год.
Основная идея состоит в том, чтобы разделить программу на основную часть и количество различных модулей, которые могут быть записаны и подключены независимо, возможно, как разделяемые библиотеки. Каждый из этих модулей содержит методы для анализа и обработки конкретных данных и предоставления результатов (числа, строки, изображения и т. Д.).
Итак, у нас есть небольшая группа относительно опытных студентов, которые могут выполнять основную работу. Решение состояло в том, чтобы выбрать C++ в качестве основного языка программирования и Qt для кросс-платформенного графического интерфейса.
Основная проблема заключается в тех, кто будет разрабатывать модули в будущем. Образование здесь в значительной степени основано на Паскале/Дельфи (это Украина, все говорят :)), курс C++ плох, и подавляющее большинство студентов слишком ленивы, чтобы сами что-то выучить, поэтому давайте предположим, что Паскаль - это единственное, что они знать.
вот главный вопрос:
Что такое адекватный способ создания модульной системы со следующими требованиями:
- Проект должен быть кросс-платформенный
- Основные функциональные возможности для обработка данных должна быть реализована как набор (относительно) независимых модулей
- Модули должны быть написаны на разных языках (требуется Pascal)
- Модули должны иметь возможность запрашивать дополнительные данные, создавая окно или каким-то образом запускать механизм генерации окна в основной форме и получать новые данные или каким-то другим способом?
- COM технологии не могут быть использованы
- Среднее умение студентов, которые будут писать новые модули в будущем, по-видимому низкой
Любые идеи будут appeciated.