на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия

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

Диаграмма вариантов использования (use case diagram)

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

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

Диаграмма классов (class diagram)

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

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

Диаграмма состояний (statechart diagram)

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

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

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

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

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

Диаграмма кооперации (collaboration diagram)

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

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

Диаграмма компонентов (component diagram)

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

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

Диаграмма развертывания (deployment diagram)

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

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

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

Я убежден, что программист в первую очередь это кодер – он НЕ должен общаться с заказчиком, НЕ должен задумываться об архитектуре системы, не должен изобретать интерфейс к программе, он только должен кодировать – реализовывать алгоритмы, функционал, внешний вид, юзабилити, но не более…. Проектировщик же должен начиная от абстрактных диаграмм (описывающих предметную область) до диаграмм представляющих структуру данных, классов и процессов их взаимодействия, детально шаг за шагом все расписать. То есть сложность работы и зарплата проектировщика должна быть на порядок выше чем у программиста == кодера. Простите за крамолу.

Источник

Что такое Жизненный Цикл Разработки ПО и какие проблемы возникают на каждом этапе SDLC?

Жизненный цикл разработки ПО (англ. SDLC – Software development lifecycle) – это серия из шести фаз, через которые проходит любая программная система.

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

Но как это выглядит изнутри? С какими сложностями сталкивается команда разработчиков и как их решает на каждой фазе Жизненного Цикла ПО? Об этом расскажет Павел Гапонов, Project Manager компании-разработчика SolveIt.

Типичный жизненный цикл разработки состоит из следующих фаз:

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

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

Проблема: Не соответствующие ожидания и часто изменяющиеся требования: заказчик и команда не понимают, какую реально пользу принесёт продукт.

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

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

Важно четко определить и прописать, что требуется выполнить, это делается с помощью SRS (Software Requirement Specification). Документ содержит все требования к продукту, которые должны быть спроектированы и разработаны в течение жизненного цикла проекта.

Проблема: Большой многостраничный список требований

Решение: Выяснить высокоуровневые требования и, в ходе разработки и коммуникации с заказчиком, дописывать ТЗ. То есть разработка идет параллельно с Техническим заданием, а в процессе корректируется план.

В SolveIt мы всегда стараемся быть гибкими и подстраиваться под клиента. Работающий продукт важнее исчерпывающей документации.

SRS это ориентир для разработчиков, чтобы предложить лучшую архитектуру для продукта. Обычно предлагается несколько подходов к проектированию архитектуры продукта. Все предложенные подходы документируются в спецификации DDS (Design Document Specification) и выбирается наилучший подход к проектированию. Данный подход очень четко определяет все архитектурные модули продукта, а также его связь с внешними и сторонними модулями.

Проблема: Выбрали неправильную архитектуру.

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

Здесь начинается разработка и сборка продукта. Весь программный код, новые модули и фичи разрабатываются на основании DDS. Чем лучше написана эта документация, тем быстрее будет идти имплементация. На этом этапе подключается команда разработчиков. Написанный код должен покрываться Unit-тестами, а взаимодействие новых фич с другими модулями тестироваться с помощью интеграционных тестов. Эти активности выполняются именно командой разработчиков, а не QA специалистами.

Проблема №1: Слабая коммуникация между командой

Разработчик не интересуется прогрессом проекта, проблемами коллег.

Решение: Daily meetings, 100% вовлеченность, Скрам доска (интерактивность).

Проблема №2: Невыполнимые сроки

Заказчик хочет, чтобы его продукт был готов в ближайшее время. Менеджер проекта пытается объяснить клиенту к чему приведет такая спешка, но этого не достаточно. Клиент ставит невыполнимые дедлайны и не слушает возражения менеджера проекта. В результате, команда разработчиков сдается и пробует закрыть задачи в слишком короткие сроки. Как следствие – критические баги из-за спешки: команда не успевает, качество продукта снижается, клиент не доволен и решает, что виновата команда.

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

Проблема №3: Добавление не оговоренных фич

Решение: Менеджер проекта должен объяснить клиенту, к чему приведет добавление новых фич в проект, отстаивать свою позицию и держаться SRS. Поэтому так важна вторая фаза Жизненного цикла разработки ПО.

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

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

Решение: Проводить тестирование параллельно задачам, сразу же по их завершению.

