Объектно-ориентированный подход. RAD-технологии

Содержание

Слайд 2

Развитие ПО Применение научных методик программирования привело к бурному развитию ПО.

Развитие ПО

Применение научных методик программирования привело к бурному развитию ПО.
Изменился

характер решаемых с помощью компьютера задач. Это задачи обработки распределенной информации различного вида («многосредовые», мультимедиа данные).
Образовался семантический разрыв между структурой современных задач, решаемых ПО, и процедурным подходом. Осознание этого разрыва привело к появлению объектно-ориентированного подхода к программированию
Слайд 3

Объектный подход привел к появлению языков программирования нового поколения: C++, Object

Объектный подход привел к появлению языков программирования нового поколения: C++, Object

(Delphi) Pascal, Java, Visual Basic.
Бурное развитие ПО привело к появлению мощных многозадачных операционных систем с графическим интерфейсом пользователя
Это стимулировало появление визуальных сред программирования, основанных на RAD (Rapid Application Development – быстрая разработка программ) технологии. Пример – визуальная среда программирования Delphi.

Развитие ПО

Слайд 4

Основы построения RAD-систем Операционные системы Интерфейс Многозадачность и событийная модель Компонентный подход Визуальное программирование

Основы построения RAD-систем

Операционные системы
Интерфейс
Многозадачность и событийная модель
Компонентный подход
Визуальное программирование

Слайд 5

Интерфейс графический оконный интерфейс пользователя; универсальную, стандартизованную систему управления работой программ.

Интерфейс

графический оконный интерфейс пользователя;
универсальную, стандартизованную систему управления работой программ.
Программы, разрабатываемые в

визуальной среде RAD, должны подчиняться этому стандарту.
Слайд 6

Многозадачность и событийная модель Процесс – это загруженное в оперативную память,

Многозадачность и событийная модель

Процесс – это загруженное в оперативную память, выполняющееся

приложение. Задачи делят между собой пространство памяти компьютера и время микропроцессора.
Поток –это подзадача, выполняемая под управлением родительского процесса. Поток использует память и системные ресурсы, которые предоставил ему родительский процесс. Процесс может состоять из одного, либо нескольких потоков. Каждый процесс имеет свое независимое пространство памяти, доступ к которому из других процессов запрещен.
Слайд 7

Модель передачи сообщений в Windows

Модель передачи сообщений в Windows

Слайд 8

Компонентный подход Компонент – это программный модуль, выполняющий определенную задачу. Откомпилированный

Компонентный подход

Компонент – это программный модуль, выполняющий определенную задачу. Откомпилированный код

компонента хранится в одной из библиотек RAD-среды разработки и недоступен для изменения.
Компоненты делятся на визуальные и невизуальные компоненты.
Визуальные компоненты во время выполнения программы формируют интерфейс пользователя – это кнопки, текстовые блоки, списки, флажки и пр.
Невизуальные компоненты – реализуют обмен данными.
Группы компонентов образуют палитру компонентов. Компоненты, как правило, входят в состав групп компонентов, формируемых по признаку близости решаемых ими задач (закладки Standart, Additional, Win32, Internet и т.д.).
Слайд 9

Визуальное программирование Во всех визуальных средах основой для создания приложения является

Визуальное программирование

Во всех визуальных средах основой для создания приложения является

форма. Приложение может содержать несколько форм, которые могут раскрываться как в отдельных окнах, так и внутри других окон (многооконные приложения).
На форму при программировании помещаются визуальные и невизуальные компоненты. В RAD-средах широко используется известный метод Drag and Drop – «перетащи и брось»: компоненты перетаскиваются мышью на форму. С помощью мыши можно также изменять размер визуальных компонентов и положение компонентов на форме. Для более тонкой настройки свойств компонентов служит специальный инструмент – Object Inspector (Инспектор объектов) в Delphi и окно Properties (Свойства) в Visual Basic.
Слайд 10

Порядок создания простого приложения Программист выбирает нужные ему компоненты на соответствующих

Порядок создания простого приложения

Программист выбирает нужные ему компоненты на соответствующих закладках

