Ответ: Switch-технология
Если коротко, то проектирование идёт примерно так (не расписана реализация и тестирование):
1 Ознакомиться с заданием, в том числе изучить все доступные материалы, идущие с заданием.
2 Найти информацию по заданию на сервере. Папка PUB/Docs.
3 Провести исследование задачи в интернете. Приоритетна информация производителей, информация с форумов имеет низший приоритет.
4 Составить примерный план реализации задачи: что примерно нужно сделать (несколько вариантов), в каком виде это сделать (в макросе, в нескольких макросах, в существующих макросах).
5 Составить список рисков для задачи. Оценить по списку, затрагивает ли решаемая задача существующие функции, реализуема ли задача в существующих условиях (задача, например, может быть технически невыполнимой или её объём будет заведомо большим - "занять миллион блоков"). На этом этапе допустимы пробные реализации.
6 На основе карты рисков составить детальный план реализации задачи.
7 Провести презентацию задачи для других участников проекта так, как буд-то задача уже реализована, рассказать о задаче, о вариантах её решения, о выбранном варианте, о сопутствующих задаче функциях. О том, как работает задача в рамках существующего продукта.
8 Написать Руководство Пользователя по будущим функциям, которые будут введены/изменены в процессе реализации задачи. Это нужно для более глубокой оценки взаимодействия функций и выработке примерно интерфейса с пользователем (если задание имеет этот интерфейс).
9 Учесть все замечания, полученные в ходе презентации. Если замечания существенны, то вернуться к составлению карты рисков.
11 Реализовать задание.
12 Автономно протестировать реализованную задачу.
13 Если задача взаимодействует с существующими функциями, то провести пробную интеграцию и осуществить тестирование в комплексе.
14 Описать интеграцию, если таковая требуется.
15 Отредактировать Руководство Пользователя, если в процессе реализации что-то было изменено.
16 Работа окончена.
17 Тестирование реализации задания сторонним тестером.
В ходе проектирования выясняется необходимость автомата и возможность его применения, оптимизируются переходы, выявляются исключения и необходимость обработчика исключений.
__________________
Программа делает то что написал программист, а не то что он хотел.
Добро всегда побеждает зло. Кто победил - тот и добрый.
|