Современные методологии программирования
Методология и парадигма программирования
Методология программирования – совокупность методов, применяемых в жизненном цикле программного продукта и объединенных общим философским подходом.
С каждой методологией программирования можно связать некоторые характерные для нее атрибуты:
1. Философский подход (или основной принцип).
2. Связное множество методов реализации.
3. Концепции (понятия, замыслы), поддерживающие методы и позволяющие более точно их определять.
Для каждой методологии существует явный создатель - основоположник методологии. Каждая методология создается на основе накопленных в предметной области эмпирических фактов и практических результатов. Для методологий программирования такими фактами и результатами являлись уже существующие языки программирования.
Когда методология применяется на стадии программирования программного продукта, очень часто ее называют парадигмой программирования – способом мышления и программирования, не связанным с конкретным языком программирования.
Термин «парадигма» был впервые предложен Томасом Куном. Он определял парадигму как свод норм научного мышления.
В общем случае парадигма – это правило (modus operandi) развития научного знания. Оно в течение определенного времени дает научному сообществу модель постановки проблем и их решений.
Классификацию современных методологий можно определить на основе способов описания алгоритмов:
1. Методология императивного программирования.
2. Методология объектно-ориентированного программирования.
3. Методология функционального программирования.
4. Методология логического программирования.
5. Методология программирования в ограничениях.
6. Методология нейросетевого программирования.
Следует особо отметить, что любая методология находятсяв диапазоне между двумя фундаментальными понятиями информатики – алгоритма и модели.
В приведенной классификации они указаны в порядке уменьшения связи методологии с понятием алгоритм и увеличением связи с понятием модель.
На данный момент также выделяют две разновидности организации аппаратной поддержки методологий: централизованную и параллельную.
Получение качественной оценки любой методологии основано на использовании двух параметров:
1. Эффективность ПО на современных компьютерах.
2. Общие затраты на разработку ПО.
Соответственно выделяют две ветви в развитии языков, поддерживающих методологии:
1. Языки (как правило, компилируемые), ориентируемые на скорость исполнения кода программы.
2. Языки (и компилируемые, и интерпретируемые), ориентированные на высокий уровень и удобство программирования.