• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Контакты

Адрес: 109028, г. Москва, Покровский бульвар, д. 11

Телефон: +7(495) 772-95-90 *28240

Руководство
Научный руководитель направления “Программная инженерия" Аветисян Арутюн Ишханович
Руководитель департамента Лебедев Сергей Аркадьевич
Заместитель руководителя департамента Шершаков Сергей Андреевич
Книга
Избранные вопросы цифровой трансформации образования

Абрамычева Н. Л., Адайкина А. Ю., Андрюшкова О. В. и др.

ИНФРА-М, 2024.

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

Якушева С. Ф., Хританков А. С.

Программные системы: теория и приложения. 2024. Т. 15. № 2. С. 37-86.

Глава в книге
How Can Narrative Game Design Methods Improve Educational Experience?

Olga Maksimenkova, Lebedev S.

In bk.: Towards a Hybrid, Flexible and Socially Engaged Higher Education. Proceedings of the 26th International Conference on Interactive Collaborative Learning (ICL2023), Volume 3. Vol. 901: Lecture Notes in Networks and Systems, vol 901. Springer, 2024. P. 464-473.

От динамического хаоса к Process Mining

Сергей Шершаков, выпускник магистратуры по специальности «Системная и программная инженерия» 2012 года, старший преподаватель департамента программной инженерии, сотрудник научно-учебной лаборатории процессно-ориентированных информационных систем, представитель кадрового резерва НИУ ВШЭ в категории «Новые исследователи». Сергей рассказывает о том, что такое Process Mining, как сохранять актуальность своих знаний, не работая в индустрии, почему выпускникам Вышки не надо «забывать все, чему их учили» и многом другом.

  

Путь в ВШЭ

К моменту поступления в магистратуру НИУ ВШЭ я уже два года как закончил специалитет в Московском техническом университете связи и информатики и уже четыре года работал в научной лаборатории при том же институте. В какой-то момент я задумался о способах развития своего научного потенциала и в итоге решил, что хороший вариант — получить второе образование. Я начал изучать программы и выбрал программную инженерию как более естественное продолжение моего основного образования, то есть того, что сейчас модно называть «мэйджор». 

Первое очное знакомство с ВШЭ состоялось в здании на Кирпичной улице, где проходила однодневная школа по программной инженерии. Здесь же я познакомился с С. М. Авдошиным. На магистерскую программу по программной инженерии проходил первый набор непосредственно отделения программной инженерии (до этого — факультета бизнес-информатики).

 

Вышка со всеми вытекающими последствиями     

В 2010 году началось мое обучение в магистратуре. Тогда я познакомился с проф. И.А. Ломазовой, которая читала нам курс «Formal Methods in Software Engineering». Впоследствии Ирина Александровна стала моим научным руководителем.   

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

Возможности, которые Вышка предоставляла для студентов, были тоже весьма привлекательны. В частности — поддержка академической мобильности, в том числе зарубежные конференции, школы, стажировки. Ключом к академической мобильности является научная работа; в 2012 году я подал первую самостоятельную научную работу на конференцию SYRCoSE, которая проходит каждый год в разных городах России, и она была принята. В тот год конференция была организована в Перми на базе Пермского кампуса НИУ ВШЭ. Тогда я только начинал знакомиться со сферой влияния ВШЭ вне Москвы. 

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

То, с чем я столкнулся в Вышке во время обучения в магистратуре образца 2010–2012 гг., было именно то, чего в моем понимании мне не хватало для высшего образования, — это не только знания, но и связи, перспективы.

 

Выбор научной области

Закончив специалитет, я некоторое время продолжал работать в научно-учебной части МТУСИ, где занимался разработкой ПО для программно-аппаратных комплексов в научно-исследовательской лаборатории синтезаторов прецизионных сигналов под руководством В. Н. Кочемасова. В 2012 году, после окончания магистратуры в ВШЭ, я принял решение перелистнуть страницу Института связи и покинул лабораторию. Пробовал себя во фрилансерских проектах, занимался поддержкой информационных систем. Примерно тогда я и понял, что академическое заведение — это тот вариант занятости, который мне подходит, а работа исследователем — возможно, наиболее творческий вариант из возможных. 

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

В 2011 году в ВШЭ приезжал профессор Вил ван дер Аалст из Технического университета Эйндховена — крупный ученый в области процессно-ориентированных информационных систем и основатель нового исследовательского направления Process Mining. Уже тогда вырисовывались перспективы создания в ВШЭ научно-учебной лаборатории по этой тематике. К концу моего обучения в магистратуре принципиально решение о создании международной лаборатории было принято и, когда она была организована, ее руководитель — И. А. Ломазова — пригласила меня присоединиться к группе сотрудников в качестве исследователя.

 

