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

Структурне програмування це методологія й технологія розробки серйозних програмних комплексів, заснована на наступних принципах:

– програмування повинне здійснюватися зверху-униз;

– увесь проект повинен бути розбитий на модулі з одним входом і одним виходом (оптимальний розмір модуля — кількість рядків на екрані дисплея);

– логіка алгоритму й програми повинна допускати тільки три основні структури: послідовне виконання, розгалуження й повторення. Неприпустимий оператор передачі керування в будь-яку крапку програми;

– при розробці документація повинна створюватися одночасно із програмуванням, у вигляді коментарів до програми.

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

Ідеї структурного програмування з’явилися на початку 70х рр. XX в. у компанії IBM, у їхній розробці брали участь відомі вчені Є. Дейкстра, X. Милі, Є. Батіг, С. Хоор.

Структурне програмування – це така методологія програмування, яка дозволяє за умови дотримання певних правил зменшити час розробки програми і полегшити можливість її модифікації. Ця методика була запропонована у сімдесятих роках минулого століття дослідником з Голландії Дейкстром та була доповнена Ніклаусом Віртом. Її основні поняття описані в теоремі Бьома-Якопіні, яку опублікували у 1966р.

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

Існує декілька важливих моментів структурного програмування:

  1. Вихідний код повинен мати модульну структуру. Тобто, програма розділяється на дрібніші одиниці – процедури і функції. Ці частини або підпрограми, можуть викликатися з будь-якого місця у ній. Процедури – окремі ділянки коду, які виконують певні дії, задані алгоритмом та мають власну назву. Функції також можуть обчислювати деякі змінні,  мають значення, яке повертається, і можуть використовуватись в основній частині програми і в інших підпрограмах. Деякі підпрограми можуть мати рекурсивну структуру, тобто виклик з «самої себе». Це може допомогти вирішити задачу, але і призвести до зациклювання.
  2. Кодування програми повинно виконуватися зверху-вниз чи знизу вгору. Схема «зверху-вниз» добре зрозуміла для дослідження написаної програми і пошуку помилок. Схема «знизу-вгору» використовується, коли алгоритм програми не розроблений, але вже написані деякі підпрограми, які реалізують певні дії.
  3. Наявність керуючих елементів. На відміну від деяких «асемблерних» підходів, у яких використовується безумовний перехід (go to), який важко відстежити, у структурному підході використовуються цикли, умови і послідовності.

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

Попередня стаття
Наступна стаття