- •1. Назначение uml.
- •2. Модель и ее элементы - сущности.
- •3. Модель и ее элементы- отношения.
- •4. Модели и их представления - использования, поведения и структуры.
- •5. Общие свойства моделей.
- •6. Механизмы расширения - стереотипы, помеченные значения, ограничения.
- •7.Канонические диаграммы.
- •8. Иерархия диаграмм в uml 2.
- •9. Диаграммы использования.
- •10. Реализация вариантов использования.
- •11. Моделирование структуры на uml.
- •12. Диаграмма классов. Классы.
- •13. Диаграмма классов. Сущности.
- •14. Диаграммы классов. Отношения.
- •3. Агрегация.
- •15.Диаграмма классов. Интерфейсы и абстрактные классы.
- •16. Компоненты и интерфейсы.
- •17.Диаграммы реализации.
- •18. Моделирование поведения на uml.
- •19. Диаграмма состояний.
- •Переход
- •Сложные переходы
- •Переходы между параллельными состояниями
- •20. Диаграмма деятельности.
- •21. Диаграммы последовательности.
- •Фокус управления
- •Сообщения
- •Ветвление потока управления
- •Стереотипы сообщений
- •Комментарии или примечания
- •22. Диаграммы коммуникации.
- •23. Модели параллелизма.
- •24.Специальные диаграммы - диаграмма объектов, диаграмма внутренней структуры.
- •25. Специальные диаграммы - обзорная диаграмма взаимодействия, диаграмм синхронизации.
- •26. Паттерны проектирования и каркасы на uml.
- •Каркасы
- •27.Управление моделями.
- •28. Диаграмма пакетов.
- •1. Пакет Основные элементы.
- •2. Пакет Элементы поведения.
12. Диаграмма классов. Классы.
Класс является абстрактным описанием или представлением свойств множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами из других классов. Графически изображается в виде прямоугольника, доп. разделенного горизонтальными линиями на разделы или секциями. В них указываются имя класса, атрибуты (переменные), операции (методы).
- Прямоугольник к 3мя секциями (иногда 4): название, атрибуты, методы, исключения.
- Прямоугольник с 2мя секциями: название, список выполняемых функций.
- Прямоугольник с 1 секцией (ER/ORM): название.
Имя класса должно быть уникальным в пределах пакте, которых может содержать несколько диаграмм классов. Указывается в верхней секции прямоугольника - секции класса. Имена классов образуют словарь ООАП. В секции имени могут находиться стереотипы или ссылки на стандартные шаблоны, от которых образован данный класс. Информация о разработчике и т.д. Класс может не иметь экземпляров или объектов - абстрактный класс. Обозначение: имя курсивом.
Атрибуты класса служат для представления отдельного свойства или признака, который является общим для всех объектов данного класса. Записываются во второй сверху секции - секции атрибутов. Каждому атрибуту соответствует отдельная строка текста, которая состоит из квантора видимости, типа значений атрибута и исходного значения (если есть). Общий формат: <квантор видимости> <имя атрибута> [кратность]:
<тип атрибута> = <исходное значение> {строка -свойство}
Квантор видимости может принимать одно из трех возможных значений и, соответственно, отображается при помощи специальных символов:
"+" обозначает атрибут с областью видимости типа общедоступный (public). Атрибут с этой областью видимости доступен или виден из любого другого класса пакета, в котором определена диаграмма.
"#" обозначает атрибут с областью видимости типа защищенный (protected). Атрибут с этой областью видимости недоступен или невиден для всех классов, за исключением подклассов данного класса.
"-" обозначает атрибут с областью видимости типа закрытый (private). Атрибут с этой областью видимости недоступен или невиден для всех классов без исключения.
Строка-свойство служит для указания значений атрибута, которые не могут быть изменены в программе при работе с данным типом объектов. Фигурные скобки как раз и обозначают фиксированное значение соответствующего атрибута для класса в целом, которое должны принимать все вновь создаваемые экземпляры класса без исключения. Это значение принимается за исходное значение атрибута, которое не может быть переопределено в последующем.
Операции классов - это некоторый сервис, который предоставляет каждый экземпляр или объект класса по требованию своих клиентов (других объектов, в том числе и экземпляров данного класса). Записываются в 3 секции - секции операций. Совокупность операций характеризует функциональный аспект поведения всех экземпляров данного класса. Общий формат записи:
<квантор видимости><имя операции>(список параметров):
<выражение типа возвращаемого значения>{строка-свойство}
Имя операции - строка-идентификатор соответствующей операции, кот. должна быть уникальна в пределах данного класса. Обязательное синтаксическое обозначение.
Список параметров - перечень формальных параметров. Имя, вид, выражение типа, значение по умолчанию.
Выражение типа возвращаемого значения указывает на тип данных значения, которое возвращается объектом после выполнения соответствующей операции.
Строка-свойство - для указания свойств, которые могут быть применены к данной операции.
Для повышения производительности системы одни операции могут выполняться параллельно или одновременно, а другие - только последовательно. В этом случае для указания параллельности выполнения операции используется строка-свойство вида "{concurrency = имя}", где имя может принимать одно из следующих значений: последовательная (sequential), параллельная (concurrent), охраняемая (guarded). При этом придерживаются следующей семантики для данных значений:
последовательная (sequential) - для данной операции необходимо обеспечить ее единственное выполнение в системе, одновременное выполнение других операций может привести к ошибкам или нарушениям целостности объектов класса.
параллельная (concurrent) - данная операция в силу своих особенностей может выполняться параллельно с другими операциями в системе, при этом параллельность должна поддерживаться на уровне реализации модели.
охраняемая (guarded) - все обращения к данной операции должны быть строго упорядочены во времени с целью сохранения целостности объектов данного класса, при этом могут быть приняты дополнительные меры по контролю исключительных ситуаций на этапе ее выполнения.