Получение типов из других схем 


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



ЗНАЕТЕ ЛИ ВЫ?

Получение типов из других схем



На UML-схеме классов можно отображать типы из другой схемы.

Тип из другой схемы Как получать типы из другой схемы
UML-схема классов Можно отображать класс на нескольких UML-схемах классов. Создав класс на одной схеме, перетащите его из Проводника по моделям UML на другую схему. Такой подход эффективен, если необходимо на каждой схеме отобразить определенную группу отношений. Например, можно показать связи между элементами "Заказ еды" и "Меню" ресторана на одной схеме, а связи между элементами "Заказ еды" и "Оплата" — на другой.
Схема компонентов Если определены компоненты на схеме компонентов, можно перетащить компонент из Проводника по моделям UML на схему классов. В этом случае компонент отобразится как класс.
UML-схема последовательностей На схеме последовательностей из линий жизни можно создавать классы и интерфейсы, а затем перетаскивать класс из Проводника по моделям UML на UML-схему классов. Каждая линия жизни на схеме последовательностей представляет экземпляр объекта, компонента или субъекта. Чтобы создать класс из линии жизни, щелкните линию жизни правой кнопкой мыши и выберите Создать класс или Создать интерфейс.

Атрибуты и операции

Атрибут (4) — это именованное значение, которое может быть присвоено каждому экземпляру типа. Осуществление доступа к атрибуту не меняет состояние экземпляра.

Операция (5) — это метод или функция, которая может выполняться экземплярами типа. Она может возвращать значение. Если ее свойство isQuery имеет значение true, операция не может изменить состояние экземпляра.

Чтобы добавить атрибут или операцию в тип, щелкните тип правой кнопкой мыши, выберите Добавить и щелкните Атрибут или Операция.

Чтобы просмотреть свойства, щелкните атрибут или операцию правой кнопкой мыши, затем выберите Свойства. Свойства отображаются в окне Свойства.

Чтобы просмотреть свойства параметров операции, щелкните […] в свойстве Параметры. Отобразится новое диалоговое окно свойств.

Типы атрибутов и операций

Можно определить следующие типы атрибутов, операций и параметров.

· (нет) — можно не задавать тип в сигнатуре, опустив предшествующее двоеточие (:).

· Стандартными типами-примитивами являются следующие: Boolean, Integer и String.

· Тип, определенный в модели.

· Параметризованное значение типа шаблонов, записанное как Template<Parameter>.

Также можно записать имя типа, который еще не был определен в модели. Имя отобразится в разделе Незаданные типы в проводнике по моделям UML.

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

Несколько типов

Можно задать количество элементов любого атрибута, операции или типа параметров.

Допустимы следующие значения.

Количество элементов Атрибут, параметр или возвращаемое значение содержит следующее.
[1] Одно значение заданного типа.Это значение по умолчанию.
[0..1] Null или значение заданного типа.
[*] Коллекция, в состав которой может входить неограниченное число экземпляров заданного типа.
[1..*] Коллекция хотя бы одного экземпляра заданного типа.
[n..m] Коллекция, в которую входит от n до m экземпляров заданного типа.

Если количество элементов превышает 1, можно задать следующие свойства.

· IsOrdered — если значение true, коллекция имеет определенный порядок.

· IsUnique — если значение true, в коллекции отсутствуют повторяющиеся значения.

Видимость

Видимость указывает, можно ли получить доступ к атрибуту или операции за пределами определения класса. Допустимы следующие значения.

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

Задание сигнатуры атрибута или операции

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

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

Создайте сигнатуру в следующей форме.

visibility attribute-name: Type

- или -

visibility operation-name (parameter1: Type1,...): Type

Пример.

+ AddItem (item: MenuItem, quantity: Integer): Boolean

Используйте краткую форму значения свойства visibility.Значение по умолчанию — + (открытый).

Каждый тип может представлять собой типы, определенные в модели, стандартные типы (такие как Integer или String) или имя нового типа, который еще не был определен.

Примечание
Если в списке параметров создается имя без типа, оно представляет собой имя параметра, а не типа.В этом примере MenuItem и Integer являются именами двух параметров с незаданным типами. AddItem(MenuItem, Integer) /* parameter names, not types! */

