Какова рекомендуемая иерархия uml диаграмм при описании сценариев учебного мультимедиа комплекса

Работа по теме: 2014UML0102. Глава: Иерархия диаграмм UML. Предмет: Анализ и проектирование на UML. ВУЗ: СПбГУ ИТМО.

Представления

Все аспекты моделируемой системы не удается описать с единой точки зрения.

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

Этот тезис является одним из основополагающих принципов UML.

Представления

Выделим три представления:

представление использования (что делает система полезного?);

представление структуры (из чего состоит система?);

представление поведения (как работает система?).

Представления

Выделим три представления:

представление использования;

представление структуры;

представление поведения.

Представления

Представление использования призвано отвечать на вопрос, что делает система полезного.

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

Описывается диаграммой использования.

Представления

Представление структуры призвано отвечать на вопрос: из чего состоит система.

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

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

Представления

Представление поведения призвано отвечать на вопрос: как работает система.

Определяющим признаком для отнесения элементов модели к представлению поведения является явное использования понятия времени, в частности, в форме описания последовательности событий/действий, то есть в форме алгоритма.

Описывается диаграммами состояний и деятельности, а также диаграммами взаимодействия в форме диаграмм кооперации и/или последовательности.

Выводы

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

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

Модель UML состоит из описания сущностей и отношений между ними.

Элементы модели группируются в диаграммы и представления для наилучшего описания моделируемой системы с различных точек зрения.

Выводы

Модель UML состоит из описания сущностей и отношений между ними.

Диаграмма — это графическое представление некоторой части графа модели.

Для удобства обзора сущности в UML можно подразделить на четыре группы: структурные; поведенческие; группирующие; аннотационные.

В UML используются четыре основных типа отношений: зависимость; ассоциация; обобщение; реализация.

Элементы модели группируются в диаграммы и представления для наилучшего описания моделируемой системы с различных точек зрения.

Соседние файлы в папке Лекции Хлопотов М.В.

  • #
  • #
  • #
  • #
  • #
  • #
  • #

Проектирование – один из важных шагов при разработке программы, который очень часто игнорируется начинающими разработчиками. Обычно они пытаются удержать всё в голове или, в лучшем случае, записать некоторые важные сведения на листе бумаги. Как результат, у них нет чёткого плана дальнейших действий, и проект может быть отложен в долгий ящик.

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


Сегодня мы разберемся с тем, как использовать диаграмму вариантов использования UML (англ. «Unified Modeling Language») – стандартизированный язык моделирования при проектировании программ.

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

Когда разработчик создаёт своё приложение, он в первую очередь задумывается над двумя вопросами:

  • Что будет делать приложение?

  • Кто будет пользоваться этим приложением?

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

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

Диаграмма вариантов использования

Диаграмма вариантов использования (англ. use-case diagram) – диаграмма, описывающая, какой функционал разрабатываемой программной системы доступен каждой группе пользователей.

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

В этой системе можно выделить следующие группы пользователей:

  • Обучающиеся

  • Преподаватели

  • Классные руководители

  • Заместители директора

Заместители директора есть, а где же сам директор?

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

Каждая из групп пользователей может пользоваться нашей системой по-своему.

Обучающиеся могут:

  • Смотреть расписание

  • Просматривать свои оценки

Преподаватели могут:

  • Размещать материалы для уроков

  • Выставлять оценки в электронный журнал

Классные руководители могут делать все то же самое, что и преподаватели плюс:

  • Составлять расписание родительских собраний

Заместители директора могут:

  • Составлять расписание

  • Публиковать посты с важной информацией

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

  • Отправлять сообщения

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

А почему мы описываем так мало возможностей?

Заметьте, что на диаграмме мы хотим отобразить только ключевой функционал системы. Например, действия «войти в систему», «выйти из системы» или «восстановить пароль» могут присутствовать в любой системе, и их наличие не стоит дополнительно описывать, поскольку это загрязняет диаграмму несущественными элементами.

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

