Функциональная спецификация | это... Что такое Функциональная спецификация? (original) (raw)

Разработка программного обеспечения

Процесс разработки ПО
Шаги процесса
АнализПроектированиеПрограммированиеДокументированиеТестирование
Модели
ИтеративнаяСпиральнаяКаскаднаяV-ModelDual Vee Model
Методологии
Agile (XP, Lean, Scrum, FDD и др.) • CleanroomOpenUPRADRUPMSFDSDMTDD
Сопутствующие дисциплины
Конфигурационное управлениеУправление проектамиУправление требованиями

Модель спецификаций и уровней разработки в системной инженерии. Во время разработки создаются серии спецификаций, которые описывают систему с разными уровнями детализации. Набор уникальных форм спецификаций представляет собой основу, состоящую из базовых конфигураций. Как показано на схеме в дополнение к ссылкам на разные уровни системной иерархии, эти конфигурации определяют разные фазы процесса проектирования.[1]

Функциональная спецификация в системотехнике и разработке программного обеспечения — это документ, описывающий требуемые характеристики системы (функциональность). Документация описывает необходимые для пользователя системы входные и выходные параметры (например, программная система).

Содержание

Обзор

В системотехнике спецификация — это документ, который понятно и точно описывает существенные технические требования для объектов, материалов или операций. Спецификации помогают устранить дублирование и несоответствия, позволяют точно оценить необходимые действия и ресурсы, выступают в качестве согласующего и справочного документов о внесённых изменениях, предоставляют документацию с конфигурацией, и даёт возможность взаимодействия лиц, работающих с восемью основными функциями системного проектирования. Они дают точное представление о решении проблемы, повышая эффективность разработки системы и оценивая стоимость альтернативных путей проектирования. Они служат указанием для испытателей для верификации (качественной оценки) каждого технического требования.[1]

Функциональная спецификация не определяет операции, происходящие внутри данной системы и каким образом будет реализована её функция. Вместо этого, она рассматривает взаимодействие с внешними агентами (например, персонал, использующий программное обеспечение; периферийные устройства компьютера или другие компьютеры), которые могут "следить", взаимодействуя с системой.

Пример из типичной функциональной спецификации:

Когда пользователь нажимает кнопку ОК, окно диалога закрывается и в фокусе оказывается главное окно, которое было до появления диалога.

Такое требование описывает взаимодействие внешнего агента (пользователь) и программной системы. Когда пользователь производит ввод в систему, путём нажатия кнопки ОК, программа отвечает (или должна ответить) закрытием окна, содержащего эту кнопку.

Спецификация может быть неформальной, тогда её можно воспринимать как план или руководство пользователя с точки зрения разработчика, или формальной, в таком случае она определяет математические или программные условия. На практике большинство успешных спецификации пишутся, чтобы облегчить понимание и тонкую настройку приложений, которые уже хорошо спроектированы, но если речь идёт о жизненно важных программных системах, в таких случаях спецификация тщательно создаётся до начала разработки приложения. Спецификации наиболее важны для внешних интерфейсов, которые должны быть стабильными.

Назначение

Функциональные спецификации могут создаваться с разными целями. Одна из основных целей: привести группу разработчиков к единому мнению о том, как в итоге должна выглядеть программа, прежде чем приступать к действиям, требующим значительного времени (написание исходного кода, тестирование, последующая отладка программы). Обычно, консенсус достигается после одного или нескольких оценок стейкхолдерами экономически эффективных путей достижения технических требований, которые требуются для выполнения программного продукта.

Применение

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

Когда группа разработчиков приходит к общему мнению о готовности функциональной спецификации, то в таком случае её называют "завершенной" или "подписанной". После этого, программисты и тестировщики пишут исходный код и тестируют программу, используя функциональную спецификацию в качестве эталона. Во время тестирования осуществляется сравнение действий программы с ожидаемыми, определёнными в спецификации.

Типы спецификаций разработки программного обеспечения

См. также

Примечания

  1. 1 2 Systems Engineering Fundamentals. Defense Acquisition University Press, 2001 (англ.)

Ссылки

Просмотр этого шаблона Разработка программного обеспечения
Известныедеятели Кент БекГради БучФред Брукс • Barry Boehm • Уорд КаннингемОле-Йохан Даль • Том Демарко • Эдсгер Вибе ДейкстраДональд КнутМартин ФаулерЧарльз Энтони Ричард Хоар • Watts Humphrey • Майкл Джексон • Ивар Якобсон • Craig Larman • James Martin • Мейер Бертран • Дэвид Парнас • Winston W. Royce • James Rumbaugh • Никлаус ВиртЭдвард ЙорданСтив Макконнелл
Процесс Анализ требованийПроектированиеПрограммированиеТестированиеВнедрениеСопровождениеФормальные методыСтадии разработки
Концепции Моделирование данных • Архитектура ПОФункциональная спецификация • Язык моделирования • ПарадигмаМетодологияПроцесс разработкиКачество • Обеспечение качества • Структурный анализ)
Направления Программирование (Аспектно-ориентированноеОбъектно-ориентированноеПроблемно-ориентированное) • ОнтологияСервис-ориентированная архитектураОценка затрат на разработку
Моделиразработки AgileCleanroomCASEИтеративная разработкаRUPOpenUPRADScrumMSFСпиральнаяКаскаднаяXPV-ModelDual Vee ModelDSDM
Другие модели CMMCMMIДанных • Function model • IDEFИнформационная • Metamodeling • Object model • View model • UML
Прочее Информатика • Инженерия (Компьютерная • Организационная) • История разработки ПО • Документирование • Управление (КонфигурационноеПроектамиПрограммамикачеством) • ЭргономикаСистемотехникаОбратная разработкаВерсии