Uml диаграммы где строить
Перейти к содержимому

Uml диаграммы где строить

  • автор:

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

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

Краткие теоретические сведения о диаграммах классов

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

Основные элементы диаграммы классов

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

Атрибуты описывают свойства объектов класса. Большинство объектов в классе получают свою индивидуальность из-за различий в их атрибутах и взаимосвязи с другими объектами. Однако, возможны объекты с идентичными значениями атрибутов и взаимосвязей. Т.е. индивидуальность объектов определяется самим фактом их существования, а не различиями в их свойствах. Имя атрибута должно быть уникально в пределах класса. За именем атрибута может следовать его тип и значение по умолчанию.

Операция есть функция или преобразование. Операция может иметь параметры и возвращать значения.

Виды связей:

  • ассоциация
  • агрегация
  • наследование.

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

Агрегация ( aggregation ) – это ассоциация типа «целое-часть». Агрегация в UML представляется в виде прямой с ромбом на конце.
Ромб на связи указывает, какой класс является агрегирующим (т.е. «состоящим из»); класс с противоположного конца — агрегированным (т.е. те самые «части»).

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

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

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

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

Основной сущностью в системе будет являться товар. Как известно из задания на проектирование, товар хранится на складе. Но понятия товара как некоего описания и товара, лежащего непосредственно на складе, отличаются друг от друга. Товар, лежащий на складе, кроме того, что связан со складом отношением композиции (агрегация не совсем подходит, поскольку в данной системе товар является товаром, пока он не покинет склад), ещё характеризуется количеством. Аналогично следует рассуждать и при рассмотрении отношения Товара и Заказа, Товара и Накладной. В связи с тем, что Заказ и Накладная в сущности являются документами и имеют сходные атрибуты, они были объединены с помощью общего класса-предка Документ . Примечательно, что на диаграмме представлены два класса со стереотипом Enumeration (перечисление). Стереотип можно установить из контекстного меню для класса.
3.Сохранить диаграмму.

Приложение для построения диаграмм классов

Для построения UML-диаграмм следует использовать Flexberry Designer — удобный онлайн инструмент. После простого процесса регистрации достаточно создать проект, перейти на список диаграмм и создавать нужные диаграммы.
Также рекомендуем воспользоваться полезным инструментом для быстрого построения диаграмм по текстовому описанию.

Перейти

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

Проектирование диаграммы классов UML (Class Diagram)

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

Для успешного освоения материала рекомендуем вам изучить следующие понятия:
Диаграмма классов

Class Diagram. Структурная диаграмма языка моделирования UML, демонстрирующая общую структуру иерархии классов системы, их коопераций, атрибутов (полей), методов, интерфейсов и взаимосвязей между ними

Unified Modeling Language (унифицированный язык моделирования). Язык графического описания для объектного моделирования в области разработки программного обеспечения, для моделирования бизнес-процессов, системного проектирования и отображения организационных структур

Видеолекция
Унифицированный язык моделирования (UML)

  • UML — унифицированный язык графических нотаций, в основе которого лежит единая метамодель
  • UML используется для описания и проектирования программных систем, особенно построенных с использованием объектно-ориентированных (ОО) технологий
  • UML как средство проектирования нацелен на полноту. Используя UML, дизайнер может строить детальные модели для программиста, который далее выполняет кодирование без глубокого погружения в детали

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

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

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

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

В данном занятии демонстрируется построение диаграммы классов для программной системы фитнес-центра. Основные шаги построения диаграммы классов:

  1. Добавление классов
  2. Добавление связей и их настройка
  3. Добавление атрибутов и операций

Диаграмма классов составляется в Microsoft Visio на основе описания заказчика. Используется тип диаграммы UML Class из раздела Software and Database

Добавление классов
1. Добавляем сущности на ER-диаграмму

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

2. Добавляем другие объекты

В данном примере добавляется объект «role» типа «перечисление» (англ. enumeration), представляющий собой набор логически связанных и заранее присвоенных значений (Client, Trainer, Admin)

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

Ассоциация является одним из двух основных типов связи на диаграмме классов, показывающим, что можно перемещаться между объектами двух связанных классов. Пример ассоциации — «Trainer-TrainingCourse»

2. Добавляем связи типа композиция

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

3. Проставляем кратность связей

Кратность связи или множественность ассоциации — диапазон целых чисел, указывающий возможное количество связанных объектов. Кратность задается путем указания минимального и максимального количества объектов, разделенных двумя точками. Варианты кратности связи: 1 (единица), 0.1 (ноль или один), 0.* (любое значение) и 1.* (один или несколько)

4. Добавляем связи типа наследование

Наследование (inheritance) — отношение типа «общее-частное», при котором один класс обладает поведением и структурой ряда других классов. Пример наследования — связь «Trainer-User»

Добавление атрибутов и операций
1. Добавляем атрибуты

Атрибут описывает свойство класса в виде строки текста, имеющей в общем случае следующую структуру: «visibility name: type = defaultValue», где visibility определяет область видимости (public, private или protected), name есть имя атрибута, type определяет тип атрибута, а defaultValue — его значение по умолчанию (для числовых или булевых переменных)

2. Добавляем заметки

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

3. Добавляем операции

Операции — действия, реализуемые некоторым классом, т. е. по сути методы класса. Общая форма записи операции: visibility name (parameter-list): return-type-expression, т. е. область видимости, имя операции, список параметров, тип возвращаемого значения