А теперь, когда мы выделили группы пользователей и функциональность системы, начнём строить диаграмму, чтобы зафиксировать и структурировать полученные данные.

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

Каждая группа пользователей на диаграмме вариантов использования обозначается человечком, под которым записывается имя группы людей, которую он обозначает. Давайте изобразим группу пользователей «Преподаватели»:

Этот человечек обозначает всех преподавателей,
которые будут пользоваться системой

Этот человечек обозначает всех преподавателей,
которые будут пользоваться системой

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

В терминологии UML, этот человечек называется актёром (англ. «actor»). В общем случае, актёр обозначает любые сущности, использующие систему. Этими сущностями могут быть люди, технические устройства или даже другие системы.

Так же изобразим актёров для оставшихся групп пользователей:

Здесь изображены все группы пользователей, которые могут пользоваться нашей системой

Здесь изображены все группы пользователей, которые могут пользоваться нашей системой

Как я упоминал ранее, каждая группа пользователей использует определённые функции системы. На диаграмме вариантов использования функция системы изображается эллипсом, внутри которого записывается имя функции в форме глагола с пояснительными словами.

Этот эллипс представляет действие
"Выставить оценки в электронный журнал"

Этот эллипс представляет действие
«Выставить оценки в электронный журнал»

В терминологии UML, этот эллипс называется вариантом использования (англ. «use-case»). В общем случае, вариант использования – набор действий, который может быть использован актёром для взаимодействия с системой.

Связи между элементами

На диаграммах UML для связывания элементов используются различные соединительные линии, которые называются отношениями. Каждое такое отношение имеет собственное название и используется для достижения определённой цели. В качестве справочной информации перечислю все виды отношений, которые мы будем использовать в этой статье.

Отношение ассоциации (англ. "association relationship")

Отношение ассоциации (англ. «association relationship»)
Отношение обобщения (англ. "generalization relationship")
Отношение обобщения (англ. «generalization relationship»)
Отношение включения (англ. "include relationship")
Отношение включения (англ. «include relationship»)
Отношение расширения (англ. "extend relationship")
Отношение расширения (англ. «extend relationship»)

Отношение ассоциации

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

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

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

Мы соединили актеров с вариантом использования с помощью сплошной линии без стрелки. Такая линия называется отношением ассоциации.

Отношение ассоциации предназначено только для соединения актёров и вариантов использования. Нет никакого смысла соединять отношением ассоциации двух актёров или два варианта использования.

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

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

Если на диаграмме вариантов использования актёр соединен с вариантом использования с помощью отношения ассоциации, это означает, что данный актёр может выполнять действия, описанные вариантом использования.

Почему отношение ассоциации называется так и не иначе?

Чтобы лучше понять это отношение, вспомним, каким образом мы выделяли функционал для различных групп пользователей. Некоторые обязанности у нас ассоциируются с определённой группой людей, поэтому мы связываем актёров с ассоциируемыми с ними действиями.

Добавим еще вариантов использования и соединим их с соответствующими актёрами:

Первая версия диаграммы

Первая версия диаграммы

Пока что наша диаграмма совсем не впечатляет, поэтому мы продолжим наполнять ее информацией. Заодно мы узнаем все возможности этого вида диаграмм.

Отношение обобщения

Заметим, что в нашей системе группы пользователей «Преподаватель» и «Классный руководитель» обладают схожими возможностями. Чтобы изобразить это на диаграмме, мы можем пойти одним из трёх путей:

  1. Дублировать варианты использования, чтобы связать их с каждым схожим актёром (очевидно, неудачный вариант).

  2. Соединить каждого актёра со всеми нужными вариантами использования. Это может породить множество пересечений линий, что не самым лучшим образом скажется на читаемости диаграммы.

  3. Показать с помощью одного из видов отношений, что актёры связаны между собой. Это будет означать, что один из них может пользоваться всеми вариантами использования, с которыми соединён другой актёр.

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

