Содержимое
Обещал написать, какими вопросами можно зацепить функции для робота-пылесоса. В целом, всё сводится к анализу контекста и окружения: нам нужно понять, что может находиться вокруг робота во время работы и с чем он может столкнуться. Также нужно немного подвигать временное окно — что было до того, как началось выполнение действия, и что может быть после. Я пользуюсь набором простых вопросов (иногда в уме, иногда в явном виде — для сложных проектов) для каждого действия (сценария). Вопросы: * Для чего? (Вариант: что будет дальше?) * Какое обратное действие? * Кто? (роль; есть ли дополнительные признаки и условия?) * Когда? (ограничения на допустимые состояния; триггеры автоматического запуска) * Где? (какое устройство? что вокруг?) * С кем? Кто рядом? * Сколько? (любой численный показатель, который может описывать процесс) * Как? (какие есть альтернативные способы выполнения действия и какие ограничения?) * Какой? (особенности, классификаторы и состояния объекта) * Что нужно/может быть до начала действия? (в описании use case это нужно писать в "предусловия", но мало кто пишет) * Что уменьшается/увеличивается в процессе? (например, при записи на курс уменьшается число свободных мест; у робота тратится заряд и увеличивается убранная площадь) * Чем заканчивается действие? (Постусловия, что будет создано? что поменяется? есть ли триггер на прерывание длительного действия?) * Что может помешать выполнить действие? * Что будет, если каких-то объектов 0,1,N? (Например, один студент записывается на курс. Может ли на курс записаться N студентов одним действием? А N студентов параллельно?) Можно добавить вопросы безопасности: * Чем система может навредить при выполнении действия? * Какую информацию нельзя показывать/изменять при выполнении действия? * Что может сделать злоумышленник при выполнении действия? На фичу из предыдущего поста могут навести вопросы "Кто рядом?" (дети, домашние животные), "Что было до?" (что от них могло остаться на полу?), "Что может помешать?", "Чем система может навредить?"