Цитаты из книги К. Вигерса "Разработка требований к ПО" Часть 1

Цитаты из книги К. Вигерса "Разработка требований к программному обеспечению"

Часть 1

  • Многие исследования показывают, что на ошибки, внесенные на этапе сбора требований, приходится от 40 до 50% всех дефектов, обнаруженных в программном продукте (Davis, 2005). Некорректные сведения от пользователей и недостатки определения и управления требованиями клиентов — основные причины провалов проектов.
  • Требования это спецификация того, что должно быть реализовано. В них описано поведение системы, свойства системы или ее атрибуты. Они могут служить ограничениями в процессе разработки системы. (Иен Соммервилл)
  • Бизнес-требование - высокоуровневая бизнес-цель организации или заказчиков системы
    Бизнес-правило - политика, предписание, стандарт или правило, определяющее или ограничивающее некоторые стороны бизнес-процессов. По своей сути это не требование к ПО, но оно служит источником нескольких типов требований к ПО
    Ограничение - ограничение на выбор вариантов, доступных разработчику при проектировании и разработке продукта
    Внешнее требование к интерфейсу - описание взаимодействия между ПО и пользователем, другой программной системой или устройством
    Характеристика - одна или несколько логически связанных возможностей системы, которые представляют ценность для пользователя и описаны рядом функциональных требований
    Функциональное требование - описание требуемого поведения системы в определенных условиях
    Нефункциональное требование - описание свойства или особенности, которым должна обладать система, или ограничение, которое должна соблюдать система
    Атрибут качества - вид нефункционального требования, описывающего характеристику сервиса или производительности продукта
    Системное требование - требование верхнего уровня к продукту, состоящему из многих подсистем, которые могут представлять собой ПО или совокупность ПО и оборудования
    Пользовательское требование - Задача, которую определенные классы пользователей должны иметь возможность выполнять в системе, или требуемый атрибут продукта
  • Требования к ПО состоят из трех уровней — бизнес-требования, пользовательские и функциональные требования. Вдобавок в каждой системе есть свои нефункциональные требования.
  • Связи между требованиями ba-schema
  • Бизнес-требования (business requirements) описывают, почему организации нужна такая система, то есть цели, которые организация намерена достичь с ее помощью. Основное их содержание — бизнес-цели организации или клиента, заказывающих систему.
  • Пользовательские требования (user requirements) описывают цели или задачи, которые пользователи должны иметь возможность выполнять с помощью продукта.  Пользовательские требования описывают, что пользователь должен иметь возможность делать с системой.  «Как пассажир я хочу зарегистрироваться на рейс, чтобы можно было сесть на самолет»
  • Функциональные требования (functional requirements) определяют, каким должно быть поведение продукта в тех или иных условиях.  Описываются в форме традиционных утверждений со словами «должен» или «должна».  «Если в профиле пассажира не указаны предпочтения по выбору места, система резервирования должна сама назначить ему место»
  • Системные требования (system requirements) описывают требования к продукту, который содержит многие компоненты или подсистемы (ISO/IEC/IEEE 2011)
  • Бизнес-правила (business rules) включают корпоративные политики, правительственные постановления, отраслевые стандарты и вычислительные алгоритмы
  • Атрибуты качества (quality attributes) еще называют параметрам качества, требованиями по уровню обслуживания и т.п. Они представляют собой описание различных измерений характеристик продукта, которые важны для пользователей или для разработчиков и тех, кто будет обслуживать систему, таких как производительность, доступность и переносимость.
  • Ограничения (constraints) проектирования и реализации накладывают границы на возможности выбора разработчика при проектировании продукта
  • Спецификация требований содержит требования к продукту и не содержит деталей дизайна или реализации (кроме известных ограничений), данных о планировании проекта, сведений о тестировании и тому подобной информации. Удалите указанные элементы из требований, чтобы из этого документа было абсолютно ясно, что надлежит построить команде разработчиков.
  • «Самая сложная часть построения систем ПО — решить точно, что же создавать. Никакая другая часть концептуальной работы не является такой трудной, как выяснение деталей технических требований, в том числе и взаимодействие с людьми, механизмами и иными системами ПО. Никакая другая часть работы так не портит результат, если она выполнена плохо. Никакая другая часть не дает более трудные для исправления ошибки»  Ф. Брукс
  • Время, которое тратится на выяснение потребностей пользователей, представляет собой высокоэффективную инвестицию в успех проекта.
  • Недостатки в требованиях представляют собой угрозу успеху проекта, где успех означает выпуск продукта, который удовлетворяет ожиданиям пользователей по качеству и функциональности при соблюдении бюджета и графика проекта.
  • Под требованиями-«бантиками» (gold plating) понимают отсутствующие в спецификации требований функции, добавленные разработчиками, потому что им кажется, что это понравится пользователям.
  • Без адекватного участия клиента в конце проекта неизбежно возникает разрыв ожиданий (expectation gap) — пробел между тем, что клиенту реально нужно, и тем, что предоставили разработчики, основываясь на том, что они знали в начале проекта
  • Заинтересованное лицо (stakeholder) — это человек, группа или организация, которая активно задействована в проекте, подвержена влиянию процесса или результата или может влиять на процесс или результат.
  • Когда при работе над проектом нагнетается напряжение, очень легко забыть, что у всех участников единая цель — создать программный продукт, ценный для бизнеса и отвечающий чаяниям всех участников проекта. Аналитик обычно оказывается ключевым человеком, на плечи которого ложится налаживание этого сотрудничества.
  • Требования должны быть написаны и организованы так, чтобы их было легко понимать.
  • Выявление и спецификация требований — одни из самых трудных задач в разработке ПО.
  • Очень ценно представлять отдельные требования несколькими способами, например в текстовой и графической форме или одновременно в виде требований и тестов. Это позволит выявить их особенности и проблемы, не заметные при представлении одним способом.
  • Модели позволяют выявить некорректные, несогласованные, отсутствующие и избыточные требования. К таким моделям относятся диаграммы потоков данных, диаграммы «сущность-связь», диаграммы перехода состояний, таблицы состояний, карты диалоговых окон, деревья решений.
  • Ведите список бизнес-правил отдельно от требований проекта, поскольку правила обычно существуют вне рамок конкретного проекта.
  • Задача аналитика — собрать и проанализировать мнения заинтересованных сторон и лиц, отразить их в спецификации требований и передать информацию другим заинтересованным в проекте лицам. Аналитик помогает участникам проекта прояснить, действительно ли пожелания, которые они высказывают вслух, — это то, что им на самом деле нужно.
  • Аналитик обучает, задает вопросы, слушает, организует и учится. Это сложная работа.
  • Не думайте, что любой талантливый разработчик или опытный пользователь автоматически, без обучения, чтения литературы и тренировок, станет профессиональным аналитиком требований. Все эти роли требуют разных навыков, знаний и личных качеств.
  • Требования, не содействующие достижению бизнес-целей проекта, реализовываться не должны.

смотрите еще Цитаты из "Совершенный код" С. Макконнелла