Моделирование требований к системе с помощью диаграмм прецедентов
Прецедент (use case) - это спецификация поведения системы или ее части без определения реализации системы.
Моделирование требований к системе предполагает указание на то, что система должна делать с точки зрения внешнего наблюдателя, независимо от того, как она должна это делать. Диаграммы прецедентов нужны здесь для специфицирования желаемого поведения системы. Они позволяют рассматривать всю систему как "черный ящик": вы видите все, что находится вне ее, наблюдаете за ее реакцией на события, но ничего не знаете о внутреннем устройстве.
Требование (requirement) - это особенность проекта, свойство или поведение системы. Приступая к сбору требований, вы как бы описываете условия контракта, заключаемого между системой и сущностями вне ее, в котором декларируете, что система должна делать. При этом, как правило, вас заботит не то, как именно система будет выполнять поставленные перед ней задачи, а только то, что она будет делать. Хорошо спроектированная система должна полностью выполнять все требования, причем делать это предсказуемо и надежно. Ее создание начинается с соглашения о том, каково ее назначение, хотя в ходе разработки понимание требований будет постоянно изменяться. Аналогично при работе с готовой системой понимание того. Как она себя ведет, имеет принципиальное значение для ее правильного использования.
Требования можно выразить по-разному, от неструктурированного текста до выражений на формальном языке, или, например, с помощью примечаний. Большая часть функциональных требований к системе, или даже все они, может быть выражена в виде прецедентов использования, в чем помогают диаграммы прецедентов UML.
Моделирование требований осуществляется следующим образом:
1. · Установите контекст системы, идентифицировав окружающих ее актеров.
2. · Для каждого актера рассмотрите поведение, которого он ожидает или требует от системы.
3. · Назовите эти общие варианты поведения как прецеденты.
4. · Выделите общее поведение в новые прецеденты, которые будут использоваться другими; выделите вариации поведения в новые прецеденты, расширяющие основные потоки событий.
5. · Смоделируйте эти прецеденты, актеров и отношения между ними на диаграмме прецедентов.
6. · Дополните прецеденты примечаниями, описывающими нефункциональные требования, некоторые из таких примечаний можно присоединить к системе в целом.
Создавая диаграммы прецедентов в UML, помните, что каждая из них является всего лишь графическим представлением статического вида системы с точки зрения вариантов использования. Это означает, что ни одна диаграмма прецедентов, взятая в отдельности, не может, да и не охватывает этот вид целиком. В совокупности диаграммы прецедентов дают полное представление о виде системы с точки зрения вариантов использования, а каждая из них в отдельности - только об одном из его аспектов.
Хорошо структурированная диаграмма прецедентов обладает следующими свойствами:
акцентирует внимание на одном аспекте статического вида системы с точки зрения вариантов использования,
содержит только такие прецеденты и актеров, которые важны для понимания этого аспекта,
содержит только такие детали, которые соответствуют данному уровню абстракции (следует показывать только те дополнения, которые необходимы для понимания системы),
не слишком лаконична, чтобы ввести в заблуждение относительно важной семантики.