Чтобы задать в сигнатуре количество элементов типа, запишите количество элементов в квадратных скобках после имени типа. Например, как показано ниже.

+ AddItems (items: MenuItem [1..*])

+ MenuContent: MenuItem [*]

Если атрибут или операция статична, имя атрибута или операции отображается в сигнатуре подчеркнутым. Если атрибут или операция абстрактна, имя отображается курсивом.

Однако свойства Является статическим и Является абстрактным можно задать только в окне Свойства.

Полная сигнатура

При редактировании сигнатуры атрибута или операции в конце строки и после каждого параметра могут отображаться дополнительные свойства. Они отображаются заключенными в фигурные скобки {…}.Эти свойства можно редактировать и добавлять. Пример.

+ AddItems (items: MenuItem [1..*] {unique, ordered})

+ GetItems (filter: String): MenuItem [*] {ordered, query}

Список содержит следующие свойства.

В сигнатуре Свойство Значение
Unique Является уникальным В коллекции нет повторяющихся значений. Применимо к типам с количеством элементов больше 1.
Ordered Является упорядоченным Коллекция — это последовательность. Если значение false, не существует определенного первого элемента. Применимо к типам с количеством элементов больше 1.
Query Является запросом Операция не меняет состояние экземпляра. Применимо только к операциям.
/ Является производным Атрибут вычисляется из значений других атрибутов или ассоциаций. "/" отображается перед именем атрибута.Пример. Копировать /TotalPrice: Integer

Как правило, полная сигнатура отображается на схеме, только когда она редактируется.По завершении редактирования дополнительные свойства скрываются.Если нужно все время отображать полную сигнатуру, щелкните тип правой кнопкой мыши и выберите Отображать полную сигнатуру.

Создание и использование ассоциаций

Используйте ассоциацию, чтобы представить любые виды отношений между двумя элементами, независимо от того, как эта связь реализуется в программе.Например, можно использовать ассоциацию, чтобы представить указатель в C#, отношение в базе данных или перекрестную ссылку одной части XML-файла на другую.Может представлять связь между объектами в реальном мире, например землей и солнцем.Ассоциация не показывает, как представлена ссылка, а только свидетельствует о наличии сведений.

Свойства ассоциации

После создания ассоциации необходимо задать ее свойства. Щелкните ассоциацию правой кнопкой мыши и выберите Свойства.

Помимо свойств ассоциации в целом каждая роль, т. е. каждое окончание ассоциации, обладает собственными свойствами. Чтобы просмотреть их, расширьте свойства Первая роль и Вторая роль.

Некоторые свойства каждой роли напрямую видны на схеме. К ним относится следующее.

· Имя роли. Отображается на соответствующем окончании ассоциации на схеме. Его можно увидеть на схеме или в окне Свойства.

· Количество элементов, значение по умолчанию — 1. Это значение также отображается на схеме рядом с соответствующим окончанием ассоциации.

· Агрегат. Отображается в форме ромбовидной фигуры на одном окончании соединителя. Можно использовать его для указания, что экземпляры в обобщающей роли владеют экземплярами другой роли или содержат их.

· Является перемещаемым. Если имеет значение true только для одной роли, в направлении перехода отображается стрелка. С помощью этого свойства можно показать возможности перехода по ссылкам и связи в базе данных в программе.

 

Возможность перехода

Когда изображается ассоциация, на одном конце у нее стрелка, обозначающая, что ассоциация дает возможность перехода в этом направлении. Это удобно, если схема классов представляет классы ПО, а ассоциации представляют указатели или ссылки. Но если схема классов представляет сущности и отношения или бизнес-концепции, возможность перехода показывать не обязательно. В таком случае можно изображать ассоциации без стрелок. Это можно сделать, задав для свойства Является перемещаемым на обоих концах ассоциации значение "true".

Атрибуты и ассоциации

Ассоциация — это графический способ представления атрибута. Например, вместо того чтобы создавать класс "Ресторан" с атрибутом типа "Меню", можно создать ассоциацию из элементов "Ресторан" и "Меню".

