Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование uml.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
530.94 Кб
Скачать

4:*[message<>click('OK')]

6:Click('Добавить позицию')

Рисунок 12 - Диаграмма кооперации ввода нового заказа

Порядок выполнения работы

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

31

Лабораторная работа № 6 Построение модели проектирования. Физическая диаграмма классов

Цель работы: выполнение очередного этапа разработки системы – уточнение модели проектирования для реализации функциональных требований, предъявляемых к системе; построение части модели проектирования – физической диаграммы классов.

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

Одним из важных свойств атрибута класса является начальное значение (initial value) – выражение, определяющее то значение, которое атрибут получает сразу после инициализации объекта.

Процедура явного создания экземпляра (конструктор) может замещать начальное значение своим (“перебивать” это указание).

Порядок инициализации разных атрибутов в классе языком UML не оговаривается, т.е. считается произвольным.

Другими важными свойствами атрибута являются тип, видимость и множественность.

Тип (type) – имя класса или типа данных, экземплярами которых являются значения данного атрибута. Указывается через двоеточие, например, ФИО_сотрудника: String (определяется выбранным для реализации языком программирования).

Видимость (visibility) (область видимости):

  • + public (открытый, общедоступный) – атрибут доступен или виден из любого другого класса пакета, в котором определена диаграмма;

  • # protected (защищённый) – атрибут недоступен или невиден для всех классов, за исключением подклассов данного класса;

  • - private (закрытый) – атрибут недоступен или невиден для всех других классов без исключения, он доступен и виден только внутри данного класса. Потомкам класса (подклассам) он недоступен.

Множественность(multiplicity) – выражение в квадратных скобках после имени атрибута, задаёт количество одновременно задаваемых значений сложного или составного атрибута (вектора или массива). Например, ФИО_сотрудника[1..3] – составной атрибут, который может иметь одновременно от одного до трёх значений: фамилия и дополнительно имя , отчество сотрудника.

Полный синтаксис описания атрибута класса в UML выглядит следующим образом :

«стереотип» видимость имя множественность : тип = начальное значение {строка особых свойств}.

32

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

Примеры описания атрибутов приведены ниже.

+size: Area=(100,100) (открытый, задано исходное значение);

#visibility: Boolean=invisible (защищённый, задано исходное значение);

+оклад: Integer {персональный=20000} (открытый, комментарий с именованным значением).

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

Полный синтаксис записи операции:

«стереотип» видимость имя (список параметров): возвращаемый тип {строка свойств}.

Видимость операции задаётся так же, как и для атрибута.

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

Список параметров - взятый в круглые скобки список объявлений параметров, разделённых запятыми. Скобки остаются и в том случае, если список параметров пустой.

Синтаксис записи параметров:

<вид параметра> <имя параметра> : <выражение типа> = <значение по умолчанию>.

Вид параметра указывается ключевыми словами in, out, inout в зависимости от того, является ли параметр входным, выходным или и тем и другим (по умолчанию принимается inзадаваемый при вызове операции по значению неизменяемый параметр).

В строке свойств даются описания дополнительных свойств операции. Например, если операция не должна изменять состояние системы при вызове, то ставится ключевое слово query (запрос). Может также указываться свойство параллелизма конструкцией вида {concurrency = имя}. Здесь имя – одно из ключевых слов:

  • sequential (последовательная, по умолчанию);

  • concurrent (параллельная, её можно без каких-либо ограничений выполнять параллельно с другими операциями);

  • guarded (охраняемая, параллелизм допускается, но все вызовы данной операции выстраиваются в очередь, выполняются поочерёдно и строго контролируются).

Могут быть указаны любые другие свойства операции, зависящие от используемой системы программирования.Если область действия операции распространяется на все объекты класса (класс целиком), то операция подчёркива-

ется (аналогично атрибуту).

33

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

В обозначении класса возможно появление 4-ой секции (примечания, указания исключительных ситуаций). В разделе имени может быть указана дополнительная информация, относящаяся к классу в целом. Пример более детального обозначения класса приведён на рисунке 13 .

Рисунок 13 – Пример более детального обозначения класса

Порядок выполнения работы

Вначале необходимо уточнить у преподавателя глубину проработки диаграммы классов в соответствии с диаграммой вариантов использования и сценариями. Часть классов детально определяется на занятиях и реализуется в определённой среде программирования. Остальные классы реализуются в процессе подготовки к следующей лабораторной работе.