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

Матеріал з ПІЕ.

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

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

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

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

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

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

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

Мови програмування, що підтримують модульний підхід, описують модуль як програмну одиницю, що складається з двох основних частин - специфікації (інтерфейсу) та реалізації. У специфікації наводяться такі характеристики об'єктів модуля, які необхідні та достатні для використання цих об'єктів в інших модулях та програмах. Це дозволяє використовувати об'єкти модулів тільки на основі інформації про їх інтерфейс (не чекаючи їхнього повного опису). У реалізаційній частині модуля описується уявлення та алгоритми обробки, пов'язані з тими чи іншими об'єктами модуля.

Модуль є одним із засобів, що полегшують верифікацію програм. Модуль, як засіб створення абстракції, виділяє специфікацію та локалізує відомості про реалізацію.

Модулі є також метою створення проблемно-орієнтованого контексту та локалізації машинної залежності.

Концепція модульного програмування

Концепцію модульного програмування можна сформулювати у вигляді кількох понять та положень: