Налагодження програм і програмних комплексів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Налагодження програм і програмних комплексів

Характерною особливістю сучасних АСУ є значне ускладнення використовуваного в них програмного забезпечення, яке представляє собою великі комплекси взаємодіючих програм обсягом до десятків і сотень тисяч команд. Зі зростанням надійності обчислювальної техніки програмне забезпечення стає основним джерелом неправильного функціонування систем управління. У процесі його розробки допускається велика кількість помилок, вартість виявлення і усунення яких становить 40-50% загальних витрат на розробку і впровадження АСУ.

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

Помилки програмного забезпечення можуть бути класифіковані наступним чином: системні помилки, зумовлені неправильним розумінням змісту завдання та умов її реалізації в АСК; алгоритмічні помилки, пов'язані з некоректною формулюванням і реалізацією алгоритмів програмним шляхом; програмні помилки (описки, помилки в логіці, кодування і т. д.); технологічні помилки в процесі підготовки документації на програму і переведення її на машинні носії.

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

Програмна налагодження включає перевірку загальної логіки програми і правильності її запису (камеральна перевірка), підготовку до введення в ЕОМ г, трансляцію, індивідуальну (автономну) налагодження окремих частин програми. У процесі програмної налагодження виявляються й усуваються різні алгоритмічні, програмні та технологічні помилки.

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

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

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

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

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

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

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

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

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

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

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

При налагодженні комплексів програм розрізняють методи статистичного і детермінованого тестування.

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

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

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

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

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

Існують імовірнісні методи генерації тестових даних, засновані на поділі вхідний області програми на підобласті S j, для яких відома імовірність їх появи p (S j). Безліч називають операційним профілем програми. З кожного безлічі S j випадковим чином вибираються дані для n j тестів. Кількість тестів n j визначається відповідно до ймовірностями p i (S j).

Одним з найбільш перспективних методів імовірнісного тестування є метод ефективних вхідних векторів. При використанні цього методу з допустимої вхідний області виділяється деяка її частина, що представляє собою список значень для кожної вхідної змінної х. Отримана область визначення містить вхідні вектори, звані ефективними. Для кожної координати ефективного вхідного вектора за допомогою генератора випадкових чисел вибирається деяке значення а β з х і будується тест , Який реалізується програмою. У процесі реалізації тесту визначається безліч дуг γ i на графі можливих реалізацій програми, які входять до розрахункового шлях тесту , І об'єднання множин Серед цих дуг визначають дуги, не входили в безліч γ, отримане на попередньому кроці. Якщо такі дуги є, перевіряють, чи не перевищує відношення загального числа пройдених дуг до всієї безлічі дуг графа можливих реалізацій програми заданої величини . Якщо цей критерій не задовольняється, намагаються знайти дані для непокритих проведеними тестами дуг графа методами, аналогічними методам символічного тестування, які описуються нижче.

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

На практиці звичайно використовується безліч М * (Р), що містить мутанти Р, отримані багаторазовим застосуванням мутаційних операторів до Р. Вважається, що програма пройшла мутаційний тест з вхідним набором , Якщо: 1) програма Р функціонує вірно на даних Т, 2) для кожного m мутанта з М * (Р) або m не проходить на даних Р, або m еквівалентний Р. Тут D - вхідні область програми Р. Таким чином, якщо програма Р проходить мутаційний тест, то вона вільна від простих помилок. Щодо комплексних помилок робиться припущення, що ймовірність того, що композиція декількох простих помилок приведе до успішного виконання на даних Т відповідного мутанта, дорівнює нулю.

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

Найбільш перспективними методами детермінованого підходу до генерації тестових даних є методи, засновані на використанні символічного виконання програми. При такому виконанні замість дійсних значень змінних використовують їх символічні значення, а безліч прогонів з різними вхідними значеннями замінюється одним символічним виконанням деякого шляху програми. Остання представляється у вигляді спрямованого графа, вершинами якого є пропозиції програми, а дугами - передачі управління між ними. Символічного виконання шляху р відповідає система нерівностей В (р) щодо вхідних перемінних, які називаються умовами шляху р. Рішення t p системи нерівностей B (р) визначає умови виконання досліджуваного шляху, тобто будь-які вихідні дані, що задовольняють одержаному рішенням, викличуть виконання цього шляху.