Каждое имя атрибута становится именем роли. Оно отображается на противоположном типу-владельцу окончании ассоциации. Например, обратите внимание на myMenu на этой иллюстрации.

Как правило, рекомендуется использовать атрибуты только для типов, которые не отображаются на схеме, например для типов-примитивов.

Наследование

Используйте инструмент Наследование для создания следующих отношений.

· Отношение обобщения между специализированным типом и общим типом.

- или -

· Отношение реализации между классом и реализуемым им интерфейсом.

Невозможно создавать циклы в отношениях наследования.

Обобщение

Обобщение означает, что специализирующий или производный тип наследует атрибуты, операции и ассоциации общего или базового типа.

Общий тип отображается на окончании отношения с наконечником стрелки.

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

Переопределение определения операции в специализирующем типе

1. Щелкните отношение обобщения.

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

2. Щелкните тег действия и выберите Переопределить операции.

Появляется диалоговое окно Переопределить операции.

3. Выделите операции, которые нужно отобразить в специализирующем типе и нажмите кнопку ОК.

Выделенные операции теперь отображаются в специализирующем типе.

Реализация

Реализация означает, что класс реализует атрибуты и операции, заданные в интерфейсе. Интерфейс находится на окончании соединителя с наконечником стрелки.

При создании соединителя реализации операции интерфейса автоматически реплицируются в реализующем классе. При добавлении в интерфейс новых операций они реплицируются в реализующих классах интерфейса.

После создания отношения реализации можно преобразовать его в обозначение без описания операций. Щелкните отношение правой кнопкой мыши и выберите Показывать без описания операций.

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

Типы шаблонов

Можно определить общий тип или тип шаблона, параметры которого задаются другими типами и значениями.

Например, можно создать общий тип Dictionary, параметры которого задаются ключевыми типами и типами значений.

Создание типа шаблонов

1. Создайте класс или интерфейс. Это ваш тип шаблонов. Присвойте ему соответствующее имя, например Dictionary.

2. Щелкните новый тип правой кнопкой мыши и выберите Свойства.

3. В окне Свойства щелкните […] в поле Параметры шаблона.

Откроется диалоговое окно Редактор коллекции параметров шаблонов.

4. Нажмите кнопку Добавить.

5. В свойстве "Имя" задайте имя параметра для типа шаблонов, например Key.

6. Задайте значение в поле Вид параметра. Class — значение по умолчанию.

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

8. Добавьте необходимое количество параметров и нажмите кнопку ОК.

9. Добавьте атрибуты и операции в тип шаблонов так же, как при работе с другими классами.

В определении атрибутов и операций можно использовать параметры с видом Класс, Интерфейс или Перечисление. Например, используя классы параметров Key и Value, можно определить эту операцию в Dictionary.

Get(k: Key): Value

Параметр с видом Integer можно использовать в качестве границы количества элементов. Например, максимально допустимое значение параметра Integer можно использовать для определения количества элементов атрибута в виде [0..max].

Созданные типы шаблонов можно использовать для определения привязок шаблонов.

Использование типа шаблонов

1. Создайте новый тип, например AddressTable.

2. Щелкните новый тип правой кнопкой мыши и выберите Свойства.

3. В свойстве Привязка шаблона выберите тип шаблона, например Dictionary, из раскрывающегося списка.

4. Разверните свойство Привязка шаблона.

Отображается строка для каждого параметра типа шаблонов.

5. Задайте подходящее значение для каждого параметра. Например, задайте для параметра Key класс Name.

Пакеты

На UML-схеме классов можно просматривать пакеты. Пакет — это контейнер для других элементов модели. Внутри пакета можно создать любой элемент. На схеме элементы внутри пакета перемещаются по схеме, если перемещается пакет.

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

 


 

ХОД РАБОТЫ

1) Изучить работу с инструментами MS Visual Studio 2010 для построения UML диаграмм;

2) Построить диаграмму вариантов использования по индивидуальному заданию;

3) Построить диаграмму классов по индивидуальному заданию;

4) Написать отчет о проделанной работе.

 

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


 

ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ



Поделиться:


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

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