
- •1.Case-средства автоматиации и Этапы развития uml
- •Унифицированный язык моделирования (uml)
- •Этапы развития uml
- •2. Диаграмма вариантов использования
- •3. Диаграмма вариантов использования (типы связей/отношения)
- •Виды взаимодействий и отношений
- •8.Диаг. Классов, атрибуты, стереотипы, видимость атрибутов и т.П.
- •9.Диаг. Классов, операции и все что про них
- •Имя операции ( арг1 : тип, арг2: тип, …) : тип значения операции
- •10. Диаг. Классов, отношения/типы связей и все, что про них
- •12.Диаграмма состояний
- •14.Диаграмма Кооперации.
- •11.Количественная оценка диаграмм uml
9.Диаг. Классов, операции и все что про них
Операция – это метод класса. Она определяет поведение класса. Синтаксис операции:
Имя операции ( арг1 : тип, арг2: тип, …) : тип значения операции
аргi – параметры получаемые на входе.
На некоторых диаграммах полезно показывать полную сигнатуру операций. Если нужно упростить диаграмму лучше оставить имена.
Рекомендации по выделению операций:
1. Класс имеющий только одну или две операции вызывает подозрение. Его следует объединить с другим классом.
2. Класс без операции должен вызывать еще большие подозрения. Класс должен инкапсулировать не только данные, но и поведение.
3. Класс со слишком большим числом операций также настораживает. Таким классом будет трудно управлять и поэтому его лучше будет разбить на 2 класса.
Различают 4 типа операций:
1. Операции реализации (implementor). Они реализуют некоторую бизнес-функциональность. Каждое сообщение на диаграмме – скорее всего операция реализации.
2. Операции управления (manager). Они управляют созданием и разрушением объектов (в эту категорию попадают операции конструкторы и деструкторы классов). Rose создает их автоматически.
3. Операции доступа (Access). Они предназначены для просмотра или изменения значения атрибута, которые обычно бывают закрытые или защищенные. Например, имеется атрибут Salary класса Employee. Надо, чтобы другие классы модели могли изменять этот атрибут. Для этого добавляют к классу две операции доступа GetSalary и SetSalary. Обе операции являются общедоступными. Первая операция читает значение Salary и возвращает его классу. Вторая SetSalary позволяет установить новое значение атрибута Salary. Этот способ защищает атрибуты и обеспечивает контроль доступа к ним – является промышленным стандартом. Операции доступа в Rose генерируются автоматически для каждого класса.
4. Вспомогательные операции (helper). Для обеспечения внутренних задач класса, о которых другие классы не должны знать. Это закрытые, защищенные операции класса.
Добавление операций
1. Нажать правую кнопку мыши на классе.
2. В меню выбрать New -> Operation
3. Ввести имя операции: Add (x : int, y : int): int;
Спецификация операций
Для этого имеется окно спецификаций операции:
1. Откройте окно спецификации класса;
2. Перейти на вкладку Operations;
3. Дважды нажать на нужной операции.
Задание выходного значения операции. Нужный тип результата указывается в поле Return type окна спецификации операции.
Назначение стереотипа для операции. Для классификаций существует 4 стереотипа: Implementor (Реализация), Manager (Управление), Access (Доступ), Helper (Вспомогательный).
Видимость операций. Переключателем Export Control устанавливаем нужное значение: public (общая), private (закрытая), protected (защищенная), implementation (пакетная).
Добавление аргументов к операции. Для добавления аргументов к операции: открыть окно спецификаций операции; перейти на вкладку Detail; нажать правой кнопкой в области аргумента и выбрать Insert; ввести имя аргумента; нажать кнопкой на колонке Type, ввести тип; нажать кнопку на колонке Default, ввести значение.
Определение протокола операции. Протокол операции описывает, какие операции и в каком порядке может выполнить клиент над объектом. Например, если операцию А нельзя запускать до завершения операции Б, то это можно отметить в поле Protocol операции А. Войдет как комментарий.
Определение уточнений операции. В поле Qualification можно указать любые детали для операции (например, связанные с языком программирования).
Исключительные ситуации. В поле Exception можно перечислить исключительные ситуации для данной операции. Войдет как комментарий.
Определение размера операций. В поле Size можно указать предполагаемый объем памяти для операции во время ее выполнения.
Задание времени выполнения операций. В поле Time вкладки Detail можно указать предполагаемое время, требуемое для выполнения операции.
Задание параллелизма операции. Переключение Concurrency (параллелизм) определяет поведение операции при наличии нескольких потоков управления. Возможны три значения: sequential (последовательный) – операция будет выполняться правильно при наличии только одного потока управления (операции выполняются последовательно); quarded (охраняемая) – операция будет выполняться правильно при наличии нескольких потоков; synchronous (синхронный) – после обращения операция будет выполняться в одном потоке управления вплоть до своего завершения. Другие операции могут в то же самое время выполняться в других потоках. Сведения о параллелизме операций войдут как комментарий.
Задание предусловий операций. Это такие условия, которое должны быть выполнены перед запуском операции (на вкладке Preconditions). Появляются как комментарий.
Задание постусловий операции. Это условия, которые всегда выполняются после завершения работы операции (вкладка Postconditions).
Определение семантики операции. В поле Semantic окна спецификации можно описать, что будет делать операция. Войдет как комментарий.
Связывание файлов с операцией – вкладка Files.
Управление внешним видом диаграмм классов.
Язык UML позволяет отобразить на мониторе как все детали, так и только то, что нужно. В Rose можно настроить диаграммы классов так, чтобы:
- показать все атрибуты и операции;
- скрыть операции;
- скрыть атрибуты;
- показать некоторые атрибуты или операции;
- и т.д. (см. Tools->Options).