Конспект методологии инженерии требований сообщества IREB

{Развернуть все...}

Модель знаний о требованиях в формате Archmate

Содержание

1. Введение в инженерию требований

Цель обучения:

    {+...}

  • понимать, о чем RE и его ценность.

Термины: требование, спецификация требований, инженерия требований, заинтересованная сторона, система инженер по требованиям.

1.1. Инженерия требований: Что (L1)

Цель обучения:

    {+...}

  • помнить фундаментальную терминологию (L1).

Люди и организации имеют желания и потребности для построения нового или изменения существующего. Такие потребности называются требованиями или:

    {+...}

  • потребность заинтересованных сторон
  • способность или свойство системы что то включать
  • документированное представление потребности, способности, свойства.

Спецификация требований — системно представленная коллекция требований, обычно для системы, удовлетворяющая заданным критериям.

Requirements Engineering — систематический и организованный подход к спецификации и управлению требованиями с целью понимания желаний и потребностей заинтересованных сторон и минимизации риска разработки системы, которая не отвечала бы желаниям и потребностям.

Система:

    {+...}

  • в общем: принцип упорядочения или структурирования
  • в инженерии требований: целостный разделяемый набор элементов, который посредством скоординированных действий достигает некоторых целей.

Предметы для построения или развития рассматриваются как системы:

    {+...}

  • продукты для потребителей
  • сервисы, доступные для потребителей
  • другие поставляемые результаты: устройства, процедуры, инструменты, помогающие людям и организациям достигать своих целей
  • сочетания компонентов продуктов, сервисов или других поставляемых результатов.

Термин "Система" может включать продукты, сервисы, приложения или устройства.

Заинтересованные стороны — лица или организации, которое влияет на требования к системе или на которое эта система оказывает влияние.

Цель RE — определять и управлять требованиями для систем таким образом, чтобы система, будучи внедрена и установлена, удовлетворяла желания и потребности заинтересованных сторон.

В RE различаются три вида требований:

    {+...}

  • функциональные требования рассматривают результат или поведение, которое должно быть обеспечено функцией или системой, включая требования к данным и взаимодействию системы с окружением
  • требования к качеству относятся к вопросам качества, которые не покрываются функциональными требованиями, такие как производительность, доступность, безопасность или надежность - «как система должна делать ...»
  • ограничения — это требования, ограничивающие область решений, которым требуется отвечать функциональными требованиям и требованиям к качеству.

1.2. Инженерия требований: Почему (L2)

Цель обучения:

    {+...}

  • уметь объяснить ценность RE (L2)
  • уметь перечислить симптомы и причины неадекватных требований (L1).

Адекватные требования добавляют ценность в процесс разработки и эволюции систем:

    {+...}

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

Типичные симптомы неадекватного RE — отсутствие, неясные или некорректные требования, что особенно относится к проблемам:

    {+...}

  • переход прямо к построению системы
  • проблемы коммуникаций между участниками
  • предположение, что требования самоочевидны
  • неадекватные обучение RE и навыки.

1.3. Инженерия требований: Где (L2)

Цель обучения:

    {+...}

  • знать где RE может быть применим (L1)
  • понимать различные виды требований (L2).

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

Различают требования (проекции требований в зависимости от точки зрения):

    {+...}

  • системные требования — что система должна делать (наблюдаться через интерфейс между системой и окружением так, чтобы система удовлетворяла владельцев требований)
  • требования заинтересованных сторон — потребности с точки зрения заинтересованных сторон

      {+...}

    • пользовательские требования — требования с точки зрения пользователей системы
    • бизнес-требования — бизнес-цели, задачи и потребности организаций, которые должны быть достигнуты системой
  • требования предметной области — требуемые предметной областью свойства.

1.4. Инженерия требований: Как (L2)

Цель обучения:

    {+...}

  • знать основные задачи RE и для как процесс RE может быт сконфигурирован для их выполнения (L1).

Основные задачи RE:

    {+...}

  • выявление
  • документирование
  • валидация
  • управление требованиями

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

1.5. Роль и задачи инженера по требованиям (L2)

Цель обучения:

    {+...}

  • охарактеризовать роль и задачи инженера по требованиям (L1).

Инженер по требованиям обычно не название должности, а роль, включающая функции:

    {+...}

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

На практике бизнес-аналитики, специалисты по приложениям, владельцы продуктов и даже разработчики выполняют роль инженера по требованиям.

Помимо технических и аналитических навыков, инженеру по требованиям так же требуются «софт» навыки:

    {+...}

  • способность слушать
  • вести переговоры
  • навыки посредничества
  • сопереживанием владельцам требований и открытость к нуждам и идеям других.

1.6. Что изучать об инженерии требований(L1)

Цель обучения:

    {+...}

  • знать, что инженеру по требованиям требуется изучать (L1).

Основные навыки, которые инженер по требованиям должен изучить:

    {+...}

  • фундаментальные принципы
  • как документировать требования в различных формах
  • как прорабатывать требования с использованием различных практик
  • как определять и работать в подходящим процессом RE
  • как управлять существующими требованиями
  • как применять инструменты поддержки.

К содержанию ...

 

2. Фундаментальные принципы инженерии требований

Цель обучения:

    {+...}

  • знать и понимать принципы RE.

Термины: контекст, требование, инженерия требований, заинтересованные стороны, разделяемое понимание, валидация.

2.1. Обзор принципов (L1)

Цель обучения:

    {+...}

  • перечислить принципы RE (L1).

Задача - целостная часть работы, которая должна быть выполнена.

Активность - действия или набор действий, которые лицо или группа лица должны выполнять, что исполнить задачу.

Практика - проверенный способ о том, как выполнять определенные типы задач или активностией.

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

    {+...}

  • Принцип 1. Ориентация на ценность: требования - это средство достижения целей, а не цель сами по себе
  • Принцип 2. Заинтересованные стороны: RE — о том, как удовлетворить желания и потребности заинтересованных сторон
  • Принцип 3. Разделяемое понимание: успех разработки системы не возможен без общей основы
  • Принцип 4. Контекст: системы не могут быть поняты в изоляции
  • Принцип 5. Проблема, требование, решение: неизбежно связанный треугольник
  • Принцип 6. Валидация: непроверенные требования не пригодны к использованию
  • Принцип 7. Развитие: изменение требований — не исключительная ситуация, а нормальный процесс
  • Принцип 8. Инновация: «больше того же недостаточно»
  • Принцип 9. Систематическая и дисциплинированная работа: "не работать без".

2.2. Пояснение принципов (L2)

Цель обучения:

    {+...}

  • помнить термины, ассоциированные с принципами RE (L1)
  • уметь объяснить принципы и причины, почему они важны (L2).

Принцип 1. Ориентация на ценность: требования - это средство достижения целей, а не цель сами по себе.

Ценность требований определяется как выгоды минус затраты на выявление, документирование, валидацию и управление требованиями. Выгоды требований заключаются в том, в какой степени они способствуют:

    {+...}

  • построение систем, которые удовлетворяют желаниям и потребностям заинтересованных сторон
  • уменьшение рисков сбоев и трудозатратной переработки разработанной системы.
Экономические эффекты RE в большинстве случаяв непрямые. RE сам по себе просто затраты

Принцип 2. Заинтересованные стороны: RE — о том, как удовлетворить желания и потребности заинтересованных сторон.

