Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК-3.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
177 Кб
Скачать
☆

2. Технологія структурного програмування .

2.1. Поняття структурного програмування

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

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

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

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

Структурний підхід до програмування являє собою методологію створення програм. Його впровадження забезпечує:

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

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

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

  • закінчення створення програм у заданий термін.

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

2.2. Методи структурного програмування

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

  • рішення окремих завдань призводять до розв'язання загальної задачі;

  • дана послідовність окремих дій найбільш раціональна;

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

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

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

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

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

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

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