- •Классификация программного обеспечения (по): разновидности по, состав и назначение по различных групп.
- •Сущность, назначение и принципы объектно-ориентированного программирования.
- •Назначение и концепции визуального программирования; обработка событий, обобщенная структура программы анализа событий, схема создания ппп с помощью системы визуального программирования.
- •Назначение и характеристики системы визуального программирования Delphi.
- •Интерфейс разработчика в системе Delphi: компоненты интерфейса, страницы палитры компонентов.
- •Структура прикладной программы, создаваемой в системе Delphi, и состав программного проекта.
- •Отбор (фильтрация) данных в бд.
- •Создание вычисляемых полей.
- •Проверка значений полей.
- •Методы формального определения языков программирования.
- •Характеристики программного обеспечения: понятность, мобильность, надежность, показатели эффективности, точность.
Сущность, назначение и принципы объектно-ориентированного программирования.
В центре ООП находится понятие объекта. Объект — это сущность, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные.
Сущность ООП заключается в объединении в программных объектах данных и методов их обработки (или методов решения задач).
Основа ООП - понятие объекта (object) формальное определение типа, содержащего данные и действия над ними.
Назначение ООП - это повышение производительности труда разработчиков программного обеспечения при создании больших программ, используя:
улучшение структуры программы за счет локализации свойств и поведения объектов в одном месте (при описании объектов), что упрощает отладку программы, сокращает затраты времени на поиск ошибок и др.,
возможности создания библиотеки программных объектов,
сокращение размеров программ за счет того, что повторяющиеся (наследуемые) свойства и действия можно не описывать многократно, как это делается при использовании подпрограмм;
динамические объекты для сокращения потребностей в оперативной памяти (если не требуется обработка данных об объекте, то из оперативной памяти удаляются объекты в целом; и поля, и методы, т.е. программные процедуры и функции)
К базовым принципам объектно-ориентированного стиля программирования относятся:
пакетирование или инкапсуляция ;
наследование ;
полиморфизм ;
передача сообщений.
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.
Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Правила определения программных объектов: обобщенная структура определения объекта, constructor, destructor, методы объекта, структура программы, динамические объекты, варианты определения и использования объектов в программе.
В языке Object Pascal для определения объектов используются ключевые (зарезервированные) слова Object, Constructor, Destructor, Private, Public, Virtual.
Type {раздел типов}
<имя типа объекта> = object
<имя поля>{,<имя поля>} : <тип поля>; {поля одного типа для хранения данных об объекте}
. . . . . . . . . . {поля других типов}
Procedure <имя процедуры>[(<список параметров>)]; {заголовки процедур }
. . . . . . . . . . . . . . . . . . . . .
Function <имя функции>[(<список параметров>)]:<тип функции>; {заголовки функций}
. . . . . . . . . . . . . . . . . . .
end;
Constructor предназначен для создания конкретного экземпляра объекта по заданному типу (шаблону) в памяти ЭВМ.
Зарезервированное слово constructor предназначено для определения специального метода, инициализирующего объект, содержащий виртуальные методы:
Constructor Init (Param_1, Param_2, … : type);
Ключевое слово constructor в данном контексте является синонимом слова procedure; оно предписывает компилятору создать особый код пролога (часть загрузочного exe-файла), с помощью которого настраивается так называемая таблица виртуальных методов.
«Конструктор» инициализирует объект путем установления связи между объектом и таблицей виртуальных методов, содержащей адреса реализующих их кодов.
Конструктор может использоваться для инициализации полей данных объекта.
Destructor и Procedure – синонимы.
Destructor - процедура, удаляющая из оперативной памяти экземпляр объекта
(освобождение выделенной для объекта динамической памяти).
Каждому динамическому методу присваивается уникальное число-идентификатор, после чего строится таблица динамических методов (Dynamic Method Table), в которую заносится данное число, а также адрес метода. Еще одно отличие динамических методов от виртуальных заключается в том, что таблицы динамических методов содержат методы только одного компонента или класса (не включая его предков). Поэтому существенно экономится память, но замедляется время работы/
Для создания и инициализации динамических объектов можно использовать процедуру New с двумя параметрами: именем ссылочной переменной и именем процедуры-конструктора, например,New(P1, Init);
Такой приём (создание объектов в динамической памяти с одновременным заполнением таблицы виртуальных методов и инициализацией объектов) является типичным в практике ООП.
Методы: Статические методы после загрузки программы находятся в оперативной памяти в течение всего периода работы программы.
Виртуальные методы (реализующие их программные коды) присоединяются к вызову (оператору вызова) не в процессе компиляции, а в процессе выполнения (это называется поздним связыванием).
Директива Public отменяет действие директивы Private; все элементы объекта, следующие за Public, доступны любой программной единице.
Виртуальные методы: назначение, модель, абстрактные объекты, таблицы виртуальных методов.
Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.
Виртуальные
реализующий код присоединяется к вызову (оператору вызова) не в процессе компиляции, а в процессе выполнения - позднее связывание
Виртуальные методы предназначены для обеспечения возможности определения в объектах-потомках методов, к которым могут обращаться объекты-предки
Абстрактные объекты формируются путем выделения и обобщения одинаковых свойств и атрибутов у различных объектов предметной области. Пример: программный объект TGraphObj содержит координаты точки привязки и цвет геометрической фигуры.
Абстрактные классы реализуют на практике один из принципов ООП - полиморфизм. Абстрактный класс может содержать (и не содержать[1]) абстрактные методы и свойства. Абстрактные классы представляют собой наиболее общие абстракции, то есть имеющие наибольший объем и наименьшее содержание.