Надлежащая работа с заинтересованными сторонами — ключевая задача RE. Каждая заинтересованная сторона имеет роль в контексте разрабатываемой системы, например: пользователь, клиент, потребитель, оператор или регулятор. Заинтересованная сторона может выполнять более одной роли в один момент времени. Для ролей заинтересованных сторон с множеством действующих лиц, или когда действующие лица неизвестны может быть определено фиктивное описание археотипа, известное как персона. Не достаточно рассматривать только требования конечных пользователей или потребителей, так как можно упустить критические требования других пользователей. Пользователи, которые могут дать обратную связь (отзывы) о системе в использование также должны рассматриваться в качестве заинтересованных сторон.

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

Вовлечение корректных лиц в релевантных ролях заинтересованных сторон является ключевым для успешного RE.

Принцип 3. Разделяемое понимание: успех разработки системы не возможен без общей основы.

RE создает, стимулирует и защищает разделяемое понимание между и среди вовлеченных участников: заинтересованных сторон, инженера по требованиям и разработчиком. Существует две формы разделяемого понимания:

    {+...}

  • явное разделяемое понимание, достигаемое посредством документированных и согласованных требований
  • неявное разделяемое понимание, основанное на разделяемом знании о нуждах, видении, контексте и т.д.

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

Доказанные практики разделяемого понимания понимания включают:

    {+...}

  • создание словарей
  • создание прототипов
  • использование существующих систем как исходной точки.

Практики для оценки разделяемого понимания включают:

    {+...}

  • примеры ожидаемых результатов
  • исследование прототипов
  • оценка затрат реализации требований.

Наиболее важная практика для снижения влияния непонимания — использование процесса с короткими циклами обратной связи.

Принцип 4. контекст: системы не могут быть поняты в изоляции.

Системы встроены в контекст. Без понимания контекста невозможно определить систему правильно. В RE контекст системы является частью ее окружения, которое полезно для понимания системы и требований к ней. Границы системы — границы между системой и окружающим контекстом. Изначально границы системы часто не ясны и это может поменяться с течением времени.

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

Когда определяется система не достаточно рассматривать только требования без границ системы. RE также рассматривает:

    {+...}

  • изменения в контексте, которые могут быть вызваны системными требованиями
  • требования реального мира, полезные для системы (и как их перевести в системные требования)
  • предположения о контексте должны выполняться, чтобы сделать систем работоспособной и чтобы система отвечала требованиям реального мира.

Принцип 5. Проблема, требование, решение: неизбежно связанный треугольник.

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

Проблемы, требования и решения могут переплетаться путями:

    {+...}

  • иерархическое переплетение - когда разрабатываются большие системы
  • техническая выполнимость
  • валидация - прототипы, как частичные решения
  • разброс решений - разные заинтересованные лица видят разные варианты решений

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

Последствия для процесса разработки:

    {+...}

  • Проблемы, требования и решения тесно переплетены: они не могут быть обработаны в изоляции
  • Тем не менее, целью инженера по требованиям является разделение проблем, требований и решений друг от друга так далеко, как это возможно в процессе обдумывания, коммуникаций и документирования. Такое разделение делает задачи RE проще для обработки.

Принцип 6. Валидация: непроверенные требования не пригодны к использованию.

В конце концов мы должны подтвердить, что поставляемая система удовлетворяет желаниям и потребностям заинтересованных сторон. Для того, чтобы контролировать риск неудовлетворенности заинтересованных сторон, первоначально в процессе RE должна быть проведена валидация требований - процесс подтверждения того, что предмет (система, рабочий продукт или часть чего то) соответствует потребностям заинтересованных сторон. Должно быть проверено:

    {+...}

  • достигнуто согласие относительно требований среди заинтересованных сторон
  • желания и потребности заинтересованных сторон адекватно покрыто требованиями
  • предположения о контексте разумны.

Принцип 7. Развитие: изменение требований — не исключительная ситуация, а нормальный процесс.

Системы и требования к ним являются предметом эволюции, что означает, что они постоянно меняются. Запросы на изменения требований или наборов требований для системы могут быть вызваны:

    {+...}

  • изменились бизнес-процессы
  • конкуренты запускают новые продукты или сервисы
  • клиенты изменяют свои приоритеты и мнения
  • изменения в технологии
  • изменения в законодательстве
  • обратная связь от пользователей системы для новых и меняющихся характеристик.

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

Как следствие, инженер по требованиям должен преследовать две противоречащие цели:

    {+...}

  • допускать изменения требований
  • держать требования стабильными.

Принцип 8. Инновация: «больше того же недостаточно».

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

RE формирует инновационные системы:

    {+...}

  • в небольшом масштабе стремясь к новым захватывающим функциям и простоте использования
  • в большом масштабе стремясь реализовать прорывные новые идеи.

Принцип 9. Систематическая и дисциплинированная работа: "не работать без".

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

В RE нет одной практики или процесса, которые хороша работают в каждой конкретной ситуации или в большинстве ситуаций. Систематическая и дисциплинированная работа означает, что инженер по требованиям:

    {+...}

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

Для каждого RE должны выбираться усилия, процессы, практики и рабочие продукты, лучше всего подходящие к конкретной ситуации.

К содержанию ...

 

3. Рабочие продукты и практики документирования

Цель обучения:

    {+...}

  • понимать фундаментальную роль рабочих продуктов в RE и создавать рабочие продукты.

Термины: рабочий продукт; рабочие продукты, основанные на естественных языках; .рабочие продукты, основанные на шаблонах; рабочие продукты, основанные на моделях; словарь, критерии качества, спецификация требований.

3.1. Рабочие продукты в инженерии требований (L2)

Цель обучения:

    {+...}

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

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

3.1.1. Характеристики рабочих продуктов (L1)

В RE используются различные типы рабочих продуктов. Они характеризуются:

    {+...}

  • назначением
  • представлением
  • размером
  • жизненным циклом
  • хранилищем.

На практике следующие рабочие продукты часто встречаются согласно целям к продуктам (одни рабочие продукты могут включать другие):

    {+...}

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

Рабочие продукты могут быть представлены в различных формах:

    {+...}

  • основанные на естественных языках
  • основанные на шаблонах
  • основанные на моделях
  • другие представления, такие как изображения или прототипы.

Большинство рабочих продуктов сохраняются в электронном виде как файлы, в базах данные в инструментах RE. Неформальные временные рабочие продукты могут так же храниться на других носителях, например, на бумаге или записках на доске Канбан.

При рассмотрении жизненного цикла рабочих продуктов выделяется три категории:

    {+...}

  • временные рабочие продукты: созданные для поддержки коммуникации и создающие разделяемое понимание
  • эволюционирующие рабочие продукты: развивающиеся в несколько итераций в течении времени; в таких продуктах могут использоваться метаданные и управление изменениями
  • длительные рабочие продукты: выбираемые в качестве базовой линии или для релиза; требуют полный набор метаданных и управление процессом изменений.

Временные рабочие продукты могут конвертироваться в эволюционирующие (путем добавления метаданных). По аналогии, временные или эволюционирующие рабочие продукты могут становиться длительными.

3.1.2. Категории и уровни абстракции (L2)

Различают системные требования, требования заинтересованных сторон, пользовательские требования, требования к предметной области и бизнес-требования. Некоторые рабочие продукты, такие как индивидуальные требования, эскизы или процессные модели используются во всех категориях. Другие рабочие продукты специализированы для определенных категорий.

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