Инструмент для построения UML схем

Быстрое проектирование, документирование и планирование программных систем

Более 10 миллионов человек и тысячи команд уже используют Creately

Мощные возможности для создания UML диаграмм онлайн

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

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

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

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

  • Пригласить другие команды и заинтересованные стороны редактировать или просматривать диаграммы
  • Сотрудничество в режиме реального времени, работающее в любом месте
  • Экспорт в виде SVG или изображений для добавления в презентации PowerPoint

Работает с инструментами, которые вы любите

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

Работает с инструментами, которые вы любите

Просмотрите 1000 бесплатных высококачественных шаблонов

профессионально составленные шаблоны практически для всех воображаемых сценариев

  • Маркетинговые Команды
  • IT Команды
  • Команды разработчиков ПО
  • HR Команды
  • Образовательные Команды

Выход продукта на рынок - технологическая схема

Выход продукта на рынок — технологическая схема

Шаблон для принятия решений Шаблон для блок-схем

Шаблон для принятия решений Шаблон для блок-схем

UML для бизнес-моделирования: зачем нужны диаграммы процессов

Unified Modeling Language (UML) — унифицированный язык моделирования. Расшифруем: modeling подразумевает создание модели, описывающей объект. Unified (универсальный, единый) — подходит для широкого класса проектируемых программных систем, различных областей приложений, типов организаций, уровней компетентности, размеров проектов. UML описывает объект в едином заданном синтаксисе, поэтому где бы вы не нарисовали диаграмму, ее правила будут понятны для всех, кто знаком с этим графическим языком — даже в другой стране.

Для чего используется UML?

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

  • Проектирование. UML-диаграммы помогут при моделировании архитектуры больших проектов, в которой можно собрать как крупные, так и более мелкие детали и нарисовать каркас (схему) приложения. По нему впоследствии будет строиться код.
  • Реверс-инжиниринг — создание UML-модели из существующего кода приложения, обратное построение. Может применяться, например, на проектах поддержки, где есть написанный код, но документация неполная или отсутствует.
  • Из моделей можно извлекать текстовую информацию и генерировать относительно удобочитаемые тексты — документировать. Текст и графика будут дополнять друг друга.

Нотация UML для описания логики проекта

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

UML-нотация является де-факто отраслевым стандартом в области разработки программного обеспечения, ИТ-инфраструктуры и бизнес-систем.

Часто используемые программы для создания диаграмм

  • Diagrams.net — удобный сервис для создания блок-схем, UML-диаграмм, моделей бизнес-процессов онлайн. Совместим с большинством популярных инструментов, включая Google Docs, Git, Dropbox, OneDrive и другие.

диаграмма diagrams.net

  • Dbdiagram.io — приложение для построения диаграмм связей для баз данных. Хороший инструмент для разработчиков и аналитиков.

диаграмма dbdiagrams.io

  • Google Drawings — бесплатный инструмент для создания блок-схем и диаграмм в составе Google Drive (менее удобный по сравнению с diagrams.net);
  • xmind.net — программа для построения интеллектуальных карт (mind map), логических схем, сложных структур, проведения брейнсторма и не только.

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

В языке UML есть 12 типов диаграмм:

  • 4 типа диаграмм представляют статическую структуру приложения;
  • 5 типов представляют поведенческие аспекты системы;
  • 3 представляют физические аспекты функционирования системы (диаграммы реализации).

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

  • Диаграмма прецедентов (Use-case diagram);
  • Диаграмма классов (Class diagram);
  • Диаграмма активностей (Activity diagram);
  • Диаграмма последовательности (Sequence diagram);
  • Диаграмма развёртывания (Deployment diagram);
  • Диаграмма сотрудничества (Collaboration diagram);
  • Диаграмма объектов (Object diagram);
  • Диаграмма состояний (Statechart diagram).

Диаграмма прецедентов — Use-case diagram

Диаграмма прецедентов использует 2 основных элемента:

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

2) Use case (прецедент) — описание отдельного аспекта поведения системы с точки зрения пользователя. Прецедент не показывает, «как» достигается некоторый результат, а только «что» именно выполняется.

Рассмотрим классический студенческий пример, в котором есть 2 участника: студент и библиотекарь. Прецеденты для студента: ищет в каталоге, заказывает, работает в читальном зале. Роль библиотекаря: выдача заказа, консультации (рекомендации книг по теме, обучение использованию поисковой системы и заполнению бланков заказа).

use case diagram

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

use case diagram

Диаграмма классов — Class diagram

class diagram

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

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

Диаграмма активностей — Activity diagram

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

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

Диаграмма активностей для сайта магазина максимально доступно объясняет, какие есть интеграции в системе. Актер (в нашем случае — покупатель), зашедший на сайт, делает заказ. Далее у нас происходит разветвление: проверяем, является ли пользователь оптовиком (Да/Нет). Если он не зарегистрирован в системе и не оптовик, заказ отправляется в retailCRM. Если пользователь зарегистрирован, его заказ попадает в Navision. При этом между retailCRM и Navision происходит синхронизация остатка и статусов.

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

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

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

sequence diagram

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

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

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

Заключение

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

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

Остались вопросы, хотите обсудить с нами ваш проект или заказать разработку? Пишите!

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

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