Проектирование и анализ ПО. Взаимодействие компонентов. Графические символы, изображаемые вблизи визуальных элементов диаграмм

Страницы работы

Содержание работы

Проектирование и анализ ПО

Часть 4. UML

  • Введение
  • Классы и объекты
  • Атрибуты и операции
  • Виды диаграмм

Введение

  • Unified Modeling Language - унифицированный язык.
  • Не ориентирован на конкретный язык программирования.
  • Предназначение – улучшение понимания при моделировании.
  • Возможность создавать различные модели.

Авторы UML

  • Grady Booch
  • James Rumbaugh
  • Ivar Jacobson

Визуализация

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

Моделирование

  • При моделировании используются следующие элементы:
  • Типы
  • Связи, ассоциации
  • Сущности
  • Атрибуты
  • Операции
  • Взаимодействия
  • Объединения

Графические элементы: типы

  • Класс или другая сущность может быть представлена прямоугольником с соответствующим именем.

Графические элементы: связи

  • Связь отражает характер взаимодействия и, возможно, направление.

Связи между сущностями

  • Объединение сущностей и связей может отражать ситуацию, процесс и т.п.

Именованные сущности

  • Для выделения экземпляра можно добавлять префикс.
  • Фактически, это уникальный параметр.

Атрибуты

  • Помимо имени, могут содержать другую информацию.
  • В языке программирования это – поля.

Значения атрибутов

  • Каждый атрибут может принимать значение.

Операции

  • Сущности могут выполнять действия.
  • В ЯП это – методы.

Операции и атрибуты

  • Атрибуты и операции сосуществуют в одной сущности.

Взаимодействие компонентов

  • Компоненты могут воздействовать друг на друга.

Взаимодействие сущностей

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

Объединение

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

Классы и объекты

  • Класс (class) – множество сущностей, имеющих одинаковые свойства.
  • Объект (object) – конкретная сущность определенного класса.
  • Объект является сущностью (instance) класса, если он ему принадлежит.

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

  • Атрибуты – именованные слоты для данных, принадлежащие данному классу.
  • Различные объекты одного класса могут иметь различные значения атрибутов.
  • Операции предоставляют сервисы объекта, изменяющие его состояние и/или поведение.
  • Метод – это реализация операции.

Отношения

  • Зависимость (dependency) - это семантическое отношение между двумя сущностями, при котором изменение одной из них, независимой, может повлиять на семантику другой, зависимой.
  • Ассоциация (association) - структурное отношение, описывающее совокупность смысловых или логических связей между объектами.

Отношения (cont.)

  • Обобщение (generalization) - это отношение, при котором объект специализированного элемента (потомок) может быть подставлен вместо объекта обобщенного элемента (предка).
  • Реализация (realization) является семантическим отношением между классификаторами, при котором один классификатор определяет обязательство, а другой гарантирует его выполнение. Отношение реализации встречаются в двух случаях:
    • между интерфейсами и реализующими их классами или компонентами;
    • между прецедентами и реализующими их кооперациями.

Диаграмма

Диаграмма - это графическое представление множества элементов, обычно изображаемое в виде связного графа из вершин (сущностей) и ребер (отношений).

Виды диаграмм

  • Диаграмма классов (class diagram).
  • Диаграмма компонентов (component diagram).
  • Диаграмма развертывания (deployment diagram).
  • Диаграмма прецедентов (use case diagram).
  • Диаграмма последовательности (sequence diagram).
  • Диаграмма состояний (statechart diagram).
  • Диаграмма деятельности (activity diagram).
  • Диаграмма кооперации.
  • Диаграмма объектов.

Диаграмма классов

Отображает отношения сущностей друг с другом.

Диаграмма компонентов

  • Цель:
  • Отразить зависимости между частями системы.
  • Масштаб отображения может выбираться произвольно.

Диаграмма прецедентов

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

Пример диаграммы прецедентов

  • Действующие лица имеют доступ к отчетам, статистикам.
  • Система получает некие отчеты из внешней системы.

Диаграмма последовательности

  • Отражает последовательность действий какого-то типового случая.
  • Вертикальная шкала – шкала времени, вызовов методов и сообщений.
  • Горизонтальная шкала содержит сущности, участвующие во взаимодействии.

Пример диаграммы последовательности

Чтение должно начинаться слева сверху.

Диаграмма состояний

Отражает возможные состояния классов и последовательности перехода между ними.

Пример диаграммы состояний

На диаграмме всегда можно выделить начальное состояние.

Диаграмма деятельности

  • Моделирует шаги, выполняемые двумя или более сущностями во время выполнения определенной деятельности.
  • Менее «технические», нежели диаграммы последовательности.

Пример диаграммы деятельности

Два участника диаграммы последовательно выполняют шаги до окончания процесса.

Пример диаграммы компонентов

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

Диаграмма развертывания

  • Моделирует способ, которым система будет развернута на физических компонентах и как они будут взаимодействовать между собой.
  • Похожа на диаграмму компонентов с дополнительным блоком – узлом (node).
  • Используется следующий способ именования:
    • [instance name] : [instance type]
    • Например: "w3reporting.myco.com : Application Server"

Пример диаграммы развертывания

Можно отследить физическое место каждого компонента диаграммы.

Другие элементы: заметка

  • Комментарий, соединенный с элементом диаграммы пунктирной линией.

Другие элементы: секции

  • Разделение атрибутов или операций по группам.

Примеры классов (1/2)

  • Классы задают некий шаблон атрибутов...

Примеры классов (2/2)

  • и операций, которые могут быть использованы приложением-клиентом.

Примеры объектов

  • Объект обладает данными, специфичными только для него.

Ассоциации и связи

  • Ассоциации:
    • Двойные
    • Множественные

Ассоциативный класс (1/2)

  • Двойная ассоциация может характеризоваться набором параметров.

Ассоциативный класс (2/2)

  • Множественная ассоциация может быть составной.

Окончания ассоциаций

  • Роль.
  • Стрелка.
  • Число/интервал
  • Агрегация (has-a) и композиция (contains-a).
  • Квалификатор.

Типы

  • Тип – это класс, который может иметь атрибуты, ассоциации и операции, но не имеет методов.

Интерфейс

  • Это класс, который может иметь операции, но не имеет методов, атрибутов и ассоциаций.

Пакеты

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

Выводы

  • Возможности UML позволяют гибко моделировать систему.
  • Созданная модель проста для понимания.
  • Модель может иметь различные степени детализации.
  • Спектр диаграмм позволяет детализировать каждый аспект проекта.

Ссылки

  • Kendall Scott Fast Track UML 2.0
  • Sinan Si Alhir Learning UML

Q&A

Спасибо!

Похожие материалы

Информация о работе