Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ТП / 03. Спецификации_ПО.doc
Скачиваний:
92
Добавлен:
02.05.2014
Размер:
101.89 Кб
Скачать

3.3 Таблицы решений как внешние спецификации функций программного обеспечения

Одной из основных задач этапа проектирования является разработка спецификаций функций ПО. Фактически спецификации являются описаниями алгоритмов соответствующих функций, но разработанными для пользователей ПО. Для этих целей существует достаточно много методов, которые перечислим в порядке увеличения трудности проектирования алгоритмов /2/:

- текстовое описание,

- структурированный естественный язык,

- таблица решений,

- дерево решений,

- визуальный язык,

- блок-схема,

- алгоритмический язык программирования.

Следует отметить, что в перечисленном выше порядке увеличивается степень формализации описания алгоритма и понимание деталей его функционирования проектировщиками и программистами, но уменьшается степень понимания алгоритма заказчиком и будущим пользователем ПО, для которого оно разрабатывается. Компромиссным решением проблемы понимания являются методы алгоритмизации, лежащие в середине спектра методов. Рассмотрим подробнее таблицу решений как вариант этого компромисса / 2/.

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

ТР состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа ‘да-нет’. Нижняя часть ТР используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Левая часть ТР содержит собственно описание условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место.

Таблица решений – это такая внешняя спецификация ПО, в которой отражаются комбинации условий, выполняемых для входных данных, и соответствующие этим комбинациям действия по преобразованию информации.

Поясним сказанное на примере спецификации процесса выбора символов из входного потока по следующим правилам:

а) если очередной символ является управляющим, то подать звуковой сигнал и вернуть код ошибки;

б) если буфер формируемой строки заполнен, то подать звуковой сигнал и вернуть код ошибки;

в) если очередной символ не находится в заданном диапазоне, (положим, от ‘а’ до ‘я’), то подать звуковой сигнал и вернуть код ошибки;

г) иначе поместить символ в буфер, увеличить значение счетчика выбранных символов и вернуть новое значение счетчика.

Таблица решений для данного примера приведена ниже ( таблица 1.1).

Здесь ‘Д’ означает ‘да’, ‘Н’ - ‘нет’, 1,2 - помеченные действия выполняются в указанном порядке.

Таблица 1.1 - ТР для функции выбора символов из входного потока

Условия

1

2

3

4

5

6

7

8

С1 символ управляющий?

Д

Д

Д

Д

Н

Н

Н

Н

С2 буфер заполнен?

Д

Д

Н

Н

Д

Д

Н

Н

С3 символ от ‘a’ до ’я’?

Д

Н

Д

Н

Д

Н

Д

Н

Действия

D1 подать звуковой сигнал

1

1

1

1

1

1

1

D2 вернуть код ошибки (>0)

2

2

2

2

2

2

2

D3 увеличить значение счетчика и вернуть его

2

D4 поместить символ в буфер

1

Заметим, что если выполняется условие С1, то нет необходимости в проверке условий С2 и С3. Поэтому комбинации условий 1,2,3,4 могут быть заменены обобщающей комбинацией (Д, -, -), где ‘-’ означает любую из возможных альтернатив (в данном случае Д или Н).

Аналогично комбинации условий 5 и 6 могут быть заменены обобщающей комбинацией (Н, Д, -). Редуцированная таким образом ТР будет иметь вид таблицы 1.2.

Таблица 1.2 Редуцированная ТР

Условия

1

2

3

4

С1 символ управляющий?

Д

Н

Н

Н

С2 буфер заполнен?

-

Д

Н

Н

С3 символ от ‘a’ до ’я’?

-

-

Д

Н

Действия

D1 подать звуковой сигнал

1

1

1

D2 вернуть код ошибки (>0)

2

2

2

D3 увеличить значение счетчика и вернуть его

2

D4 поместить символ в буфер

1

Методика построения ТР заключается в следующем:

а) определить все условия и действия в спецификации;

б) вписать действия и условия в таблицу;

в) в нумерованных столбцах отметить все возможные комбинации условий и выполняемых при выполнении условий действий;

г) при необходимости редуцировать таблицу (если есть 2 столбца, у которых перечень действий совпадает, и которые отличаются только результатами условий ‘Д’ и ‘Н’ в одной строке, то такие столбцы могут быть слиты в один).

Отметим, что на основе ТР легко осуществить кодирование программы на языке высокого уровня, таком, как Pascal.

В /4/ приведен пример разработки таблиц решений для задачи совместной обработки двух файлов.

Литература

1. Липаев В.В. Управление разработкой программных комплексов. М.: Финансы и статистика, 1993. - 286 с.

2. Калянов Г.Н. CASE структурный системный анализ (автоматизация и применение).-М.: Издательство ‘Лори’ 1996.- 242 с.

3. Валеева Р.Г. Методические указания к выполнению схем при документировании программного обеспечения (электронный вариант).

4. В.Н. Мукасеева, А.Ю. Хасанов Специфицирование и тестирование программ. Методические указания к курсовой работе по дисциплине ‘Технология программирования’ для студентов направления 552800 - Информатика и вычислительная техника- Уфа, 1999.

5. Петров В.Н. Информационные системы. – СПб.: Питер, 2002. – 688 с.

Примечания.

Степень универсальности – полнота отображения свойств объекта или явления. Универсальные стандарты отображают основные работы по созданию программных продуктов, поэтому применимы во всех предметных областях. Однако особенности отдельных ПП универсальные стандарты не учитывают.

Специфицирование–написание и оформление спецификаций.Под спецификацией понимается формальное описание требований, свойств и функций объекта проектирования.

Соседние файлы в папке Лекции по ТП