Таблицы решений и деревья решений

Довольно часто совокупность ПО управляется сложной логикой, учитывающей разные комбинации условий, результатом которых есть разное поведение совокупности. К примеру, в случае, если шофер нажимает кнопку ускорения на совокупности автомобиль-контроля и круиз автомобиля сейчас двигается, то совокупность увеличит скорость автомобиля, в другом случае команда игнорируется. Для спецификации требований к ПО нужны функциональные требования, в которых будет обрисовано, что обязана делать совокупность при всех комбинациях условий. Но условие легко пропустить, в следствии чего пропускается и требование. Эти пробелы тяжело подметить, просматривая текстовые спецификации вручную.

Таблицы ответов и деревья ответов — это два других приема для представления того, что совокупность обязана делать, в то время, когда в игру вступают сложные решения и логика (Davis, 1993). В таблице ответов(decision table) перечислены разные значения для всех факторов, воздействующих на поведение совокупности, и приведены ожидаемые действия совокупности в ответ на каждую комбинацию факторов. Факторы смогут быть продемонстрированы или как утверждения с разными условиями true и false, или как вопросы с вероятными ответами «да» либо «нет». Конечно, вы кроме этого имеете возможность применять таблицы ответов с фак торами, каковые имеют более двух вероятных значений.

Ловушка Не требуется создавать и таблицу ответов, и дерево ответов, дабы продемонстрировать одинаковый фрагмент информации; достаточно одного из них.

В табл. 11-2 продемонстрирована таблица ответов с логикой, управляющей принятием либо отклонением запроса нового химиката Chemical Tracking System. На решение воздействует четыре фактора:

  • авторизирован ли пользователь, создающий запрос;
  • имеется ли химикат в наличии на складе либо у поставщика;
  • включен ли химикат в перечень страшных химикатов, для работы с которыми нужна особая подготовка;
  • имеется ли у пользователя, создающего запрос, соответствующая подготовка для работы с этим типом страшного вещества.

Любой из этих четырех факторов имеет два вероятных условия, true либо false. В принципе это увеличивает на 24 либо 16 разные комбинации true/false для 16 возможных отдельных функциональных требований. Но на практике результатом многих комбинаций есть одинаковая реакция совокупности. В случае, если пользователь не авторизован для запроса химикатов, то совокупность не примет запрос, и так остальные условия несущественны (продемонстрированы прочерками в таблице ответов). Таблица говорит о том, что итог разных логических комбинаций — только пять отдельных функциональных требований.

Таблица 11 -2. Пример таблицы ответов для Chemical Tracking System

Номер требования
Условие
Пользователь авторизован false true true true true
Химикат имеется в наличии false true true true
Химикат считается страшным false true true
Сотрудник, разместивший заказ на химикат, прошел соответствующую подготовку false true
Воздействие
Принять запрос x x
Отклонить запрос ¦: x x

Таблицы решений и деревья решений

Рис. 11 -7. Пример дерева ответов для Chemical Tracking System

На рис. 11-7 продемонстрировано дерево ответов, воображающее ту же логику. Пять прямоугольников обозначают пять вероятных результатов принятия либо отклонения запроса на химикат. Таблицы ответов и деревья ответов — это хорошие методы документации требований (либо бизнес-правил), разрешающие не пропустить ни одну комбинацию условий. Кроме того сложная таблица либо дерево ответов более несложны для чтения, чем повторяющиеся требования в текстовом виде.

Последнее напоминание

У каждого приема моделирования, обрисованного в данной книге, имеется и собственные преимущества, и собственные ограничения. Эти приемы разрешают представить одинаковые области, исходя из этого вам не нужно создавать для собственного проекта все типы диаграмм. К примеру, если вы создаете диаграмму «сущность-словарь» и связь данных, не следует рисовать диаграмму классов (либо напротив). Не забывайте, что вы создаете модели анализа чтобы обеспечить более взаимодействия и высокий уровень понимания, чем тот, что дает текстовая спецификация требований к ПО либо любое второе представление требований. Старайтесь не стать догматиком и не принимать участие в религиозных войнах, каковые время от времени случаются в мире моделей и методов разработки ПО. Совместно этого, применяйте все дешёвые средства чтобы как возможно лучше растолковать требования к вашей совокупности.

Что сейчас? · Опробуйте на практике приемы моделирования, обрисованные в данной главе, задокументировав разработку существующей совокупности. К примеру, нарисуйте карту диалогов для банковского автомата либо Web-сайта, каковые вы используете; · Выясните часть спецификации требований к ПО, тяжёлую для восприятия, либо ту, где найдены недостатки. Выберите модель анализа, обрисованную в данной главе, которая подходит для представления данной части требований. Нарисуйте модель и оцените, помогла бы она решить проблему, создай вы ее раньше; · В следующий раз, в то время, когда вам пригодится задокументировать определенные требования, выберите прием моделирования, что дополняет текстовое описание. Сделайте набросок модели на бумаге либо доске один либо два раза, дабы убедиться, что вы на верном пути, после этого воспользуйтесь коммерческими инструментами автоматизированного проектирования ПО, каковые поддерживают условные обозначения модели, которую вы используете.

Лекция 9. Деревья решений


Интересные записи:

Понравилась статья? Поделиться с друзьями: