Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л1.doc
Скачиваний:
18
Добавлен:
30.10.2018
Размер:
97.28 Кб
Скачать

Лекція №1

Тема 1. Візуальне програмування і сучасні інформаційні технології. План

  1. Об'єктно-орієнтоване програмування.

  2. Основи візуального програмування інтерфейсу.

  3. Взаємодія програм в інформаційних системах.

  4. Розподілені багаторівневі програми.

  5. Переносимість даних і програм

Сучасні інструментальні засоби розробки програмного забезпечення дозволяють створювати як окремі прикладні програми Windows, так і розгалужені комплекси, призначені для роботи в корпоративних мережах і в Інтернет. Але перш, ніж перейти до розгляду конкретних систем, треба зробити короткий огляд тих сучасних інформаційних технологій, які вони підтримують.

  1. Об'єктно-орієнтоване програмування

Об'єктно-орієнтоване програмування (скорочено ООП) — це у наш час абсолютно природний підхід до побудови складних програм і систем. При відкритті будь-якої програми Windows, ви бачите вікно з безліччю кнопок, розділів меню, вікон редагування, списків і тому подібне. Все це - об'єкти. Причому самі по собі вони нічого не роблять. Вони чекають якихось подій - натиснення користувачем клавіш або кнопок миші, переміщення курсору і так далі Коли відбувається подібна подія, об'єкт отримує повідомлення про це і якось на нього реагує: виконує деякі обчислення, розгортає список, заносить символ у вікно редагування. Ось така програма Windows і є об'єктно-орієнтована програма .

Програма, побудована по принципах об'єктної орієнтації, — це не послідовність якихось операторів, не якийсь жорсткий алгоритм. Об'єктно - орієнтована програма — це сукупність об'єктів і способів їх взаємодії. Окремим (і головним) об'єктом при такому підході у багатьох випадках можна рахувати користувача програми. Він же служить і основним, але не єдиним, джерелом подій.

Спробуємо розібратися з основним поняттям ООП — об'єктом. Спершу можна визначити об'єкт як якусь сукупність даних і методів роботи з ними. Дані можна розглядати як поля запису. Це характеристики об'єкту. Користувач і об'єкти програми повинні мати можливість читати ці дані, якось їх обробляти і записувати в об'єкт нові значення.

Тут найважливіше значення мають принципи інкапсуляції і приховування даних. Принцип приховування даних полягає в тому, що зовнішнім об'єктам і користувачеві прямий доступ до даних, як правило, заборонений. Робиться це з двох міркувань.

По-перше, для надійного функціонування об'єкту треба підтримувати цілісність і несуперечність його даних. Якщо не потурбуватися про це, то зовнішній об'єкт або користувач можуть занести в об'єкт такі невірні дані, що він почне функціонувати з помилками.

По-друге, необхідно ізолювати зовнішні об'єкти від особливостей внутрішньої реалізації даних. Для зовнішніх споживачів даних повинен бути доступний тільки призначений для користувача інтерфейс — опис того, які є дані і функції і як їх використовувати. А внутрішня реалізація — це справа розробника об'єкту. При такому підході розробник може у будь-який момент модернізувати об'єкт, змінити структуру зберігання і форму представлення даних, але, якщо при цьому не торкнувся інтерфейс, зовнішній споживач цього навіть не помітить. І, значить, в зовнішній програмі і в поведінці користувача нічого не доведеться міняти.

Щоб витримати принцип приховування даних, в об'єкті визначаються процедури і функції, що забезпечують всі необхідні операції з даними: їх читання, перетворення, запис. Ці функції і процедури називаються методами і через них відбувається спілкування з даними об'єкту.

