Схемы бизнес процессов uml

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

А зря: наглядная документация в виде диаграмм UML дает ряд преимуществ — от адаптации новых сотрудников до беглого обзора системы с другими участниками проекта без пустой траты времени на совещаниях.

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

Что такое диаграммы UML?

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

Что такое UML за 7 минут: Диаграмма классов, последовательностей, состояний и деятельности

Для чего нужны диаграммы UML?

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

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

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

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

Какие разновидности выделяют в диаграммах UML?

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

Структурные диаграммы UML

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

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

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

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

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

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

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

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

обобщенная UML-диаграмма развертывания

Диаграмма композитной структуры

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

UML-диаграмма композитной структуры

Диаграмма объектов

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

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

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

UML-диаграмма пакетов

Поведенческие диаграммы UML

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

Временна́я диаграмма

Временны́е диаграммы часто называют «диаграммами последовательностей наоборот», а их задача заключается в том, чтобы показать, как объекты взаимодействуют между собой в определенный период времени. Эти диаграммы позволяют оценить, сколько времени занимает каждый этап процесса, и выявить участки для доработки.

Диаграмма обзора взаимодействия

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

UML-диаграмма обзора взаимодействия

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

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

Схема коммуникации UML

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

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

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

Схема сценариев использования

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

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

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

шаблон UML-диаграммы последовательностей для онлайн-магазина

Диаграмма активности

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

Читайте также:  Какая маржа в мебельном бизнесе

Если вам не хватает вдохновения, предлагаем вашему вниманию полную статью с примерами и шаблонами диаграмм UML.

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

Как создать диаграмму UML

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

UML — в массы!

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

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

Плюс ко всему, создавать диаграммы UML в Lucidchart совсем не скучно, а очень даже полезно. Убедитесь сами с помощью наших шаблонов и библиотек фигур!

Источник: www.lucidchart.com

Что находится между идеей и кодом? Обзор 14 диаграмм UML

Тебе пришла крутая идея продукта, но ты не хочешь увязнуть в коде и потерять целостную картинку из-за мелких деталей? Ты вот-вот присядешь за то, что крякнул корпоративный сервер и тебе нужно набить что-то крутое и айтишное?

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

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

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

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

Происхождение UML

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

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

  • Техника объектного моделирования OMT [James Rumbaugh 1991], которая была лучшей для анализа информационных систем с большим объемом данных.
  • Booch [Grady Booch 1994] — отлично подходит для разработки и реализации. Грэди Буч много работал с языком Ада и был крупным игроком в разработке объектно-ориентированных методов для языка. Хотя метод Буча был сильным, нотация была воспринята менее хорошо, например, в его моделях преобладали формы облаков, что выглядело не очень аккуратно.
  • OOSE (объектно-ориентированная программная инженерия [Ivar Jacobson 1992]) — модель, известная как модель прецедентов — это мощная методология для понимания поведения всей системы, область, где ООП традиционно была слабой.

К 1995 году создатель OOSE, Ивар Якобсон, также присоединился к Rational, и его идеи (в частности, концепция «прецедентов») были включены в новый унифицированный метод, который теперь называется Unified Modeling Language.

В противовес всем известной “Банде Четырех”, Команда Румбо, Буча и Якобсона известна как «Три Амигоса».

На UML также повлияли другие объектно-ориентированные нотации:

  • Меллор и Шлаер [1998]
  • Coad и Yourdon [1995]
  • Вирфс-Брок [1990]
  • Мартин и Оделл [1992]

Почему UML?

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

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

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

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

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

Унифицированный язык моделирования (UML) был разработан для удовлетворения этих потребностей.

Основные цели дизайна UML:

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

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

  • Диаграмма составной структуры
  • Диаграмма развертывания
  • Диаграмма пакетов
  • Диаграмма профилей
  • Диаграмма классов
  • Диаграмма объектов
  • Диаграмма компонентов
  • Диаграмма деятельности
  • Диаграмма прецедентов
  • Диаграмма состояний
  • Диаграмма последовательности
  • Диаграмма коммуникаций
  • Диаграмма обзора взаимодействия
  • Временная диаграмма

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

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

