Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование-лекция-1.doc
Скачиваний:
60
Добавлен:
07.06.2015
Размер:
96.26 Кб
Скачать

Лекция № 1 Визуальное программирование (конспекты лекций)

Объектно-ориентированная методология разработки больших программных комплексов

  1. Парадигмы программирования

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

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

Парадигма программирования представляет (и определяет) то, как программист видит выполнение программы. Например, в объектно-ориентированном программировании программист рассматривает программу как набор взаимодействующих объектов, тогда как в функциональном программировании программа представляется в виде цепочки вычисления функций.

Рассмотрим одну из классификаций языков программирования.

Классическое операциональное и/или процедурное программирование требует от программиста детального описания того, как решать задачу, т.е. формулировки алгоритма и его специальной записи. При этом ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп – оператор и данные. При процедурном подходе операторы объединяются в группы – процедуры. Структурное программирование в целом не выходит за рамки этого направления, оно лишь дополнительно фиксирует некоторые полезные приемы технологии программирования. Дейкстра дал следующее определение: “Структурное программирование – это дисциплина, которую программист навязывает сам себе”.

Принципиально иное направление в программировании связано с методологиями (парадигмами) непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование.

При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом алгоритм получения результата программист не строит (по крайней мере в идеале). В этих языках отсутствует понятие «оператор». В декларативных языках можно выделить логические и функциональные языки.

Структурное и объектно-ориентированное программирование строятся на декомпозиции.

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

Эдсгер Дейкстра1 отмечал, "Способ управления сложными системами был известен еще в древности - divide et impera (разделяй и властвуй)"2. При проектировании сложной программной системы необходимо разделять ее на все меньшие и меньшие подсистемы, каждую из которых можно совершенствовать независимо. В этом случае не будет превышения пропускной способности человеческого мозга: для понимания любого уровня системы необходимо одновременно держать в уме информацию лишь о немногих ее частях, а не обо всех. Сложностью программирования системы вынуждает делить её на части, выполнять декомпозицию.

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