Анализ требований
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Часть серии о |
Разработка программного обеспечения |
---|
В системной инженерии и обеспечения разработке программного анализ требований фокусируется на задачах, которые определяют потребности или условия для удовлетворения нового или измененного продукта или проекта, принимая во внимание возможно противоречивые требования различных заинтересованных сторон , анализируя, документируя, проверяя и управляя программным обеспечением. или системные требования . [2]
Анализ требований имеет решающее значение для успеха или неудачи системного или программного проекта . [3] Требования должны быть документированы, осуществимы, измеримы, проверяемы, [4] прослеживаемый, [4] связаны с выявленными потребностями или возможностями бизнеса и определены на уровне детализации, достаточном для проектирования системы .
Обзор [ править ]
Концептуально анализ требований включает в себя три вида деятельности: [ нужна ссылка ]
- Выявление требований : (например, устав или определение проекта), документация бизнес-процессов и интервью с заинтересованными сторонами. Иногда это также называют сбором требований или обнаружением требований.
- Требования к записи: Требования могут быть задокументированы в различных формах, обычно включая сводный список, и могут включать документы на естественном языке, варианты использования , пользовательские истории , спецификации процессов и различные модели, включая модели данных.
- Анализ требований: определение того, являются ли заявленные требования ясными, полными, недублируемыми, краткими, действительными, последовательными и недвусмысленными, а также разрешение любых очевидных конфликтов. Анализ может также включать определение требований к размеру.
Анализ требований может оказаться долгим и утомительным процессом, в ходе которого задействуется множество тонких психологических навыков. Новые системы меняют окружающую среду и отношения между людьми, поэтому важно выявить все заинтересованные стороны, принять во внимание все их потребности и убедиться, что они понимают последствия новых систем. Аналитики могут использовать несколько методов, чтобы выявить требования клиента. Они могут включать в себя разработку сценариев (представленных в виде пользовательских историй в гибких методах ), определение вариантов использования , использование наблюдения на рабочем месте или этнографии , проведение интервью или фокус-групп (в этом контексте более точно называемых семинарами по требованиям или требованиями). обзорные сессии) и создание списков требований. Прототипирование может использоваться для разработки примерной системы, которую можно продемонстрировать заинтересованным сторонам. При необходимости аналитик будет использовать комбинацию этих методов для установления точных требований заинтересованных сторон, чтобы была создана система, отвечающая потребностям бизнеса. [ нужна ссылка ] Качество требований можно улучшить с помощью этих и других методов:
- Визуализация. Использование инструментов, способствующих лучшему пониманию желаемого конечного продукта, таких как визуализация и моделирование.
- Последовательное использование шаблонов. Создание согласованного набора моделей и шаблонов для документирования требований.
- Документирование зависимостей . Документирование зависимостей и взаимосвязей между требованиями, а также любых предположений и объединений.
Темы анализа требований [ править ]
Идентификация заинтересованных сторон
См. «Анализ заинтересованных сторон» , где обсуждаются люди или организации (юридические лица, такие как компании и органы по стандартизации), которые имеют действительный интерес к системе. Они могут быть затронуты этим как прямо, так и косвенно.
Важным новым акцентом в 1990-е годы стал акцент на выявлении заинтересованных сторон . Все больше признается, что заинтересованные стороны не ограничиваются организацией, нанимающей аналитика. Другие заинтересованные стороны будут включать в себя:
- любой, кто управляет системой (обычные операторы и операторы технического обслуживания)
- любой, кто получает выгоду от системы (функциональные, политические, финансовые и социальные бенефициары)
- любой, кто участвует в покупке или приобретении системы. В организации, производящей продукт массового рынка, управление продукцией, маркетинг, а иногда и продажи выступают в роли суррогатных потребителей (покупателей массового рынка), направляя разработку продукта.
- организации, регулирующие аспекты системы (финансовые органы, органы безопасности и другие регуляторы)
- люди или организации, выступающие против системы (негативные заинтересованные стороны; см. также случай злоупотребления )
- организации, ответственные за системы, которые взаимодействуют с проектируемой системой.
- те организации, которые горизонтально интегрируются с организацией, для которой аналитик разрабатывает систему.
разработке требований (JRD совместной Сессии по )
Требования часто имеют межфункциональные последствия, которые неизвестны отдельным заинтересованным сторонам и часто упускаются из виду или не полностью определяются во время интервью с заинтересованными сторонами. Эти кросс-функциональные последствия могут быть выявлены путем проведения сеансов JRD в контролируемой среде при содействии обученного фасилитатора (бизнес-аналитика), в ходе которого заинтересованные стороны участвуют в обсуждениях, чтобы выявить требования, проанализировать их детали и раскрыть кросс-функциональные последствия. Должен присутствовать специальный секретарь, который будет документировать дискуссию, освобождая бизнес-аналитика для того, чтобы вести дискуссию в направлении, которое генерирует соответствующие требования, соответствующие цели сессии.
Сессии JRD аналогичны совместным сессиям по разработке приложений . В первом случае на занятиях выявляются требования, которые определяют дизайн, тогда как во втором случае выявляются конкретные особенности дизайна, которые необходимо реализовать для удовлетворения выявленных требований.
контракта стиле требований в Списки
Одним из традиционных способов документирования требований были списки требований в виде контрактов. В сложной системе такие списки требований могут занимать сотни страниц.
Подходящей метафорой был бы очень длинный список покупок. Такие списки не пользуются популярностью в современном анализе; поскольку они оказались крайне неудачными в достижении своих целей [ нужна ссылка ] ; но их все еще можно увидеть по сей день.
Сильные стороны [ править ]
- Предоставляет контрольный список требований.
- Предоставить контракт между спонсором(ами) проекта и разработчиками.
- Для большой системы можно предоставить описание высокого уровня, из которого можно вывести требования более низкого уровня.
Слабые стороны [ править ]
- Такие списки могут занимать сотни страниц. Они не предназначены для использования в качестве удобного для чтения описания желаемого приложения.
- В таких списках требований абстрагируются все требования, поэтому контекста мало. Бизнес-аналитик может включить контекст требований в сопроводительную проектную документацию.
- Эта абстракция не предназначена для описания того, как требования сочетаются или работают вместе.
- Список может не отражать связи и зависимости между требованиями. Хотя список действительно позволяет легко расставить приоритеты для каждого элемента, удаление одного элемента из контекста может сделать бесполезным весь вариант использования или бизнес-требование.
- Список не заменяет необходимость тщательного рассмотрения требований с заинтересованными сторонами для лучшего понимания последствий для разработки желаемой системы/приложения.
- Простое создание списка не гарантирует его полноты. Бизнес-аналитик должен приложить добросовестные усилия для обнаружения и сбора достаточно полного списка и полагаться на то, что заинтересованные стороны укажут на недостающие требования.
- Эти списки могут создать ложное чувство взаимопонимания между заинтересованными сторонами и разработчиками; Бизнес-аналитики имеют решающее значение для процесса перевода.
- Практически невозможно раскрыть все функциональные требования до начала процесса разработки и тестирования. Если эти списки рассматривать как неизменный контракт, то требования, возникающие в процессе разработки, могут привести к спорному запросу на изменение.
Альтернатива спискам требований [ править ]
В качестве альтернативы спискам требований гибкая разработка программного обеспечения использует пользовательские истории , чтобы предлагать требования на повседневном языке.
Измеримые цели [ править ]
Лучшие практики рассматривают составленный список требований просто как подсказку и постоянно задают вопрос «почему?» до тех пор, пока не будут обнаружены фактические деловые цели. Заинтересованные стороны и разработчики могут затем разработать тесты для измерения того, какой уровень каждой цели был достигнут на данный момент. Такие цели меняются медленнее, чем длинный список конкретных, но неизмеренных требований. Как только будет установлен небольшой набор критически важных, измеренных целей, быстрое прототипирование и короткие итеративные этапы разработки могут приступить к созданию реальной ценности для заинтересованных сторон задолго до того, как проект будет завершен наполовину.
Прототипы [ править ]
Прототип — это компьютерная программа, которая демонстрирует часть свойств другой компьютерной программы, позволяя пользователям визуализировать еще не созданное приложение. Популярной формой прототипа является макет , который помогает будущим пользователям и другим заинтересованным сторонам получить представление о том, как будет выглядеть система. Прототипы облегчают принятие проектных решений, поскольку аспекты приложения можно увидеть и поделиться ими еще до его создания. Значительные улучшения в общении между пользователями и разработчиками часто наблюдались с появлением прототипов. Ранние просмотры приложений привели к меньшему количеству изменений в дальнейшем и, следовательно, значительно снизили общие затраты. [ нужна ссылка ]
Прототипы могут представлять собой плоские диаграммы (часто называемые каркасами ) или рабочие приложения, использующие синтезированную функциональность. Каркасы создаются в различных документах графического дизайна и часто удаляют все цвета из дизайна (т. е. используют цветовую палитру в оттенках серого) в тех случаях, когда ожидается, что к окончательному программному обеспечению будет применен графический дизайн . Это помогает избежать путаницы относительно того, представляет ли прототип окончательный внешний вид приложения. [ нужна ссылка ]
Варианты использования [ править ]
Вариант использования — это структура для документирования функциональных требований к системе, обычно включающей программное обеспечение, новое или изменяющееся. Каждый вариант использования предоставляет набор сценариев , которые описывают, как система должна взаимодействовать с пользователем-человеком или другой системой для достижения определенной бизнес-цели. В сценариях использования обычно избегают технического жаргона, предпочитая вместо этого язык конечного пользователя или эксперта в предметной области . Варианты использования часто создаются совместно инженерами по требованиям и заинтересованными сторонами.
Варианты использования — это обманчиво простые инструменты для описания поведения программного обеспечения или систем. Вариант использования содержит текстовое описание того, как пользователи собираются работать с программным обеспечением или системой. Варианты использования не должны описывать внутреннюю работу системы и не должны объяснять, как эта система будет реализована. Вместо этого они показывают шаги, необходимые для выполнения задачи, без последовательных предположений.
Спецификация требований [ править ]
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( февраль 2018 г. ) |
Спецификация требований — это синтез результатов исследований относительно текущих потребностей бизнеса и оценка этих потребностей для определения и указания того, что требуется для удовлетворения потребностей в рамках рассматриваемого объема решения. Открытие, анализ и спецификация перемещают понимание из текущего состояния «как есть» в будущее состояние «как будет». Спецификация требований может охватывать всю широту и глубину будущего состояния, которое должно быть реализовано, или может быть направлена на устранение конкретных пробелов, таких как приоритетные ошибки в системе программного обеспечения, которые необходимо исправить, и улучшения, которые необходимо внести. Учитывая, что любой крупный бизнес-процесс почти всегда использует программное обеспечение, системы и технологии обработки данных, спецификация требований часто связана со сборкой программных систем, закупками, стратегиями облачных вычислений, встроенным программным обеспечением в продукты или устройства или другими технологиями. Более широкое определение спецификации требований включает или фокусируется на любой стратегии или компоненте решения, например, обучении, руководствах по документации, персонале, маркетинговых стратегиях, оборудовании, расходных материалах и т. д.
Виды требований [ править ]
Этот раздел может потребовать очистки Википедии , чтобы соответствовать стандартам качества . ( февраль 2011 г. ) |
Требования классифицируются . по нескольким признакам Ниже приведены общие категории требований, относящихся к техническому менеджменту: [1]
Бизнес-требования [ править ]
Заявления о целях бизнес-уровня без ссылки на подробную функциональность. Обычно это высокоуровневые (программные и/или аппаратные) возможности, необходимые для достижения бизнес-результатов.
Требования заказчика [ править ]
Констатации фактов и предположений, которые определяют ожидания от системы с точки зрения целей миссии, окружающей среды, ограничений и показателей эффективности и пригодности (MOE/MOS). Клиентами являются те, кто выполняет восемь основных функций системного проектирования, при этом особое внимание уделяется оператору как ключевому потребителю. Эксплуатационные требования будут определять основные потребности и, как минимум, отвечать на вопросы, поставленные в следующем списке: [1]
- Оперативное распространение или развертывание : Где будет использоваться система?
- Профиль или сценарий миссии : как система достигнет своей цели?
- Производительность и связанные с ней параметры : Каковы критические параметры системы для выполнения миссии?
- Среды использования : Как будут использоваться различные компоненты системы?
- Требования эффективности : Насколько эффективной или действенной должна быть система при выполнении своей миссии?
- Жизненный цикл эксплуатации : как долго система будет использоваться пользователем?
- Окружающая среда : В каких средах система будет работать эффективно?
Архитектурные требования [ править ]
что необходимо сделать, определяя необходимую системную архитектуру системы Архитектурные требования объясняют , .
требования Структурные
Структурные требования объясняют, что необходимо сделать, определяя необходимую структуру системы.
требования Поведенческие
Поведенческие требования объясняют, что необходимо сделать, определяя необходимое поведение системы.
Функциональные требования [ править ]
Функциональные требования объясняют, что должно быть сделано, определяя необходимую задачу, действие или деятельность, которые должны быть выполнены. Анализ функциональных требований будет использоваться в качестве функций верхнего уровня функционального анализа. [1]
Нефункциональные требования [ править ]
Нефункциональные требования — это требования, определяющие критерии, по которым можно судить о работе системы, а не конкретное поведение.
Требования к производительности [ править ]
Степень, в которой миссия или функция должны быть выполнены; обычно измеряется с точки зрения количества, качества, охвата, своевременности или готовности. В ходе анализа требований требования к производительности (насколько хорошо это должно быть выполнено) будут интерактивно разрабатываться для всех выявленных функций на основе факторов жизненного цикла системы; и характеризуются с точки зрения степени уверенности в их оценке, степени критичности для успеха системы и их связи с другими требованиями. [1]
Требования к дизайну [ править ]
Требования «создавать», «кодировать» и «покупать» для продуктов, а также требования «как выполнять» для процессов выражены в пакетах технических данных и технических руководствах. [1]
Производные требования [ править ]
Требования, которые подразумеваются или трансформируются из требований более высокого уровня. Например, требование большой дальности действия или высокой скорости может привести к проектному требованию по малому весу. [1]
Распределенные требования [ править ]
Требование устанавливается путем разделения или иного распределения требования высокого уровня на несколько требований более низкого уровня. Пример: предмет весом 100 фунтов, состоящий из двух подсистем, может привести к тому, что требования к весу составят 70 фунтов и 30 фунтов для двух предметов более низкого уровня. [1]
К широко известным моделям категоризации требований относятся FURPS и FURPS+, разработанные в Hewlett-Packard .
Проблемы анализа требований [ править ]
Проблемы заинтересованных сторон
Стив МакКоннелл в своей книге Rapid Development подробно описывает ряд способов, которыми пользователи могут препятствовать сбору требований:
- Пользователи не понимают, чего хотят, или пользователи не имеют четкого представления об их требованиях.
- Пользователи не будут брать на себя обязательства соблюдать набор письменных требований.
- Пользователи настаивают на новых требованиях после того, как стоимость и график будут зафиксированы.
- Общение с пользователями происходит медленно
- Пользователи часто не участвуют в отзывах или не имеют возможности это делать.
- Пользователи технически неподготовлены
- Пользователи не понимают процесс разработки
- Пользователи не знают о существующих технологиях
Это может привести к ситуации, когда требования пользователей продолжают меняться даже после начала разработки системы или продукта.
Проблемы инженера/разработчика [ править ]
Возможные проблемы, возникающие у инженеров и разработчиков во время анализа требований:
- Естественная склонность к написанию кода может привести к тому, что реализация начнется до завершения анализа требований, что потенциально может привести к изменениям кода для удовлетворения фактических требований, как только они станут известны.
- У технического персонала и конечных пользователей может быть разный словарный запас. Следовательно, они могут ошибочно полагать, что находятся в полном согласии до тех пор, пока не будет поставлен готовый продукт.
- Инженеры и разработчики могут попытаться согласовать требования с существующей системой или моделью, а не разрабатывать систему, специфичную для нужд клиента.
Попытки решения [ править ]
Одной из попыток решения проблем со связью было найм специалистов по бизнес-анализу или системному анализу.
Техники, представленные в 1990-х годах, такие как прототипирование , унифицированный язык моделирования (UML), варианты использования и гибкая разработка программного обеспечения , также предназначены для решения проблем, возникавших при использовании предыдущих методов.
новый класс инструментов моделирования Кроме того, на рынке появился или определения приложений. Эти инструменты предназначены для устранения разрыва в общении между бизнес-пользователями и ИТ-организацией, а также для того, чтобы позволить приложениям «тестировать рынок» до того, как будет создан какой-либо код. Лучшие из этих инструментов предлагают:
- электронные доски для эскизов потоков приложений и тестирования альтернатив
- способность фиксировать бизнес-логику и потребности в данных
- способность создавать высококачественные прототипы, которые точно имитируют конечное приложение
- интерактивность
- возможность добавлять контекстные требования и другие комментарии
- возможность удаленным и распределенным пользователям запускать моделирование и взаимодействовать с ним
См. также [ править ]
- Бизнес-анализ
- Реинжиниринг бизнес-процессов
- Креативное задание
- Моделирование данных
- Бриф на дизайн
- Функциональные требования
- Информационные технологии
- Модельно-ориентированное проектирование
- Язык преобразования модели
- Оценка потребностей
- Нефункциональные требования
- Архитектура процесса
- Моделирование процессов
- Анализ соответствия продукта
- Выявление требований
- Группа специалистов по разработке требований
- Управление требованиями
- Прослеживаемость требований
- Разработка программного обеспечения на основе поиска
- Прототипирование программного обеспечения
- Требования к программному обеспечению
- Спецификация требований к программному обеспечению
- Системный анализ
- Системные требования
- Спецификация системных требований
- Ориентированный на пользователя дизайн
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час Основы системной инженерии. Архивировано 22 июля 2011 г. в издательстве Wayback Machine Defense Acquisition University Press, 2001 г.
- ^ Котоня, Джеральд; Соммервилл, Ян (1998). Разработка требований: процессы и методы . Чичестер, Великобритания: Джон Уайли и сыновья. ISBN 9780471972082 .
- ^ Ален Абран; Джеймс В. Мур; Пьер Бурк; Робер Дюпюи, ред. (март 2005 г.). «Глава 2: Требования к программному обеспечению» . Руководство по совокупности знаний в области программной инженерии (изд. 2004 г.). Лос-Аламитос, Калифорния: Издательство IEEE Computer Society Press. ISBN 0-7695-2330-7 . Проверено 8 февраля 2007 г.
В индустрии программного обеспечения широко признано, что проекты разработки программного обеспечения критически уязвимы, когда эти действия выполняются плохо.
- ↑ Перейти обратно: Перейти обратно: а б Институт управления проектами 2015 , с. 158, §6.3.2.
Библиография [ править ]
- Брайан Беренбах; Дэниел Паулиш; Юрген Кацмайер; Арнольд Рудорфер (2009). Разработка требований к программному обеспечению и системам: на практике . Нью-Йорк: McGraw-Hill Professional. ISBN 978-0-07-160547-2 .
- Хэй, Дэвид С. (2003). Анализ требований: от бизнес-представлений к архитектуре (1-е изд.). Река Аппер-Сэдл, Нью-Джерси: Прентис-Холл. ISBN 0-13-028228-6 .
- Лапланте, Фил (2009). Разработка требований к программному обеспечению и системам (1-е изд.). Редмонд, Вашингтон: CRC Press. ISBN 978-1-4200-6467-4 .
- Институт управления проектами (01.01.2015). Бизнес-анализ для практиков . Институт управления проектами. ISBN 978-1-62825-069-5 .
- МакКоннелл, Стив (1996). Быстрая разработка: графики укрощения дикого программного обеспечения (1-е изд.). Редмонд, Вашингтон: Microsoft Press. ISBN 1-55615-900-5 .
- Нусейбе, Б.; Истербрук, С. (2000). Разработка требований: дорожная карта (PDF) . ММВБ '00. Материалы конференции о будущем программной инженерии . стр. 35–46. CiteSeerX 10.1.1.131.3116 . дои : 10.1145/336512.336523 . ISBN 1-58113-253-0 .
- Эндрю Стеллман и Дженнифер Грин (2005). Управление проектами прикладного программного обеспечения . Кембридж, Массачусетс: O'Reilly Media. ISBN 0-596-00948-8 .
- Карл Вигерс и Джой Битти (2013). Требования к программному обеспечению (3-е изд.). Редмонд, Вашингтон: Microsoft Press. ISBN 978-0-7356-7966-5 .
Внешние ссылки [ править ]
- Рецензируемая статья в энциклопедии по разработке и анализу требований
- Университета оборонных закупок Процесс определения требований заинтересованных сторон [ мертвая ссылка ] --- Процесс определения требований заинтересованных сторон в Wayback Machine (архивировано 23 декабря 2015 г.)
- Руководство по документу системных требований MIL-HDBK 520
- ^ Андерсон, Шарлотта (8 июня 2022 г.). «Зачем вам нужна идентификация и анализ заинтересованных сторон | Желудь» . Желудь ПЛМС . Проверено 19 января 2024 г.