палитры компонентов (компонент Label на закладке Standard), размещая их на форме, меняя при необходимости их положение и размер.
Далее на закладке Properties окна Object Inspector можно провести тонкую настройку компонента, например, сформировать надпись (свойство Caption компонента Label), изменить названия кнопок, установить цвет, гарнитуру, размер шрифта (свойство Font…) и т.п.
Функциональность приложения формируется с помощью обработчиков событий. Каждый компонент имеет свой собственный набор событий, реакцию на которые можно задать с помощью процедур и функций. Обработчики событий создаются в Редакторе кода среды разработки.
Слайд 11

Редактор кода Редактор кода вызывается, когда программист выбирает для выделенного компонента

Редактор кода

Редактор кода вызывается, когда программист выбирает для выделенного компонента формы

(либо самой формы) обработчик событий на закладке Events Инспектора Объектов. В верхней части окна Редактора Кода имеется раскрывающийся список доступных для данного компонента обработчиков событий (например OnClick, OnKeyDown и т.п.).
При выборе нужного события в окне кода появляется шаблон обработчика события – процедура (функция) с уже сформированным заголовком и телом процедуры (функции). Программист добавляет содержательную часть тела процедуры.
Слайд 12

Список основных файлов Среда разработки порождает,как правило,множество файлов, образующих проект. Основными

Список основных файлов

Среда разработки порождает,как правило,множество файлов, образующих проект. Основными из

них являются:
*.dpr – головной модуль проекта;
*.dfm – файлы описания форм проекта;
*.pas – модули исходного кода форм, оформленные как модули (Unit) Паскаля;
*.dof, *.cfg, *.res – ряд файлов, описывающих состояние среды разработки для данного проекта;
*.exe – загрузочный файл проекта.
Слайд 13

Головной модуль проекта Головной модуль проекта формируется автоматически и для всех

Головной модуль проекта

Головной модуль проекта формируется автоматически и для всех

проектов имеет одинаковую структуру:
Инициализация приложения;
Создание формы;
Запуск цикла обработки сообщений.

Пример кода головной программы:
Program Project1;
Uses
Forms, Unit1 in Únit1.pas’{Form1};
{$R*.RES}
Begin
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
End.

Слайд 14

Основные принципы ООП Инкапсуляция Наследование Полиморфизм

Основные принципы ООП

Инкапсуляция
Наследование
Полиморфизм

Слайд 15

Процедурный подход – описание реальных систем в виде последовательности действий Объектно-ориентированный

Процедурный подход – описание реальных систем в виде последовательности действий
Объектно-ориентированный подход

– описание системы в виде взаимодействия объектов
Слайд 16

Объект – базовое понятие в ООП

Объект – базовое понятие в ООП

Слайд 17

ИНКАПСУЛЯЦИЯ Инкапсуляция – это сокрытие информации о внутреннем устройстве объекта. В

ИНКАПСУЛЯЦИЯ

Инкапсуляция – это сокрытие информации о внутреннем устройстве объекта.
В основе

построения объектно-ориентированных систем положен принцип: объекты должны знать об устройстве друг друга только то, что необходимо для их взаимодействия и не более того.
Слайд 18

Инкапсуляция – объединение данных и обрабатывающих их методов (подпрограмм) внутри класса.

Инкапсуляция – объединение данных и обрабатывающих их методов (подпрограмм) внутри класса.

Класс – специальный тип данных для описания объектов.
В классе инкапсулируются (объединяются и помещаются внутри класса) поля, свойства и методы. Класс приобретает функциональность.

ИНКАПСУЛЯЦИЯ

Слайд 19

Состояние объекта У объекта есть состояние поведение возможность отличить его от

Состояние объекта

У объекта есть
состояние
поведение
возможность отличить его от других объектов.
Состояние

объекта характеризуется текущим значением его атрибутов.
Слайд 20

Идентификация объекта У каждого объекта должна быть уникальная характеристика Ответственность за

Идентификация объекта

У каждого объекта должна быть уникальная характеристика
Ответственность за правильность идентификации

объекта лежит на программисте, разрабатывающем систему.
Многие объектные модели предлагают встроенные методы идентификации объектов.
Слайд 21

Интерфейс объекта Интерфейс – это описание того, как объект взаимодействует с

