Головна

Програмування зверху-вниз

  1.  V1: Лінійне програмування
  2.  Алгоритмізація і програмування
  3.  В.3.04. ПАРАЛЕЛЬНЕ програмування
  4.  візуальне програмування
  5.  Вплив перша: вербальне програмування
  6.  Питання Об'єктно-орієнтоване програмування.
  7.  Питання Етапи розвитку мов програмування

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

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

2) Формально, у вигляді програми деякої гіпотетичної машини, фіксувати кожен етап розробки відповідного алгоритму;

3) Легко модифікувати програму по рівнях, шляхом заміни однієї гіпотетичної машини на іншу;


       
 
   
 

4) Спрощувати налагодження програм шляхом розосередження її за рівнями і проведення незалежно від нижчих рівнів деталізації.

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

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

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

procedure обробка пакетів

Потім визначаються основні кроки обробки пакетів інформації:

procedure обробка пакетів;

сортувати записи по керуючим полях;

відокремити правильні записи від неправильних і обробляти.

endprocedure

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

procedure обробка пакетів;

сортувати записи по керуючим полях;

взяти перший запис

while не кінець (вхідний файл) do

взяти правильну керуючу групу

обробити групу записів

endwhile;

обробити неправильну керуючу групу

endprocedure

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

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

procedure обробка пакетів;

сортувати записи по керуючим полях;

взяти перший запис

while не кінець (вхідний файл) do

repeat

взяти керуючу групу

until знайдена правильна група або кінець

файлу (вхідний файл)

обробити заголовок групи;

обробити записи групи;

обробити закінчення групи;

endwhile;

обробити неправильну керуючу групу

endprocedure

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

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

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




 В 2. Роль програмних систем САПР ТПП в сучасному |  Структура і склад програмного забезпечення (ПО) |  В 2. Роль програмних систем САПР ТПП в сучасному виробництві |  У 3. Розвиток САПР ТПП |  Структура і склад програмного забезпечення (ПО) САПР ТПП |  Основні принципи проектування ПО САПР ТПП |  Структура математичного забезпечення АСТПП |  Методи розробки ПЗ САПР |  Глава 2. Класифікація сфер застосування і користувачів САПР ТПП |  Характер розв'язуваних завдань і кваліфікація користувачів САПР ТПП |

© um.co.ua - учбові матеріали та реферати