Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект 1 модуль СР 2012.doc
Скачиваний:
78
Добавлен:
19.02.2016
Размер:
3.1 Mб
Скачать

5.2. Рівні інкапсуляції

Застосовуючи принцип інкапсуляції на рівнях подання структури програми, які відповідають різним ступеням абстракції програмного забезпечення, підходимо до поняття рівня інкапсуляції [64]. Скориставшись цим поняттям, можна з’ясувати типи програмних конструкцій та відповідні методи конструювання програм.

Нині можна виокремити шість рівнів інкапсуляції та стільки ж типів програмних конструкцій (табл.5.1):

Таблиця 5.1. Рівні інкапсуляції

Рівень інкапсуляції

Інкапсульо-вувані частини програм

Утворювана капсула (конструктція)

Метод програмування

Засоби програмування та механізми

Лексичний

Символи алфавіту мови

Лексема

Правила утворення лексем (позначень) і виразів із них

Мова програмування, оператор присвоювання

Операторний

Лексеми

Оператор структурний

Структурне програмування

2 GL*, 3GL, операторний базис вибору, повторення та зчленування, блок

Підпрограмний

Оператори

Підпрограма (процедура, функція, макрос)

Підпрограмне програмування

3 GL, бібліотеки макросів, процедур та функцій, незалежна компіляція, об’єкт

Модульний

Оператори опису, макроси процедури, функції

Модуль (пакет)

Модульне програмування

3 GL, середовище програмування, механізми, видимості інформації, роздільна компіляція

Класний

Оператори опису, макроси процедури, функції

Клас

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

4 GL, класи об’єктів, механізми, успадкування поліфоризму

Мегамодуль-ний

Програми, модулі, класи (знання подовження керування)

Мегамодуль

Мегапрограму-вання

5 GL (MPL**), колекції мегамодулів, гетерогенний інтерфейс

* GL - generation of languages

** MPL - megamodule program language.

  • лексичній рівень – інкапсулюються символи алфавіту мови, утворюючи капсули, які називають лексемами (позначення та зображення об’єктів програми);

  • операторний рівень – інкапсулюються лексеми та побудовані з них вирази, утворюючи капсули, які називають операторами (описи об’єктів програми, визначення типів і структурні оператори);

  • підпрограмний рівень – інкапсулюються оператори, утворюються капсули, які називають підпрограмами (макроси, процедури та функції); застосовують останні два типи – процедури та функції – на основі поняття блока та механізму незалежної компіляції;

  • модульний рівень – інкапсулюються оператори опису об’єктів програми, визначення типів і підпрограми, утворюючи капсули, які називають модулями, або пакетами, і застосовують на основі механізмів видимості інформації та розділеної компіляції;

  • класний рівень – інкапсулюються оператори опису та визначення типів і підпрограми, утворюючи капсули, які називають класами й застосовують на основі механізмів успадкування та поліморфізму;

  • мегамодульний рівень – інкапсулюються знання, поводження, управління у вигляді об’єднань модулів, класів, утворюючи капсули, які називають мегамодулями.

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

Розглянуті капсули являють собою динамічні (виконувані) складові програм, мета виконання яких полягає в обробці значень. Зв'язок програмних конструкцій із оброблюваними значеннями ілюструє табл.5.2.

Таблиця 5.2.

Зв'язок програмних конструкцій з оброблюванимизначеннями

Рівень інкапсуляції

Програмні конструкції

Типи оброблюваних значень

Оброблювані значення

Характер конструкції

Лексичний

Лексеми

Наперед визначені, та визначувані скалярні й спеціальні (покажчик посилання)

Наперед визначених типів

«Ланка»

Операторний

Структурні оператори

Визначувані структурні типи (складані)

Масиви, структури, багатозначні

Підпрограмний

Макроси, процедури, функції в програмі і структурі (записи)

Визначувані абстрактні (структури даних), об’єкти

Списки, стекі, дерево, таблиці і т.п., об’єкти на їх основі

«Механізм»

Модульний

Модулі

Класний

Класи

Мегамодульний

Мегамодулі

Інтенсіональні складові бази даних, знань, репозитарій, (схема)

Екстенсіональна складова баз даних

«Машина»