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

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

Модульне програмування працює за принципом "розділяй і володарюй". Варто розібратися.


Модульне програмування передбачає організацію програми як сукупності незалежних блоків невеликих розмірів, які прийнято іменувати модулями, поведінка і структура яких повністю підпорядковані цілком певним принципам. Варто розділити застосування поняття "модуль", коли зважає на синтаксичну одиницю мови програмування і коли йдеться про одиницю дроблення великої програми на кілька блоків, які можуть бути реалізовані як у вигляді процедур, так і у вигляді функцій. Застосування модульного програмування дає можливість спростити тестування програми та своєчасне виявлення помилок. Можна суворо відокремити апаратно-залежні завдання від інших підзадач, що дозволить поліпшити мобільність створюваних програм. Критичні за часом модулі можна переробляти окремо, що помітно спрощує процес і робить ефективність набагато вищою. Крім цього модульне програмування набагато простіше розуміти, оскільки модулі можуть бути ефективно використані в якості будівельних блоків в інших програмах.


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

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

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