Современные методологии программирования

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

Методология программирования – совокупность методов, применяемых в жизненном цикле программного продукта и объединенных общим философским подходом.

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

1. Философский подход (или основной принцип).

2. Связное множество методов реализации.

3. Концепции (понятия, замыслы), поддерживающие методы и позволяющие более точно их определять.

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

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

Термин «парадигма» был впервые предложен Томасом Куном. Он определял парадигму как свод норм научного мышления.

В общем случае парадигма – это правило (modus operandi) развития научного знания. Оно в течение определенного времени дает научному сообществу модель постановки проблем и их решений.

Классификацию современных методологий можно определить на основе способов описания алгоритмов:

1. Методология императивного программирования.

2. Методология объектно-ориентированного программирования.

3. Методология функционального программирования.

4. Методология логического программирования.

5. Методология программирования в ограничениях.

6. Методология нейросетевого программирования.

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

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

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

Получение качественной оценки любой методологии основано на использовании двух параметров:

1. Эффективность ПО на современных компьютерах.

2. Общие затраты на разработку ПО.

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

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

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