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