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


Разработка ИС для строительной компании.(Прочитано 11365 раз)

Здравствуйте.
Я пишу дипломную работу на тему «Разработка ИС для строительной компании на платформе 1С:Предприятие 8.2».
На данном этапе мне нужно разработать оптимизацию бизнес-процессов. т.е составить диаграмму UML, чтобы иметь четкое представление того, что в принципе я должна делать.
Я сделала 2 диаграммы разные, но вот не знаю, подойдут они мне или нет.
Помогите пожалуйста


Записан



Здравствуйте.
Я пишу дипломную работу на тему «Разработка ИС для строительной компании на платформе 1С:Предприятие 8.2».
На данном этапе мне нужно разработать оптимизацию бизнес-процессов. т.е составить диаграмму UML, чтобы иметь четкое представление того, что в принципе я должна делать.
Я сделала 2 диаграммы разные, но вот не знаю, подойдут они мне или нет.
Помогите пожалуйста

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


Записан



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

Добрый день!
Если речь идет об оптимизации бизнес-процессов, значит какие-то процессы уже есть, но чем-то они не устраивают.
Для начала надо сделать описание процессов «as is», как они выглядят сейчас. А потом уже думать как и где их оптимизировать.


Записан



Дело в том, что проблем никаких нет. Я четко представляю, какую систему буду внедрять, но надо что бы была диаграмма.
Целью данной дипломной работы является  разработка информационной системы для строительно – отделочной фирмы на платформе «1С:Предприятие 8.2». Данная система предназначена для автоматизации основных бизнес-процессов фирмы, таких как: поставка материалов, ведение учета, оказание услуг, расчет заработной платы, ведение учета клиентов, персонала и так далее. Просто я не очень понимаю то, что требуется сделать. Сделала 2 диаграммы, они хоть правильны?)


Записан



Речь не про ваши проблемы, а про проблемы заказчика.

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

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


Записан



На данном этапе мне нужно разработать оптимизацию бизнес-процессов.

Представил, как наяву: сидят прожженые прораб, снабженец и главбух ООО «Таджбетон». Трут за гешефт, тщательно взвешивая слова. Тут дверь открывается, появляется прелестное дитя и заявляет: «А какие тут у вас бизнес-процессы? Мне дали задание их соптимизировать!»

Я пишу дипломную работу на тему «Разработка ИС для строительной компании на платформе 1С:Предприятие 8.2».

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

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

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

Я сделала 2 диаграммы разные, но вот не знаю, подойдут они мне или нет.

Первая Вам идет, вторая немного полнит.

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

Просто я не очень понимаю то, что требуется сделать.

Давайте для начала попробуем разрешить вот эту ситуацию. Какая часть задания Вам понятна, а какая — нет?


Записан



Представил, как наяву: сидят прожженые прораб, снабженец и главбух ООО «Таджбетон». Трут за гешефт, тщательно взвешивая слова. Тут дверь открывается, появляется прелестное дитя и заявляет: «А какие тут у вас бизнес-процессы? Мне дали задание их соптимизировать!»

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

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

Первая Вам идет, вторая немного полнит.

Давайте для начала попробуем разрешить вот эту ситуацию. Какая часть задания Вам понятна, а какая — нет?

Целью моей дипломной работы является  разработка информационной системы для строительно – отделочной фирмы на платформе «1С:Предприятие 8.2». Данная система предназначена для автоматизации основных бизнес-процессов фирмы, таких как: поставка материалов, ведение учета, оказание услуг, расчет заработной платы, ведение учета клиентов, персонала и так далее. В подсистеме конфигуратора у меня будет 4 подсистемы:
Учет материалов
Оказание услуг
Бухгалтерия
Складской учет.
Сделала ещё 2 диаграммы, но и они не правильны.


Записан




Записан



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


Записан



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

А кто считает, что это неправильные диаграммы? Чем он это мотивирует?
Мне они тоже представляются весьма спорными.
Например, первая имеет незнакомую мне нотацию. Хотя изображенное, кажется довольно логичным, но например, у меня мало возможностей для экспертной оценки. Не понятна цель изображения модели БП, чья точка зрения.
Модель БП вероятно должна включать: владельца этого процесса, его участников, входные и выходные величины, управляющие воздействия.
Правда, следует обратится к материалу кафедры и опыту ваших преподавателей в этом вопросе.

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


Записан



 Из того, что вы написали-я ничего не поняла!!!
