Диаграммы прецедентов
Диаграммы прецедентов используются для моделирования динамических аспектов ИС. Диаграммы этого типа позволяют достаточно четко описать и визуализировать поведение системы или ее части с точки зрения способа их использования. В результате, с одной стороны, пользователи системы понимают, как использовать некоторые элементы, а разработчики — как их реализовать. Диаграммы данного типа облегчают понимание системы и ее частей, представляя взгляд извне на то, как данные элементы могут быть использованы в соответствующем контексте. При этом достигается высокий уровень понимания функционирования всей системы в целом. Кроме того, такие диаграммы важны для организации эффективного тестирования систем в процессе прямого проектирования и для понимания их внутреннего устройства при обратном проектировании, когда создается модель уже работающей системы. Поэтому диаграммы прецедентов являются наиболее важным инструментом описания поведения.
На диаграмме прецедентов показывается совокупность прецедентов (use cases), актеров (actors) и отношений между этими элементами. Отношения могут следующих типов: зависимость, обобщение, ассоциация. Диаграмма прецедентов может быть также использована для описания функциональности любого классификатора (classifier).
Актер (actor) — согласованная совокупность ролей, которые играет пользователь системы при взаимодействии с ней. Актером может быть как одушевленный предмет (человек-оператор), так и не одушевленный (другие ИС). Актер обычно представляется как стилизованным человечком:
Актеры позволяют четко определить:
- кто пользуется системой;
- кто отвечает за сопровождение системы;
- внешнее аппаратное обеспечение, которое используется системой;
- другие системы, которые должны взаимодействовать с данной системой.
Можно указать два основных варианта использования диаграмм прецедентов:
1. моделирование контекста системы, в ходе которого формируется воображаемая граница системы и выявляются актеры, взаимодействующие с системой; диаграмма прецедентов позволяет в данном случае определить актеров и суть их ролей;
2. моделирование требований к системе, позволяющее точно определить функции системы и ее реакции на внешние события независимо от того, как эти функции реализуются, т.е. по принципу «черного ящика»; это описание системы с точки зрения внешнего наблюдателя.
Пример описания процесса выполнения заказа клиента с помощью диаграммы прецедентов:
Здесь два актера — «Менеджер по продажам» и «Менеджер по закупкам» — вовлечены в два прецедента — «Выполнить заказ клиента» и «Заключить договор с клиентом». Отношения между актерами и прецедентами носят характер однонаправленной ассоциации и показаны поименованной стрелкой.
Один актер может участвовать в нескольких прецедентах, а с одним прецедентом может быть связано несколько актеров.
Несколько прецедентов могут иметь общую часть, выделяемую в самостоятельный прецедент, с которым устанавливается отношение включения с помощью стереотипа «include». Например, если прецеденты «Выполнить заказ клиента» и «Заключить договор с клиентом» содержат общую часть, выражающуюся в проверке данных о клиенте, то это можно выразить так:
Содержание прецедента с точки зрения действий, из которых он состоит, может быть раскрыто с помощью диаграмм активности или состояний, присоединенных к прецеденту.
Диаграммы классов
Диаграмма классов — это граф, узлами которого являются элементы статической структуры проекта системы (классы, интерфейсы и т.п.), а дугами — отношения между узлами (ассоциации, наследование, зависимости).
Диаграмма классов основана на распространенной модели «сущность-связь» (Entity Relationship Diagram, ERD), но обычно обладает большими возможностями по спецификации свойств сущностей и их отношений. Диаграммы классов являются основным средством моделирования статического вида системы.
Обычно диаграммы классов используют в следующих целях:
1. моделирование словаря предметной области, в ходе которого определяется состав и назначение абстракций, являющихся частью системы;
2. моделирование коопераций, позволяющее визуализировать и специфицировать отношения между элементами, входящими в кооперацию;
3. моделирование логической схемы базы данных (реляционной или объектно-ориентированной).
На диаграмме классов обычно изображаются следующие элементы:
- класс (class);
- интерфейс (interface);
- объект (object) — экземпляр класса;
- параметризованный класс (parameterized class), или шаблон, — семейство классов, отличающихся значением некоторых формальных параметров (пример из языков программирования — шаблоны (templates) в C++);
- пакет (package);
- ассоциация (association);
- наследование (inheritance);
- зависимость (dependency).
Среди перечисленных элементов ранее не давалось развернутое описание отношения типа «ассоциация»
Ассоциация(association) — структурное отношение, показывающее, что объекты одного типа некоторым образом связаны с объектами другого типа. Ассоциация может связывать любые классификаторы, но главным образом используется для описания отношений между классами.
Ассоциация, связывающая два класса, называется бинарной. Такая ассоциация используется чаще всего, и именно она рассматривается далее. Можно создавать ассоциации, связывающие более двух классов, они называются n-арными. Реально использование такого отношения редко бывает необходимым. Можно также указывать ассоциацию класса самим с собой, что означает структурную связь между объектами одного класса.
Бинарная ассоциация изображается сплошной линией и может иметь дополнительные визуальные атрибуты, конкретизирующие свойства ассоциации.
Четыре основные характеристики ассоциации:
- наименование — символьная строка, описывающая смысл отношения; имя обычно не указывается, но является полезным, например, в случае существования нескольких ассоциаций между одними и теми же классами;
- роль — описание того значения, которое имеет некоторый класс в контексте данной ассоциации; роль описывает значение одного класса относительно другого класса, связанного ассоциацией;
- кратность — описание числа объектов (экземпляров класса), которые могут быть связаны одним экземпляром ассоциации; указание кратности на одном конце ассоциации специфицирует, сколько именно объектов должно соответствовать каждому объекту на противоположном конце; кратность может указываться конкретным числом или диапазоном, например: единица — «1», несколько — «0..*», положительное количество — «1..*» и т.п.;
- агрегирование — знак того, что ассоциация имеет характер отношения «часть-целое», когда один класс в той или иной форме является частью другого; факт агрегирования показывается с помощью незакрашенного ромба со стороны класса более высокого ранга («целого»); базовая форма агрегирования является чисто концептуальной и показывает, что объект одного класса может агрегироваться объектом другого класса или даже несколькими объектами, что, например, не задает каких-либо зависимостей по времени жизни между объектами.
Пример изображения того, что класс «Студент», играющий роль ученика, ассоциирован с классом «Преподаватель», играющим роль учителя:
При этом считается, что одному объекту «Преподаватель» может соответствовать произвольное количество объектов «Студент». Имя ассоциации составлено со стороны класса «Студент».
Пример использования агрегирования:
Теперь, возвращаясь к примеру о выполнении заказа клиента, можно представить возможную диаграмму классов, использующихся для реализации данного прецедента, следующим образом:
Из диаграммы видно, что для некоторых классов определены операции, перечисляемые в нижней части прямоугольника класса. Для атрибутов определен тип.
Для атрибутов и классов может быть указана видимость:
Закрытые (protected) атрибуты и операции помечаются знаком «-» (минус), защищенные (protected) — знаком «#» (диез), открытые — знаком «+» (плюс).
Дата добавления: 2018-11-25; просмотров: 3458;