Требования обычно существуют на множестве различных уровней абстракции — от, например, высокоуровневых требований для новых бизнес-процессов до требований на очень детализированном уровне, таких как реакция конкретного компонента ПО на исключительную ситуацию.

Требования часто организованы в три уровня абстракции:

    {+...}

  • бизнес
  • система
  • компоненты.

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

3.1.3. Уровни детализации (L2)

Уровни детализации, на котором требования должны быть определены зависит от нескольких факторов:

    {+...}

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

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

3.1.4. Аспекты, рассматриваемые в рабочих продуктах (L1)

При определении требований должны быть рассмотрены различные аспекты:

    {+...}

  • требования классифицируются по видам (инженер по требованиям должен быть уверен, что отразил все три вида требований)

      {+...}

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

      {+...}

    • структура и данные - требования к статической структуре системы
    • функции и потоки - функции системы и потоки управления и данных
    • состояние и поведение - поведение системы, основанное на состяниях и реакции на внешнии события
  • документирование требований о качестве

      {+...}

    • качественное представление - неоднозначно и трудно для проверки; качественные представления требований к качеству достаточны:

        {+...}

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

      {+...}

    • системный контекст
    • границы системы и внешние интерфейсы.

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

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

3.1.5. Общие правила документирования (L1)

Вне зависимости от используемых техник применяются следующие правила при создании рабочих продуктов:

    {+...}

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

3.1.6. Планирование использования рабочих продуктов (L1)

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

    {+...}

  • в каких рабочих продуктах должны записываться требования и с какой целью
  • какой уровень абстракции необходимо рассмотреть
  • до какой уровня деталей требования должны быть документированы на каждом уровне абстракции
  • как требования должны представлены в рабочих продуктах.

Рабочие продукты для использования должны быть определены на ранней стадии проекта, так как это дает несколько преимуществ:

    {+...}

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

3.2. Рабочие продукты, основанные на естественных языках (L2)

Цель обучения:

    {+...}

  • знать рабочие продукты, основанные на естественных языках и их преимущества и недостатки (L1)
  • уметь объяснять правила написания хороших требований на естественных языках (L2).

С начала применения систематического RE требования на естественных языках являются ключевым способом для спецификации требований на практике.

Основные преимущества рабочих продуктов на естественных языках:

    {+...}

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

Эти преимущества становятся проблемами, когда тексты, написанные на естественном языке интерпретируются различными способами. Дополнительно, выявление двусмысленности, упущений и непоследовательностей в таких текстах трудно и затратно.

Аспекты написания хороших требований на естественных языках:

    {+...}

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

Когда пишутся технические документы на естественном языке, существует хорошо известные проблемы, которые необходимо избегать или использовать с осторожностью:

    {+...}

  • Избегать:

      {+...}

    • неполные определения (например, дополнять давать — кому, что, кто)
    • многозначные существительные (например, люди, данные — дополнять прилагательными или выбирать более определенные)
    • неполные условия (например, описано только успешное условие, опущено неуспешное)
    • некомплектные сравнения (в сравнениях указывать с чем сравнивается, количественные показатели)
  • Использовать с осторожностью:

      {+...}

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

3.3. Рабочие продукты, основанные на шаблонах (L3)

Цель обучения:

    {+...}

  • знать категории рабочих продуктов, основанных на шаблонах и их преимущества и недостатки (L1)
  • уметь определять индивидуальное требование и пользовательскую историю используя шаблоны фраз (L3)
  • уметь определять варианты использования используя шаблоны форм (L3).

Рабочие продукты, основанные на шаблонах используются для преодоления некоторых недостатков продуктов на естественных языках посредством предопределенных структур для требований:

    {+...}

  • шаблоны фраз обеспечивают предопределенную структуру для фраз, которыми выражаются требования, в частности для индивидуальных требований или пользовательских историй

      {+...}

    • Шаблоны ISO 29148: [{Условие}] {Предмет} {Действия} {Объекты} [{Ограничения}] (Вспомогательные глаголы: должен - обязательно, надллежит - настоятельно рекомендуется, может - предложение, будет - факт)
    • Шаблоны EARS:

        {+...}

      • универсальное требование: {Система} должна {реакция системы}
      • требование, управляемое событиями: КОГДА {Опциональное условие} {Тригер} {Система} должна {реакция системы}
      • нежелательное поведение: ЕСЛИ {Опциональное условие} {Тригер}, {Система} должна {реакция системы}
      • событие, управляемое состояниями: ПОКА {Конкретное состояние} {Система} должна {реакция системы}
      • опциональные характеристики: КОГДА {включаемая характеристика} {Система} должна {реакция системы}
    • Шаблоны для пользовательских историй: Как{роль} я хочу {требование} чтобы {выгоды}, может дополняться критериями оценки требований
  • шаблоны форм обеспечивают набор предопределенных полей в форме, которые должны заполняться, например, для написания варианта использования или требования измеримого качества:

      {+...}

    • шаблон для записи вариантов использования: наименование, предусловие, конечное состояние в случае успеха, конечное состояние в случае неудачи, основной актор, другие акторы, тригер, нормальный поток, альтернативные потоки, расширения потока, связанная информация
    • шаблон для определения измеримого требования к качеству: ИД, цел, масштаб, измерение, минимум, нормальный диапазон, желаемое значение
  • шаблоны документов обеспечивают предопределенную структуру для документов требований.

Различные шаблоны описаны в литературе, например, шаблоны для вариантов использования, документов спецификаций, описаний задач. Дополнительно потребитель может предопределить использование пользовательских шаблонов в проекте.

Преимущества рабочих продуктов, основанных на шаблонах:

    {+...}

  • обеспечивают ясную повторно используемую структуру
  • помогают уловить наиболее полезную информацию
  • делают видение требований и спецификаций требований унифицированными.

Недостатки и проблемы рабочих продуктов, основанных на шаблонах:

    {+...}

  • люди часто фокусируются на формальной комплектности шаблона, чем на содержании
  • аспекты, не включенные в шаблон с большой вероятности будут упущены.

3.4. Рабочие продукты, основанные на моделях (L3)

Цель обучения:

    {+...}

  • понимать роль, цель и использование моделей в RE (L2)
  • понимать преимущества и ограничения моделирования (L2)
  • знать термины: модель, язык моделирования, модель активностей, диаграмма деятельности, модель классов, модель контекста, контекстная диаграмма, модель предметной области, модель целей, модель взаимодействия, модель процессов, диаграмма последовательностей, карта состояний, машина состояний, диаграмма машины состояний, вариант использования, диаграмма варианта использования (L1)
  • понимать, как выбрать подходящий тип модели для определения требований в конкретной ситуации (L2)
  • понимать и уметь интерпретировать простые модели, написанные на UML, где применимы модели следующих типов: контекстные модели, варианты использования и диаграммы вариантов использования, модели предметной области, модели классов, модели активностей, процессные модели и карты состояний (L2)
  • уметь определять простую модель данных или объектов предметной области используя диаграмму классов UML (L3)
  • уметь определять простую системную функцию или бизнес процесс используя диаграмму деятельности UML (L3).

Требования, представленные на естественном языке имеют ограничения, в частности относительно обзора набора требований и понимания взаимосвязей между требованиями. Моделирование требований направлено на устранение этих ограничений.

3.4.1. Роль моделей в инженерий требований (L2)

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

