Типичные приемы моделирования с помощью основных видов диаграмм 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типичные приемы моделирования с помощью основных видов диаграмм



Диаграммы прецедентов

Диаграммы прецедентов используются для моделирования динамических аспектов ИС. Диаграммы этого типа позволяют достаточно четко описать и визуализировать поведение системы или ее части с точки зрения способа их использования. В результате, с одной стороны, пользователи системы понимают, как использовать некоторые элементы, а разработчики — как их реализовать. Диаграммы данного типа облегчают понимание системы и ее частей, представляя взгляд извне на то, как данные элементы могут быть использованы в соответствующем контексте. При этом достигается высокий уровень понимания функционирования всей системы в целом. Кроме того, такие диаграммы важны для организации эффективного тестирования систем в процессе прямого проектирования и для понимания их внутреннего устройства при обратном проектировании, когда создается модель уже работающей системы. Поэтому диаграммы прецедентов являются наиболее важным инструментом описания поведения.

На диаграмме прецедентов показывается совокупность прецедентов (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) — знаком «#» (диез), открытые — знаком «+» (плюс).

Диаграммы сотрудничества

Диаграмма сотрудничества (collaboration diagram) — это вид диаграммы взаимодействия, в котором основное внимание сосредоточено на структуре взаимосвязей объектов, принимающих и отправляющих сообщения.

Диаграмма сотрудничества представляет собой граф, вершинами которого являются объекты, а ребрами — связи. Связи именуются сообщениями, которые объекты посылают и принимают. Диаграмма сотрудничества иллюстрирует поток управления с точки зрения структуры взаимодействия объектов. Пример диаграммы сотрудничества:

Следует обратить внимание, что на диаграмме сотрудничества показываются не классы, а объекты, т.е. конкретные экземпляры классов. Объект именуется как «Наименование объекта: Наименование класса». Элемент с наименованием «:Запас» является объектом класса «Заказ», но наименование собственно объекта не указано, т.к. не является важным для данного примера. И т.д.

Сообщения имеют порядковый номер для указания временной последовательности сообщений. Для каждой связи можно показать несколько сообщений, и каждое из них должно иметь уникальный номер. Для описания вложенных сообщений используется иерархическая нумерация. Например: номер 2.1 имеет первое сообщение, вложенное в сообщение 2.

Сообщение удобно рассматривать как вызов некоторого метода. Например, из рисунка следует, что объект «:Строка заказа» вызывает метод АнализЗапаса() объекта «:Запас». Для вызывающего (объект-клиент) и вызываемого объекта (объект-сервер) можно указать видимость (глобальная, локальная, вызываемый объект является частью вызывающего и т.д.). Видимость описывается через стереотип связи. Например, если объект «:Строка заказа» является глобальным для «:Запас», то это может быть показано так:

С помощью диаграмм сотрудничества можно моделировать не только неветвящиеся потоки управления, но и сложные потоки с ветвлениями и итерациями (циклами).



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 49; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.214.32 (0.01 с.)