Какие «смертные грехи» необходимо устранить при рассмотрении спецификации требований?[закрыто]

StackOverflow https://stackoverflow.com/questions/186716

Вопрос

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

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

Это было полезно?

Решение

Хорошо, это больше 7, но хорошие требования имеют следующие атрибуты:

  • Уникальный.Есть ли другие требования, которые похожи?
  • идентифицируемый, Может ли требование быть однозначно определено?Можно ли это проследить на протяжении всего процесса разработки?
  • Полный.Что -нибудь не хватает или забыто?Это тщательно?Включает ли это все, что необходимо, чтобы сделать его стойким?
  • Точный.Это правильно?Это правильно определяет цель?Есть ли ошибки?
  • Однозначный.Описание точным и не смутным?Существует ли единое толкование?Легко читать и понять?
  • Последовательный.Записано ли описание функции так, чтобы она не конфликтовалась с другими элементами в спецификации?
  • Соответствующий.Необходимо ли утверждение для этой функции?Это дополнительная информация, которая должна быть исключена?Это отслеживается для оригинальной потребности клиента?
  • Достижимый.Может ли он быть реализован с доступным персоналом, инструментами и ресурсами в рамках указанного бюджета и графика?
  • Без кода.Спецификация придерживается определения продукта, а не базового дизайна программного обеспечения, архитектуры и кода?
  • Тестируемый.Можно ли это проверить?Достаточно ли информации при условии, что тестер может создать тесты для проверки требования удовлетворены?
  • Приоритет.Это более или менее важно, чем другие требования?
  • Использует активный голос.Использует ли спецификация активный голос?Пассивный голос не всегда указывает, кто или что выполняет действие.
  • Категории.Логически ли сгруппировано требование с аналогичными требованиями?Возможные категории:Поведенческая, производительность, интерфейс, структуры/элементы данных, реализация, соблюдение/качество, эксплуатационная (надежность, безопасность, безопасность), полученные/инженерные.

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

Другие советы

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

Особенности, время, качество - выбирайте любые два. убедитесь, что требования не накладывают все три на вашу команду.

Отодвиньте требования, которые пытаются контролировать ваш процесс.

Запросите четкую расстановку приоритетов с самого начала.

Настаивайте на четких критериях приемлемости для каждого требования.

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

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

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

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

Требование не указывает, кто / что делает вещь.

"The invoice is reconciled to the purchase order."

Означает ли это, что система что-то делает или пользователь?

Худший из тех, что я видел в проекте, для которого я кодировал: -

The system shall interface to SAP as required.

Во-первых, требование «как требуется»; в этом глупо. Эта одна строка должна стоить 400 тысяч долларов. Клиент продолжал указывать на это и говорить, что там будет бла, бла, бла.

Чрезмерно. По возможности укажите соответствующие допуски.

Двусмысленные требования плохие.

Не поддающиеся проверке и не поддающиеся количественному определению требования удваиваются.

Естественно, все это зависит от того, какое именно требование вы получите.Я привык к типичному графическому интерфейсу или веб-приложению, пакетным процессам и

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

У меня также есть один единственный совет рецензенту: знай свой предмет

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

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

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

Убедитесь, что все абсолютно ясно: расплывчато == Плохо (tm)

Моя рекомендация и то, что я всегда делаю перед новым проектом, - дважды проверьте контрольный список на Страница 42,43 из Полный код Стива Макконнелла

Всезнающая Википедия имеет хороший краткий обзор требований - http: //en.wikipedia. орг / вики / Требование # Good_requirements . Я бы сказал, что из этих пунктов отсутствие проверяемости является наиболее распространенным. Понимание общей картины важно в жизни, однако вам необходимо четко изложить свои требования, напр. Система должна реагировать быстро. Вместо этого система должна отвечать на все запросы менее чем за 2 секунды.

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

Вы можете прочитать некоторые из управления требованиями и документы CMMI .

Также посетите Контрольный список требований и Google для " Критерии хорошего требования ".

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top