Что такое Process Mining и почему это важно

Process Mining является основным направлением исследований, проводимых в лаборатории процессно-ориентированных информационных систем. Этот термин трудно перевести на русский дословно, обычно мы называем это «извлечение и анализ процессов». По сути, дисциплина Process Mining стоит на стыке между исследованием бизнес-процессов, их моделированием, Data Mining, машинным обучением и вовлекает в свою орбиту множество подходов для работы с «большими данными». 

Фундаментальная идея, лежащая в основе Process Mining, заключается в том, что сопровождение большинства процессов — технологических, в бизнесе, социальной сфере, медицине и т.д. — организовано с помощью информационных систем, которые в результате своей работы ведут так называемые «журналы или логи событий», в которых фиксируется информация о том, как система функционирует в действительности: например, оплачен чек, выставлен счет или назначено обследование. Этих состояний накапливается очень много, и на их основе можно наблюдать реальное поведение системы. В итоге выявляются несоответствия между тем, как бизнес-процессы работают в действительности, и тем, как они были запланированы изначально.

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

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

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

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

Вторая тема — это применение Process Mining в программной инженерии. Сейчас мы работаем над вопросами синтеза иерархических UML диаграмм последовательности и гибридных диаграмм.

 

Преподавание

Надо сказать, что изначально у меня не было планов становиться преподавателем, исследовательская деятельность привлекала меня больше. Но в начале 2013 года С. М. Авдошин предложил мне прочитать лекции по курсу «Алгоритмы и структуры данных» в весеннем семестре и вести семинары по программированию у студентов отделения «Прикладной математики и информатики». У меня уже был определенный преподавательский опыт, и я согласился. Оказалось, что если относиться к делу с полной отдачей, то полставки преподавателя дают достаточно большую нагрузку и забирают уйму времени. После одного семестра уже подразумевалось, что я продолжаю этим заниматься и дальше, к лекциям и семинарам в качестве «бонуса» добавились курсовые и выпускные квалификационные работы. 

В ВШЭ сейчас можно наблюдать активный тренд, направленный на проектную деятельность. Применительно к ОП «Программная инженерия», проектная деятельность играет большую роль, потому что мы учим студентов практически понятным вещам, и сформировать более или менее полную картину производства программного продукта можно только с вовлечением всего цикла разработки самостоятельных продуктов или компонентов других систем. При таком подходе студенту не просто дается кусок задачи – придумать и реализовать алгоритм, — но и создаются условия для вовлечения в процесс разработки лучших практик, индустриальных стандартов, например SWEBOK, использования инструментов для сопровождения разработки. Таким образом, формируется умение видеть весь процесс с точки зрения проектного менеджера. 

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

 

Как сохранять актуальность своих знаний, не работая в индустрии

Во-первых, я сам остаюсь действующим программистом, пишу программный код много и не без удовольствия. Поскольку я работаю не только с автономными stand-alone проектами, но и часто разрабатываю модули для существующих систем – например, академической системы ProM для Process Mining, которая состоит из большого числа плагинов, написанных разными специалистами, – то это ведет к необходимости работать с подходами, используемыми при разработке другими специалистами. Работа с чужим кодом и желательно хорошим – это отличная школа, которая позволяет перенимать лучшие практики и избегать в дальнейшем использования неудачных решений, так называемых анти-паттернов. 

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

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

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

И наконец, я все время учусь самостоятельно. Когда я выбираю тот или иной набор технологий для своей работы над кодом, я читаю современные обзоры, технические блоги, специалистов, которые вносят актуальные новинки в область, к примеру, Бертрана Мейера, Бьярне Страуструпа, который является создателем языка C++ и по-прежнему ведет активную теоретическую деятельность по его развитию.

С Бьярне Страуструпом 

«Миссионерская» деятельность в ВШЭ

С 2015 года я стал представлять Вышку в региональных центрах. Все началось с предложения поехать в Воронеж с докладом для школьников на Дне открытых дверей ВШЭ. Оказалось, что это очень интересно. 

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

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

 

Напоследок, о ближайших планах

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




Интервью подготовила Ольга Подольская


В 2017 году на факультете компьютерных наук, помимо англоязычной образовательной программы магистратуры «Системная и программная инженерия», открывается набор на новую магистерскую программу «Системное программирование». Документы, правила приема, сроки и другая информация по поступлению в магистратуру размещены на сайте приемной комиссии НИУ ВШЭ.