В RE модели помогают понять взаимосвязи и соединения между требованиями и обеспечивают обзор наборов требований. Это достигается, в основном, путем фокусирования на некоторых аспектах, например, поведение, в то время как происходит абстрагирование от других аспектов. Достижение обзора так же поддерживается графической нотацией для модели. Однако, модели могут быть также представлены не графическим способом, например, таблицы.

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

Свойства моделей:

    {+...}

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

Преимущества моделей требований, в сравнении с требованиями, представленными на естественном языке:

    {+...}

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

Модели имеют ограничения:

    {+...}

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

Поэтому модели требований и требования на естественном языке часто комбинируются.

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

    {+...}

  • структура и данные - статические структурные свойства системы или предметной области
  • функция и поток - фокус на последовательности действия, включая потоки управления и данных
  • состояние и поведение - поведение системы или жизненный цикл бизнес-объектов в терминах реакций, зависимых от состояний на события или динамические взаимодействия.

В RE модели могут быть использованы для:

    {+...}

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

Качество модели требований и элементов моделей связано с тремя критериями:

    {+...}

  • Синтаксическое качество - степень соответствия элементов или модели в целом синтаксическим спецификациям
  • Семантическое качество - степень соответствия элементов или модели в целом корректно и полно представлять факты
  • Прагматическое качество - степень, в которой элементы или модель в целом подходят для назначенного использования - степень детализации и уровень абстракции соответствуют назначенному использованию, а так же соответствие выбранной модели конексту или предметной области.

Для выражения требований используются языки моделирования, некоторые стандартизированы, например, UML, BPMN. Когда требования определены в нестандартизированных языках моделирования, то требуется пояснение синтаксиса и семантики используемого языка.

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

3.4.2. Моделирование контекста (L2)

Модели, фокусирующиеся на аспекте контекста определяют структурное встраивание системы в ее окружение и взаимодействие между системой и акторами в системном контексте.

Модели контекста определяют систему и акторов в системном контексте, которые взаимодействуют с системой. Контекстные модели также отображают эскизно интерфейсы между системой и ее контекстом (например, в терминах, какая информация обменивается).

Контекстные диаграммы используются как графический язык моделирования для представления контекстных моделей. Не существует стандартизированной нотации для контекстных диаграмм. Могут использоваться контекстные диаграммы для структурного анализа (DFD), частные диаграммы, использующие прямоугольники или линии, адаптироваться блоковые диаграммы SysML.

В UML диаграммы вариантов использования - способ моделирования системы и ее контекста в терминах системных вариантов использования и акторов в системном контексте, взаимодействующих с системой через варианты использования.

Варианты использования моделируют динамическое взаимодействие между актором в системном контексте и систем с точки зрения актора. Варианты использования в большинстве случае написаны с использованием шаблонов форм на естественном языке или с использованием диаграмм деятельности UML.

3.4.3. Моделирование структуры и данных (L3)

Модели, фокусирующихся на аспектах структуры и данных определяют требования для статических структурных свойств системы или предметной области.

Статические модели предметной области определяют (бизнес) объекты и их взаимосвязи в интересующей предметной области. Могут быть представлены диаграммами классов UML.

Модели классов в основном определяют классы в системе и их атрибуты и взаимосвязи. Классы представляют осязаемые и неосязаемые сущности реального мира, которые система должна знать для выполнения своих задач.

Примеры диаграмм моделей для моделирования структуры и данных: диаграммы "Сущность-связь" (ERP), диаграммы классов UML, блоковые диаграммы SysML, BIM.UML диаграммы классов обычно используются как язык моделирования для моделей классов. Элементы нотации:

    {+...}

  • Класс описывает набор материальных или нематериальных объектов, имеющих сходную структуру, поведение и взаимосвязи
  • Атрибут описывает свойство класса и имеет определенный тип, ограничивающий возможный набор значений
  • Ассоциация соотносит два класса между собой
  • Идентификаторы множественности определяют, как много экземпляров класса участвуют в ассоциации
  • Роль определяет, какую роль класс играет в ассоциации

В системной инженерии блоковые диаграммы SysML моделируют концептуальные сущности, которые существуют в системе и взаимосвязи между ними.

Моделирование используется в различных предметных областях. В построении конструкций (BIM) элементы моделей требуются для планирования, построения и управления строениями и другими элементами конструкций.

3.4.4. Моделирование функций и потока (L3)

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

Модели активностей используются для определения системных функций. Примеры диаграмм моделей для моделирования активностей: диаграммы вариантов использования UML, диаграммы деятельности UML, диаграммы последовательностей UML, диаграммы потоков данных DFD, модели историй предметной области.

В UML диаграммы деятельности используются для представления моделей активностей. Они обеспечивают элементы для моделирования действий и потока управления между акциями. Диаграммы деятельности могут так же выражать, кто ответственный за каждое действие. Расширенные элементы моделирования обеспечивают способы моделирования потока данных. Основные элементы нотации:

    {+...}

  • Узел начала активности обозначает начальную точку диаграммы деятельности
  • Узел завершения активности обозначает конечную точку диаграммы деятельности. Может быть несколько узлов
  • Терминатор потока управления завершает поток управления
  • Действие/активность представляет непрерываемое действие объекотов. Результатом может быть изменение состояния или возврат результата
  • Поток управления показывает переходы от одного действия к другому
  • Узел решения представляет разветвление потока активностей на несколько исходящих альтернатив в зависимости от условия
  • Узел соединения соединяет вместе непаралельные потоки
  • Узел разветвления разделяет поток на параллельные потоки
  • Узел слияния соединяет параллельные потоки в один поток управления.

Модели процессов используются для описания бизнес-процессов и технических процессов. Могут быть представлены диаграммами деятельности UML или специфичными языками моделирования такими как BPMN.

Модели историй предметной области определяют визуальные истории об акторах, взаимодействующих с устройствами, артефакты и другие элементы предметной области, типичные для обозначений в предметной области. Являются способом понять домен приложения в котором оперирует система.

3.4.5. Моделирование состояний и поведения (L2)

Модели, фокусирующиеся на состоянии и поведении определяют требования для поведения системы и компонента предметной области в терминах реакции, зависимых от состояний, или динамики взаимодействия компонентов.

Машины состояний моделируют события, которые вызывают переход от одного состояния к другому и действия, необходимые для выполнения, когда возникает переход. Карты состояний - машины состояний, которые декомпозируются иерархически и/или ортогонально. Машины состояний, включая карты состояний, могут представляться на языке UML с использованием диаграмм состояний. Основные элементы нотации:

    {+...}

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

Модели взаимодействия моделируют динамические взаимодействия между объектами или акторами. Диаграммы последовательностей UML являются популярным способом для определения взаимодействий между объектами. Основные элементы нотации:

    {+...}

  • Рамка диаграммы последовательностей определяет границы сценария
  • Актор или объект представляет роль, которая взаимодействует в сценарии
  • Линия жизненного цикла представляет период времени взаимодействия для роли
  • Активация индицирует, что роль активна во взаимодействии
  • Терминатор показывает, завершение взаимодействия для роли
  • Асинхронное сообщение представляет сообщение без ожидания ответа получателя
  • Синхронное сообщение представляет сообщение, на которое получатель должен ответить
  • Ответное сообщение для синхронного сообщения.

3.5. Словари (L2)

