При проектировании системы ИИ очень часто бывает полезно рассматривать эту систему в целом или отдельную ее подсистему как некую процедуру или функцию, которой передаются значения определенных параметров и которая возвращает результат в том или ином виде, В языке C++ предварительное объявление функции называется прототипом (prototype). Создав такой прототип, остается лишь формально определить входы и выходы, используя для этого ключевые слова C++, которые предназначены для описания структур данных.
Однако прежде чем приступать к реализации функции, необходимо установить, как она соотносится с уже имеющимися внешними переменными. Для этого следует выяснить, как ведет себя внешний по отношению к создаваемой функции программный код. Проработав в техзадании прототип и описание контекста, в котором он используется, мы тем самым на порядок снижаем уровень сложности задачи по написанию конкретного программного кода, реализующего это техзадание. Именно для этого мы и применяем этап технического проектирования: для максимального упрощения этапа реализации путем формализации всех аспектов задачи.