Как только продукт протестирован, он выходит в релиз. Иногда внедрение происходит поэтапно, в соответствии с бизнес-стратегией. Продукт сначала может быть выпущен в ограниченном сегменте и протестирован в реальной бизнес-среде, это UAT-тестирование (User Acceptance Testing). Затем, основываясь на отзывах, продукт может быть выпущен как есть, или с предлагаемыми улучшениями. После того, как продукт выпущен на рынок его обслуживание выполняется для существующей клиентской базы, и на этом этапе подключаются Support-команды.

Проблема №1: Отсутствие обратной связи, реальных отзывов потенциальных пользователей продукта.

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

Проблема №2: Слабая инфраструктура проекта на стороне клиента.

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

Решение: Предупредить клиента, о возможных проблемах, предложить решения для их устранения.

Если вам нужен качественный продукт, свяжитесь с нами и мы сделаем оценку вашего проекта!

Источник

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

Диаграммы кооперации и их нотация

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

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

Итак, кооперация ( collaboration ). Это статическая конструкция для моделирования набора сущностей, взаимодействующих друг с другом. Кооперация определяет набор взаимодействующих ролей, используемых вместе, чтобы показать некую функциональность. Кооперация часто реализует некоторый паттерн (шаблон проектирования). Впрочем, о шаблонах проектирования мы сейчас говорить не будем, поскольку они выходят за рамки этого курса и первого теста программы OCUP. Заинтригованным читателям мы предложим попробовать ввести словосочетание » design patterns » в адресную строку браузера. Спорим, попадете на статью » Design pattern ( computer science )» из «Википедии»?

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

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

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

Все ведь понятно, правда? Видно, кто какую роль играет и в каком взаимодействии (кооперации). А еще показана генерализация и кооперации, и самих исполнителей.

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

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

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

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

Источник

UML для самых маленьких: диаграмма классов

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

Аве, Кодер! Диаграмма классов UML иллюстрирует структуру системы, описывая классы, их атрибуты, методы и отношения между объектами.

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

Для тех, кому лень читать:

Главное действующее лицо

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

Для начала напомним себе что такое класс? Если в двух словах, то класс представляет собой шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализацию полей-переменных и реализацию поведения полей и методов.

По сути, класс описывает то, каким объект может быть.

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

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

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

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

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

Каждый параметр в методе может также иметь описание направленности метода: in, out, inout.
На этой иллюстрации, method1 использует p1, как входной параметр и значение p1, каким-то образом, используется методом, а метод не изменяет p1.

Method2 принимает p2, как параметр ввода/вывода, значение p2, каким-то образом, используется методом и принимает выходное значение метода, но сам метод также может изменять p2.

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

Перспективы диаграммы классов в жизненном цикле разработки программного обеспечения

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

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

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

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

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

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

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

Типы отношений

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

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

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

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

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

Например, один студент может учиться у множества преподавателей.
Но и преподаватель может учить множество студентов.

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

Или иногда его еще называют — генерализация.

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

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

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

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

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

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

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

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

Например, у класса Person есть метод hasRead с входным параметром book, который возвращает true, если, к примеру, человек прочитал книгу.

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

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

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

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

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

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

По сути, разновидность агрегации, только в этом случае, классы, являющиеся частью другого класса, уничтожают, когда уничтожается класс-агрегатор.

Например наше тело состоит из органов, но сами по себе они не жизнеспособны.

Композиция обозначается схожим с агрегацией способом, но ромб на этот раз полностью закрашен.

Финалочка

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

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияЭтот эллипс представляет действие «Выставить оценки в электронный журнал»

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

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

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

на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияОтношение ассоциации (англ. «association relationship») на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияОтношение обобщения (англ. «generalization relationship») на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияОтношение включения (англ. «include relationship») на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияОтношение расширения (англ. «extend relationship»)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияЗачем над пунктирными линиями добавлять надписи “include” и “extend”?

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

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

на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияНа диаграмме предполагается, что к заказу МОЖЕТ БЫТЬ добавлена картошка фри или соус (необязательно)

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

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

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

на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияРасширяем функционал отправки сообщений с помощью функции прикрепления файлов к сообщению (Необязательно прикреплять файл к каждому сообщению)

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

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

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

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

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

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

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

на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Смотреть картинку на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Картинка про на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействия. Фото на каком этапе жизненного цикла разработки по обычно строят диаграммы взаимодействияЕсли DLC было куплено, то игра зависит от контента, который содержится в нём. Наше правило «зависимости» рушится 🙁

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *