Методы и программные средства макромодульной разработки программ

Краткое описание

Один из нерешённых вопросов в модульном подходе – отсутствие стандартов на интерфейсы модулей. Разработчик библиотеки сам определяет удобные ему структуры хранения данных и интерфейсы функций, которые их обрабатывают. В результате, каждая библиотека получается уникальной и возникает сложность, связанная с заменой используемых модулей (библиотек).

Другая проблема при использовании библиотек – выбор наиболее оптимальной библиотеки под текущие задачи проекта. Во многих предметных областях существует множество библиотек с реализацией различных алгоритмов. При этом каждая библиотека имеет свою сложность внедрения, эффективность реализации, удобство использования структур данных и поддержку различных программно-аппаратных платформ. Наличие большого количества библиотек приводит к необходимости выбора из них одной или нескольких наиболее подходящих. Поддержка нескольких библиотек усложняет структуру разрабатываемого проекта, а значит, трудозатраты на его разработку увеличиваются. Задача выбора библиотеки часто является многокритериальной, в связи с чем приходится идти на компромисс, выбирая некоторое «среднее» решение, теряя в эффективности реализации, удобстве использования или количестве поддерживаемых программно-аппаратных платформ. Кроме того, в процессе разработки могут возникнуть задачи, которые нельзя решить, используя текущую библиотеку. Тогда разработчики могут столкнуться с задачей перехода на другую библиотеку. Можно выделить следующие причины такого перехода:

  • смена программно-аппаратной платформы;
  • повышение эффективности;
  • увеличение функциональных возможностей;
  • отказ от использования текущей версии библиотеки в связи с прекращением её поддержки.

При переходе к использованию новой библиотеки разработчику придётся столкнуться с необходимостью выполнить модификацию разработанных структур данных и функций под те, которые используются в библиотеке. Такой переход может быть очень трудоёмким.

Итак, основной недостаток классической модульной разработки программного обеспечения – это сильная зависимость от конкретной реализации библиотеки. Этот недостаток порождает три актуальные проблемы:

  • выбор наиболее оптимальной библиотеки под текущие задачи проекта;
  • поддержка нескольких библиотек;
  • миграция на новую библиотеку.

Рассмотренные выше проблемы тесно связаны и часто возникают совместно. Так, решение о необходимости миграции на новую библиотеку осуществляется после анализа доступных вариантов и выбора одной или нескольких библиотек, наиболее подходящих под задачи проекта. Поэтому актуальность рассмотренных проблем можно также рассматривать взаимосвязано.

В работе предлагается макромодульный подход к разработке программ, позволяющий снизить остроту перечисленных проблем.

Коллектив

Руководитель проекта

  • Гергель Виктор Павлович, д.т.н., проф., декан факультета ВМК
  • Алексей Сиднев, ассистент МО ЭВМ, ВМК

 Ранее в проекте участвовали

  • Роман Котельников, студент, ВМК ННГУ
  • Вячеслав Юданов, студент, ВМК ННГУ
  • Сергей Коклюев, студент, ВМК ННГУ
  • Николай Рябикин, студент, ВМК ННГУ
  • Евгений Капралов, студент, ВМК ННГУ

Основные результаты

Разработаны основные положения макромодульного подхода и предложена архитектура среды времени исполнения.

Текущие исследования

Работы ведутся в следующих направлениях:

  1. Разработка методов предсказания времени работы реализаций алгоритмов.
  2. Разработка среды выполнения макромодульных программ.

Избранные публикации

  1. В.П. Гергель, А.А. Сиднев. Методы и программные средства макромодульной разработки программ. Вестник нижегородского университета им. Н.И. Лобачевского. 2012. – №5(2). – С. 294-300.
  2. В.П. Гергель, А.А. Сиднев. О применении макромодульной технологии разработки программ. Высокопроизводительные параллельные вычисления на кластерных системах. Материалы X международной конференции. Том 1. – Пермь: Изд-во Пермского государственного технического университета, 2010. С. 172-177.
  3. V.P. Gergel, A.A. Sidnev. Macromodule technology. Proceedings of the 4th Spring/Summer Young Researchers’ Colloquium on Software Engineering (SYRCoSE 2010), June 1-2, 2010 – Nizhny Novgorod, Russia. P. 26-28.