Интерфейс объекта

Интерфейс – это описание того, как объект взаимодействует с окружающим

миром.
Объекты взаимодействуют между собой с помощью сообщений. Получая сообщение объект выполняет действие. Эти действия называются методами.
Слайд 22

Интерфейс объекта Объект известен другим объектам только по своему интерфейсу. Внутренняя

Интерфейс объекта

Объект известен другим объектам только по своему интерфейсу. Внутренняя структура

его скрыта.
Суть принципа инкапсуляции – в разделении внутренней структуры и интерфейса объекта.
Слайд 23

Классы однотипные объекты объединяются в классы все объекты одного и того

Классы

однотипные объекты объединяются в классы
все объекты одного и того же класса

обладают одинаковым интерфейсом и реализуют этот интерфейс одним и тем же способом
Слайд 24

Объект, имеющий тип какого-либо класса, является экземпляром этого класса или переменной

Объект, имеющий тип какого-либо класса, является экземпляром этого класса или переменной

этого типа;
Класс – особый тип записи из элементов:
поля;
свойства;
методы.

Классы

Классы

Слайд 25

поля – аналогично полям записи; служат для хранения информации об объекте;

поля – аналогично полям записи; служат для хранения информации об объекте;
методы

– процедуры и функции для обработки полей;
свойства – промежуточное понятие между полями и методами:
свойства можно использовать как поля, присваивая им значения с помощью оператора «:=»;
с другой стороны, внутри класса доступ к значениям свойств выполняется методом класса.

Классы

Слайд 26

Поля Поле класса описывается как обычная переменная и может быть любого

Поля

Поле класса описывается как обычная переменная и может быть любого типа.

Согласно принятому соглашению имена полей должны начинаться с префикса F (field – поле).
Пример:
Type TNewClass=Class (TObject)
Private
FCode:integer;
FSign:char;
FNote:string;
End;
Чем дальше от базового класса, тем больше полей у объекта-потомка.
Слайд 27

Методы По умолчанию все методы, объявленные в классе, являются статическими –

Методы

По умолчанию все методы, объявленные в классе, являются статическими – они

вызываются как обычные подпрограммы.
Методы, которые предназначены для создания объектов, называются конструкторами, а для удаления объектов – деструкторами.
Слайд 28

Наследование Заключается в порождении новых объектов-потомков от существующих объектов-родителей, при этом

Наследование

Заключается в порождении новых объектов-потомков от существующих объектов-родителей, при этом потомок

берет от родителя все его поля, свойства и методы. В дальнейшем наследуемые поля можно использовать в неизменном виде или переопределять (модифицировать).
Слайд 29

Из нового объекта можно породить следующий объект. Образуется дерево объектов или

Из нового объекта можно породить следующий объект. Образуется дерево объектов или

иерархия классов:
в начале дерева – базовый класс TObject, который реализует элементы, наиболее общие для всех объектов (создание, удаление объекта);
чем дальше объект от базового класса, тем более он специфичен.

Наследование

Слайд 30

Полиморфизм Полиморфизм - заключается в том, что методы различных объектов могут

Полиморфизм

Полиморфизм - заключается в том, что методы различных объектов могут иметь

одинаковые имена, но различное содержание. Это достигается переопределением родительского метода в классе-потомке. В результате родитель и потомок ведут себя по-разному. При этом обращение к одноименным методам различных объектов выполняется аналогично.
Слайд 31

Delphi Управляющие структуры языка

Delphi

Управляющие структуры языка

Слайд 32

Условие.Операторы сравнения

Условие.Операторы сравнения

Слайд 33