Цель обучения:

    {+...}

  • уметь объяснить назначение словарей и как их создавать (L2).

В каждом проекте RE, в который вовлечен более одного участника, существует риск недостатка разделяемого понимания терминологии, что означает, что каждый участник может интерпретировать один и тот же термин по разному. Для смягчения этой проблемы разделяемое понимание о полезных терминах записывается в словаре.

Словарь - центральная коллекция определений для:

    {+...}

  • конекстно-определяемых терминов
  • повседневных терминов со специальным значением в данном контексте
  • сокращений и аббревиатуры.

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

Следующие правила применимы для словарей:

    {+...}

  • Создание и обслуживание

      {+...}

    • управлять словарем централизовано
    • обслуживать словарь в течении всего процесса разработки системы
    • определить ответственного или группу ответственных за словарь
    • использовать унифицированный стиль и структуру словаря
    • вовлекать заинтересованные стороны и достигнуть соглашения об использовании терминологии
  • Использование

      {+...}

    • сделать словарь доступным для всех вовлеченных сторон
    • сделать использование словаря обязательным
    • проверять рабочие продукты на надлежащее использование словаря.

3.6. Структуры документации требований (L2)

Цель обучения:

    {+...}

  • знать часто используемые спецификации документов требований (L1)
  • уметь объяснить какие структуры документации и назначение и критерии для структурирования (L2).

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

Требования могут организованы в структуры документов, отличающиеся от классических документов.

Часто используемые виды документов:

    {+...}

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

Часто используемые альтернативные структуры документации:

    {+...}

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

Выбор структуры документации и внутренней организации выбранной структуры зависит от:

    {+...}

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

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

3.7. Прототипы в инженерии требований (L1)

Цель обучения:

    {+...}

  • знать различные типы прототипов и для чего они используются (L1).

Прототип это:

    {+...}

  • в производстве: часть, которая разрабатывается перед началом массового производства
  • в программной индустрии: предварительная частичная реализация определенных характеристик системы
  • в проектировании: частичный пример разрабатываемого решения.

В RE прототипы являются способом определения требований через примеры и валидации требований. В частности, прототипы могут быть использования, если заинтересованные стороны не хотят писать или читать рабочие продукты.

Исследовательские прототипы используются для создания разделяемого понимания, разъяснения требований или валидации требования на различных уровнях точности. Они уничтожаются после использования:

    {+...}

  • каркасные прототипы - прототипы низкой точности, построенные с использованием простых материалов или инструментов для эскизов, применяемые в основном для обсуждения и валидаций идей проектирования и концепций пользовательского интерфейса
  • имитации - прототипы средней степени точности; когда реализуются цифровые системы, они используют реальные экраны, потоки кликов без реальной функциональности; служат в основно для спецификации и валидации пользовательских интерфейсов
  • нативные прототипы - высокоточные прототипы, которые реализуют критические части системы, чтобы заинтересованные стороны смогли использовать прототип и видеть, как прототипируемая част системы будет работать и сравнение с ожидаемым поведением.

В зависимости от степени точности, исследовательские прототипы могут быть затратными рабочими продуктами, поэтому разработка прототипов является всегда компромиссом между затратами и достигаемой ценностью.

Экспериментальные прототипы используются для объяснения концептов технического спроектированного решения, в частности относительно технической реализуемости. Уничтожаются после использования.

Эволюционные прототипы - пилотные системы, которые формируют ядро разрабатываемой системы. Финальная система эволюционирует последовательно расширяясь и улучшаясь от пилотной системы в несколько итераций.

3.8. Критерии качества для рабочих продуктов и требований (L1)

Цель обучения:

    {+...}

  • знать критерии качества для одиночных требований (L1)
  • знать критерии качества для рабочих продуктов (L1).

Требования должны отвечать определенным критериям качества, чтобы рассматриваться как хорошие требования. В новом RE с подходом, ориентированным на ценность, степень завершения для критерия качества должна соответствовать ценности, создаваемой требованием. Это означает, что требования не должны соответствовать всем критериям качества полностью, а более высокая ценность требования и большая релевантность являются критерием качества, уменьшающим риск неудачи.

Адекватность и понимаемость являются наиболее важными критериями качества для одиночных требований. Без них требования бесполезны или даже вредны, безотносительно степени завершения или другим критериям.

Критерии качества для одиночных требований:

    {+...}

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

Требования могут обычно записываться в различных рабочих продуктах, которые покрывают одиночные или множественные требования. Критерии качества выше должны использоваться для создания хороших одиночных требований.

Для рабочих продуктов, включающих более одного требования, следующие критерии качества должны рассматриваться дополнительно:

    {+...}

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

К содержанию ...

 

4. Практики проработки требований

Цель обучения:

    {+...}

  • понимать использование практик для идентификации источников требований, выявления требований, идентификации и разрешения конфликтов, валидации требований.

Термины: источник требований, граница системы, системный контекст, выявление требований, переговоры о требованиях, валидация требований, модель Кано, конфликт.

4.1. Источники требований (L3)

Цель обучения:

    {+...}

  • уметь определять границы системы для концентрации на полезных требованиях (L3)
  • помнить полезные источники для системе в разработке (L1)
  • уметь идентифицировать заинтересованные стороны и формировать их список (L3)
  • понимать выходы управления заинтересованными сторонами (L2).

Качество и полнота требований сильно зависят от вовлеченных источников требований. Отсутствие полезных источников будет приводить к неполноте понимания требований или к неполноте требований. Идентификация источников требований является итеративным и рекурсивным процессом, требующего постоянного пересмотра.

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

Источники требований классифицируются по трем типам:

    {+...}

  • заинтересованные стороны
  • документы
  • системы

Заинтересованные стороны системы - основные источники требований, включают:

    {+...}

  • пользователи
  • спонсоры
  • разработчики
  • руководство
  • покупатели.

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

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

    {+...}

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

Потенциальные источники для идентификации полезных заинтересованных сторон:

    {+...}

  • чек-листы типичных групп заинтересованных сторон и ролей
  • организационные структуры
  • документации по бизнес-процессам
  • отчеты по рынку
  • первоначальные заинтересованные стороны для идентификации дополнительных.

Заинтересованные стороны должны быть задокументированы и актуальном списке с как минимум следующей информацией:

    {+...}

  • имя
  • функция (роль)
  • дополнительная персональная информация и контакты
  • доступность по времени и в пространстве в течение проекта
  • полезность
  • область и степень экспертизы
  • цели и интересы в терминах проекта.

Проблемы с заинтересованными сторонами могут возникать, если их права и обязанности не ясны или если потребности заинтересованных сторон не достаточно изучены. Управление взаимоотношениями с заинтересованными сторонами является эффективным способом решения проблем.

В большинстве системных контекстов доступно множество источников. Они должны также быть рассмотрены для успеха новой системы, так как большинство заинтересованных сторон не говорят очевидно, а выражают «подсознательные» требования.

Дополнительные источники для требований включают:

    {+...}

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

Другие источники требований могут быть найдены просмотром сходных ситуаций в других предметных областях.

4.2. Выявление требований (L2)

Цель обучения:

    {+...}

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

В выявлении требований задачи инженера по требования понять желания и потребности заинтересованных сторон равно как гарантировать, что требования от всех источников собраны посредством применения соответствующих техник для выявления тиковых. Ключевой аспект выявления - перевод неявных запросов, желаний и ожиданий в явные требования.

