Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Проектирование спецификаций процессов с помощью таблиц решений (ТР) заключается в задании матрицы, отображающей множество входных условий во множестве действий.
ТР состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ—ТО и требует ответа "да-нет". Однако иногда в условии может присутствовать и ограниченное множество значений, например, ЯВЛЯЕТСЯ ЛИ ДЛИНА СТРОКИ БОЛЬШЕЙ, МЕНЬШЕЙ ИЛИ РАВНОЙ ГРАНИЧНОМУ ЗНАЧЕНИЮ?
Нижняя часть ТР используется для определения действий, т.е. ТО-части оператора ЕСЛИ— ТО. Так, в конструкции
ЕСЛИ ИДЕТ ДОЖДЬ, ТО РАСКРЫТЬ ЗОНТ
ИДЕТ ДОЖДЬ является условием, а РАСКРЫТЬ ЗОНТ - действием.
Левая часть ТР содержит собственно описание условии и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретные действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место.
Поясним сказанное на примере спецификации процесса выбора символов из входного потока. При выборе символов необходимо руководствоваться следующими правилами:
- если очередной символ является управляющим, то подать звуковой сигнал и вернуть код ошибки;
- если буфер формируемой строки заполнен, то подать звуковой сигнал и вернуть код ошибки;
- если очередной символ не находится в заданном диапазоне, то подать звуковой сигнал и вернуть код ошибки;
- иначе поместить символ в буфер, увеличить значение счетчика выбранных символов и вернуть новое значение счетчика
Заметим, что ели выполняется условие С1, то нет необходимости в проверке условий С2 и СЗ. Поэтому комбинации условий 1, 2, 3, 4 могут быть заменены обобщающей комбинацией (Д, — -), где знак "-" означает любую из возможных альтернатив (в данном случае, Д или Н). Аналогично, комбинации условий 5 и б могут быть заменены обобщающей комбинацией (Н, Д, -).
Условия | Условия | |||||||||||||||
C1 | isctrl(c) | Д | Д | Д | Д | Н | Н | Н | Н | C1 | isctrl(c) | Д | Н | Н | Н | |
C2 | I > max lenght | Д | Д | Н | Н | Д | Д | Н | Н | C2 | I > max lenght | - | Д | Н | Н | |
C3 | out of range(c) | Д | Н | Д | Н | Д | Н | Д | Н | C3 | out of range(c) | - | - | Д | Н | |
Действия | Действия | |||||||||||||||
D1 | beep() | D1 | beep() | |||||||||||||
D2 | return(ERROR) | D2 | return(ERROR) | |||||||||||||
D3 | retum(++i) | D3 | retum(++i) | |||||||||||||
D4 | putchar(c) | D4 | putchar(c) |
Построение ТР рекомендуется осуществлять по следующим шагам:
- Идентифицировать все условия (или переменные) в спецификации. Идентифицировать все значения, которые каждая переменная может иметь.
- Вычислить число комбинаций условий. Если все условия являются бинарными, то существует 2N комбинаций N переменных.
- Идентифицировать каждое из возможных действий, которые могут вызываться в спецификации.
- Построить пустую таблицу, все возможные условия и действия, а также номера комбинаций условий;
- Выписать и занести в таблицу все возможные комбинации условий;
- Редуцировать комбинации условий;
- Проверить каждую комбинацию условий и идентифицировать соответствующие выполняемые действия;
- Выделить комбинации условий, для которых спецификация не указывает список выполняемых действий;
- Обсудить построенную таблицу.
Дата публикования: 2015-01-25; Прочитано: 453 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!