Однажды у меня был неудачный опыт: я написал программу, а потом понял, что случайно упустил из виду требование. Оно было в спецификации — я просто не заметил его. Мне пришлось вернуться и написать дополнительный код, а я думал, что уже закончил с программированием. Пропуск требования — это нечто более, чем просто промах, если клиент не удовлетворен или в готовом продукте отсутствует функция, особо важная для обеспечения безопасности. На одном уровне трассирование требований предоставляет способ продемонстрировать соответствие контракту, спецификации или правилу. На более сложном уровне это позволяет улучшить качество продуктов, снизить затраты на поддержку и облегчить повторное использование (Ramesh, 1998).
Трассирование требований — это трудоемкая задача, выполняемая вручную, для которой необходимо организационное согласование. Для обновления информации о связях по мере разработки и обслуживания системы необходима дисциплина. Если информация трассируемости устаревает, вероятнее всего, вам никогда не удастся заново воссоздать ее. Кроме того, из-за этого разработчики и сотрудники службы поддержки напрасно тратят время, следуя по неверному пути. Именно поэтому для использования трассируемости у вас должна быть веская причина (Ramesh и др., 1995). Далее перечислены возможные преимущества реализации трассируемости требований.
· Сертификация. Вы можете воспользоваться информацией трассируемости при сертификации продукта с особыми требованиями к безопасности, чтобы продемонстрировать, что все требования были реализованы — хотя это не доказывает, что они реализованы корректно и полностью! Естественно, если требования некорректны или отсутствуют ключевые требования, то вам не помогут даже самые лучшие данные трассируемости.
|
· Анализ влияния изменения. Без информации трассируемости возрастает вероятность того, что из внимания будет упущен системный элемент, которого коснется добавление, удаление или изменение определенного требования.
· Поддержка. Надежная информация трассируемости облегчает соответствующее и полное внесение изменений в ходе обслуживания, что повышает производительность. Часто при изменении корпоративных политик или государственных правил, приложения ПО нуждаются в обновлении. Таблица, в которой показано, где соответствующее бизнес-правило было реализовано в функциональном требовании, проектировании и коде, упрощает соответствующее внесение изменений.
· Трассирование проекта. Если в ходе разработки вы тщательно фиксируете данные трассируемости, у вас будет точное представление о состоянии реализации запланированной функциональности. Отсутствующие связи указывают на рабочие продукты, которые еще не созданы.
· Повторная разработка. Вы можете перечислить функции в предыдущей версии системы, которую вы заменяете, и указать, каким новым системным требованиям и компонентам ПО они адресованы. Определение связей трассируемости это способ зафиксировать определенный опыт, полученный при переработке существующей системы.
· Повторное использование. Информация трассируемости упрощает повторное использование компонентов продукта, определяя пакеты связанных требований, проекта, кода и тестов.
· Снижение риска. Документирование взаимосвязей компонентов уменьшает риск возникновения проблем, если вдруг ключевой член команды, обладающей важной информацией о системе, покидает проект (Ambler, 1999).
|
· Тестирование. Если тестирование дает неожиданный результат, то связи между тестами, требованиями и кодом укажут на наиболее вероятные части кода, которые необходимо проверить на наличие дефектов. Информация о том, какие тесты проверяют какие требования, экономит время, позволяя вам удалить лишние тесты. Многие из вышеперечисленных относятся к долгосрочным выгодам, которые снижают общую стоимость жизненного цикла продукта, хотя при этом увеличиваются затраты на сбор и управление информации трассируемости. Рассматривайте трассируемость требований как инвестицию, увеличивающую шансы поставить продукт, который удовлетворяет все основные требования клиента. Хотя это трудно измерить, вы будете получать дивиденды каждый раз, когда вам понадобится изменить, расширить или заменить продукт. Определить связи трассируемости несложно, если вы собираете информацию по мере разработки, однако делать это для уже завершенной системы утомительно и дорого.