Для выявления требований критически важно знать природу и важность каждого требования, которая может меняться от проекта к проекту и в течении времени. Модель Кано классифицирует требования в три релевантные категории:

    {+...}

  • факторы восхищения (синонимы: факторы возбуждения, несознательные факторы)
  • факторы удовлетворения (синонимы: факторы производительности, сознательные требования)
  • факторы недовольства (синонимы: основные факторы, подсознательные требования).

Существует множество различных техник для выявления этих категорий. Различают:

    {+...}

  • техники сбора
  • техники проектирования и генерации идей.

Техники сбора - устанавливающие техники для сбора требований, помогающие выявить факторы удовлетворения и недовольства путем исследования различных источником. Включают четыре основных категории:

    {+...}

  • техники опросов - всегда используются при взаимодействии с заинтересованными сторонами

      {+...}

    • интервью - встреча один на один с заинтересованным лицом; не требуют специальных инструментов; выявляются удовлетворители; нужно иметь четкие цели и хорошую подготовку, чтобы получить положительный результат
    • анкетирование - структурированный опрос устно, письменно или через веб; обычно включают открытые вопросы; предпочтительны для больших групп; анкеты бывают:

        {+...}

      • количественные - используются для подтверждения гипотез; включают в основном закрытые вопросы (только предопределенные ответы)
      • качественные - используются открытые вопросы для выявления новых требований
  • техники взаимодействия

      {+...}

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

      {+...}

    • полевые наблюдения - пользователи наблюдается в их окружении в процессе активностей, для которых разрабатывается система; используются для выявления активностей сложных для описания словами
    • стажировка - отличается от полевых наблюдений участием в процессе; для проверки первоначальных идей часто требуется последующее проведение интервью и анкетирование; цель — создать глубокое понимание окружения
  • техники, основанные на артефактах - используют не работу с заинтересованными лицами, а рабочие продукты (документы, системы). Используются когда заинтересованные стороны недоступны. Применяются для выявления удовлетворителей и свойств недовольства

      {+...}

    • системная археология - требования извлекаются из существующих систем — устаревших, систем конкурентов или аналогов, путем анализа документации или анализа реализации
    • анализ обратной связи - анализируется обратная связь от пользователей существующей системы или прототипа; бывают структурированные (например, 5 звезд) и неструктурированные (обзор комментариев)
    • повторное использование требований - может значительно сократить усилия по выявлению требований, так как много уже выявленных требований может быть актуально (работает, если система и документация актуальна и обновляется).

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

    {+...}

  • техники креативности - стимулируют креативность для поиска или создания новых требований, которые не могут быть собраны от заинтересованных сторон напрямую, потому что они не знакомы с возможностью реализации новых свойств (примеры: мозговой штурм и техники аналогий); некоторые предусловия как важные факторы для появления креативности:

      {+...}

    • шанс и время, чтобы идея появилась
    • знание предмета по существу
    • мотивация
    • безопасность идей, которые могут нести негативные последствия
  • техники проектирования - специальная категория креативных техник, обеспечивающая дополнительные, исследовательские или комбинированные техники для проработки идей и получения дополнительного понимания прорабатываемой идеи (примеры: прототипирование, сценарии и доски историй)

Более широкая концепция для проектирования и генерации идей - дизайнерское мышление. Существуют различные подходы (например d.school и Designing for Growth), предлагающие большой набор техник, которые могут быть использования для выявления требований. Основные принципы дизайнерского мышления: сочуствие и креативность (чередование конвергентного и дивергентного мышления)

Техники выявления должны быть способны определять все виды требований - функциональные и требования к качеству, также как и ограничения.

Для выявления требований к качеству используются модели качества (например, стандарт ISO25010) как чеклист. Такие модели могут быть полезны для количественной оценки требований.

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

Выбор правильных техник выявления является критической ключевой компетенцией, которая зависит от множества различных факторов, таких как:

    {+...}

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

Лучшие результаты обычно достигаются комбинацией различных техник выявления.

4.3. Согласование требований и разрешение конфликтов (L2)

Цель обучения:

    {+...}

  • помнить различные типы конфликтов (L1)
  • понимать, какие активности необходимо для разрешения конфликтов (L2)
  • понимать, как применять надлежащие техники разрешения конфликтов (L2).

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

Задачи для идентификации и разрешения конфликтов:

    {+...}

  • идентификация конфликта - конфликты вызывают негативные чувства, поэтому могут быть скрытыми и выявлены посредством тщательного наблюдения; следует уделить внимание индикаторам конфликтов:

      {+...}

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

Полезно различать различные типы конфликтов. Следующие типы конфликтов часто требуют внимания от инженера по требованиям:

    {+...}

  • конфликт по существу - возникает, когда участники конфликта реально имеют различные потребности, вызванные использованием системы в различном окружении
  • конфликт данных - участники ссылаются на некорректные данные или интерпретируют данные различными путями; постоянные коммуникации — ключ выявления таких конфликтов
  • конфликт интересов - различные позиции участников, сформированные различными целями лиц, групп и роли в проекте; работа на взаимопониманием участников может быть отправной точной поиска решения
  • ценностный конфликт - основаны на различии в ценностях и принципах вовлеченных сторон; для разрешения требуется посмотреть на более высокие ценности, объединяющие участников
  • конфликт взаимоотношений - основаны на негативном опыте взаимодействия участников в прошлом; разрешение возможно эскалированием проблемы высшему руководству или заменой заинтересованных сторон на других
  • структурный конфликт - вызваны неравенством возможностей, конкуренцией над ограниченными ресурсами или структурными зависимостями между участниками; разрешаются эскалацией на высший уровень.

Для разрешения конфликтов применяются общие техники:

    {+...}

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

В дополнение, существует несколько вспомогательных техник, например:

    {+...}

  • Consider-All-Facts (CAF)
  • Plus-Minus-Interesting (PMI)
  • матрица решений.

4.4. Валидация требований (L2)

Цель обучения:

    {+...}

  • понимать, зачем документы требований должны валидироваться (L2)
  • помнить четыре важных аспекта валидации требований (L1)
  • понимать, как применять надлежащие техники для валидации требований (L2).

Валидация требований является важным шагом в направлении реализации успешной системы. Гарантия качества требований изначально уменьшается риск излишних усилий. Валидация требований означает проверку набора требований и индивидуальных требований на качество: покрытие потребностей заинтересованных сторон, степень согласия между ними, предположения относительно системного контекста.

Важные аспекты к рассмотрению в процессах валидации требований:

    {+...}

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

Существует несколько техник валидации, классифицированных:

    {+...}

  • техники обзоров (статические) - полагаются на визуальное изучение рабочего продукта на ранней или промежуточной стадии, включают

      {+...}

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

      {+...}

    • прототипирование - прототипы могут разрабатываться как непосредственно для валидации так и является эволюционными продуктами; позволяют получить практический опыт работы с системой
    • альфа- и бетта-тестирование - пользователям для работы выдается продукт со всеми реализованными свойствами для обычной работы
    • А/В тестирование - пререлиз или релиз предлагается в нескольких вариантах разным группам реальных пользователей; ракция каждой из групп измеряется и сравнивается
    • построение MVP
  • разработка образцов (статические) - разработчикам предоставляется набор требований, по которому выполняется разработка промежуточного продукта.

