От моделирования процессов к проектированию автоматизированной системы (Часть 2) +15



«Один день из жизни белки» или от моделирования процессов к проектированию автоматизированной системы учёта материальных ценностей «Белка-1.0» (Часть 2)



Использована иллюстрация к "Сказке о царе Салтане" А.С.Пушкина, изд."Детская литература", Москва, 1949 год, Ленинград, рисунки К.Кузнецова


Краткое содержание предыдущей серии


В 1-ой части мы использовали «сказочную» предметную область, вдохновленные примерами изучения диаграмм UML с опорой на сюжеты сказок (см., например, здесь [1]). До начала моделирования мы договорились относительно использования некоторых элементов диаграммы Activity и начали формировать соглашение по моделированию. С учетом этих договоренностей мы на 1-ом этапе описали процесс в виде диаграмм Activity, а на 2-ом этапе выделили шаги процесса, для которых требуется (и возможна) автоматизация.


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



Остров на море лежит, (E1, E2)
Град на острове стоит (E3, E1)
С златоглавыми церквами, (E4)
С теремами да садами; (E5, E6)
Ель растет перед дворцом, (E7, E8)
А под ней хрустальный дом; (E9)
Белка там живет ручная, (A1)
Да затейница какая! (A1)
Белка песенки поет, (P1, A1)
Да орешки всё грызет, (P2)
А орешки не простые, (C1)
Всё скорлупки золотые, (C2)
Ядра чистый изумруд; (C3)
Слуги белку стерегут, (P3, A2)
Служат ей прислугой разной (P4)
И приставлен дьяк приказный (A3)
Строгий счет орехам весть; (P5, C1)
Отдает ей войско честь; (P6, A4)
Из скорлупок льют монету, (P7, C2, C4)
Да пускают в ход по свету; (P8)
Девки сыплют изумруд (P9, A5, C3)
В кладовые, да под спуд; (E10, E11)

(А.С.Пушкина "Сказка о царе Салтане, о сыне его славном и могучем богатыре князе Гвидоне Салтановиче и о прекрасной царевне Лебеди", как считается, вольная обработка народной сказки «По колена ноги в золоте, по локоть руки в серебре», которая, была записана Пушкиным в различных вариантах)

В данном примере я использую среду Enterprise Architect от австралийской компании Sparx Systems [2], а в рамках учебных занятий применяю Modelio [3].
Напомню, что процессы бывают разные, ознакомится можно, например, здесь [4] и здесь [5].
Подробнее о применяемых подходах к моделированию и проектированию см. [6, 7].
Полную спецификацию UML см. здесь [8].


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


Этап 3. Автоматизируемому шагу нужно поставить в соответствие функцию или функции системы


Разрабатываемая автоматизированная система (АС) предназначена для ведения строгого учета орехов, помните? Для каждого выделенного шага (см. Рисунок 3, Рисунок 4 в 1-ой части), который будем автоматизировать, запишем функциональное требование, применяя примерно такую конструкцию «В системе должна быть реализована возможность …» и разработаем диаграмму Use-case. Сейчас мы фактически дополняем наше соглашение по моделированию новыми правилами. Поясню какие элементы будем использовать.


Между «Ролью пользователя» и «Функцией» будем использовать связь «Ассоциация» (Рисунок 5), это означает, что для пользователя с данной ролью доступно выполнение данной функции.



Рисунок 5. Использование связи типа «Ассоциация»


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



Рисунок 6. Использование связи типа «Реализация»


Если одна функция требует для своего выполнения, чтобы была выполнена еще какая-то функция, причем обязательно, будем использовать связь «Зависимость» со стереотипом «Include» — включение (Рисунок 7). Если же выполнение дополнительной функции требуется при определенных условиях, то будем использовать связь «Зависимость» со стереотипом «Extend» — расширение. Все очень легко запомнить: «Include» — ВСЕГДА, а «Extend» – ИНОГДА.



Рисунок 7. Использование связи типа «Зависимость (включение)»


В итоге наша диаграмма будет выглядеть примерно так (Рисунок 8).



Рисунок 8. Диаграмма Use-case (функциональная модель АС)


Кроме того, диаграмма Use-case используется для моделирования ролей пользователей (Рисунок 9).



Рисунок 9. Диаграмма Use-case (роли пользователей АС)


Этап 4. Опишем внутреннюю организацию АС с помощью диаграммы классов


Используя информацию о входных и выходных артефактах нашего процесса (см. диаграммы Activity — Рисунок 2, Рисунок 3, Рисунок 4), разработаем диаграмму классов. Будем использовать моделирующий элементы «Класс» и различные виды связей между ними.



Чтобы показать отношение «целое-часть» будем использовать связь типа «Агрегация» (Рисунок 10): орех – это целое, а скорлупки и ядро – это части.