слишком заумно написано, мой мозг пока это не воспринимает и не понимает.


Записан



Из того, что вы написали-я ничего не поняла!!!
слишком заумно написано, мой мозг пока это не воспринимает и не понимает.

Полагаете, что есть надежда, что он проснется вдруг?


Записан



Из того, что вы написали-я ничего не поняла!!!

Гм… Похоже, аутсорсинг диплома будет оптимальным бизнес-решением.


Записан



Диаграмма прецедентов (вариантов использования или Use Case)

Используемые материалы:

  • Диаграмма прецедентов (простенько, но не полно)
  • Более полное описание
  • Конспект лекции (с видео) от WorldSkills

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

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

Актор это калька с английского Actor что расшифровывается как действующее лицо (Act — действие, суффикс -or — человек, осуществляющий действие)

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

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

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

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

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

Базовыми элементами диаграммы вариантов использования являются вариант использования и актор.

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

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

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

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

существительное или глагол

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

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

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

Актор (actor) — согласованное множество ролей, которые играют внешние сущности по отношению к вариантам использования при взаимодействии с ними.

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

Актор

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

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

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

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

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

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

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

В языке UML имеется несколько стандартных видов отношений между акторами и вариантами использования:

  • ассоциации (association relationship)
  • включения (include relationship)
  • расширения (extend relationship)
  • обобщения (generalization relationship)

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

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

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

Включение (include) в языке UML — это разновидность отношения зависимости между базовым вариантом использования и его специальным случаем. При этом отношением зависимости (dependency) является такое отношение между двумя элементами модели, при котором изменение одного элемента (независимого) приводит к изменению другого элемента (зависимого).

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

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

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

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

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

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

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

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

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

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

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

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

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

границы проектируемой системы

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

Разбор скринкаста семинара «Системный анализ и проектирование»

Текст задания:

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

Работа возможна только для авторизованного пользователя.

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

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

В Visio создаёте новый документ и открываете Дополнительные фигуры -> Программы и базы данных -> Программное обеспечение -> Сценарии выполнения UML

Цвет моих диаграмм отличается от сделанных в Visio, т.к. я делаю в visual-paradigm онлайн

Порядок работы:

  • определяем акторов
  • определяем варианты использования
  • определяем виды взаимодействия
  • строим диаграмму
  1. Рисуем прямоугольник подсистемы:

  2. Определяем акторов

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

  3. Определение вариантов использования

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

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

    • у обычного пользователя есть только один вариант использования: регистрация

      Но при регистрации возникают дополнительные действия (прецеденты): ввод ФИО, лицевого счёта и пароля, и не обязательный ввод данных карты.

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

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

      После ввода показаний прибора учёта пользователь должен подтвердить оплату (обязательное действие, поэтому делаем включение). Если карта не была привязана в личном кабинете, то добавляем через включение действие ввод данных карты. Visio не полностью реализует стандарт UML — для альтернативных действий там есть специальные формы прецедентов. Но можно альтернативность прецедента акцентировать надписью на стрелке (тип ассоциации и так понятен по направлению стрелки)

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

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

Итоговый вариант диаграммы прецедентов:

Задание для самостоятельной работы:

Программа для фитнес-центра по распределению фитнес – расписания и контроля его соблюдения

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

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

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

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

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

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

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

Время на прочтение
10 мин

Количество просмотров 159K

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

1

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

23.03.2020, 18:12. Показов 3825. Ответов 15


Здравствуйте! Есть строительная компания.
Виды деятельности: поддержка договоров на проведение строительных работ; составление сметы затрат для договоров; учет закупок и расхода материалов; учет проведенных работ; распределение работ между сотрудниками; учет поэтапной оплаты по договорам.

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

Миниатюры

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



0



8551 / 5420 / 567

Регистрация: 27.03.2013

Сообщений: 18,692

23.03.2020, 18:45

2

Связей между таблицами нет.
Значит на 99% не правильно.
Ибо в Акцессе это 99% успеха в задуманном.
А почему вы кстати на бумажке делаете схему данных, а не в самом Аксе?



0



0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

23.03.2020, 19:04

 [ТС]

3

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

Миниатюры

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



0



Модератор

Эксперт MS Access

11306 / 4633 / 743

Регистрация: 07.08.2010

Сообщений: 13,376

Записей в блоге: 4

23.03.2020, 19:05

4

