гарантувати безпомилковість спроектованої тільки що програми. Програма повинна обов'язково пройти і етап налагодження, в результаті якого ймовірність правильного функціонування програми виявиться вище. До другої групи методів підвищення безпомилковості програм відносяться різноманітні методи налагодження. p> Тут ми не розглядаємо організаційні методи керівництва розробкою програмного забезпечення, хоча їх вплив на надійність створюваних програм може іноді виявитися вирішальним.
Технології, застосовуються при підготовці програми
В· Модульне програмування припускає, що програма розбивається на окремі частини-модулі, причому розбиття повинно в тій чи іншій мірою задовольняти вимогам, серед яких відзначимо:
В· обмеження розміру модуля (звичайно, в межах 20-100 операторів);
В· семантичне виділення в окремі модулі (неформальна функціонально-структурна декомпозиція);
В· відносна незалежність модуля. Зв'язки між модулями як по управлінню, так і за інформацією повинні бути мінімальними.
Однак не можна занадто строго слідувати принципам модульності, інакше це може призвести до занадто великих накладних витрат. Найважливішу роль в модульному програмуванні грають інтуїція та досвід програміста.
Хороша модульні програма має високий рівень безпомилковості тому, що зв'язки між модулями досить прості і можуть бути простежені за столом. У той же час виправлення помилки в одному з модулів не повинно по можливості приводити до коректування інших модулів.
Дуже важливо вміти використовувати в програмі стандартні модулі (підпрограми). Ці модулі заздалегідь налагоджені, випробувані в різних застосуваннях і, отже, містять менше помилок, ніж написані спеціально для цієї програми.
Можна сказати, що модульне програмування знижує складність розроблюваної програми, представляючи її у вигляді сукупності менш складних модулів з нескладними зв'язками між ними. Тим самим спрощується аналіз програми, пошук помилок в ній і модифікація.
Звичайно програма розділяється "географічно", тобто модуль створюється з операторів, компактно розташованих в програмі. Однак, якщо залучити техніку отримання залишкових програм і методи вертикального шарування, можна створювати модулі і по іншим (більш функціональним) принципам. p> Поділ на модулі передбачає максимальну незалежність модулів шляхом посилення внутрішніх зв'язків у кожному модулі (підвищення міцності модулів) і ослаблення зв'язків між модулями (і за даними і з управління), застосовуючи формалізований механізм передачі параметрів. Ось яку мету формулює академік А. П. Єршов: "Нам треба навчитися дуже ретельно і доказово писати невеликі програми і в той Водночас вміти швидко, впевнено і безпомилково монтувати величезне комплекси програм з напівфабрикатів ".
Структурне програмування - це технологія програмування, в якій дозволено використання тільки трьох видів конструкцій: послідовність, вибір, ітераці...