Три наиболее важных типа отношений в диаграммах классов (на самом деле их больше), это:

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

Наследование, которое имеет непосредственное соответствие наследованию в Объектно-Ориентированном дизайне.

Агрегация, которая представляет из себя форму композиции объектов в объектно-ориентированном дизайне.

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

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

Читайте также:  Венский университет экономики и бизнеса как поступить

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

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

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

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

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

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

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

Диаграмма объектов

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

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

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

Диаграмма пакетов — это структурная схема UML, которая показывает пакеты и зависимости между ними.

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

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

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

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

Диаграмма профилей

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

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

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

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

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

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

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

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

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

Диаграмма последовательности моделирует взаимодействие объектов на основе временной последовательности. Она показывает, как одни объекты взаимодействуют с другими в конкретном прецеденте.

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

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

Диаграмма обзора взаимодействия

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

Временная диаграмма

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

Зачем в UML столько диаграмм?

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

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

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

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

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

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

  • uml
  • uml-проектирование
  • диаграмма классов
  • архитектура приложений
  • разработка приложений

Источник: habr.com

SergeiGD/UML

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.md

В данном репозитории собраны UML диаграммы для продукта с реализацией упрощенной работы ремонтного центра

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

  • быстрое и простое формирование новых заказов и редактирование существующих
  • простой контроль статуса заказа
  • контроль склада запчастей
  • система лояльности для постоянных клиентов (расчет персональных скидок)
  • управление списком сотрудников, в том числе формирование персонального расписания
  • управление филиалами и их расписанием
  • управление списком оказываемых услуг
  • планирование проведения выездов мастеров на заказы
  • сбор статистических данных и удобное отображение их
Читайте также:  Какой лучше бизнес открыть в Финляндии

Само приложение доступно в данном репозитории.

  • Бизнес процесс
  • Диаграмма прецедентов
  • Диаграмма классов
  • Диаграмма состояний
  • Диаграмма деятельностей
  • Диаграмма последовательностей (Sequence)
  • Диаграмма коммуникаций
  • API