Эти техники различаются степенью формальности и усилиями. Каждая техника выбирается в зависимости от таких факторов как:

    {+...}

  • жизненный цикл разработки
  • зрелость процесса разработки
  • сложность и уровень риска системы
  • любые регуляторные требования
  • потребности в аудите.

К содержанию ...

 

5. Процесс и рабочая структура

Цель обучения:

    {+...}

  • уметь объяснить концепты процессов RE и применять соответствующие конфигурации процессов.

Термины: процесс, процесс RE.

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

Процесс RE формирует информационные потоки и модель коммуникаций между различными участниками (например, покупателями, пользователями, инженером по требованиям, разработчиками, тестерами), а также определяет рабочие продукты производимые или используемые. Таким образом процесс RE обеспечивает фреймворк для выявления, документирования, валидации и управления требованиями.

5.1. Влияющие факторы (L2)

Цель обучения:

    {+...}

  • знать важные факторы, влияющие на процесс RE (L1)
  • понимать как и почему эти факторы оказывают влияние (L2).

Основные факторы, влияющие на конфигурацию процесса RE:

    {+...}

  • процесс в целом: процесс RE должен соответствовать общему процессу разработки системы (в т.ч. рабочие продукты, терминология и обучение)
  • контекст разработки - включает связь «покупатель-поставщик-пользователь» (пользователь внури или вне организации, заказчик и пользователь - одна и та же организация), тип разработки (настройка продукта, разработка, работа с вендором), контракт (фиксированная стоимость контракта и функциональность или рамочный договор), доверие
  • возможности и доступность заинтересованных сторон (ограничивают конфигурации процесса)
  • разделяемое понимание - если в наличии хорошее взаимопонимание и критичность системы не высока, то может быть выбран легковесный процесс RE
  • сложность и критичность системы в разработке - если сложность и критичность системы, в частности в отношении безопасности и секретности, высока, то требуется более детальная спецификация требований, включающая формальные модели и строгую валидацию
  • ограничения - факторы, влияющие на пространство возможных решений: законодательство, стандарты и т. д.
  • доступные время и бюджет - в случаях, когда время и бюджет невелики, то выбор итеративного и исследовательского процесса может помочь. Дополнительно, требования могут фокусироваться на идентификации и работы с критичными требованиями
  • изменчивость требований - например, влияют на выбор итеративного процесса проектирования
  • опыт инженера по требованиям - чем меньше навыки исполнителя, тем проще должен быть процесс RE.

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

5.2. Аспекты процессов программной инженерии (L2)

Цель обучения:

    {+...}

  • понимать аспекты, которые должны быть рассмотрены для конфигурирования процесса RE (L2).

Существует три аспекта решения, которые должны рассматриваться, когда конфигурируется процесс RE.

Аспект времени: линейный и итеративный. В линейном процессе требования определяются в первую очередь в одной фазе процесса. В итеративном процессе требования определяются инкрементно, начиная с общих целей и некоторых начальных требований и затем добавляются или модифицируются требования в каждой итерации.

Критерии для выбора линейного процесса RE:

    {+...}

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

Критерии для выбора итеративного процесса RE:

    {+...}

  • процесс разработки системы итеративный или гибкий
  • много требований не известны сразу, но будут возникать в течение разработки системы
  • заинтересованные стороны доступны таким образом, что короткие циклы обратной связи могут быть установлены для смягчения риска разработки некорректной системы
  • длительность разработки позволяет более чем одну итерацию
  • способность к изменять требования легко является важным.

Аспект цели: предписывающий и исследовательский. В предписывающем процессе RE спецификации требований составляют основу контракта - все требования связаны и должны быть реализованы. В исследовательском процессе только цели известны точно, в то время как конкретные требования должны быть выявлены.

Критерии для выбора предписывающего процесса RE:

    {+...}

  • покупатель требует фиксированный контракт для разработки системы
  • функциональность и границы имеет большее значение чем затраты и дедлайны
  • разработка конкретной системы может вестись на основе тендера или аутсорсинга.

Критерии для выбора исследовательского процесса RE:

    {+...}

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

Аспект назначения: ориентированный на покупателя или на рынок. В процессе RE, ориентированном на пользователя, система разрабатывается для поставщиком для конкретного покупателя. В процессах RE, ориентированных на рынок, система разрабатывается как продукт или сервис для рынка, ориентированного на определенные сегменты пользователей.

Критерии для выбора процесса RE, ориентированного на покупателя:

    {+...}

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

Критерии для выбора процесса RE, ориентированного на рынок:

    {+...}

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

Советы и предостережения:

    {+...}

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

5.3. Конфигурация процесса инженерии требований (L3)

Цель обучения:

    {+...}

  • знать типичные конфигурации процессов RE (L1)
  • понимать шаги конфигурирования процесса RE (L2)
  • уметь выбирать и применять соответствующую конфигурацию процесса RE для простой системы и настроек разработки (L3).

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

Типичные комбинации процессов:

    {+...}

  • процесс RE, ориентированный на участие: итеративный/исследовательский/ориентированный на покупателя

      {+...}

    • основной случай применения: покупатель и поставщик тесно взаимодействуют; заинтересованные стороны сильно вовлечены в процессы RE и разработки
    • типичные рабочие продукты: бэклог продукта с пользовательскими историями и/или описания задач, прототипы
    • типичный поток информации: постоянные итерации между заинтересованными сторонами, владельцами продукта, инженерами по требованиям и разработчиками; могут включать обратную связь от пользователей
  • процесс RE, основный на контракте: типично линейный/предписывающий/ориентированный на пользователя

      {+...}

    • основной случай применения: спецификации требований составляют основу контракта для разработки системы людьми, не вовлеченными в спецификации с небольшим взаимодействием с заинтересованными сторонами после фазы требований
    • типичные рабочие продукты: классические спецификации требований, состоящие из требований на естественном языке и моделей
    • типичный поток информации: в основном от заинтересованных лиц к инженерам по требованиям
  • процесс RE, ориентированный на продукт: итеративный/исследовательский/ориентированный на рынок

      {+...}

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

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

Для конфигурации процесса RE, рекомендуется процедура из пяти шагов:

    {+...}

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

К содержанию ...

 

6. Практики управления требованиями

Цель обучения:

    {+...}

  • понимать потребности и выгоды управления требованиями.

Термины: управление требованиями, управление изменениями, прослеживаемость, атрибуты требований, жизненный цикл, приоритезация.

6.1. Что такое Управление требованиями (L1)

Цель обучения:

    {+...}

  • знать, что такое управление требованиями и зачем оно нужно (L1).

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

Управление требованиями производится на разных уровнях:

    {+...}

  • индивидуальные требования
  • рабочие продукты, вмещающие требования
  • системы, связанные с рабочими продуктами и требованиями.

6.2. Жизненный цикл управления требованиями (L2)

Цель обучения:

    {+...}

  • уметь объяснить, зачем рабочие продукты требований нуждаются в модели жизненного цикла или модели статусов (L2).

Жизненный цикл управления относится к процессу отслеживания всех рабочих продуктов относительно статусов в жизненном цикле. Каждое задокументированное требование и каждый рабочий продукт имеют собственный жизненный цикл: создано, оценено и доработано перед просмотром, повторно включено в работу, консолидировано, согласовано и т.д. Для того, чтобы обеспечить идентификацию, в каком состоянии находится рабочий продукт, в модели жизненного цикла требуется определить статус и переходы состояний. Актуальный статус рабочего продукта всегда должен быть ясен, включая историю переходов.

