Диаграммы – достаточно удобный инструмент в работе аналитика. Прежде всего, они позволяют наглядно изобразить некоторый аспект разрабатываемой системы. Например, с их помощью можно объяснить разработчику алгоритм работы отдельной функции или согласовать с заказчиком автоматизируемый бизнес-процесс. Также они позволяют самому аналитику систематизировать знания о системе.
При построении диаграмм часто используются различные нотации, например UML, BPMN, IDEF0 и т.д. Нотация это, по сути, набор стандартных компонентов, из которых строится схема, и главное их преимущество в том, что эти элементы одинаково понимаются теми, кто читает диаграмму. Но чтобы от диаграмм был толк, нужно помнить о следующих моментах:
- Диаграммы удобны в использовании только тогда, когда не содержат большого количества элементов. Это количество может различаться в зависимости о того, какой аспект системы мы отображаем и какую нотацию используем. В идеале вся диаграмма должна размещаться на одном листе формата А4.
- Нотация, используемая в диаграмме, должна быть знакома тем, кто ее использует.
- Диаграмм не должно быть много. В противном случае потребуется очень много сил и времени на то, чтобы поддерживать их в актуальном состоянии.
В дальнейшем я хочу описать некоторые особенности построения диаграмм и начну я с UML-диаграммы прецедентов.
Диаграмма прецедентов (use-case diagram) позволяет показать пользователей создаваемой системы и основные действия, которые пользователи могут в этой системе выполнять.
Для построения диаграммы используются следующие элементы:
Актор (Actor) – это пользователь системы, который может выполнить в ней некоторое действие. Актором может быть как человек, так и другая система. Часто актору доступна для выполнения только часть действий, отведенных в рамках присвоенной ему роли.
На диаграмме актор может обозначаться в виде человечка, прямоугольника с наименованием актора или пиктограммы.
Прецедент (Use case) – действие, доступное актору для выполнения. На диаграмме обычно отображаются действия, выполнение которых приносит пользователю значимый результат. При отображении прецедентов также важно помнить, что прецедент говорит, что может быть сделано, и не говорит о том, как это должно быть сделано (для этого есть другие диаграммы). На диаграмме обозначается в виде овала с написанным внутри названием прецедента.
В случае, если выполнение прецедента может привести к выполнению другого необязательного прецедента, то овал прецедента должен быть разделен на две части. В верхней части указывается наименование основного прецедента, а в нижней – названия кейсов, которые при некоторых условиях, могут быть выполнены при выполнении основного прецедента.
Комментарий - некая дополнительная информация к акторам, прецедентам или связям. Комментарий может пояснять нефункциональные требования к системе, сценарии вариантов использования, детали реализации или некоторые заключения, к которым пришел составитель в процессе анализа.
Связь – это сущность, соединяющая акторов и прецеденты. Связи бывают следующих типов.
· Ассоциация - связь между актором и прецедентом. Наличие такой связи говорит, что актор может выполнять прецедент, с которым связан. Обозначается сплошной линией без стрелки.
· Обобщение – связь, между акторами или прецедентами, которая показывает, что одна сущность является частным случаем другой сущности. Обобщение возможно только между одинаковыми сущностями. Обозначается сплошной линией с незакрашенным треугольником, направленным от потомка к родителю.
· Включение - связь между прецедентами, которая говорит нам, что дочерний прецедент всегда выполняется в рамках родительского. Обозначается пунктирной линией со стрелкой, направленной от родителя к потомку, и подписывается словом "include".
· Расширение - связь между прецедентами, которая говорит, что один прецедент может быть выполнен в рамках другого при определенных условиях. Обозначается пунктирной линией со стрелкой от необязательного прецедента к обязательному. Если у нас существует связь типа Расширение, то обязательный прецедент вместе с наименованием содержит Точки расширения (Extension Points) - наименование тех самых необязательных прецедентов. Связь обозначается пунктирной линией со стрелкой от необязательного прецедента к обязательному и подписывается словом "extend". Также к такой связи прикрепляется комментарий, в котором указывается условие выполнение необязательного прецедента и наименование необязательного прецедента.