- •Лабораторная работа № 1. Построение диаграммы вариантов использования
- •Добавить включения
- •Указать абстрактные варианты использования
- •Лабораторная работа № 2. Создание сценариев модели вариантов использования
- •Создать файлы сценариев для вариантов использования
- •Лабораторная работа № 3. Построение модели анализа. Диаграмма классов
- •Создайте диаграмму классов анализа для реализации вариантов использования
- •Лабораторная работа № 4. Построение модели анализа. Диаграмма состояний
- •Лабораторная работа № 5.Построение модели проектирования. Создание диаграмм взаимодействия
- •6:Click('Добавить позицию')
- •Лабораторная работа № 6 Построение модели проектирования. Физическая диаграмма классов
- •Лабораторная работа № 7. Построение модели реализации. Диаграмма компонентов
- •Лабораторная работа № 8. Реализация системы. Диаграмма развертывания. Тестирование системы
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 – Пример более детального обозначения класса
Порядок выполнения работы
Вначале необходимо уточнить у преподавателя глубину проработки диаграммы классов в соответствии с диаграммой вариантов использования и сценариями. Часть классов детально определяется на занятиях и реализуется в определённой среде программирования. Остальные классы реализуются в процессе подготовки к следующей лабораторной работе.
