Файл: Практикум по промышленному.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.03.2024

Просмотров: 78

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Теоретические сведения

Способы применения UML

Диаграммы UML

Диаграмма классов (Class diagram) Диаграмма классов описывает типы объектов системы и различного рода статические отношения, которые существуют между ними. На диаграммах классов отображаются также свойства классов, операции классов и ограничения, которые накладываются на связи между объектами.Описаниеклассаможет включать множество различных элементов, и чтобы они не путались, в языке предусмотрено группирование элементов описания класса по секциям. Стандартных секций три: секция имени — наряду с обязательным именем может содержать также стереотип, кратность и список именованных значений; секция свойств — содержит список описаний свойств класса; секция операций — содержит список описаний операций класса. Как и все основные сущности UML, класс обязательно имеет имя, а стало быть, секция имени не может быть опущена. Прочие секции могут быть пустыми или отсутствовать вовсе.Класс изображается прямоугольником. Если секций более одной, то внутренность прямоугольника делится горизонтальными линиями на части, соответствующие секциям.На рис. 2 изображена упрощенная диаграмма классов системы, занимающейся обработкой заказов клиентов. Прямоугольники на диаграмме представляют классы и разделены на три части: имя класса (жирный шрифт), его атрибуты и его операции. На рис. 2 также показаны два вида связей между классами: ассоциации и обобщения.Свойства Свойства представляют структурную функциональность класса. В первом приближении можно рассматривать свойства как поля класса. Свойства представляют единое понятие, воплощающееся в двух совершенно различных сущностях: в атрибутах и в ассоциациях. Хотя на диаграмме они выглядят совершенно по­разному, в действительности это одно и то же.Атрибуты Атрибут описывает свойство в виде строки текста внутри прямоугольника класса. Полная форма атрибута:видимость имя: тип кратность = значение по умолчанию {строка свойств} Например: имя: String [1] = "Без имени" {readOnly} Обязательно только имя. Метка видимости обозначает, относится ли атрибут к открытым (обозначается значком +) (public), закрытым (­) (private), защищенным (#) (protected), пакетным () (package);

Диаграмма последовательности (Sequence diagram)

Практическая часть

Инструментарий

Начало работы

Создание первого проекта

Пример создания UML-диаграмм архитектуры проекта с помощью PlantUML

Задания для самостоятельной работы

Вариант №1, 16

Вариант №2, 17

Вариант №3, 18

Вариант №4, 19

Вариант №5, 20

Вариант №6, 21

Вариант №7, 22

Вариант №8, 23

Вариант №9, 24

Вариант №10, 25

Вариант №11, 26

Вариант №12, 27

Вариант №13, 28

Вариант №14, 29

Вариант №15, 30

Литература, ссылки

инии с треугольной незакрашенной стрелкой на конце, направленной от реализующей сущности к реализуемой (рис. 10).

На рис. 10 классы OpenDocCmd и CloseDocCmd реализуют интерфейс Command.

Примечания и комментарии


Примечания это комментарии на диаграммах. Примечания могут существовать сами по себе или быть связаны пунктирной линией с эле ментами, которые они комментируют (рис. 11). Они могут присутствовать на диаграммах любого типа.




Рис.11.Примечаниеиспользуетсякаккомментарийкодномуилиболееэлементамдиаграммы

Ключевые слова


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

Примером может служить интерфейс. Интерфейс (interface) в UML означает класс, в котором все операции открытые и не имеют тел методов. Это соответствует, например, интерфейсам в Java.

Поскольку это специальный вид класса, то он изображается с помощью пиктограммы с ключевым словом

«interface». Обычно ключевые слова представляются в виде текста, заключенного во французские кавычки («елочки»). Вместо ключевых
слов можно использовать специальные значки, но тем самым вы заставляете всех запоминать их значения.

Некоторые ключевые слова, такие как {abstract}, заключаются в фигурные скобки. В действительности никогда не понятно, что формально должно быть в кавычках, а что в фигурных скобках. К счастью, если вы ошибетесь, то заметят это только настоящие знатоки UML. Но лучше быть внимательными.

Некоторые ключевые слова настолько общеупотребительны, что часто заменяются сокращениями:

«interface» часто сокращается до «I», а {abstract} до {A}. Такие сокращения очень полезны, особенно на белых досках, однако их применение не стандартизовано. Поэтому если вы их употребляете, то не забудьте найти место для расшифровки этих обозначений.

Статические операции и атрибуты


Если в UML ссылаются на операции и атрибуты, принадлежащие классу, а не экземпляру класса, то они называются статическими. Это эквивалентно статическим членам в C­подобных языках. На диаграмме класса статические элементы подчеркиваются (рис. 12).


Рис.12.СтатическаяоперациявклассеOrder


Диаграмма последовательности (Sequence diagram)


Диаграммы взаимодействия (interaction diagrams) описывают взаимодействие групп объектов в различных условиях их поведения. UML определяет диаграммы взаимодействия нескольких типов, из которых наиболее употребительными являются диаграммы последовательности.

Обычно диаграмма последовательности описывает один сценарий. На диаграмме показаны экземпляры объектов и сообщения, которыми обмениваются объекты в рамках одного прецедента (use case). Прецедент (use case) множество сценариев, объединенных по некоторому критерию и описывающих последовательности производимых системой действий, доставляющих значимый для некоторого действующего лица результат.

Фактически, диаграмма последовательности это запись протокола конкретного сеанса работы системы (или фрагмента такого протокола). В объектно­ориентированном программировании самым существенным во время выполнения является пересылка сообщений между взаимодействующими объектами. Именно последовательность посылок сообщений отображается на данной диаграмме, отсюда и название.

Рассмотрим простой сценарий. Предположим, что у нас есть заказ, и мы собираемся вызвать команду для определения его стоимости. При этом объекту заказа (Order) необходимо просмотреть все позиции заказа (Line Items) и определить их цены, основанные на правилах построения цены продукции
в

строке заказа (Order Line). Проделав это для всех позиций заказа, объект заказа должен вычислить общую скидку, которая определяется индивидуально для каждого клиента.

На рис. 13 приведена диаграмма, представляющая реализацию данного сценария. Диаграммы последовательности показывают взаимодействие, представляя каждого участника вместе с его линией жизни (lifeline), которая идет вертикально вниз и упорядочивает сообщения (или обращения к каждому участнику); сообщения также следует читать сверху вниз.

Можно видеть, что экземпляр заказа посылает строке заказа сообщения getQuantity и getProduct.

Можно также видеть, как заказ применяет метод к самому себе и как этот метод посылает сообщение getDiscountInfo экземпляру клиента.


Рис.13.Примердиаграммыпоследовательности(централизованноеуправление)

Однако диаграмма не все показывает так хорошо. Последовательность сообщений getQuantity, getProduct, getPricingDetails и calculateBasePrice должна быть реализована для каждойстроки заказа, тогда как метод calculateDiscounts вызывается лишь однажды. Такое заключение нельзя сделать на основе этой диаграммы, но позднее будет введено дополнительное обозначение, которое поможет в этом.

В большинстве случаев можно считать участников диаграммы
взаимодействия объектами.

На приведенной диаграмме участники поименованы с использованием стиля anOrder. В большинстве случаев это вполне приемлемо. Вот более полный синтаксис: имя : Класс, где и имя, и класс не обязательны, но если класс используется, то двоеточие должно присутствовать. Такой синтаксис используется на рис. 16.

Каждая линия жизни имеет полосу активности, которая показывает интервал активности участника при взаимодействии. Она соответствует времени нахождения в стеке одного из методов участника.

Именование бывает часто полезным для установления связей между участниками на диаграмме.

Как видно на диаграмме, вызов метода getProduct возвращает aProduct, имеющего то же самое имя и, следовательно, означающего того же самого участника, aProduct, которому посылается вызов getPricingDetails. Обратите внимание, что обратной стрелкой обозначен только этот вызов с целью показать соответствие. Многие разработчики используют возвраты для всех вызовов, но можно применять их, только когда это дает дополнительную информацию; в противном случае они просто вносят неразбериху. Не исключено, что даже в данном случае можно было опустить возврат.

У первого сообщения нет участника, пославшего его, поскольку оно