Разумеется, мы воспользуемся третьим путём. В этом нам поможет, так называемое, отношение обобщения. Отношение обобщения обозначается сплошной линией с полой треугольной стрелкой.

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

Ниже представлены несколько примеров использования отношения обобщения.

Покупка горного и скоростного велосипеда -
ЧАСТНЫЙ случай покупки велосипеда

Покупка горного и скоростного велосипеда —
ЧАСТНЫЙ случай покупки велосипеда
Физическое лицо и юридическое лицо
можно ОБОБЩИТЬ до обычного покупателя
Физическое лицо и юридическое лицо
можно ОБОБЩИТЬ до обычного покупателя

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

Вернёмся к нашему основному примеру. Изобразим отношение обобщения от актёра «Кл. руководитель» к актёру «Преподаватель».

На рисунке сверху сразу видно, насколько понятнее становится диаграмма при использовании отношения обобщения: исчезли все повторы вариантов использования и пересечения линий. Разумеется, это огромный плюс для тех, кто будет читать эту диаграмму в дальнейшем.

Давайте обратим внимание на действие «Узнать свои оценки». Логично предположить, что обучающиеся захотят не только знать список своих оценок, но и знать свою среднюю оценку за некоторый период времени или среднюю оценку по определённому предмету.

Изобразим это на диаграмме. Для этого создадим два варианта использования «Узнать среднюю оценку за некоторый период времени» и «Узнать среднюю оценку по предмету» и соединим их с вариантом использования «Узнать свои оценки» отношением обобщения.

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

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

Присоединим это к основной диаграмме:

Вторая версия диаграммы

Вторая версия диаграммы

Отношение включения

Для заместителя директора мы отмечали, что ему нужно составлять расписания. Условно расписание можно поделить на три категории:

  1. Расписание занятий

  2. Расписание мероприятий

  3. Расписание каникул

Всё это составляется заместителем директора, поэтому покажем это на диаграмме. Для этого будем использовать отношение включения. Отношение включения обозначается пунктирной линией с V-образной стрелкой на конце, над стрелкой добавляется надпись “include”.

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

Когда мы используем отношение включения, мы подразумеваем, что составные варианты использования ОБЯЗАТЕЛЬНО входят в состав общего варианта использования.

Поясню смысл и этого отношения на небольшом примере. Когда пользователь сохраняет результаты своей работы в файл, он указывает место сохранения и расширение файла (например, если он редактировал фотографию в photoshop, он может сохранить ее в различных форматах). Этот процесс можно изобразить на диаграмме вариантов использования следующим образом:

Отношение включения используется для
изображения составного действия

Отношение включения используется для
изображения составного действия

Снова вернёмся к нашему основному примеру.

Составление расписания ВКЛЮЧАЕТ в себя составление
расписания занятий, мероприятий, каникул(обязательно)

Составление расписания ВКЛЮЧАЕТ в себя составление
расписания занятий, мероприятий, каникул(обязательно)

Как итог, наша диаграмма принимает следующий вид:

Третья версия диаграммы

Третья версия диаграммы

В целом, на этом можно остановиться. Хоть наш пример и демонстрационный, он немного отражает функциональность реального приложения. Тем не менее, остался еще один элемент, который мы не рассмотрели.

Отношение расширения

Нужно сказать, что в диаграммах вариантов использования применяется ещё один вид связи – отношение расширения. На мой взгляд, применение отношение расширения несколько специфично, поскольку неправильное его использование может запутать читателя диаграммы. Тем не менее, для полноты картины мы всё равно рассмотрим применение этого отношения на практике. В последний раз модифицируем нашу диаграмму!

Во время дистанционного обучения школьникам необходимо выполнять домашние задания и присылать их в виде архива или фотографий учителям. Получается, нужно добавить возможность прикреплять файл к сообщению в нашей системе. Чтобы отобразить это на диаграмме мы будем использовать отношение расширения. Отношение расширения обозначается пунктирной линией с V-образной стрелкой на конце (похоже на отношение включения), над стрелкой добавляется надпись “extend ”.

