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

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

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

Проектирование бизнес-процессов

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

VACD-диаграмма бизнес-процессов корпоративного университета
VACD-диаграмма бизнес-процессов корпоративного университета

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

  • Подготовка к тестированию;
  • Проведение тестирования;
  • Формирование плана обучения.

Далее каждый из этих бизнес-процессов можно расписать на BPMN-диаграмме. Например, для процесса Проведение тестирования она может выглядеть так:

BPMN-диаграмма бизнес-процесса тестирования профессиональных компетенций
BPMN-диаграмма бизнес-процесса тестирования профессиональных компетенций

Задачи, показанные на этой диаграмме, являются сервисными, т.е. выполняемые системой тестирования профессиональных компетенций. Именно такую систему я спроектировала и реализовала в декабре 2025 года. Посмотреть, как она работает, можно уже сейчас: система доступна для бесплатного тестирования по адресу https://test.babok-school.ru/. А пока я немного расскажу о самой разработке.

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

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

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

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

UML-диаграмма Use Case пример
Диаграмма вариантов использования системы: общие системные функции для всех пользователей

Как обычно, прилагаю исходный код диаграммы для PlantUML:

@startuml

actor Пользователь as U
actor "Email-сервер" as E

rectangle "Система тестирования" {
usecase "Смотреть направления и компетенции" as UC0
usecase "Войти в систему" as UC1
usecase "Зарегистрироваться" as UC2
usecase "Подтвердить регистрацию" as UC3
usecase "Восстановить пароль" as UC4
usecase "Подобрать курс" as UC5
}

UC0 <--- U
UC1  <- U
UC2  <- U
UC3 <- U
UC4 <- U
UC5  <- U

UC2 .> UC3 : include
UC1 <.. UC4 : extend

E - UC4
E -- UC2

@enduml

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

UML-диаграмма Use Case пример
Диаграмма вариантов использования системы для кандидата

Исходный код диаграммы для PlantUML:

@startuml

actor Кандидат as U
actor "Email-сервер" as E

rectangle "Система тестирования" {
usecase "Начать тест" as UC1
usecase "Выбрать вид теста" as UC2
usecase "Сформировать набор \n вопросов для теста" as UC3
usecase "Закончить тест" as UC4
usecase "Вычислить оценку" as UC5
usecase "Сформировать рекомендации" as UC6
usecase "Сформировать отчет \n по результатам теста" as UC7
usecase "Отправить результаты \n тестирования на Email" as UC8
usecase "Сформировать PDF-сертификат \n с результатами тестирования" as UC9
usecase "Посмотреть реестр \n своих результатов \n тестирования" as UC10
usecase "Посмотреть свои \n результаты конкретного \n тестирования" as UC11
usecase "Поделиться результатами \n тестирования" as UC12
usecase "Скачать PDF-сертификат \n с результатами тестирования" as UC13
}


U --> UC1
UC1 ..> UC2 : include
UC1 ..> UC3 : include


U --> UC4
UC4 ..> UC7 : include
UC4 ..> UC8 : include
UC4 ..> UC9 : include

UC7 ..> UC5 : include
UC7 ..> UC6 : include

U --> UC10
UC10 <.. UC8 : extend
UC10 <.. UC11 : extend
UC10 <.. UC12 : extend
UC10 <.. UC13 : extend

U --> UC14

UC8 --- E

@enduml

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

UML-диаграмма Use Case пример
Диаграмма вариантов использования системы для менеджера: модуль результатов тестирования

Исходный код диаграммы для PlantUML:

@startuml

actor Менеджер as U
actor "Email-сервер" as E

rectangle "Система тестирования: модуль результатов тестирования" {
usecase "Посмотреть реестр \n всех результатов \n тестирования" as UC1
usecase "Посмотреть \n результаты конкретного \n тестирования" as UC2
usecase "Отфильтровать результаты \n тестирования" as UC3
usecase "Отправить результаты \n тестирования на Email" as UC4
usecase "Поделиться результатами \n тестирования" as UC5
usecase "Скачать PDF-сертификат \n с результатами тестирования" as UC6
}
U --> UC1
UC1 <.. UC2 : extend
UC1 <.. UC3 : extend
UC1 <.. UC4 : extend
UC1 <.. UC5 : extend
UC1 <.. UC6 : extend

UC4 -- E

@enduml

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

UML-диаграмма Use Case пример
Диаграмма вариантов использования системы для менеджера: модуль управления тестами

Исходный код диаграммы для PlantUML:

@startuml

actor Менеджер as U

rectangle "Система тестирования: модуль управления тестами" {
usecase "Добавить новый вид теста" as UC1
usecase "Добавить новое направление" as UC2
usecase "Добавить новую компетенцию" as UC3
usecase "Изменить вид теста" as UC4
usecase "Удалить вид теста" as UC5
usecase "Изменить направление" as UC6
usecase "Изменить компетенцию" as UC7
usecase "Удалить направление" as UC8
usecase "Удалить компетенцию" as UC9
usecase "Добавить новый вопрос" as UC10
usecase "Указать направление" as UC11
usecase "Указать компетенцию" as UC12
usecase "Изменить вопрос" as UC13
usecase "Добавить новый\n ответ на вопрос" as UC14
usecase "Посмотреть реестр курсов" as UC15
usecase "Изменить ответ на вопрос" as UC16
usecase "Удалить вопрос" as UC17
usecase "Удалить ответ \n на вопрос" as UC18
usecase "Отключить активность" as UC19
usecase "Добавить новый курс" as UC20
usecase "Изменить курс" as UC21
usecase "Удалить курс" as UC22

usecase "Посмотреть реестр \n видов тестов,\n направлений и компетенций" as UC23
usecase "Найти направление \n и/или компетенцию" as UC24

usecase "Посмотреть реестр \n вопросов и ответов" as UC25
usecase "Отфильровать вопросы \n по направлению и/или компетенции" as UC26

usecase "Посмотреть кандидатов" as UC27
usecase "Настроить доступ \n кандидатов к виду теста" as UC28

}

U --> UC23
UC1 ..> UC23 : extend
UC23 <.. UC2 : extend
UC23 <.. UC3 : extend
UC4 ..> UC23 : extend
UC5 ..> UC23 : extend
UC6 ..> UC23 : extend
UC7 ..> UC23 : extend
UC23 <.. UC8 : extend
UC23 <.. UC9 : extend
UC23 <.. UC24 : extend

UC5 ..> UC19: include
UC8 ..> UC19: include
UC9 ..> UC19: include
UC17 ..> UC19: include
UC18 ..> UC19: include
UC22 ..> UC19: include

U --> UC25
UC26 ..> UC25 : extend
UC25 <.. UC10 : extend
UC25 <.. UC13 : extend

UC10 ..> UC12 : include
UC12 ..> UC11 : include

UC13 <.. UC12 : extend
UC13 <.. UC14 : extend
UC16 ..> UC13 : extend
UC13 <.. UC18 : extend

U --> UC15
UC20 ..> UC15 : extend
UC20 ..> UC12: include
UC15 <.. UC21 : extend
UC15 <.. UC22 : extend

UC12 <.. UC21: extend

U --> UC27
UC27 <.. UC28 : extend

@enduml

Как вы, наверное, уже поняли из описания, само веб-приложение представляет собой классический модульный монолит, написанный на Python с использованием фреймворка Flask и реляционной СУБД PostgreSQL. Приглашаю вас принять участие в бета-тестировании этой разработки и проверить свои компетенции по публичному набору тестов. Буду рада обратной связи и с удовольствием разработаю компетентностную модель с набором тестов для вашей компании.

А пока напоминаю, что освоить использованные в этой статье техники (UML, VACD и BPMN) для разработки требований и проектирования ИС вам помогут мои курсы Школы прикладного бизнес-анализа и проектирования информационных систем в нашем лицензированном учебном центре обучения и повышения квалификации системных и бизнес-аналитиков в Москве:

 

    Изменение базового тарифа с 1 января 2026 года Подробнее