Interface // Секция объявлений
End. // Терминатор
Программа представляет собой совокупность модулей и имеет следующую структуру:
Среди множества модулей различают:
· Г о л о в н о й модуль – управляет запуском ПП;
· У п р а в л я ю щ и й модуль – обеспечивает вызов других модулей на обработку (существует в единственном числе);
· Р а б о ч и е модули - выполняют функции обработки;
· С е р в и с н ы е модули и библиотеки, утилиты – осуществляют обслуживающие функции;
Каждый модуль оформляется как самостоятельно хранимый файл. Для функционирования ПП необходимо наличие программных модулей в полном составе.
14.2. Свойства модуля
Модуль имеет:
· один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет обработку данных и возвращает один набор результатных данных;
· функциональную завершенность – модуль выполняет перечень операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки;
· логическую независимость – результат работы модуля зависит только от исходных данных, и не зависит от работы других модулей;
· слабые информационные связи с другими программными модулями – обмен информации между модулями должен быть по возможности минимизирован;
· обозримый по размеру и сложности программный элемент.
Приложения имеют модульную структуру.
При составлении алгоритма необходимо учитывать:
· каждый модуль вызывается на выполнение вышестоящим модулем и, закончив работу, возвращает управление вызвавшему его модулю;
· принятие основных решений в алгоритме выносится на максимально «высокий» по иерархии уровень;
· для использования одной и той же функции в разных местах алгоритма создается один модуль, который вызывается на выполнение по мере необходимости.
Функция 1 и Функция 2 выполняются с помощью одного и того же программного Модуля.
Функция 3 реализуется одним программным модулем.
Функция 4 реализуется в виде последовательности выполнения Программных Модулей (2, 3... p).
Функция 5 – с помощью иерархии связанных модулей.
15.0. Проектирование интерфейса пользователя
15.1. Диалоговый режим
Большинство ПП работают в Диалоговом режиме.
Состав диалоговых систем:
· Меню – пользователю предлагается выбор альтернативных функций обработки из фиксированного перечня. Меню может содержать вложенные подменю.
· Действия запрос-ответ – фиксированный перечень возможных значений, выбираемых из списка или ответы типа Да/Нет.
· Запрос по формату – с помощью ключевых слов, фраз.
Диалоговый процесс управляется согласно созданному сценарию, для которого определяются:
· Момент начала диалога.
· Инициатор диалога – человек или ПП.
· Параметры и содержание диалога – сообщения, состав и структура меню, экранные формы.
· Реакция ПП на завершение диалога.
Для создания диалогового процесса и интерфейса пользователя используют объектно-ориентированные средства разработки программ.
В их составе содержатся:
· Построители меню (для создания главного меню и вложенного подменю);
· Конструктор экранных форм (для разработки форматов экранного ввода и редак тирования данных).
Диалоговые окна содержат элементы управления:
· Тексты сообщения;
· Поля ввода информации пользователя;
· Списки возможных альтернатив для выбора;
· Кнопки, переключатели и т.п.
15.2. Графический интерфейс пользователя
Является обязательным компонентом большинства современных ПП.
Требования к графическому интерфейсу:
1. Содержать привычные и понятные пользователю пункты меню, соответствующие функциям обработки;
2. Ориентироваться на пользователя, который общается с программой на внешнем уровне взаимодействия;
3. Удовлетворять правилу "шести" – в одну линейку меню включать не более 6 понятий, каждое из которых содержит не более 6 опций;
4. Сохранять стандартизированное назначение и местоположение на экране графических объектов.
Средства визуального программирования позволяют создавать сложные графические интерфейсы пользователя вообще без написания кода программы. Разработчик может на любом этапе наблюдать то, что закладывается в основу принимаемых решений.
16. Объектно-ориентированное программирование (ООП)
Объектно-ориентированный подход основан на:
1) выделении классов объектов;
2) установлении свойств объектов и методов их обработки (подпрограммы);
3) создании иерархии классов, наследовании свойств объектов и методов их обработки.
ООП используется при разработке крупных программных проектов.
Традиционный подход:
Y := Z(X); {Z- функция над переменной X}
То же действие с ООП:
Y := X.Z; {Z- метод, применяемый к объекту X}
Основные понятия ООП: объект, свойства, метод.
Объект – совокупность свойств, методов их обработки (процедуры и функции) и событий, на который данный объект может реагировать, и которые приводят к изменению свойств объекта.
Объект – многократно используемый программный модуль – экземпляр класса.
16.1. Классы в Free Pascal
Однотипные объекты могут объединяться в классы (группы).
Класс – совокупность объектов с одинаковыми свойствами. Или особый тип записи, имеющий в своем составе поля, свойства и методы обработки.
Конкретный объект, имеющий структуру этого класса, называется экземпляром класса, например Button1. Сам класс определяется общими свойствами, которые имеют все экземпляры этого класса.
Например, объект Button1 относится к классу TButton.
Поля класса служат для хранения информации об объекте (аналогичны полям записи). Одной стороны, свойства можно использовать как поля, например, присваивать им значения с помощью оператора присваивания, с другой стороны, внутри класса доступ к значениям свойств выполняется методами класса.
Методами называются процедуры и функции, предназначенные для обработки внутренних данных объекта данного класса (полей). Объект может обладать набором заранее встроенных методов обработки, созданных пользователем, которые выполняются при наступлении заранее определенных событий, например: нажатие кнопки мыши, определенной клавиши, выбор пункта меню и т.п..
Свойства – характеристики объекта, его параметры. Объект представляется с помощью присущих ему свойств.
Например:
ОБЪЕКТ_1 (свойство-1, свойство-2,... свойство-k).
Свойства объектов различных классов могут пересекаться. Например:
ОБЪЕКТ_А (.. свойство-n, свойство-m,... свойство-k).
ОБЪЕКТ_B (свойство-1,... свойство-n,... свойство-k).
16.2. Основные принципы ООП
ООП включает в себя 3 основных принципа:
- Инкапсуляция;
- Наследование;
- Полиморфизм.
Инкапсуляция – механизм сокрытия всех внутренних деталей объекта, не влияющих на его внешнее поведение. Это объединение объекта и методов работы с ним (или совмещение данных с методами в одном классе).
Класс приобретает определенную функциональность.
Каждый класс обладает свойствами предка, а способы реализации этого свойства заключены внутри класса.
Эти способы недоступны за пределами класса. Более того, классы ничего не знают друг о друге. Они полностью разделены. Т.о. объект “закрыт” и окружение не может случайно изменить этот объект.
С помощью инкапсуляции данные объекта могут быть защищены от других объектов. Для инкапсуляции характерен принцип сокрытия информации, что существенно облегчает написание больших и стабильно работающих приложений.
Класс, наследующий свойства другого класса, обладает теми же возможностями, что и класс, от которого он порожден. Этот принцип называется наследованием.
Наследование - создание объектов-потомков, которые обладают всеми свойствами объектов-предков. При наследовании объекты-потомки наследуют свойства объектов-предков и приобретают черты, характерные только для них самих.
Порожденный класс называется потомком, а тот, от которого он порожден – предком. У объекта может быть только один предок, но много потомков.
Объект-потомок наследует все описания и методы объекта-предка. Для него нужно описывать только дополнительные свойства.
Наследуемые свойства и методы можно использовать в неизменном виде или их переопределять (модифицировать).
Нельзя переопределять данные при наследовании. Данные можно только добавлять. С помощью наследования одни классы объектов могут происходить от других.
Возможно многоуровневое наследование. Механизм наследования позволяет многократно применять программный код, создавая иерархию классов.
Полиморфизм – это свойство классов решать схожие по смыслу проблемы разными способами.
Использование для разных объектов методов под одинаковыми именами, но с разным содержанием.
Это свойство, позволяющее одно и тоже имя процедуры использовать для решения нескольких разных задач. Например, щелочек по кнопке Button1Click().
Это достигается переопределением родительского метода в классе-потомке. Переопределение позволяет адресовать разным объектам одно и то же сообщение с разным исполнением.
Родитель и потомок ведут себя по-разному.
Один и тот же метод выполняется по-разному для различных объектов.
16.3. Графическая структура понятий ОО Подхода
Все классы порождены от единого родителя – класса TObject. Этот класс не имеет полей и свойств, но включает в себя методы самого общего назначения, обеспечивающие жизненный цикл любых объектов – от их создания до уничтожения. Нельзя создать класс, который не был бы дочерним классом TObject.
Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося от родителя к потомкам. Каждый потомок дополняет возможности своего родителя новыми свойствами и передает их своим потомкам.
Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов.
Свойства - структура данных, характерных для этого объекта.
Преимущества ООП:
– возможность многократного использования программного кода (порождение новых классов);
– невозможность извне ничего изменить в объекте, если такое изменение является недопустимым;
– объекты отображают реально существующие предметы или процессы.