Например: (ch >= '0') and (ch (day = 7) or (day

Например:
(ch >= '0') and (ch <= '9')
(day = 7) or (day

= 6)
(Forml.Editl.Text <> ' ' ) or (Forml.Edit2.Text <> '' )
Слайд 34

Выбор Выбор в точке разветвления алгоритма очередного шага программы может быть

Выбор

Выбор в точке разветвления алгоритма очередного шага программы может быть реализован

при помощи инструкций if и case.
Инструкция if
Инструкция if позволяет выбрать один из двух возможных вариантов развития программы. Выбор осуществляется в зависимости от выполнения условия.
В общем виде инструкция if записывается так:
if условие then begin
// здесь инструкции, которые надо выполнить,
// если условие истинно.
end
else begin
// здесь инструкции, которые надо выполнить, // если условие ложно.
end;
Слайд 35

Обратите внимание, что перед else (после end) точка с запятой не

Обратите внимание, что перед else (после end) точка с запятой не

ставится.
Выполняется инструкция if следующим образом:
1. Вычисляется значение условия (условие — выражение логического типа, значение которого может быть равно True или False).
2. Если условие истинно (значение выражения условие равно True), то выполняются инструкции, следующие за словом then (между begin и end). На этом выполнение операции if заканчивается, то есть инструкции, следующие за else, не будут выполнены.
Если условие ложно (значение выражения условие равно False), то выполняются инструкции, следующие за словом else (между begin и end).

Выбор

Слайд 36

В языке Delphi есть инструкция case, которая позволяет эффективно реализовать множественный

В языке Delphi есть инструкция case, которая позволяет эффективно реализовать множественный

выбор. В общем виде она записывается следующим образом:
case Селектор of
список1: begin { инструкции 1 } end;
список2: begin { инструкции 2 } end;
список N : begin { инструкции N } end;
else
begin { инструкции ) end;
end;

Выбор

Слайд 37

Циклы Алгоритмы решения многих задач являются циклическими, т. е. для достижения

Циклы

Алгоритмы решения многих задач являются циклическими, т. е. для достижения результата

определенная последовательность действий должна быть выполнена несколько раз.
Пример: для того чтобы найти фамилию человека в списке, надо проверить первую фамилию списка, затем вторую, третью и т. д. до тех пор, пока не будет найдена нужная фамилия или не будет достигнут конец списка.
В программе цикл может быть реализован при помощи инструкций for, while и repeat.
Слайд 38

Инструкция for for счетчик := нач_знач to кон_знач do begin //

Инструкция for

for счетчик := нач_знач to кон_знач do
begin // здесь

инструкции, которые надо выполнить несколько раз
end
где:
счетчик — переменная-счетчик числа повторений инструкций цикла;
нач_знач-- выражение, определяющее начальное значение счетчика циклов;
кон_знач — выражение, определяющее конечное значение счетчика циклов.
Слайд 39

Инструкция while while условие do begin // здесь инструкции, которые надо

Инструкция while
while условие do
begin // здесь инструкции, которые надо

выполнить несколько раз
end
где условие — выражение логического типа, определяющее условие выполнения инструкций цикла.
Слайд 40

Инструкция repeat repeat // инструкции until условие где условие — выражение

Инструкция repeat

repeat // инструкции
until условие
где условие — выражение логического типа, определяющее

условие завершения цикла.
Слайд 41

Форма Работа над новым проектом, так в Delphi называется разрабатываемое приложение,

Форма

Работа над новым проектом, так в Delphi называется разрабатываемое приложение,

начинается с создания стартовой формы. Так на этапе разработки программы называют диалоговые окна. Свойства формы определяют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки. Для просмотра и изменения значений свойств формы и ее компонентов используется окно Object Inspector. В верхней части окна Object Inspector указано имя объекта, значения свойств которого отображается в данный момент. В левой колонке вкладки Properties (Свойства) перечислены свойства объекта, а в правой — указаны их значения.
Слайд 42

Свойства формы

Свойства формы

Слайд 43

Свойства формы

Свойства формы

Слайд 44

Свойства формы

Свойства формы

Слайд 45

Свойства формы

Свойства формы

Слайд 46

Свойства формы

Свойства формы

Слайд 47

Свойства компонента Edit

Свойства компонента Edit

Слайд 48

Свойства компонента Edit

Свойства компонента Edit

Слайд 49

Свойства компонента Label

Свойства компонента Label

Слайд 50

Свойства компонента Label

Свойства компонента Label

Слайд 51

Свойства компонента Button

Свойства компонента Button

Слайд 52

Свойства компонента ListBox

Свойства компонента ListBox

Слайд 53

Свойства компонента ListBox

Свойства компонента ListBox

Слайд 54

StringGrid Для ввода массива удобно использовать компонент StringGrid. Значок компонента StringGrid

StringGrid

Для ввода массива удобно использовать компонент StringGrid. Значок компонента StringGrid находится

на вкладке Additional . Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов.
Слайд 55

Свойства компонента StringGrid

Свойства компонента StringGrid

Слайд 56

Свойства компонента StringGrid

Свойства компонента StringGrid

Слайд 57

Свойства компонента StringGrid

Свойства компонента StringGrid

Слайд 58

Свойства компонента StringGrid

Свойства компонента StringGrid

Слайд 59

Memo В некоторых случаях для ввода массива можно использовать компонент Memo.

Memo

В некоторых случаях для ввода массива можно использовать компонент Memo. Компонент

Memo позволяет вводить текст, состоящий из достаточно большого количества строк, поэтому его удобно использовать для ввода символьного массива. Значок компонента находится на вкладке Standard.
Слайд 60

Свойства компонента Memo

Свойства компонента Memo

Слайд 61

Свойства компонента Memo

Свойства компонента Memo

Слайд 62

Свойства компонента CheckBox

Свойства компонента CheckBox

Слайд 63

Свойства компонента CheckBox

Свойства компонента CheckBox

Слайд 64

Свойства компонента CheckBox

Свойства компонента CheckBox

Слайд 65

ComboBox Компонент ComboBox, значок которого находится на вкладке Standard, дает возможность

ComboBox

Компонент ComboBox, значок которого находится на вкладке Standard, дает возможность ввести

данные либо непосредственно в поле ввода-редактирования, либо путем выбора из списка, который появляется в результате щелчка на кнопке раскрывающегося списка.
Слайд 66

Свойства компонента ComboBox

Свойства компонента ComboBox

Слайд 67

Свойства компонента ComboBox

Свойства компонента ComboBox

Слайд 68

image Наиболее просто вывести иллюстрацию, которая находится в файле с расширением

image

Наиболее просто вывести иллюстрацию, которая находится в файле с расширением bmp,

jpg или ico, можно при помощи компонента image, значок которого находится на вкладке Additional палитры .
Слайд 69

Свойства компонента image

Свойства компонента image

Слайд 70

Свойства компонента image

Свойства компонента image

Слайд 71

Timer Компонент Timer генерирует событие OnTimer. Период возникновения события OnTimer измеряется

Timer

Компонент Timer генерирует событие OnTimer. Период возникновения события OnTimer измеряется в

миллисекундах и определяется значением свойства Interval. Следует обратить внимание на свойство Enabled. Оно дает возможность программе "запустить" или "остановить" таймер. Если значение свойства Enabled равно False, то событие OnTimer не возникает.
Слайд 72

Свойства компонента Timer

Свойства компонента Timer

Слайд 73

Animate Компонент Animate, значок которого находится на вкладке Win32, позволяет воспроизводить

Animate

Компонент Animate, значок которого находится на вкладке Win32, позволяет воспроизводить простую

анимацию, кадры которой находятся в AVI-файле.
Слайд 74

Свойства компонента Animate

Свойства компонента Animate

Слайд 75

Свойства компонента Animate

Свойства компонента Animate

Слайд 76

Компонент MediaPlayer Компонент MediaPlayer, значок которого находится на вкладке System, позволяет

Компонент MediaPlayer

Компонент MediaPlayer, значок которого находится на вкладке System, позволяет воспроизводить

видеоролики, звук и сопровождаемую звуком анимацию. В результате добавления к форме компонента MediaPlayer на форме появляется группа кнопок, подобных тем, которые можно видеть на обычном аудио- или видеоплеере.
Слайд 77

Кнопки компонента MediaPlayer

Кнопки компонента MediaPlayer

Слайд 78

Свойства компонента MediaPiayer

Свойства компонента MediaPiayer

Слайд 79

Свойства компонента MediaPiayer

Свойства компонента MediaPiayer

Слайд 80

MainMenu Главное меню программы. Значок компонента MainMenu находится на вкладке Standard.

MainMenu
Главное меню программы. Значок компонента MainMenu находится на вкладке Standard.

Слайд 81

Свойства объекта TMenuItem

Свойства объекта TMenuItem

Слайд 82

События

События