Зачем над пунктирными линиями добавлять надписи “include” и “extend”?

В UML пунктирная линия с V-образной стрелкой, в общем случае, называется отношением зависимости. Для диаграммы вариантов использования выделяют различные виды зависимостей: отношение включения и отношение расширения. Чтобы их различать, над стрелками пунктирной линией пишут “include” и “extend” соответственно.

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

На диаграмме предполагается, что к заказу МОЖЕТ БЫТЬ
добавлена картошка фри или соус (необязательно)

На диаграмме предполагается, что к заказу МОЖЕТ БЫТЬ
добавлена картошка фри или соус (необязательно)

Два нижних варианта использования описывают возможные «расширения» для базового варианта использования. Исходя из этого примера, мы можем сделать важное замечание.

Можно сказать, что отношение расширения — это выборочное отношение включения. Если отношение включения обозначает, что элемент обязательно включается в состав другого элемента, то в случае отношения расширения это включение необязательно.

Понимание этого критически важно для грамотного использования этого вида отношений.

Вернёмся к нашему основному примеру. Мы хотим, чтобы действие «прикрепить файл к сообщению» расширяло действие «отправить сообщение». На диаграмме это изображается следующим образом:

Расширяем функционал отправки сообщений
с помощью функции прикрепления файлов к сообщению
(Необязательно прикреплять файл к каждому сообщению)

Расширяем функционал отправки сообщений
с помощью функции прикрепления файлов к сообщению
(Необязательно прикреплять файл к каждому сообщению)

Как итог, получим такую диаграмму:

Четвёртая версия диаграммы

Четвёртая версия диаграммы

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

Что делать, если я путаюсь в направлении стрелок?

При построении диаграмм UML часто возникает путаница, в какую сторону направлена та или иная стрелка. Это пройдёт после небольшой практики. Общая рекомендация к запоминанию правильного направления стрелок на диаграмме вариантов использования: стрелка обычно направлена от «зависимого» объекта к «независимому» (от специального к общему). Например:

Проектирование программы ЗАВИСИТ от составления
функциональных требований, обдумывания функционала программы,
выделения групп пользователей ,потому что ВКЛЮЧАЕТ в
себя эти этапы

Проектирование программы ЗАВИСИТ от составления
функциональных требований, обдумывания функционала программы,
выделения групп пользователей ,потому что ВКЛЮЧАЕТ в
себя эти этапы
Программист на каждом следующем уровне должности
ПЕРЕНИМАЕТ знания с предыдущих уровней,
без которых не может развиваться дальше. Получается,
что актёры ЗАВИСЯТ от предыдущих ступеней
Программист на каждом следующем уровне должности
ПЕРЕНИМАЕТ знания с предыдущих уровней,
без которых не может развиваться дальше. Получается,
что актёры ЗАВИСЯТ от предыдущих ступеней

Тем не менее, в любом правиле есть исключение. Этим исключением является отношение расширение:

Если DLC было куплено, то игра зависит от
контента, который содержится в нём.
Наше правило "зависимости" рушится :(

Если DLC было куплено, то игра зависит от
контента, который содержится в нём.
Наше правило «зависимости» рушится :(

Общие рекомендации:

  1. Диаграммы очень просто изменять. Не нужно пугаться того, что требования к программе могут измениться или что вы что-то забыли отобразить на диаграмме. Вы можете добавить элементы к диаграмме, когда вам угодно.

  2. Не нужно засорять диаграмму слишком мелкими действиями. Объедините все общие действия в одну группу под общим названием, чтобы было просто читать диаграмму.

  3. Старайтесь не допускать пересечений соединительных линий. Это может затруднить чтение диаграммы для вас и для ваших коллег.

  4. Не дублируйте варианты использования на диаграмме. Если приходится дублировать варианты использования, то элементы диаграммы надо постараться расставить по-другому.

  5. Пользуйтесь специальными компьютерными программами для построения диаграмм. Это существенно упростит весь процесс моделирования.

Описание презентации по отдельным слайдам:

  • Применение UML при разработке программного обеспечения

    1 слайд

    Применение UML при разработке программного обеспечения

  • Что такое UML (Unified Modeling Language)

    2 слайд

    Что такое UML (Unified Modeling Language)

  • Сущность UMLИспользование  СмыслКонструкции

    3 слайд

    Сущность UML
    Использование
    Смысл
    Конструкции

  • Назначение - спецификация, визуализация, конструирование, документированиеСре...

    4 слайд

    Назначение — спецификация, визуализация, конструирование, документирование
    Средство описания -Как устроена и работает
    Средство коммуникации (наглядность)
    (документ)

  • Использование UML

    5 слайд

    Использование UML

  • Модель процесса моделирования

    6 слайд

    Модель процесса моделирования

  • Сущности представлений

    7 слайд

    Сущности представлений

  • Стандарт UМL

  • Сущности UML

  • Отношения UML

  • Диаграммы

  • Назначение диаграмм

    12 слайд

    Назначение диаграмм

  • Диаграммы использования (Use Case)Диаграммы вариантов использования описывают...

    13 слайд

    Диаграммы использования (Use Case)
    Диаграммы вариантов использования описывают функциональное назначение системы или то, что система должна делать. Разработка диаграммы преследует следующие цели:
    определить общие границы и контекст моделируемой предметной области;
    сформулировать общие требования к функциональному поведению проектируемой системы;
    разработать исходную концептуальную модель системы для ее последующей детализации в форме логических и физических моделей;
    подготовить исходную документацию для взаимодействия разработчиков системы с ее заказчиками и пользователями.

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

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

  • Отношения в диаграммах использованияАссоциацияОбобщение
Потомок наследует пов...

    14 слайд

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

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

    15 слайд

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

  • Диаграмма классовДиаграмма классов представляет собой граф, вершинами которог...

    16 слайд

    Диаграмма классов
    Диаграмма классов представляет собой граф, вершинами которого являются элементы типа «классификатор», связанные различными типами структурных отношений.

    Обобщение
    (наследование)
    Композиции
    Агрегациии
    Ассоциация
    Отношения между экземплярами класса
    Сильная агрегация

  • КлассификаторКлассификатор – это элемент, описывающий структурные и поведенче...

    17 слайд

    Классификатор
    Классификатор – это элемент, описывающий структурные и поведенческие свойства.

  • Пример диаграммы классов

    18 слайд

    Пример диаграммы классов

  • Пример диаграммы классов

    19 слайд

    Пример диаграммы классов

  • Диаграмма объектовДиаграмма объектов представляет статический «моментальный с...

    20 слайд

    Диаграмма объектов
    Диаграмма объектов представляет статический «моментальный снимок» с экземпляров предметов, которые находятся в диаграммах классов.
    Диаграмма объектов характеризуется следующими свойствами:
    акцентирует внимание на одном аспекте статического вида системы с точки зрения проектирования или процессов;
    представляет лишь один из кадров динамического сценария, показанного на диаграмме взаимодействия;
    содержит только существенные для понимания данного аспекта элементы;
    уровень ее детализации соответствует уровню абстракции системы. (Показывайте только те значения атрибутов и дополнения, которые существенны для понимания);

  • Пример диаграммы объектов

    21 слайд

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

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

    22 слайд

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

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

    23 слайд

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

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

    24 слайд

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

  • Диаграмма коммуникаций

    25 слайд

    Диаграмма коммуникаций

  • Диаграмма состоянийДиаграммы состояний показывают различные состояния объекта...

    26 слайд

    Диаграмма состояний
    Диаграммы состояний показывают различные состояния объекта в течение его времени жизни

  • Синхронизирующие состояния

    27 слайд

    Синхронизирующие состояния

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

    28 слайд

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

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

    29 слайд

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

  • Диаграмма компонентовДиаграмма компонентов описывает особенности физического...

    30 слайд

    Диаграмма компонентов
    Диаграмма компонентов описывает особенности физического представления системы.

  • Диаграмма внутренней структуры

    31 слайд

    Диаграмма внутренней структуры

  • Диаграмма размещенияДиаграмма размещения наряду с отображением состава и связ...

    32 слайд

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

  • Диаграмма пакетовДиаграммы пакетов  отображают зависимости между пакетами: им...

    33 слайд

    Диаграмма пакетов
    Диаграммы пакетов отображают зависимости между пакетами: импортирование пакета и слияние пакета

  • Уровень системы

  • Уровень модуля

  • Уровень модулей Java

    37 слайд

    Уровень модулей Java

  • Уровень объектов Java

    38 слайд

    Уровень объектов Java

Язык UML

Часто понятие архитектуры сильно сужают, понимая под ним лишь описание основных, важных аспектов ПО, создаваемых, например, архитектором при разработке дизайна системы. Для этих целей используется язык моделирования UML (Unified Modeling Language).

Этот язык является итогом развития средств схематического описания программных систем, которые развивались с блок-схем, предложенных еще фон Нейманом в конце 40-х годов. Он предполагал, что эти схемы станут высокоуровневым языком ввода алгоритмов в вычислительные машины, но эволюция языков программирования пошла по пути текстовых языков. Тем не менее блок-схемы получили распространение при спецификации и документировании ПО, были стандартизованы, однако широкого практического применения не получили. В конце 60-х годов, в связи с поиском новых средств разработки ПО, рождением программной инженерии и общими следованиями в области проектирования и разработки искусственных систем появился термин структурный анализ (structured analysis) систем. Термин был введен ученым из MIT, Дугласом Россом, который также предложил диаграммный метод анализа и проектирования больших искусственных систем. Метод назывался SADT (Structured Analisys and Design Technique),
стал основой серии военных стандартов США серии IDEF и широко распространился в индустрии. Однако диаграммный язык в SADT был очень скромным – набор блоков и связей между ними, с поддержкой декомпозиции блоков. В 70-х годах, в связи с массовым выходом ПО на свободный рынок (то есть программные системы стали создаваться не только в военной области, для крупного бизнеса, но также для среднего и малого бизнеса) структурный анализ стал бурно эволюционизировать – набор диаграмм обогатился диаграммами состояний и переходов, сущность-связь, потоков данных и т.д. С развитием объектно-ориентированных средств разработки (конец 80-х – середина 90-х) структурный анализ превратился в объектно-ориентированный анализ и проектирование. Появилось большое количество методологий, и постепенно сложился единый язык моделирования, который и был закреплен в стандарте UML. Произошло это в 1997 году.

С тех пор вышло несколько версий стандарта UML. Текущая версия UML 2.1.

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

«Скелетом» UML является диаграммная структура. Каждый вид диаграмм является типом моделей, реализующим определенную точку зрения на программную систему. Виды диаграмм не являются строго обязательными в UML – их можно перемешивать, создавать свои собственные виды диаграмм. Тем не менее стандартные виды диаграмм являются определенным достоянием программной инженерии, так как отражают опыт многих исследователей и практиков.

  • Структурные диаграммы:
    • диаграммы классов (class diagrams) предназначены для моделирования структуры объектно-ориентированных приложений классов, их атрибутов и заголовков методов, наследования, а также связей классов друг с другом;
    • диаграммы компонент (component diagrams) используются при моделировании компонентной структуры распределенных приложений; внутри каждая компонента может быть реализована с помощью множества классов;
    • диаграммы объектов (object diagrams) применяются для моделирования фрагментов работающей системы, отображая реально существующие в runtime экземпляры классов и значения их атрибутов;
    • диаграммы композитных структур (composite structure diagrams) используются для моделирования составных структурных элементов моделей – коопераций, композитных компонент и т.д.;
    • диаграммы развертывания (deployment diagrams) предназначены для моделирования аппаратной части системы, с которой ПО непосредственно связано (размещено или взаимодействует);
    • диаграммы пакетов (package diagrams) служат для разбиения объемных моделей на составные части, а также (традиционно) для группировки классов моделируемого ПО, когда их слишком много.
  • Поведенческие диаграммы:
    • диаграммы активностей (activity diagrams) используются для спецификации бизнес-процессов, которые должно автоматизировать разрабатываемое ПО, а также для задания сложных алгоритмов;
    • диаграммы случаев использования (use case diagrams) предназначены для «вытягивания» требований из пользователей, заказчика и экспертов предметной области;
    • диаграммы конечных автоматов (state machine diagram) применяются для задания поведения реактивных систем;
    • диаграммы взаимодействий (interaction diagram):

      • диаграммы последовательностей (sequence diagram) используются для моделирования временных аспектов внутренних и внешних протоколов ПО;
      • диаграммы схем взаимодействия (interaction overview diagram) служат для организации иерархии диаграмм последовательностей;
      • диаграммы коммуникаций (communication diagrams) являются аналогом диаграмм последовательностей, но по-другому изображаются (в привычной, графовой манере);
    • временные диаграммы (timing diagrams) являются разновидностью диаграмм последовательностей и позволяют в наглядной форме показывать внутреннюю динамику взаимодействия некоторого набора компонент системы.

Примеры. Центральным видом диаграмм являются диаграммы классов. Пример представлен на
рис.
4.3.

Еще один вид структурных диаграммдиаграммы развертывания, пример представлен ниже.

Пример диаграмм размещений

Рис.
4.4.
Пример диаграмм размещений

Отметим также еще один важный вид диаграмм UMLдиаграммы компонент (пример представлен на
рис.
4.5).

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

Рис.
4.5.
Пример диаграмм компонент

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

Пример диаграмм композитных структур

Рис.
4.6.
Пример диаграмм композитных структур

Ниже приводятся примеры на поведенческие диаграммы UML. Диаграммы конечных автоматов позволяют создавать полные спецификации поведения телекоммуникационных, событийно-управляемых алгоритмов и автоматически генерировать по этим описаниям программный код. Пример такой диаграммы для класса COperator представлена ниже.

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

Рис.
4.7.
Пример диаграмм конечных автоматов

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

Библиографическое описание:


Применение UML-диаграмм для проектирования программных комплексов / Е. В. Коптенок, М. В. Трунников, Е. А. Сухарев [и др.]. — Текст : непосредственный // Молодой ученый. — 2020. — № 19 (309). — С. 133-135. — URL: https://moluch.ru/archive/309/69887/ (дата обращения: 01.02.2023).



Проектирование — процесс определения компонентов, архитектуры, интерфейсов и других характеристик программного продукта или его части. Обычно, проектирование занимает 10–15 % от всего времени разработки. Цель проектирования — выявить отношения между процессами и показать, как процессы преобразуют свои входные данные в выходные.

UML — унифицированный язык моделирования, представляющий из себя систему обозначений, предназначенную для проектировки, моделирования и объектно-ориентированного анализа. UML-диаграммы разделяют на статические и динамические.

– Статические диаграммы состоят из постоянно находящихся в системе сущностей, а также из связей между этими сущностями. К данному виду диаграмм относятся диаграммы: объектов, классов, развертывания и компонентов.

– Динамические диаграммы описывают процессы, происходящие в системе. К этому виду диаграммам относятся диаграммы сценариев, деятельности, состояний и взаимодействия.

Рассмотрим некоторые конкретные виды UML-диаграмм:

  1. Usecase диаграммы применяются для определения взаимодействия между внешними системами и рассматриваемым проектом. Причем внешней системой может быть человек, компания, удаленный сервер и любое другое ПО.

Такой внешний участник называется актером (actor). Актер взаимодействует с разрабатываемой системой через варианты использования, предоставляемые этой системой.

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

Если необходимо детально описать логику сценариев использования, проектировщик применяет sequence диаграмму. Такая диаграмма наглядно отображает изменение состояния системы с течением времени. В sequence диаграмме присутствует две оси изменения:

1) Слева направо — Изменение вовлечения сущностей во взаимодействие;

2) Сверху вниз — Порядок обмена сообщениями между вовлеченными в процесс сущностями.

