Спецификация требований
Спецификация требований — это деятельность по документированию выявленных и проанализированных требований в точной, последовательной и проверяемой форме, которая служит согласованной основой для проектирования, конструирования и приемки.
Definition
Спецификация требований — это создание документированного представления системных требований, написанного таким образом, чтобы каждое требование было однозначным, проверяемым и отслеживаемым, а вся совокупность была согласованной и полной.
Scope
Эта тема охватывает структуру и содержание спецификации требований к программному обеспечению; стили, варьирующиеся от структурированного естественного языка до вариантов использования, пользовательских историй и формальных моделей; качественные атрибуты хороших требований, такие как однозначность, полнота, согласованность и тестируемость; а также стандарты, такие как ISO/IEC/IEEE 29148, которые предписывают содержание спецификаций.
Core questions
- Как можно сделать требования на естественном языке однозначными и проверяемыми?
- Когда формальные или модельные спецификации оправданы?
- Какие качественные атрибуты характеризуют хорошую спецификацию?
- Как следует организовывать функциональные и нефункциональные требования в документе?
Key theories
- Качественные атрибуты требований
- Отдельные требования должны быть однозначными, проверяемыми, осуществимыми и необходимыми, в то время как набор должен быть полным, согласованным и отслеживаемым; эти атрибуты дают конкретные критерии для проверки спецификации.
- Формальная против неформальной спецификации
- Спецификации варьируются от структурированного естественного языка и вариантов использования до формальных математических нотаций; формальность повышает точность и анализируемость за счет затрат усилий и доступности, поэтому уровень выбирается в соответствии с риском и аудиторией.
Clinical relevance
Четкая спецификация является контрактом между заинтересованными сторонами и разработчиками, а также эталоном для верификации; двусмысленность или упущения в спецификации приводят к дефектным проектам и спорам о том, что было обещано.
Evidence & guidelines
ISO/IEC/IEEE 29148 определяет рекомендуемую структуру и качественные характеристики спецификаций требований и является основным стандартом, регулирующим их содержание.
History
Ранние спецификации в значительной степени представляли собой прозу в свободной форме; стандарт IEEE 830 формализовал спецификацию требований к программному обеспечению в 1990-х годах, а более поздние работы ввели варианты использования, пользовательские истории, а также модельные и формальные нотации, кульминацией чего стал консолидированный стандарт ISO/IEC/IEEE 29148.
Debates
- Тяжеловесные документы против легковесных пользовательских историй
- Практика, ориентированная на планирование, предпочитает всеобъемлющие документы спецификаций, в то время как гибкая практика предпочитает легковесные пользовательские истории, детализируемые точно в срок; выбор обменивает тщательность и договорную ясность на адаптивность и сокращение накладных расходов на документацию.
Key figures
- Axel van Lamsweerde
- Michael Jackson
- Ian Sommerville
Related topics
Seminal works
- iso29148
- vanlamsweerde2009
- sommerville2015
Frequently asked questions
- Что делает требование тестируемым?
- Требование тестируемо, когда оно сформулировано достаточно точно, чтобы объективная процедура могла определить, удовлетворяет ли ему поставляемая система; расплывчатые термины, такие как «быстрый» или «удобный для пользователя», должны быть количественно определены или снабжены измеримыми критериями приемки.
- Заменяют ли пользовательские истории спецификации требований?
- Пользовательские истории — это легковесный стиль спецификации, подходящий для итеративной разработки, но они по-прежнему требуют критериев приемки и, для сложных или регулируемых систем, часто дополняются более подробной документацией для обеспечения полноты и отслеживаемости.