Описание стандартного процесса оказания услуг:

  1. Клиент звонит по телефону или приходит в филиал.
  2. Менеджер создает клиента, если клиента нету в базе.
  3. Менеджер формирует заявку клиента. В ней он вместе с клиентом указывает товар, который необходимо починить, описывает поломку, указывает комментарий, если этого пожелает клиент.
  4. Если техника малогабаритная и клиент принес ее с собой в филиал, то менеджер принимает ее и передает мастеру, занимающемуся соответствующим видом техники. Иначе менеджер указывает адрес клиента, и мастер приходит к нему в договоренное время.
  5. Если причина поломки неизвестна, то мастер проводит осмотр техники и устанавливает причину(ы) неисправности и сообщает их клиенту.
  6. Если клиент со всем согласен, то берутся нужные детали или же заказываются, если их нету в наличие
  7. Если требуется предоплата (исходя из того, какие нужны детали), то клиент должен ее оплатить. Также клиент может внести доп. сумму и тогда она вычитится из суммарной цены заказа.
  8. По прибытию деталей производится ремонт, если же детали по какой-то причине не могут быть заказаны, то заказ отменяется и если вносилась предоплата, то она возвращается клиенту.
  9. Когда ремонт будет завершен и если он осуществлялся не на дому у клиента, то ему сообщается о готовности и необходимости приехать за товаром.
  10. После получения оплаты и возвращения товара клиенту заказ отмечается как “Выполнен”.

  • Person — абстрактный класс, представляющий собой человека. От него наследуются Client и Employee
  • Client — класс, представляющий собой клиента сервисного центра
  • Employee — Абстрактный класс, представляющий собой работника сервисного центра. От него наследуются Manager и Master. У всего сотрудников есть расписание, которое можно получить с помощью метода GetTimetable()
  • Manager — класс, представляющий собой менеджера сервисного центра
  • Master — класс, представляющий собой мастера сервисного центра. Мастеры разделяются по категориям техники, которую они могут умеют обслуживать. Для получения этих категорий предназначен метод GetMasterCategories()
  • EmployeeTimetable — класс, представляющий собой расписание работника
  • Role — класс, представляющий собой роль сотрудника. У каждой роли есть ряд разрешений Permission, которые вызываются с помощью метода GetPermissions(). Сотруднику с данной ролью доступны действия, перечисленные в этой самой коллекции.
  • Permission — класс, представляющий собой определенное действие в система. С помощью этого класса вместе с Role регулируются права пользователей в система.
  • Category — класс, представляющий собой определенную категорию техники. Благодаря нему можно группировать технику Product клиентов и контролировать, может ли мастер Master обслужить ту или иную технику. В качестве одного из атрибутов содержит родительскую категорию, для выстраивания иерархии
  • Product — класс, представляющий собой технику клиента Client
  • Service — класс, представляющий собой оказываемую услугу. У услуги есть категория Category, к которой она относится. Время выполнения предназначено для примерного планирования времени выезда Visit, чтоб минимизировать вероятность конфликта выездов и опозданий.
  • Order — класс, представляющий собой заказ на ремонт. Содержит коллекцию деталей OrderSpareParts и услуг OrderServices, которые можно получить методами GetSpareParts() и GetServices()
  • OrderServices — класс, связывающий услугу и заказ. Нужен для того, чтоб была возможность регулировать количество одной и той же услуги в заказе (например, замена двух конфорок на плите), тонкой настройки скидки на конкретную услугу в заказе (например, акция на 100% скидку на диагностику), а также хранить цену за услугу в момент ее добавления к заказу
  • OrderAtHome — класс, представляющий собой заказ на ремонт на дому. Наследуется от Order. Содержит коллекции визитов, которые можно получить методом GetVisits()
  • Visit — класс, представляющий собой выезд на дом при заказе на дому
  • SparePart — класс, представляющий собой описание запчасти. Атрибут ClientPrepayment определяет, нужна ли предоплата в заказ, в которых требуется эта деталь
  • OrderSpareParts — класс, представляющий собой запчасть в заказе. Содержит словарь, в котором указанно, из какой поставки была взята запчасть и в каком количестве. Благодаря чему есть возможность выбрать, из каких конкретных поставок будет использована запчасть и в каком количестве. Если же такая тонкая настройка не требуется, то детали можно подобрать автоматически, вызвав метод FindBatchesAuto(), указав, какое количество запчасть данного типа надо. Весь набор поставок можно получить с помощью метода GetBatchesInfo(). Само описание детали хранится в атрибуте SparePart
  • Batch — класс, представляющий собой поставку с деталями BatchSpareParts. Коллекцию деталей можно получить с помощью метода GetSpareParts()
  • BatchSpareParts — класс, связывающий детали и поставку. Благодаря нему мы можем указать, какое количество деталей выбранного типа SparePart нужно заказ и цену на них (цена не хранить в самом класс SparePart, т.к. в разных поставках цена может отличаться)
  • Workshop — класс, представляющий собой мастерскую (филиал сервисного центра). Содержит в себе расписания работы филиала WorkshopTimetable, получаемые с помощью метода GetTimetables(). Также содержит методы для расчета статистики филиала
  • WorkshopTimetable — класс, представляющий собой расписание работы филиала. Т.к. расписание у филиалов меняется редко, оно хранится не на каждый день, а на промежутки времени. Атрибут ValidFrom показывает, с какого числа действует расписание, а ValidUntil до какого числа.
  • . List (static) — данные статические классы (ClientsList, OrdersList, ServicesList и т.д.) отвечают за сортировку экземпляров классов, а также в некоторых из них реализован расчет статических данных

Описывает состояния заказа на ремонт и их причины изменений. В коде программы состояния хранятся в виде enumeration. Их можно просмотреть на диаграмме классов

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

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

Описывает взаимодействие объектов (в том числе и форм) при добавление нового заказа

Описывает процесс добавления в каталог новой услуги

Рейтинг
( Пока оценок нет )
Загрузка ...
Бизнес для женщин