Поиск упущенных требований
Пропуск каких-либо важных данных – самый распространенный недостаток требований. Обнаружить их в процессе повторного просмотра требований очень трудно, поскольку они просто невидимы.
Предлагаемые далее приемы позволяют выявить упущенные требования. И в тоже время следует заметить, что не стоит тратить слишком много времени на выявление требований, пытаясь не упустить ни одно из них – все равно вы никогда не выявите их все сразу!
• Раскладывайте требования высокого уровня на простейшие составляющие - это позволит понять, чего же именно просят пользователи. Из-за неясности требований высокого уровня, предоставляющих пользователям слишком большую свободу интерпретации, возможно несовпадение представлений пользователей о продукте и тем, что создает разработчик.
Вот некоторые неточные и расплывчатые термины, которых следует избегать: обеспечивать поддержку, предоставлять возможность, разрешать, обрабатывать и управлять.
• Убедитесь, что все классы пользователей предоставили вам информацию и для каждого варианта использования определена, по крайней мере, одна роль.
• Подробно документируйте, на каких функциональных требованиях основаны требования к системе, варианты использования, списки откликов на события и бизнес-правила. Это позволит вам быть уверенным, что аналитик описал всю необходимую функциональность.
• Для выявления недостающих требований проверяйте граничные значения. Предположим, в одном требовании указано: «Если стоимость заказа меньше $100, стоимость доставки будет равна $5.95», а в другом – «Если стоимость заказа превышает $100, стоимость доставки составляет 5% от общей стоимости заказа». А как быть, если стоимость заказа составляет ровно $100? Это не оговорено, значит, отсутствует соответствующее требование.
• Используйте разнообразные формы представления информации о требованиях. Трудно прочитать большой объем текста и заметить, что чего-то не хватает. Модели анализа визуально представляют требования высокого уровня абстракции – лес, а не отдельные деревья.
Рассматривая модель, вы можете заметить, что от одного блока к другому должна идти стрелка, которой нет, – это тоже недостающее требование. Подобного рода ошибку легче заметить на рисунке, чем в длинном списке требований.
Матрица CRUDL
Одним из точных и продуктивных способов поиска недостающих требований является создание так называемой матрицы CRUD (Create, Read, Update, Delete – создание, чтение, обновление, удаление). Данная матрица позволяет соотнести действия системы с элементами данных (отдельными или их совокупностями), в результате вы получаете представление о том, где и как каждый элемент данных создается, считывается, обновляется и удаляется. Некоторые авторы добавляют к названию матрицы букву L (CRUDL), указывая, что элементы данных можно еще и перечислять (List).
Например, при помощи этого инструмента легко проверить полноту и непротиворечивость вариантов использования, построив соответствующую матрицу, где строки – это имеющиеся варианты использования, а столбцы – элементы данных. На пересечении строк и столбцов необходимо расставить пометки операций, выполняемых вариантом использования с элементами данных: C – создание, R – чтение, U – обновление, D – удаление, L – перечисление. Наличие пустых столбцов означает либо отсутствие необходимых вариантов использования, либо ненужность соответствующего элемента данных. Наличие пустых строк означает либо ненужность соответствующих вариантов использования, либо отсутствие необходимых элементов данных. Если в столбце отсутствует признак создания элемента данных, то это явно указывает на неполноту вариантов использования. Если в столбце отсутствует признак удаления элемента данных, то следует разобраться, действительно ли этот элемент не подлежит удалению. Если в столбце отсутствуют признаки использования элемента данных (RUL), то следует разобраться, действительно ли необходим этот элемент данных.
Для составления соответствующих матриц CRUDL необходимо использовать словарь данных. При этом анализ матриц позволяет проверить полноту словаря данных и уточнить его при необходимости. Полезной особенностью матриц CRUDL является и то, что их можно начинать составлять, не дожидаясь завершения выявления требований и пополнять на каждой итерации. Причем анализ матриц на каждой итерации способен подсказать направления выявления недостающих данных.
Дата добавления: 2016-06-13; просмотров: 2420;