ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.07.2024
Просмотров: 1586
Скачиваний: 0
Рис. 18.2. Функциональная структура приложения: Ц – цель; пЦ – подцель; П – приложение; Ф – функция
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ
Свойства модуля
Модульное программupовоние основано на понятии модуля – логически взаимосвязанной совокупности функциональных элементов, оформленных в виде отдельных программных модулей.
Модуль характеризуют:
один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет содержательную обработку и возвращает один набор результатных данных, т.е. реализуется стандартный принцип IPO (Input – Process – Output) –
вход-процесс-выход;
функциональная завершенность – модуль выполняет перечень регламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки; логическая независимость – результат работы программного модуля зависит только от
исходных данных, но не зависит от работы других модулей; слабые информационные связи с другими программными модулями – обмен информацией между модулями должен быть по возможности минимизирован; обозримый по размеру и сложности программный элемент.
Таким образом, модули содержат определение доступных для обработки данных, операции обработки данных, схемы взаимосвязи с другими модулями.
Каждый модуль состоит из спецификации и тела. Спецификации определяют правила использования модуля, а тело – способ реализации процесса обработки.
Модульная структура программных продуктов
Принципы модульного программирования программных продуктов во многом сходны с принципами нисходящего проектирования. Сначала определяются состав и подчиненность функций, а затем – набор программных модулей, реализующих эти функции.
Однотипные функции реализуются одними и теми же модулями. Функция верхнего уровня обеспечивается главным модулем; он управляет выполнением нижестоящих функций, которым соответствуют подчиненные модули.
При определении набора модулей, реализующих функции конкретного алгоритма, необходимо учитывать следующее:
каждый модуль вызывается на выполнение вышестоящим модулем и, закончив работу, возвращает управление вызвавшему его модулю; принятие основных решений в алгоритме выносится на максимально "высокий" по иерархии уровень;
550
Рис. 18.4. Блок-схема алгоритма поиска в базе данных
В любой типовой структуре блок, кроме условного, имеет только один вход и выход, безусловный переход на блок с нарушением иерархии запрещен (оператор типа GoTo в структурном программировании не используется). Виды основных управляющих структур алгоритма приведены в табл. 18.1.
Пример 18.6. Алгоритм поиска в базе данных сведений о максимальном окладе сотрудников (рис. 18.4).
Таблица 18.1. Управляющие структуры алгоритмов
552
18.3. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ
Основные понятия объектно-ориентированного проектирования Методика объектно-ориентированного проектирования
ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ
Метод объектно-ориентированного проектирования основывается на:
модели построения системы как совокупности объектов абстрактного типа данных; модульной структуре программ; нисходящем проектировании, используемом при выделении объектов.
Объектно-ориентированный подход использует следующие базовые понятия: объект; свойство объекта; метод обработки; событие; класс объектов.
553
Объект – совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств).
Объект содержит инструкции (программный код), определяющие действия, которые может выполнять объект, и обрабатываемые данные.
Свойство – характеристика объекта, его параметр. Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов.
Объект обладает качественной определенностью, что позволяет выделить его из множества других объектов и обусловливает независимость создания и обработки от других объектов.
Например, объект можно представить перечислением присущих ему свойств:
ОБЪЕКТ_А (свойство-1, свойство-2,...., свойство-k).
Свойства объектов различных классов могут "пересекаться", т.е. возможны объекты, обладающие одинаковыми свойствами:
ОБЪЕКТ_В (...свойство-n, свойство-m,...свойство-r,...) ОБЪЕКТ_С (...свойство-n,....., свойство-r,...).
Одним из свойств объекта являются метод его обработки.
Метод – программа действий над объектом или его свойствами.
Метод рассматривается как программный код, связанный с определенным объектом; осуществляет преобразование свойств, изменяет поведение объекта.
Объект может обладать набором заранее определенных встроенных методов обработки, либо созданных пользователем или заимствованных в стандартных библиотеках, которые выполняются при наступлении заранее определенных событий, например, однократное нажатие левой кнопки мыши, вход в поле ввода, выход из поля ввода, нажатие определенной клавиши и т.п.
По мере развития систем обработки данных создаются стандартные библиотеки методов, в состав которых включаются типизированные методы обработки объектов определенного класса (аналог – стандартные подпрограммы обработки данных при структурном подходе), которые можно заимствовать для различных объектов.
Событие – изменение состояния объекта.
Внешние события генерируются пользователем (например, клавиатурный ввод или нажатие кнопки мыши, выбор пункта меню, запуск макроса); внутренние события генерируются системой.
Объекты могут объединяться в классы ( группы или наборы – в различных программных системах возможна другая терминология).
Класс – совокупность объектов, характеризующихся общностью применяемых методов обработки или свойств.
Один объект может выступать объединением вложенных в него по иерархии других объектов. Схематично связь основных понятий объектно-ориентированного программирования представим
следующим образом (рис. 18.5).
554
Рис. 18.5. Соотношение основных понятий объектно-ориентированного подхода
В объектно-ориентированном программировании используется следующий формат записи работы с объектами:
ОБЪЕКТ. МЕТОД ОБЪЕКТ.СВОЙСТВО.МЕТОД
Программный продукт, созданный с помощью инструментальных средств объектно- ориентированного программирования, содержит объекты с их характерными свойствами, для которых разработан графический интерфейс пользователя. Как правило, работа с программным продуктом осуществляется с помощью экранной формы, с объектами управления, которые содержат методы обработки, вызываемые при наступлении определённых событий. Экранные формы также используются для выполнения заданий и перехода от одного компонента программного продукта к другому. Каждый объект управления обладает определенными свойствами, значения которых могут изменяться. Для объектов управления уточняется перечень событий и создаются пользовательские методы обработки – программный код на языке программирования в виде событийных процедур.
МЕТОДИКА ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ
Существуют различные объектно-ориентированные технологии и методики проектирования программных продуктов, которые должны обеспечить выполнение важнейших принципов объектного подхода:
инкапсуляция (замыкание) свойств данных и программ в объекте; наследование; полиморфизм.
Инкапсуляция означает сочетание структур данных с методами их обработки в абстрактных типах данных – классах объектов.
Класс может иметь образованные от него подклассы. При построении подклассов осуществляется наследование данных и методов обработки объектов исходного класса. Механизм наследования позволяет переопределить или добавить новые данные и методы их обработки, создать иерархию классов.
Полиморфизм – способность объекта реагировать на запрос (вызов метода) сообразно своему типу, при этом одно и то же имя метода может использоваться для различных классов объектов.
Для различных методик объектно-ориентированного проектирования характерны следующие черты: объект описывается как модель некоторой сущности реального мира; объекты, для которых определены места хранения, рассматриваются во взаимосвязи, и применительно к ним создаются программные модули системы.
555