Методологии языков программирования

Методологии языков программирования

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

Аннотация статьи
программирование
методология программирования
парадигма программирования
языки программирования
Ключевые слова

Понятие метод (от греческого слова «методос» – путь к чему-либо) означает совокупность принципов и способов организации и построения теоретической и практической деятельности. Существует целая область знания, которая специально занимается изучением методов и которую принято именовать методологией. Методология дословно означает «учение о методах» [1, с. 11].

Методология программирования – это совокупность идей, понятий, принципов, способов и средств, определяющая стиль написания, отладки и сопровождения программ [2].

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

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

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

С любой методологией можно связать характерные для нее атрибуты:

– множество методов, через которые реализуется данная методология;

– понятия, поддерживающие методы и позволяющие определить их более точно;

– философский подход (основной принцип), определяющий основной источник эффективности методологии [3].

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

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

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

Парадигма программирования – это совокупность идей и понятий, определяющая стиль написания программ. Парадигма, в первую очередь, определяется базовой программной единицей и самим принципом конструирования программы [4].

Парадигмы программирования определяются наборами инструментов: используемыми библиотеками, системами программирования, языком программирования.

В качестве единиц парадигм выступают:

– определения (декларативное программирование);

– предикаты (логическое программирование);

– функции (функциональное программирование);

– действие (императивное программирование);

– диаграмма переходов (автоматное программирование) и другие [2].

Методология декларативного программирования – это подход программирования, при котором описывается, что представляет собой задача и ожидаемый результат (языки программирования SQL, QML, Modelica) [5].

Методология логического программирования – это подход программирования, при котором программа содержит описание проблемы в терминах логических формул и фактов, а решение задачи система выполняет с использованием механизмов логического вывода (языки программирования Planner, Prolog, Mercury) [4].

Методология функционального программирования – подход составления программ, при котором единственным правилом композиции является оператор суперпозиции функции, действием – вызов функции, а способом разделения программы на части – введение имени для функции и задание для этого имени выражения, вычисляющего значения функции (языки программирования LISP, Erlang, Haskell) [4].

Методология императивного программирования – это подход программирования, характеризующийся принципом последовательного изменения состояния вычислителя пошаговым образом; при этом управление изменениями полностью определено и полностью контролируемо (языки программирования C++, Python, Java) [4].

Методология автоматного программирования – это подход программирования, при использовании которого программа или её фрагмент осмысливается как модель какого-либо формального автомата; подход состоит в представлении сущностей со сложным поведением в виде автоматизированных объектов управления, каждый из которых представляет собой объект управления и автомат (языки программирования РЕФАЛ, Scheme) [6].

Различные методологии программирования дают разный выигрыш для решения задач различных классов. Этот выигрыш можно оценивать по двум параметрам:

– эффективность программного обеспечения на современных компьютерах (т.е. способность программного обеспечения предоставлять требуемый уровень производительности в соответствие с выделенными ресурсами, временем и другими обозначенными условиями [7]);

– общие затраты на разработку программного обеспечения (могут включать в себя затраты на оформление программного продукта и подготовку его к продаже, налоги, затраты на маркетинговые исследования и другие).

Выделяют две ветви в развитии языков, поддерживающих методологии:

– языки (как правило, компилируемые), ориентированные на скорость исполнения программного кода;

– языки (компилируемые и интерпретируемые), ориентированные на высокий уровень и удобство написания программ [4].

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

Методологии программирования различаются по общим затратам на решения задач с разными характеристиками (научные расчёты, финансовые задачи, системы реального времени и т. п.). Масштаб задач и эффективность создаваемого программного обеспечения также являются важными факторами при выборе методологии программирования.

Текст статьи
  1. Новиков А.М., Новиков Д.А. «Методология» / Новиков А.М., Новиков Д.А. // Москва: Синтег, 2007 – 668 c.
  2. Методология программирования [Электронный ресурс] – Электрон. дан. – Режим доступа: http://www.tadviser.ru/index.php/Статья:Методология _программирования
  3. Методология программирования [Электронный ресурс] – Электрон. дан. – Режим доступа: https://ru.wikipedia.org/wiki/Методология _программирования
  4. Системный подход в технологии программирования. Методологии программирования [Электронный ресурс] – Электрон. дан. – Режим доступа: http://bourabai.ru/alg/system2.htm
  5. Декларативное программирование [Электронный ресурс] – Электрон. дан. – Режим доступа: https://ru.wikipedia.org/wiki/Декларативное _программирование
  6. Автоматное программирование [Электронный ресурс] – Электрон. дан. – Режим доступа: https://ru.wikipedia.org/wiki/Автоматное _программирование
  7. Качество программного обеспечения [Электронный ресурс] – Электрон. дан. – Режим доступа: http://www.protesting.ru/qa/quality.html
Список литературы
Ведется прием статей
Прием материалов
c 17 мая по 31 мая
Осталось 2 дня до окончания
Препринт статьи — после оплаты
Справка о публикации
БЕСПЛАТНО
Размещение электронной версии
04 июня
Загрузка в elibrary
04 июня
Рассылка печатных экземпляров
08 июня