Сукупність даних і методів їх читання і запису називається властивістю. Властивості можна встановлювати в процесі проектування, їх можна змінювати програмно під час виконання вашої прикладної програми. Причому зовні це все виглядає так, як ніби об'єкт має якісь дані, наприклад, цілі числа, які можна прочитати, використовувати в якихось обчисленнях, закласти в об'єкт нові значення даних. В процесі проектування програми ви можете бачити значення деяких з цих даних, можете змінювати ці значення. Насправді все йде інакше. Все спілкування з даними відбувається через методи їх читання і запису. Це відбувається і в процесі проектування, коли середовище проектування запускає в потрібний момент ці методи, і в процесі виконання додатку, оскільки компілятор незримо для розробника вставляє в потрібних місцях програми виклики цих методів.

Крім методів, що працюють з окремими даними, в об'єкті є методи, що працюють зі всією їх сукупністю, міняють їх структуру. Таким чином, об'єкт є сукупністю властивостей і методів. Але це поки не можна вважати закінченим визначенням об'єкту, оскільки перш, ніж дати повне визначення, треба ще розглянути взаємодію об'єктів один з одним.

Середовищем взаємодії об'єктів є повідомлення, що генеруються в результаті різних подій. Події наступають, перш за все, унаслідок дій користувача — переміщення курсору миші, натиснення кнопок миші або клавіш клавіатури. Але події можуть наступати і в результаті роботи самих об'єктів. У кожному об'єкті визначена безліч подій, на які він може реагувати. У конкретних екземплярах об'єкту можуть бути визначені обробники якихось з цих подій, які і визначають реакцію даного екземпляра об'єкту. До написання цих обробників, часто вельми простих, і зводиться, як буде видно далі, основне програмування при розробці графічного інтерфейсу користувача.

Тепер можна остаточно визначити об'єкт як сукупність властивостей і методів а також подій, на які він може реагувати. Зовнішнє управління об'єктом здійснюється через обробники подій. Ці обробники звертаються до методів і властивостей об'єкту. Початкові значення даних об'єкту можуть задаватися також в процесі проектування установкою різних властивостей. В результаті виконання методів об'єкту можуть генеруватися нові події, що сприймаються іншими об'єктами програми або користувачем.

Уявлення про програму як про деяку фіксовану сукупність об'єктів не є повним. Найчастіше складна програма — це не просто якась зумовлена сукупність об'єктів. В процесі роботи об'єкти можуть створюватися і знищуватися. Таким чином, структура програми є динамічною структурою, яка змінюється в процесі виконання. Основна мета створення і знищення об'єктів - економія ресурсів комп'ютера і, перш за все, пам'яті. Не дивлячись на бурхливий розвиток обчислювальної техніки, пам'ять, напевно, завжди буде обмежувати можливості складних програмних систем. Це пов'язано з тим, що складність програмних проектів росте тими ж, якщо не швидшими, темпами, що і технічне забезпечення. Тому від об'єктів, які не потрібні на даній стадії виконання програми, потрібно звільнятися. При цьому звільняються і виділені ним області пам'яті, які можуть використовуватися новостворюваними об'єктами. Простій приклад цього — вікно - заставка з логотипом, що з'являється при запуску багатьох програм. Після початку реального виконання додатку ця заставка зникає з екрану і ніколи більше не з'явиться в даному сеансі роботи. Було б варварством не знищити цей об'єкт і не звільнити займану ним пам'ять для продуктивнішого використання.

З метою організації динамічного розподілу пам'яті у всі об'єкти закладені методи їх створення — конструктори і знищення — деструктори. Конструктори об'єктів, які спочатку повинні бути присутніми в прикладній програмі, спрацьовують при запуску програми. Деструкції всіх об'єктів, наявних в даний момент в програмі, спрацьовують при завершенні його роботи. Але нерідко і в процесі виконання різні нові об'єкти (наприклад, нові вікна документів) динамічно створюються і знищуються за допомогою їх конструкторів і деструкторів.

Включати об'єкти в свою програму можна двома способами. Шляхом включення в неї відповідних операторів (це доводиться робити не дуже часто) або шляхом візуального програмування, використовуючи заготовки — компоненти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]