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