Цитата
Сообщение от ShaRaKos
Посмотреть сообщение

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

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



0



8551 / 5420 / 567

Регистрация: 27.03.2013

Сообщений: 18,692

23.03.2020, 19:16

5

Цитата
Сообщение от ShaRaKos
Посмотреть сообщение

…я аксессом не пользуюсь,…

А зачем тогда в разделе про — Access вопрос задаёте.
В чЁм собираетесь делать, то в том разделе логичнее было бы и задавать вопросы, ибо програмка програмке — Рознь и там всяческие правила и синтаксисы частенько очень даже различаются.
Потом перестраиваться будете?



0



0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

23.03.2020, 19:21

 [ТС]

6

VinniPuh, где бы я это не делал — мне все равно нужна помощь.



0



0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

23.03.2020, 19:22

 [ТС]

7

shanemac51, а если так?

Миниатюры

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



0



8551 / 5420 / 567

Регистрация: 27.03.2013

Сообщений: 18,692

23.03.2020, 19:28

8

Ну так логичнее просить помощи там, в какой программе собираетесь делать, а не там, хоть в где.
Кстати, а почему при установке — Офиса вы Акцесс не установили?
Он же в пакете идёт с Вордом и Экселем наверное, ну или так раньше точно было.
Место на диске хотели съэкономить?,
Аж целых 100-500 МБ?
Ужасть какой та.
Ладно.
Если не хотите как лучше и быстрее было бы, возможным помогальщикам вам помочь, то отхожу в сторону.



0



0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

23.03.2020, 19:31

 [ТС]

9

VinniPuh, с чего вы взяли, что у меня вообще MCOffice есть?



0



Модератор

Эксперт MS Access

11306 / 4633 / 743

Регистрация: 07.08.2010

Сообщений: 13,376

Записей в блоге: 4

23.03.2020, 19:34

10

Цитата
Сообщение от ShaRaKos
Посмотреть сообщение

а если так?

мне не нравится
просто лень и некогда смотреть, рабочий день закончился
вы бы сами попробовали СЛОВАМИ описать структуру базы, наподобие
— имеется некая фирма РОГА И КОПЫТА
— в фирме трудится множество сотрудников, часть из них в бригадах
— фирма заключила множество договоров с разными клиентами в разные даты



0



8551 / 5420 / 567

Регистрация: 27.03.2013

Сообщений: 18,692

23.03.2020, 19:39

11

Цитата
Сообщение от ShaRaKos
Посмотреть сообщение

…с чего вы взяли, что у меня вообще MCOffice есть?…

Потому что — Access , неотъемлемая часть — MC Office и вы задаёте вопрос, именно в разделе — Access.
Вы с логикой точно дружите?
Всё.
Больше на такие — Мягко говоря — неопределенные(неконкретные) вопросы, отвечать не буду.

 Комментарий модератора 
не заводись!



0



0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

23.03.2020, 19:41

 [ТС]

12

VinniPuh,

Кстати, а почему при установке — Офиса вы Акцесс не установили?

Для особо внимательных, спрошу еще раз. С чего вы взяли, что у меня вообще MCOffice есть/ устанавливал?



0



802 / 316 / 59

Регистрация: 29.03.2016

Сообщений: 680

23.03.2020, 20:20

13

Цитата
Сообщение от ShaRaKos
Посмотреть сообщение

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

Несмотря на отсутствие подробного ТЗ, можно уверенно ответить: Нет.



1



0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

23.03.2020, 20:24

 [ТС]

14

Jamaica, ТЗ: построить ER-диаграмму по таким данным : Строительная компания
Виды деятельности: поддержка договоров на проведение строительных работ; составление сметы затрат для договоров; учет закупок и расхода материалов; учет проведенных работ; распределение работ между сотрудниками; учет поэтапной оплаты по договорам.

Вот что у меня по итогу вышло :

Миниатюры

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



0



802 / 316 / 59

Регистрация: 29.03.2016

Сообщений: 680

23.03.2020, 20:35

15

Лучший ответ Сообщение было отмечено ShaRaKos как решение

Решение

То, что у Вас имеется — это не ТЗ, это можно назвать «хотелка».

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

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



1



0 / 0 / 0

Регистрация: 28.04.2019

Сообщений: 118

23.03.2020, 20:39

 [ТС]

16

Jamaica, у меня более этого условия — нет. Спасибо, буду исправлять!



0



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