Также такая UML-диаграмма хорошо помогает при документировании проекта.

Sequence диаграмма состоит из:

1) Взаимодействующих объектов;

2) Сообщений, которыми они обмениваются.

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

  1. Диаграммы активностей.

Диаграмма активностей отражает поведение системы и включает в себя деятельности и потоки управления, переходящие между деятельностями. Данная UML-диаграмма применяется для описания алгоритмов и преобразования информации из начального состояния в конечное.

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

Еще более опасные последствия могут произойти в случае отклонения от установленной последовательности действий при запуске ракеты или при работе сотрудников на АЭС.

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

Такая диаграмма состоит из активностей (беговых дорожек на диаграмме) и потока информации, переходящей между активностями с течением времени.

  1. Диаграмма классов является неотъемлемой частью практически любого проекта, потому что с ее помощью проектировщик описывает статическую структуру системы, определяет типы объектов и отношения между ними. Данная UML-диаграмма состоит из классов, типов, объединенных в граф с помощью связей.

Под классом понимают какую-либо сущность с определенным уровнем абстракции, объединяющую множество объектов со схожей структурой. В диаграмме класс изображается в виде прямоугольника с тремя секциями: имя, поля и методы класса.

Существует несколько типов отношений между классами, а именно:

1) абстракция;

