
- •Управление качеством требований. Начало
- •Введение
- •Часть 1. Требования
- •Определение требований
- •Классификация требований
- •Бизнес-требования
- •Ключевые возможности
- •Пользовательские требования
- •Функциональные требования
- •Характеристики качества
- •Ограничения
- •Иерархия требований
- •Стоимость ошибок в требованиях
- •Выводы к первой части
- •Литература
- •Часть 2. Управление требованиями
- •Управление требованиями
- •Бизнес-аналитик
- •Бизнес-архитектор
- •Аналитик требований
- •Спецификатор требований
- •Системный архитектор
- •Технический писатель
- •Коммуникатор
- •Основные шаги процесса
- •Планирование процесса
- •Выявление требований
- •Методы выявления требований
- •Интервью
- •Семинары требований
- •Мозговой штурм
- •Фокус-группа
- •Прототипирование
- •Варианты использования
- •Проблемы, возникающие при выявлении требований Проблемы классификации требований
- •Проблемы формулировки требований
- •Терминология
- •Предвзятые решения
- •Анализ требований
- •Уточнение требований
- •Структуризация требований
- •Приоритеты
- •Модели требований
- •Документирование требований
- •Глоссарий
- •Документ – концепция
- •Спецификация требований
- •Проверка требований
- •Управление изменениями требований
- •Выводы ко второй части.
- •Литература
- •Часть 3. Качество требований
- •Качество требований Управление качеством
- •Iso 9001:2000
- •Модель зрелости cmmi Обзор cmmi
- •Внутренняя структура описания уровней зрелости
- •Уровни зрелости
- •Группы ключевых процессов
- •Разделы
- •Ключевые практики
- •Отображение процесса управления требованиями на модель cmmi
- •Критерии качества требований
- •Правильные требования
- •Однозначные требования
- •Полные требования
- •Непротиворечивые требования
- •Ранжированные требования
- •Проверяемые требования
- •Прослеживаемые требования
- •Модифицируемые требования
- •Понимаемые требования
- •Выводы к третьей части
- •Литература
- •Часть 4 Управление качеством требований
- •Уровни зрелости требований Уровень 0 – Отсутствие требований
- •Уровень 1 – Документирование требований
- •Выявление требований
- •Интервью
- •Анализ документации
- •Документирование требований
- •Проверка требований
- •Экспертная оценка
- •Согласование документов
- •Уровень 2 – Организация требований
- •Выявление требований
- •Мозговой штурм
- •Анализ требований Уточнение требований
- •Документирование требований
- •Проверка требований Коллективная проверка
- •Документ замечаний
- •Управление изменениями требований База данных требований
- •Управление версиями
- •Уровень 3 – Структурирование требований
- •Планирование процесса План управления требованиями
- •Типы требований
- •Атрибуты требований
- •Выявление требований
- •Варианты использования
- •Прототипы
- •Анализ требований
- •Структуризация требований
- •Определение значений атрибутов
- •Документирование требований Шаблоны требований
- •Модели требований
- •Проверка требований
- •Контрольные листы
- •Рекомендация
- •Уровень 4 – Трассировка требований
- •Выявление требований
- •Анализ требований Иерархия типов требований
- •Отношения между требованиями
- •Трассировка требований
- •Анализ влияния
- •Анализ сферы деятельности
- •Документирование требований Типовые решения требований
- •Уровень 5 – Комплексность требований
- •Анализ требований Трассировка на элементы проектирования и тестирования
- •Показатели требований
- •Количественная оценка требований
- •Документирование требований
- •Заключение
- •Литература
Методы выявления требований
В своей практике аналитики используют большое количество различных методов по выявлению требований. Для того, чтобы собрать наиболее полные требования рекомендуется по возможности использовать сразу несколько методов. Ниже представлен список основных методов выявления требований:
интервьюирование и анкетирование,
проведение семинаров,
мозговой штурм,
работа в фокус-группе,
создание прототипов системы,
варианты использования,
анализ существующей документации,
анализ интерфейсов (программных и аппаратных),
анализ структуры программного обеспечения по коду (reverse engineering).
Выбор конкретного метода зависит от характера разрабатываемого приложения, опыта и уровня подготовки проектной команды, заказчика и других факторов.
Интервью
Интервью является основным способом получения требований от заказчика и пользователя информационной системы. В данной работе я не буду приводить примеры опросников и рекомендации о том, как проводить интервью. Тема интервьюирования затронута во многих книгах по управлению требованиями. Наиболее полно, на мой взгляд, данный метод выявления требований описан в [1] и [2]. Стоит отметить лишь основные правила, которые необходимо помнить во время и после интервью:
Аналитик должен быть компетентен в предметной области заказчика;
Во время интервью аналитик должен сосредоточиться на проблеме;
Аналитик должен задавать открытые вопросы, которые предполагают развернутый ответ;
Аналитик может предлагать свои идеи на счет разрабатываемой системы;
Аналитик должен выяснить ожидания интервьюируемых (что, если…);
Аналитик должен протоколировать результаты интервью.
Также стоит отметить, что до проведения интервью должна быть определена его цель и идентифицированы кандидаты на проведение интервью.
Семинары требований
В результате интервью могут появиться нерешенные вопросы. Для решения подобных вопросов и обсуждение требований проводятся специальные семинары. Как правило, на семинары приглашаются представители заказчика и члены проектной команды. При проведении семинара рекомендуется обсуждать только вынесенные в программу вопросы, придерживаться темы обсуждения и работать на одном уровне абстракции. Уровень абстракции означает, например, то, что если обсуждаются концептуальные вопросы не стоит углубляться в детали реализации.
Семинар также удобен для определения цели разрабатываемой системы, приоритетов требований, сроков реализации требований. На семинаре могут проводится мозговые штурмы для генерации новых идей и ключевых возможностей системы.
Мозговой штурм
Мозговой штурм является превосходным способом поиска новых идей для разрабатываемой системы и ее предметной области. Цель мозгового штурма сфокусироваться на проблеме и предложить определенное количество радикальных идей по решению данной проблемы. Подробное описание применения мозгового штурма на практике можно найти в [3].
Фокус-группа
В отличие от семинара, фокус группа собирается для решения определенной проблемы, как правило, по взаимодействию различных подсистем разрабатываемой системы. При разработке крупномасштабных информационных систем, отдельные подсистемы могут разрабатывать различные команды разработчиков (часто удаленные друг от друга на расстоянии). Для определения правил взаимодействия подсистем, формулирования требований к программным и аппаратным интерфейсам удобно собирать представителей различных команд в фокус группы. Решение проблем взаимодействия подсистем и разнесение ответственности между командами позволит создавать подсистемы, которые будут легко интегрироваться друг с другом.