Методи, що використовують символічне виконання програми, є проміжними між методами формального доказу правильності програм і методами емпіричного тестування. Ці методи дають можливість значно скоротити число використовуваних тестових прогонів і дозволяють виявляти до 70% помилок.

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

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

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

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

Відомі методи і моделі формалізації процесу локалізації помилок забезпечують лише автоматизацію процедур виділення областей локалізації помилок. При цьому використовується діагностична модель програми, що задається сукупністю <Х, V, Г 1, Г 2, Г 3, Г 4> і представлена ​​графом, де X - множина вершин, відповідних змінним комплексу програм; V - множина дуг, відповідне лінійним ділянкам команд ; Г 1 - відображення множини V в V; Г 2 і Г 3-відображення множини X в V і V в X відповідно; Г 4 - відображення множини X в X. Параметри тестового набору задаються точкою входу v b, точкою виходу v l, безліччю вершин вихідних даних X b і безліччю вершин результатів X l. Крім того, задана булева функція правильності результатів F (x j) для і правильності точки виходу F (v b).

Рішення задачі визначення області локалізації помилок зводиться до виділення подграфа, що зв'язує вершини v l і v b,. Подальші операції по встановленню місця розташування помилки проводять вручну. Недоліком розглянутого методу локалізації є та обставина, що виділені підграфи локалізації помилки мають, як правило, досить великі розміри і в граничних випадках включають всі елементи діагностичної моделі. Це пояснюється тим, що в даному методі не враховується конкретний зміст тестових наборів та їх спрямованість на виявлення певних властивостей програми, що перевіряється.

Значну допомогу при локалізації помилок у програмах надає раціональне розміщення дампів, тобто команд або підпрограм друку, що друкують дані для розпізнавання і виявлення помилок. Наприклад, при розміщенні дампів для перевірки правильності організації циклів місця їх розташування доцільно вибирати таким чином, щоб вони ідентифікували максимально можливе число циклів, а число точок, в яких розташовані дампи, було при цьому мінімальним. Завдання формулюється з використанням діагностичної моделі програми <Х, V, Г 1, Г 2, Г 3, Г 4> як задача про покритті безлічі дуг, що утворюють цикли, таким чином, щоб число дуг покриває набору було мінімальним і не було ні одного циклу , для якого хоча б одна дуга не увійшла у набір.

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

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

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

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

Основними методами, використовуваними на етапі системної налагодження, є методи аналізу і тестування.

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

Методи тестування використовують для оцінки ступеня готовності комплексу програм до передачі в режим експлуатації; в основі методів лежить збір та аналіз даних про характеристики поведінки комплексу за результатами його реалізації у відомих умовах при заданих входах (тестах).

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

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

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

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

Рис. 1

Безліч стратегій системної налагодження визначається безліччю можливих варіантів розбиття та об'єднання структурного графа С, вершинами якого є програмні модулі комплексу, а дугами - зв'язки з управління між ними. Будь-яка mn-стратегія задає безліч підграфів розбиття графа G Р m = {Р 1, ..., P v, ..., P m n} і послідовність об'єднання цих підграфів до вихідної графових структури При цьому завдання вибору оптимальної стратегії системної налагодження за критерієм мінімуму часу на її проведення формулюється наступним чином:

Знайти

- Час і вартість розбиття при використанні mn-стратегії; - Час і вартість об "єднання при використанні mn-стратегії; З зад. - Припустимі витрати на проведення системної налагодження.

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

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

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

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

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

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

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

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

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

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

Оптимізація програм включає оптимізацію розподілу пам'яті, оптимізацію виразів, оптимізацію циклів.

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

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

Оптимізація циклів зводиться до винесення за межі циклу виразів, які залежать від параметрів циклу.

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

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

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
69кб. | скачати


Схожі роботи:
Етапи розробки програм Тестування та налагодження Документування програм
Оцінка якості програмних комплексів
Паскаль Налагодження програм
Налагодження програм користувача в Tubro Pascal
Редагування та налагодження програм за допомогою Pascal
Налагодження системи та монтаж
Розробка та налагодження формальної мови
Налагодження міжособових комунікацій в менеджменті
Створення компіляція та налагодження простого додатка
© Усі права захищені
написати до нас