2) обобщение;

3) зависимость.

  1. Диаграммы компонентов иразмещений.

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

Компоненты реализуют существенно различную функциональность системы и относительно независимы друг от друга, из-за чего их разработку можно поручить разным разработчикам, то есть реализовать разделение коллектива.

Так как компоненты независимы и взаимодействуют друг с другом, они имеют интерфейсы (interfaces), позволяющие скрыть внутреннее устройство и предоставить ограниченный доступ к своим функциям.

Таким образом, UML-диаграммы — обязательный инструмент, используемый при проектировании программных комплексов. А большое количество типов диаграмм позволяет детально проработать каждый аспект системы.

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

Рис. 1. Диаграмма компонентов

Литература:

  1. Диаграмма вариантов использования (Use Case diagram) | Хабр [Электронный ресурс]. — https://habr.com/ru/post/47940/
  2. Диаграмма активностей (Activity diagram) | Flexberry PLATFORM Documentation [Электронный ресурс]. — https://flexberry.github.io/ru/fd_activitydiagram.html
  3. Основы UML. Диаграммы последовательностей | Блог программиста [Электронный ресурс]. — https://pro-prof.com/archives/2769
  4. UML-диаграммы классов: сущности, связи, интерфейсы | Программирование [Электронный ресурс]. — https://prog-cpp.ru/uml-classes/
  5. Диаграмма компонентов (Component diagram) | Самоучитель UML [Электронный ресурс]. — http://www.telenir.net/uchebniki/samouchitel_uml/p10.php
  6. Зачем нам UML? Или как сохранить нервы и время | Хабр [Электронный ресурс]. — https://habr.com/ru/post/458680/

Основные термины (генерируются автоматически): диаграмма, диаграмма компонентов, диаграмма активностей, UML, класс, компонент, процесс, течение времени.

Понравилась статья? Поделить с друзьями:
  • Какого числа праздник день моряка подводника
  • Какова продолжительность рабочего дня накануне праздников
  • Какого числа праздник день морской пехоты россии
  • Какова должна быть примерная длительность физкультурного праздника
  • Какого числа праздник день мертвых

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии