Таблиці рішень
Структурована природна мова неприйнятна та деяких типів перетворень. Наприклад, якщо дія залежить від декількох змінних, які в сукупності можуть продукувати велике число комбінацій, то його опис буде дуже заплутаним і з великим числом рівнів вкладеності. Для опису подібних дій традиційно використовуються таблиці і дерева рішень. Проектування специфікацій процесів за допомогою таблиць рішень (ТР) полягає в заданні матриці, що відображає безліч вхідних умов в безліч дій. Таблиця Рішень складається з двох частин. Верхня частина таблиці використовується для визначення умов. Звичайна умова ЯКЩО є частиною оператора ЯКЩО -ТО і вимагає відповіді " так-ні". Проте іноді в умові може бути присутнім і обмежена безліч значень, наприклад, ЧИ Є ДОВЖИНА РЯДКА БІЛЬШОЮ, МЕНШОЮ АБО РІВНОЮ ГРАНИЧНОМУ ЗНАЧЕННЮ? Нижня частина Таблиці Рішень використовується для визначення дій, тобто ТО -частина оператора ЯКЩО-ТО. Так, в конструкції ЯКЩО Йде дощ, ТО РОЗКРИТИ ПАРАСОЛЬКУ. Йде дощ є умовою, а РОЗКРИТИ ПАРАСОЛЬКУ - дією. Ліва частина Таблиці Рішень містить власне опис умов і дій, а в правій частині перераховуються всі можливі комбінації умов і, відповідно, вказується, які конкретно дії і в якій послідовності виконуються, коли певна комбінація умов має місце. Пояснимо вищесказане на прикладі специфікації процесу вибору верхнього одягу з корзини з речами. При виборі верхнього одягу необхідно керуватися наступними правилами: 1. якщо чергова річ є верхнім одягом, то узяти і покласти в свою сумку; 2. якщо своя сумка повна, то закінчити пошук верхнього одягу; 3. якщо корзина з речами порожня, то закінчити пошук; 4. інакше помістити річ в контейнер для проглянутих речей. Таблиця рішень для даного прикладу виглядає таким чином (таблиця 8.1): Таблиця 8.1
Відмітимо, що якщо виконується умова C2, то немає необхідності в перевірці умов C1 і С3. Тому комбінації 2, 3, 4 і 7 можуть бути замінені узагальнювальною комбінацією (-, Т, -), де " -" означає будь-яку з можливих альтернатив (у нашому випадку, Т або Н). Тоді ми отримаємо зредуковану таблицю рішень: Таблиця 2
Побудову Таблиці Рішень рекомендується здійснювати по наступних кроках: 1. Ідентифікувати всі умови (або змінні) в специфікації. Ідентифікувати всі значення, які кожна змінна може мати. 2. Обчислити число комбінацій умов. Якщо всі умови є бінарними, то існує 2**N комбінацій N змінних. 3. Ідентифікувати кожну з можливих дій, які можуть викликатися в специфікації. 4. Побудувати порожню таблицю, що включає всі можливі умови і дії, а також номери комбінацій умов. 5. Виписати і занести в таблицю всі можливі комбінації умов. 6. Редукувати комбінації умов. 7. Перевірити кожну комбінацію умов і ідентифікувати відповідні виконувані дії. 8. Виділити комбінації умов, для яких специфікація не вказує список дій, що треба виконати. 9. Обговорити побудовану таблицю.
Псевдокоди. Псевдокод – формалізований текстовий опис алгоритму (текстова анотація). В літературі були представлені декілька варіантів псевдокодів. Один з них приведений в табл.8.3. Таблиця 8.3
|