Подготовка полных и правильных спецификаций считается одним из ответственейших этапов в разработке больших программных комплексов. Благодаря составлению внешних спецификаций уточняется исходная постановка задачи и устраняются противоречия, которые обусловлены неоднозначностью понятий естественного языка, применяемого для описания условия задачи и функций программы. Внешние спецификации - важнейший документ для каждой программы, описывающий внешнее взаимодействие программы с пользователем без конкретизации внутренней структуры самой программы.
Составление спецификаций - это функция не заказчика, а специалистов особого рода, обладающих знаниями в области системного анализа, проектирования и тестирования программ, психологии общения человека с машиной, теории программирования и т.п.
Спецификации каждой функции должны освещать следующие вопросы.
1. Описание исходных данных. Должны быть точно описаны синтаксис (формат) и семантика (назначение, тип, допустимые значения, область изменения) всех исходных данных, которые вводит пользователь в программу.
2. Описание выходных данных. Дается точное описание семантики и синтаксиса всех результатов, формируемых программой, а также сообщений оператору об ошибках, о ходе вычислительного процесса, о запросах и т.д. Указывается реакция программы на некорректность исходных данных.
3. Описание функций преобразования информации, выполняемых программой, с точки зрения пользователя.
4. Дополнительные сведения о программе: ограничения на используемую память, длину программы, время ее работы; идеи относительно внутреннего проектирования функций (если это необходимо).
3. Внутреннее проектирование и разработка ПО