Рисунок 10. Отношение «целое-часть»


В итоге фрагмент нашей диаграммы будет выглядеть примерно так (Рисунок 11). Цветом отмечены классы, которые мы выделили непосредственно в текстовом описании процесса.



Рисунок 11. Диаграмма классов


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



Рисунок 12. Диаграмма классов (окружение)


Связь наследование показывает обобщение различных построек, «дочерние» классы, под обобщающим «родительским» классом «Строение».



Рисунок 13. Диаграмма классов (дополнительная информация об артефактах)


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


Этап 5. Проанализируем заметки на дорожке «Бизнес-правила»


В качестве правил были указаны (см. Рисунок 2 в 1-ой части):


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

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


Заключительные замечания


Итак, мы прошли 5 этапов и построили 3 вида диаграмм. Добавлю еще небольшой комментарий об организации наших моделей в среде моделирования. Существует большое количество фреймворков, которые помогают структурировать разрабатываемые модели, но это не предмет данной статьи, поэтому мы ограничимся следующим простым набором пакетов для упорядоченного ведения нашего проекта: Бизнес-процесс, Функциональная модель, Артефакты, Участники и Окружение (Рисунок 14).



Рисунок 14. Структура пакетов проекта


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


От моделирования процессов к проектированию автоматизированной системы (Часть 1)


Список источников
  1. Сайт «UML2.ru». Форум Сообщества Аналитиков. Общий раздел. Примеры. Примеры сказок, оформленных в виде UML диаграмм. [Электронный ресурс] Режим доступа: Интернет: http://www.uml2.ru/forum/index.php?topic=486.0
  2. Сайт Sparx Systems. [Электронный ресурс] Режим доступа: Интернет: https://sparxsystems.com
  3. Сайт Modelio. [Электронный ресурс] Режим доступа: Интернет: https://www.modelio.org
  4. Большой Энциклопедический словарь. Процесс (толкование). [Электронный ресурс] Режим доступа: Интернет: https://dic.academic.ru/dic.nsf/enc3p/246322
  5. Сайт «Организация эффективного управления». Блог. Рубрика «Управление бизнес процессами». Определение бизнес процесса. [Электронный ресурс] Режим доступа: Интернет: https://rzbpm.ru/knowledge/pochemu-processy-stali-s-pristavkoj-biznes.html
  6. Свидетельство № 18249 о регистрации и депонировании произведения результата интеллектуальной деятельности. Алфимов Р.В., Золотухина Е.Б., Красникова С.А. Рукопись учебно-методического пособия под названием «Моделирование предметной области с использованием Enterprise Architect» // 2011г.
  7. Золотухина Е.Б., Вишня А.С., Красникова С.А. Моделирование бизнес-процессов. — М.: КУРС, НИЦ ИНФРА-М, ЭБС Znanium.com. — 2017.
  8. OMG Unified Modeling Language (OMG UML) Specification. Version 2.5.1. [Электронный ресурс] Режим доступа: Интернет: https://www.omg.org/spec/UML/2.5.1/PDF

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (2):

  1. MarazmDed
    /#20030944

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

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

    Весь курс обучения студента в ВУЗе построен вокруг модельных задач и примеров. С тысячами упрощений и необязательных элементов. В итоге, когда уже дипломированный специалист погружается в РЕАЛЬНУЮ работу — происходит разрыв шаблона. Ведь все 4-6 лет студента не учили решать сложные задачи. И именно курс по моделированию, на мой взгляд, идеально подходит для того, чтобы студенту показать, что реальные задачи — сложнее уровня «Hello, world!».
    Было бы здорово увидеть рассказ о моделировании именно сложных систем.

    • krasni
      /#20033330

      Спасибо! На самом деле, «сказочная» предметная область только для «затравки». На семинарах и лабораторных моделируем «электронную очередь в банке» и что-то из учебного процесса, например: «замена в расписании», «учет посещений и успеваемости». Плюс у ребят курсовая со своей индивидуальной темой. Темы студенты предлагают самостоятельно, я только направляю немного, вот несколько примеров: «Автоматизация процессов контрольно-пропускного пункта города (закрытого)», «Автоматизация логистических процессов аптеки» (ну, здесь было очень много всего, пришлось ограничивать количество декомпозиций), «Автоматизация работы хронометристов баскетбольного матча», «Автоматизация работы военного комиссариата» (тоже ограничили количество рассматриваемых функций), «Автоматизация работы приемной комиссии вуза» (и тоже только фрагмент).
      Конечно, студенческие проекты требуют «причесывания», это же у меня 2 семестр! Постараюсь к лету получить модели, которые можно было бы в пример привести.
      И что-нибудь из РЕАЛЬНОЙ жизни (параллельной работе в вузе) подберу.