Функциональная спецификация (также функциональная спецификация , спецификации , документ функциональных спецификаций (FSD) , спецификация функциональных требований ) в системной инженерии и разработке программного обеспечения — это документ, определяющий функции, которые должна выполнять система или компонент (часто часть спецификации требований) (ISO/IEC/IEEE 24765-2010). [1]
Документация обычно описывает то, что необходимо пользователю системы, а также запрашиваемые свойства входов и выходов (например, программной системы). Функциональная спецификация является более техническим ответом на соответствующий документ с требованиями, например, Документ с требованиями к продукту "PRD" [ требуется ссылка ] . Таким образом, она подбирает результаты этапа анализа требований . В более сложных системах несколько уровней функциональных спецификаций обычно вложены друг в друга, например, на уровне системы, на уровне модуля и на уровне технических деталей.
Функциональная спецификация не определяет внутреннюю работу предлагаемой системы; она не включает в себя спецификацию того, как будет реализована функция системы .
Функциональное требование в функциональной спецификации может быть сформулировано следующим образом:
Такое требование описывает взаимодействие между внешним агентом ( пользователем ) и программной системой. Когда пользователь вносит данные в систему, нажимая кнопку OK, программа отвечает (или должна ответить), закрывая диалоговое окно, содержащее кнопку OK.
Существует множество целей для функциональных спецификаций. Одной из основных целей командных проектов является достижение некоторой формы консенсуса команды относительно того, чего должна достичь программа, прежде чем предпринимать более трудоемкие усилия по написанию исходного кода и тестовых случаев , за которыми следует период отладки . Обычно такой консенсус достигается после одного или нескольких обзоров заинтересованными сторонами текущего проекта после обсуждения экономически эффективного способа достижения требований, которым должно соответствовать программное обеспечение.
В упорядоченном жизненном цикле промышленной программной инженерии ( модель водопада ) функциональная спецификация описывает, что должно быть реализовано. Следующий документ , системная архитектура, описывает, как функции будут реализованы с использованием выбранной программной среды. В непромышленной разработке прототипических систем функциональные спецификации обычно пишутся после или как часть анализа требований.
Когда команда соглашается, что консенсус по функциональной спецификации достигнут, функциональная спецификация обычно объявляется «завершенной» или «подписанной». После этого обычно команда разработки и тестирования программного обеспечения пишет исходный код и тестовые случаи, используя функциональную спецификацию в качестве ссылки. Во время тестирования поведение программы сравнивается с ожидаемым поведением, как определено в функциональной спецификации.
Один из популярных методов написания функциональной спецификации включает рисование или визуализацию либо простых каркасов, либо точных, графически оформленных скриншотов пользовательского интерфейса. После того, как это будет завершено, и примеры экранов будут одобрены всеми заинтересованными сторонами, графические элементы могут быть пронумерованы, и для каждого числа на примере экрана могут быть добавлены письменные инструкции. Например, экран входа в систему может иметь поле имени пользователя, обозначенное как «1», и поле пароля, обозначенное как «2», а затем каждое число может быть объявлено в письменной форме для использования инженерами-программистами и позже для целей бета-тестирования, чтобы убедиться, что функциональность соответствует задуманному. Преимущество этого метода заключается в том, что к примерам экрана может быть прикреплено бесчисленное множество дополнительных деталей.