Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_OPI_2sem.doc
Скачиваний:
136
Добавлен:
23.02.2016
Размер:
3.72 Mб
Скачать

Ціленаправлена конструктивна реалізація

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

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

3.5. Аналіз вимог і визначення специфікацій при структурному підході

На цьому етапі необхідно побудувати моделі ПЗ у взаємодії з навколишнім середовищем. Оскільки різні моделі описують програмне забезпечення з різних сторін, рекомендується використовувати одразу декілька моделей і супроводжувати їх описаннями. Структурний підхід до проектуванню програмних продуктів припускає розробку наступних моделей [1, 53]:

  • діаграм потоків даних (DFD – Data Flow Diagrams), які описують взаємодію джерел і користувачів інформації через процеси, які повинні бути реалізовані в системі;

  • діаграм «сутність–зв’язок» (ERD – Entity-Relationship Diagrams), які описують бази даних розроблюваної системи;

  • діаграм переходів станів (STD – State Transition Diagrams), характеризують поведінку системи у часі;

  • функціональних діаграм (методологія SADT);

  • специфікацій процесів;

  • словника термінів.

3.5.1. Специфікації процесів

Специфікації процесів можуть бути представлені у вигляді псевдокодів, блок-схем алгоритмів, Flow-форм, діаграм Насси-Шнейдермана чи просто короткого текстового описання [1].

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

Лінійна структура – виконання операторів послідовно.

Розгалужена структура – в залежності виконання деякої умови виконується та чи інша послідовність операторів.

Циклічна структура – багатократне виконання однакової послідовності операторів.

Для зображення схем алгоритмів розроблений ГОСТ 19.701–90 (табл. 3.2).

Будь-який, наскільки завгодно складний, алгоритм модна преставити з використанням трьох основних конструкцій, які отримали назву базових [1]:

  • слідування. Означає послідовне виконання дій (рис. 3.15, а);

  • розгалуження. Відповідає вибору одного з двох варіантів дій (рис. 3.15, б);

  • цикл-поки. Визначає повторення дій, поки не буде порушена деяка умова, виконання якого перевіряється на початку циклу (рис. 3.15, в).

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

  • вибір. Означає вибір одного варіанту із багатьох в залежності від значень деякої величини (рис. 3.16, а);

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

  • цикл із заданим числом повторень (цикл з лічильником). Означає повторення деяких дій вказану кількість разів (рис. 3.16, в).

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

Псевдокоди

Псевдокод – формалізоване текстове описання алгоритму (текстова нотація). В літературі були запропоновані декілька варіантів псевдокодів. Один з них наведений в табл. 3.3.

Таблиця 3.3. Описання псевдокодів

Структура

Псевдокод

Структура

Псевдокод

Слідування

<Дія 1>

<Дія 2>

Вибір

Вибір <код>

<код 1>:<Дія 1>

<код 2>:<Дія 2>

Кінець-вибір

Розгалуження

Якщо <Умова>

тоді <Дія 1>

інакше <Дія 1>

Кінець-якщо

Цикл із заданою кількістю повторень

Для <індекс>=<n>,<k>,<h>

<Дія>

Кінець-цикл

Цикл-поки

Цикл-поки <Умова>

<Дія>

Кінець-цикл

Цикл-до

Виконувати

<Дія>

До <Умова>

Flow-форми

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

Діаграми Нассі–Шнейдермана

Діаграми Нассі–Шнейдермана є продовженням Flow-форм. Відмінність їх від Flow-формполягає в тому, що область позначення умов зображують у вигляді трикутників (рис. 3.18). Це позначення забезпечує більшу наглядність представлення алгоритму.

При використанні псевдокодів, Flow-форм і діаграм Нассі–Шнейдермана описати не структурний алгоритм неможливо (для неструктурних передач управління в цих нотаціях просто відсутні умовні позначення).

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

Загальним недоліком Flow-форм і діаграм Нассі–Шнейдермана є складність побудови зображення символів, що затрудняє практичне використання цих нотацій для описання великих алгоритмів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]