КІНЕЦЬДОКИ

ВИКОНАТИ функція

Або

КІНЕЦЬЯКЩО

ВИКОНАТИ функция2

Структурована природна мова

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

До складу мови входять наступні основні символи:

· дієслова, які використовують до об’єктів та орієнтовані на дію;

· терміни, визначені на будь-якій стадії проекту ПЗ (наприклад, завдання, процедури, символи даних і тому подібне);

· сполучники, які використовуються в логічних відношеннях;

· загальновживані математичні, фізичні і технічні терміни;

· арифметичні рівняння;

· таблиці, діаграми, графи і т.п.;

· коментарі.

Базові структури мови мають один вхід і один вихід. До них відносяться:

1) послідовна конструкція:
ВИКОНАТИ функция1
ВИКОНАТИфункция2
ВИКОНАТИфункция3

2) конструкція вибору:
ЯКЩО <умова> ТО
ВИКОНАТИ
функция1
ІНАКШЕ

3) ітерація:
ДЛЯ <умова>
ВИКОНАТИ функція
КІНЕЦЬДЛЯ

ДОКИ <умова>

При використанні структурованої природної мови прийняті наступні угоди:

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

2) Ключові слова ЯКЩО, ВИКОНАТИ, ІНАКШЕ і так далі повинні бути написані заголовними буквами.

3) Слова або фрази, визначені в словнику даних, повинні
бути написані заголовними буквами.

4) Дієслова повинні бути активними, недвозначними і орієнтованими на цільову дію (заповнити, обчислити,
витягувати,
а не модернізувати, обробити).

5) Логіка процесу повинна бути виражена чітко і недвозначно.

Таблиці рішень

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

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

Таблиця Рішень складається з двох частин. Верхня частина таблиці використовується для визначення умов. Звичайна умова ЯКЩО є частиною оператора ЯКЩО-ТО і вимагає відповіді "так-ні". Проте іноді в умові може бути присутнім і обмежена безліч значень, наприклад, ЧИ Є ДОВЖИНА РЯДКА БІЛЬШОЮ, МЕНШОЮ АБО РІВНОЮ ГРАНИЧНОМУ ЗНАЧЕННЮ?

Нижня частина Таблиці Рішень використовується для визначення дій, тобто ТО-частина оператора ЯКЩО-ТО. Так, в конструкції ЯКЩО Йде дощ, ТОРОЗКРИТИ ПАРАСОЛЬКУ . Йде дощ є умовою, а РОЗКРИТИ ПАРАСОЛЬКУ - дією.

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

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

1. якщо чергова річ є верхнім одягом, то узяти і покласти в свою сумку;

2. якщо своя сумка повна, то закінчити пошук верхнього одягу;

3. якщо корзина з речами порожня, то закінчити пошук;

4. інакше помістити річ в контейнер для проглянутих речей.

Таблиця рішень для даного прикладу виглядає таким чином (таблиця 8.1):

Таблиця 8.1

  УМОВИ
С1 id_wear(c) Т Н Т Н Т Н Т Н
С2 Full_bag() Н Т Т Т Н Н Т Н
С3 Clear_kor() Н Т Н Н Т Т Т Н
  ДІЇ                
D1 Put_bag(c)            
D2 End_search()    
D3 Put_kont(c)              

 

 

Відмітимо, що якщо виконується умова C2, то немає необхідності в перевірці умов C1 і С3. Тому комбінації 2,3,4 і 7 можуть бути замінені узагальнювальною комбінацією (-,Т,-), де "-" означає будь-яку з можливих альтернатив (у нашому випадку, Т або Н). Тоді ми отримаємо зредуковану таблицю рішень:

Таблиця 2

  УМОВИ
С1 id_wear(c) Т - Т Н Н
С2 Full_bag() Н Т Н Н Н
С3 Clear_kor() Н - Т Т Н
  ДІЇ          
D1 Put_bag(c)      
D2 End_search()    
D3 Put_kont(c)        

 

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

1. Ідентифікувати всі умови (або змінні) в специфікації. Ідентифікувати всі значення, які кожна змінна може мати.

2. Обчислити число комбінацій умов. Якщо всі умови є бінарними, то існує 2**N комбінацій N змінних.

3. Ідентифікувати кожну з можливих дій, які можуть викликатися в специфікації.

4. Побудувати порожню таблицю, що включає всі можливі умови і дії, а також номери комбінацій умов.

5. Виписати і занести в таблицю всі можливі комбінації умов.

6. Редукувати комбінації умов.

7. Перевірити кожну комбінацію умов і ідентифікувати відповідні виконувані дії.

8. Виділити комбінації умов, для яких специфікація не вказує список дій, що треба виконати.

9. Обговорити побудовану таблицю.

 

Псевдокоди.

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

Таблиця 8.3

 

Структура Псевдокод Структура Псевдокод
Слідування <Дія 1> <Дія 2> Вибір ВИБІР <код> <код 1>: <Дія 1> <код 2>: <Дія 2> Все-вибір
Розгалуження ЯКЩО <Умова> ТО <Дія 1> ІНАКШЕ <Дія 2> Все-якщо Цикл з заданим числом повторень ДЛЯ <індекс> = <n>,<к>,<h> <Дія> Все-цикл  
Цикл-доки ЦИКЛ-ДОКИ <Умова> <Дія > Все-цикл Цикл-до Виконувати <Дія > ДО <умова >