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

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

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

Модуль характеризують:

  • один вхід і один вихід - на вході програмний модуль отримує певний набір початкових даних, виконує змістовну обробку і повертає один набір результатних даних;

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

  • логічна незалежність - результат роботи програмного модуля залежить тільки від початкових даних, але не залежить від роботи інших модулів;

  • слабкі інформаційні зв'язки з іншими програмними модулями - обмін інформацією між модулями повинен бути по можливості мінімізований;

  • осяжний за розміром і складністю програмний елемент.

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

Властивості модулів:

  • функціональна цілісність і завершеність (кожен модуль реалізує одну функцію, але реалізує добре і повністю);

  • автономность и независимость от других модулей (независимость работы модуля-преемника от работы модуля-предшественника; при этом их связь осуществляется только на уровне передачи/приема параметров и управления);

  • можливість розвитку;

  • відвертість для користувачів і розробників (для модернізації і використання);

  • коректність і надійність;

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

Властивості (переваги) модульного проектування алгоритмів:

  • можливість розробки алгоритму великого об'єму (алгоритмічного комплексу) різними виконавцями;

  • можливість створення і ведення бібліотеки найбільш часто використовуваних алгоритмів (підалгоритмів);

  • полегшення тестування алгоритмів і обгрунтування їх правильності ;

  • спрощення проектування і модифікації алгоритмів ;

  • зменшення складності розробки (проектування) алгоритмів (або комплексів алгоритмів);

  • наблюдаемость обчислювального процесу при реалізації алгоритмів.

Модульна структура програмних продуктів

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

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

При визначенні набору модулів, що реалізовують функції конкретного алгоритму, необхідно враховувати наступне:

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

  • ухвалення основних рішень в алгоритмі виноситься на максимально "високий" за ієрархією рівень;

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

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

Тестування алгоритму не може дати повної (100%-ой) гарантії правильності алгоритму для всіх можливих наборів вхідних даних, особливо для достатньо складних алгоритмів.