Управление жизненным циклом включает:

    {+...}

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

6.3. Управление версиями (L2)

Цель обучения:

    {+...}

  • понимать концепцию версионирования для требований в зависимости от конкретной ситуации в проекте (L2).

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

    {+...}

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

Версионирование должно рассматриваться для всех рабочих продуктов. Номер версии типично состоит из как минимум двух частей: версия и инкремент.

6.4. Конфигурации и базовые линии (L1)

Цель обучения:

    {+...}

  • знать порядок использования конфигураций и базовых линий требований (L1).

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

Базовая линия - стабильная, проверенная и контролируемая (изменений) конфигурация рабочих продуктов, используемая для выпуска запланированных или других поставляемых результатов в вехах проекта.

Конфигурации имеют следующие свойства:

    {+...}

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

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

6.5. Атрибуты и представления (L2)

Цель обучения:

    {+...}

  • знать цель атрибутов для требований (L1)
  • уметь определять подходящий набор атрибутов для требований в конкретной ситуации проекта (L2)
  • уметь объяснять цель представлений и перечислять различные представления требований (L2).

Атрибуты требуются для документирования важных метаданных рабочего продукта и типично используются для ответа на важные вопросы в течение проекта или жизненного цикла продукта.

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

Определение релевантного набора атрибутов зависит от потребностей в информации различных заинтересованных сторон в проекте. Существующие стандарты обеспечивают обзор наиболее полезных атрибутов, например ISO29148:

    {+...}

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

Представления - выдержки из общего набора требований, которые вмещают только содержание, к которому проявляется интерес.

Существует три типа представлений:

    {+...}

  • селективные представления - представления, дающие информацию о целенаправленно отобранных требованиях. Например, последние версии требований, все требования с состоянием «Валидирован» и т. д.
  • проективные представления - показывают выборку из всех данных о требованиях, например, только ИД, номер версии и пр.
  • агрегированные представления - формируются итоги, средние или другие агрегатные функции, примененные к набору требований. Например, количество требований в разрезе департаментов.

В большинстве случаев для формирования отчетов, представления требований являются комбинациями представлений.

6.6. Прослеживаемость (L1)

Цель обучения:

    {+...}

  • уметь перечислять причины для прослеживаемости требований (L1)
  • уметь обобщать различия между явной и неявной прослеживаемостью (L1)
  • знать, как явная прослеживаемость должна документироваться (L1).

Прослеживамость - способность отследить требования обратно к источникам (например, заинтересованным лицам, документам, юридическим основам и т.д. - Какой источник? Где найден?) и вперед к последующим рабочим продуктам (например, тестовым кейсам Где используется? В каких поставляемых результатах?), а также к другим требованиям (например, между видами требований и требованиями разных уровней), от которых это требование зависит.

Прослеживаемость обеспечивает предпосылки для управления требованиями и часто явно требуется стандартами, законами и правилами. Реализация прослеживаемости в особенности означает обслуживание зависимостей между рабочими продуктами требований различного уровня, а также взаимосвязями между источниками и последователями с целью анализа, соответствия и информации. Прослеживаемость позволяет:

    {+...}

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

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

6.7. Управление изменениями (L1)

Цель обучения:

    {+...}

  • знать как обрабатывать изменения в линейном (основанном на плане) и гибком подходах (L1).

Требования не статичны. Изменения в требованиях происходят по различным причинам и должны обрабатываться надлежащим образом, например, созданием формального запроса на изменения или добавлением нового элемента в продуктовый бэклог.

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

    {+...}

  • гарантия, что все риски оценены
  • одобрение изменений для обработки
  • управление реализацией изменений.

Процесс управления изменениями может включать:

    {+...}

  • анализ влияния
  • планирование реализации
  • одобрение (если нет, корректировка плана и переход к планированию реализации)
  • реализация
  • анализ реализации.

В линейном подходе решение часто принимается Советом по управлению изменениями (Change control board) или наблюдательного совета (Change Advisory Board). В большинстве итеративных подходов владелец продукта включает изменение продукта в бэклог продукта и приоритезирует новый элемент соответствующим образом.

6.8 Приоритезация (L1)

Цель обучения:

    {+...}

  • знать причины для приоритезации и значимые критерии оценки (L1)
  • уметь перечислять шаги для приоритезации требований (L1)
  • уметь перечислять различные категории техник приоритезации (L1).

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

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

Приоритет требований описывает важность одного требования в сравнении с другими согласно определенным критериям. Выполнение приоритезации само по себе основывается на одном или нескольких критериях и зависит в основном о выбранных техник.

Шаги приоритезации:

    {+...}

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

Техники приоритезации классифицируются:

    {+...}

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

К содержанию ...

 

7. Инструменты

Цель обучения:

    {+...}

  • обеспечить обзор роли инструментов RE и аспектов для применения.

Термины: инструменты, инструменты RE.

7.1. Инструменты в инженерии требований (L1)

Цель обучения:

    {+...}

  • знать различные типы инструментов RE (L1).

Процесс RE может поддерживаться инструментами, реализующими выделенные активности и задачи. Так как процессы RE индивидуальны, то существующие инструменты RE часто фокусируются на определенных аспектах и реже поддерживают все активности. Перед выбором инструмента инженер по требованиям должен решить, какие задачи и активности в процессе RE должны поддерживаться и как. Различается несколько видов инструментов:

    {+...}

  • управление требованиями

      {+...}

    • определение и хранение атрибутов требований
    • приоритезация требований
    • управление версиями и конфигурациями
    • отслеживание и прослеживаемость требований
    • управление изменениями
  • управление процессом RE

      {+...}

    • измерение и отчетность в процессе RE
    • измерение и отчетность качества продукта
    • управление рабочим потоком RE
  • документирование знаний о требованиях

      {+...}

    • общий доступ к требованиям
    • создание и разделяемое понимание о требованиях
  • моделирование требований
  • взаимодействия в RE
  • тестирование и симуляция требований.

Инструменты часто включают несколько видов описанных выше свойств. Для гарантии, что все задачи RE выполняются надлежащим образом может комбинироваться несколько инструментов.

Иногда другие виды инструментов (например, офис или отслеживающие инструменты) используются для документирования или управления требованиями. Эти инструменты имеют ограничения и должны использоваться только тогда, когда процесс RE под контролем и требования достаточно стабильны и ровны.

7.2. Внедрение инструментов (L2)

Цель обучения:

    {+...}

  • уметь объяснить, что рассматривается, когда внедряются инструменты RE (L2).

Выбор инструмента RE не отличается от таких же процессов для других целей. Цель, контекст и требования должны быть описаны для успешного выбора инструмента.

Соответствующий инструмент может быть выбран как только вводятся процедуры и техники RE. Внедрение инструмента требует ясной ответственности и процедур для RE. В процессе внедрения инструмента RE полезны следующие аспекты:

    {+...}

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

      {+...}

    • проект (необходимая информация для проекта)
    • процесс RE (степень поддержки процесса RE)
    • пользователь (многопользовательская работа, юзабилити)
    • продукт (функциональность продукта, поддержка вендором, интеграция, расширения)
    • экономика (стоимость приобретения и сопровождения, ценность для процесса RE)
    • архитектура (встраивается ли в архитектуру организации).
  • инструктировать работников, как использовать документ.

К содержанию ...