Консолидация компетенций по руководству разработкой программного обеспечения для магистрантов направления «Прикладная математика и информатика»
Согласно стандарту магистратуры [1] и большинству из перечисленных в нем профессиональных стандартов выпускник должен владеть набором компетенций по руководству проектами разработки ПО, такими как, например:
- УК –2. Способен управлять проектом на всех этапах его жизненного цикла.
- УК –3. Способен организовывать и руководить работой команды, вырабатывая командную стратегию для достижения поставленной цели.
Отметим, что из профессиональных стандартов также могут формироваться дополнительные профессиональные компетенции.
Это означает, что выпускник должен владеть консолидированным видением весьма разнородных моделей, методов и технологий дисциплины «Программная инженерия», с этапами экстенсивного развития которой в течение последних десятилетий можно ознакомиться, например, в [2].
Подчеркнем, что руководитель проекта разработки ПО обязательно должен владеть компетенциями члена команды разработки ПО (КЧКР) и иметь опыт разработки нескольких проектов. Рассмотрим, как и когда формируются КЧКР у студентов Института математики и информационных технологий в настоящее время, сделав при этом краткий исторический экскурс.
В ПетрГУ задача формирования КЧКР возникла в 1993 г. с открытием направления бакалавриата «Прикладная математика и информатика». В 1994 г. Ю. А Богоявленский начал читать дисциплину «Технология программного обеспечения», а одним из первых студенческих командных программных проектов была система «Оберон» для обучения численным методам решения дифференциальных уравнений в частных производных [3]. C 1997 г. эту дисциплину вел ведущий разработчик компании «Ноутис» М. В. Токарев, имевший опыт работы для компании «Motorola», а с 2001 г. – доцент Д. Ж. Корзун. В эти годы, в связи со слабостью сетевой инфраструктуры, для коммуникации в командах использовалась «бумажная» технология.
Дисциплина «Программная инженерия» экстенсивно развивалась, возникали новые модели жизненного цикла, технологии распределенной разработки, новые инструментальные системы. Такое развитие требовало обновления соответствующей учебной дисциплины, выведения методов ее преподавания на международный уровень, воспитания кадров молодых преподавателей. Эти задачи решалась путем реализации силами сотрудников и студентов кафедры ИМО полного технологического цикла разработки двух проектов.
Проект «WebSynDic» [4–6] представляет собой разработанную в 2003 – 2004 гг. веб систему для удаленной демонстрации, тестирования, экспериментального анализа и сравнения алгоритмов нахождения базиса Гильберта систем неотрицательных линейных ассоциированных с КС–грамматиками диофантовых уравнений. Ю. А. Богоявленский выступал в роли заказчика, Д. Ж. Корзун в роли менеджера проекта, магистрант К. Кулаков и студенты А. Сало, М. Крышень, А. Ананьин составляли команду разработчиков.
В системе [4] обеспечивается доступ к двум, разработанным на кафедре Информатики и математического обеспечения, псевдополиномальным алгоритмам, реализованным на ANSI C – Syntactic [7] (2200 LOC) и TransSol [8] (4600 LOC), а также к трем другим алгоритмам. Веб система реализована в средах Java/JSP содержит более 11000 LOC, отлажена, документирована и работоспособна на момент публикации этих тезисов.
Проект «DaCoPAn» [9–12] реализовывался как международный студенческий проект с коммуникацией разработчиков через Интернет. Цель проекта – разработка программной системы для динамической визуализации процессов передачи данных по сетевым протоколам, чтобы помочь преподавателям яснее иллюстрировать базовые функции протоколов. Авторы идеи и организаторы этого проекта – профессор кафедры Информатики Хельсинкского университета T. Alanko и автор этих тезисов.
Разработка проекта началась с визита в Хельсинки в январе 2004 г. представителей ПетрГУ – группы разработчиков проекта «WebSynDic» под руководством менеджера проекта с российской стороны Д.Ж. Корзуна. Во время визита совместно с финскими студентами выполнялась фаза анализа требований заказчика в качестве которого выступал известный специалист по передаче данных, соавтор нескольких RFC, лектор дисциплины «Компьютерные сети», научный сотрудник кафедры Информатики Хельсинкского университета Markku Kojo.
С середины февраля до начала мая 2004 г. выполнялись фазы проектирования, программной реализации и тестирования модулей. При этом команды общались с помощью вики и электронной почты. В это время к команде присоединился студент ПетрГУ В. Суриков.
С 3 по 12 мая финские члены команды разработчиков – студенты Дж.Браун, В. Вайнио, Я. Лайне, Я. Аарнила, А. Фернандез, К. Аррастиа под руководством профессора И. Веркамо и менеджера проекта с финской стороны, преподавателя Т. Туохиниеми, прибыли в Петрозаводск для выполнения фазы интеграционного тестирования. Разработка была успешно завершена в конце мая. Проект содержит более 14000 строк кода, протестирован, использовался в учебном процессе.
При выполнении этих проектов был получен реальный опыт разработки программных продуктов по полному технологическому циклу на современном международном уровне с использованием принятых в индустрии инструментов, а также воспитаны будущие преподавательские кадры. Так, сейчас доцент К. А. Кулаков руководит выполнением студенческих проектов по дисциплине «Технология производства ПО», читает дисциплины «Анализ требований к программным системам», «Методы тестирования ПО», ряд других дисциплин, является руководителем образовательной программы бакалавриата по направлению «Программная инженерия». Старший преподаватель М. А. Крышень читает дисциплины «Человеко–машинные интерфейсы» и «Функциональное программирование». А. Ю Сало долгое время был ведущим программистом в IT–парке ПетрГУ.
Полученный при разработке этих проектов опыт послужил основой разработанной доцентом Д. Ж. Корзуном годовой дисциплины по изучению командной разработки ПО [13,14]. Эта дисциплина, а также дисциплина «Сетевые инструменты разработки ПО» [15] являются технологической базой для разработанной кафедрами Информатики и математического обеспечения и Прикладной математики и кибернетики сквозной наследуемой системы формирования у студентов КЧКР [16].
Студенты приобретают эти компетенции выполняя большой объем работы по изучению на первом курсе вводных дисциплин, а затем, на третьем курсе, дисциплины «Технология производства ПО» с выполнением командного проекта. Полученные компетенции, как правило, закрепляются затем при участии студентов в исследовательских или промышленных проектах IT–парка и других компаний.
В настоящее время эти компетенции получают студенты бакалавриата направлений «Прикладная математика и информатика», «Информационные системы и технологии» и «Программная инженерия». Выпускники этих направлении востребованы в разработках IT–парка ПетрГУ (например, [17]), в других IT компаниях и в международных проектах [18].
Подчеркнем, что в бакалавриате реально возможно сформировать у студента только КЧКР в силу большого объема работы необходимого для их освоения. Формирование компетенций руководителя разработки проекта требует организации дополнительного обучения, которое целесообразно проводить в магистратуре для бакалавров, уже имеющих КЧКР.
Рассмотрим теперь как формируются компетенции по руководству проектами разработки ПО при изучении дисциплины магистратуры «Руководство процессом разработки программного обеспечения». В модели компетенций дисциплины «Программная инженерия» [19] детально представлены входящие в эти компетенции интеллектуальные и технические навыки. Отметим, что формирование интеллектуальных навыков обеспечивает вырабатываемая у студентов еще в бакалавриате математическая культура [20]. Технические навыки представлены пятью областями, соответствующими типичным фазам жизненного цикла разработки программного продукта и восемью перекрёстными областями, которые, в большинстве случаев, применяются в каждой из пяти областей жизненного цикла.
Области фаз жизненного цикла определены как: требования, проектирование (дизайн), конструирование (кодирование), тестирование и сопровождение программного обеспечения.
Перекрёстные области определены как: процесс и жизненной цикл, системные технологии, качество ПО, безопасность (security), защищенность (safety), управление конфигурацией, измерения, человеко–машинный интерфейс.
При формировании КЧКР упор делается на обучение навыкам «внутри» отдельных областей и, притом, только тем навыкам, которые соответствуют функциям разработчика. Например, не дается материал по методам оценки стоимости и сроков выполнения проекта или по подбору и управлению персоналом.
В свою очередь при формировании компетенций по руководству проектами необходимо рассмотреть навыки, которые необходимы только руководителю, а также совместить их с уже полученными навыками КЧКР и сформировать у студента целостное консолидированное видение весьма разнородных моделей, методов и технологий дисциплины «Программная инженерия».
С этой целью в дисциплине «Руководство процессом разработки программного обеспечения» магистрантам даются следующие, рассматриваемые в [21–24], темы.
- Модели и процессы.
- Методы, средства и процессы программной инженерии. Модели, классификация процессов – основные, вспомогательные и организационные процессы. Структура модели процесса: деятельность, задача, действие. Пять видов основной деятельности. Восемь видов защитной деятельности. Различия в организации процессов.
- Модели жизненного цикла.
- Модель «классический жизненный цикл»: этапы, достоинства, недостатки. Макетирование: цель, шаги, достоинства, недостатки. Стратегии разработки. Инкрементная, спиральная и компонентная модели. Тяжеловесные и облегченные процессы. Обзор agile моделей. Процессы Scrum.
- Основные понятия руководства проектом.
- Начало, измерения, процесс оценки, анализ риска, планирование, трассировка и контроль. Планирование программного проекта: структуры плана управления и графика работ программного проекта. Управление риском: идентификация, анализ риска, ранжирование, планирование управления, разрешение и наблюдение риска. Управление персоналом: подбор, взаимодействия в команде, ее состав. Управление документацией: стандарты, полнота, согласованность. Управление конфигурацией: идентификация объектов, контроль версий и изменений.
- Предварительная оценка проекта.
- Метрики сложности проекта LOC и FP. Оценка на их основе при планировании. Конструктивная модель стоимости. Модель композиции приложения. Модели раннего этапа проектирования и этапа постархитектуры. Предварительная оценка проекта. Анализ чувствительности. Сценарий понижения зарплаты.
- Взаимосвязи технологий работы с требованиями
- Виды требований. Формирование, анализ, аттестация требований. Характеристики детального требования. Спецификация и управление требованиями. Визуальные модели требований. Цели визуального моделирования. Диаграммы: потоков данных и рабочих потоков (swimlane). Карты диалоговых окон. Таблицы и деревья решений. Таблицы событий и реакций. Диаграмма сущность–связь.
- Проектирование программной системы.
- Процесс синтеза программной системы. Проектирование архитектуры. Структурирование. Шаблоны архитектуры. Шаблон MVC. Шаблоны архитектуры: с хранилищем данных, клиент–сервер, многоуровневая, канала и фильтра. Шаблоны управления: вызов–возврат, менеджера, широковещательное, по прерываниям. Проектирование интерфейсов.
- Модульность и связность.
- Декомпозиция подсистем на модули. Модульность: информационная закрытость, связность. Виды связности: функциональная, информационная, коммуникативная, процедурная, временная, логическая, связность, по совпадению. Нахождение связности. Структурное проектирование. Типы информационных потоков. Проектирование для потоков данных типа «преобразование» и «запрос».
- Качество программного продукта.
- Методы обеспечения качества программного продукта. Стандарты и модели качества. Характеристики качества: результативность; производительность; совместимость; удобство использования (юзабилити); надёжность; защищённость; сопровождаемость; переносимость (мобильность). Тестирование программного обеспечения.
Студентами рекомендована литература [21–24].
Список литературы
- Портал Федеральных государственных образовательных стандартов высшего образования. ФГОС ВО (3++) по направлениям магистратуры. 01.04.02 Прикладная математика и информатика. [Электронный ресурс] / НИТУ МИСиС. – Электрон.дан. – Москва], сор. 2021. – URL: http://fgosvo.ru/fgosvo/downloads/1629/?f=%2Fuploadfiles%2FFGOS+VO+3%2B%2B%2FMag%2F010402_%25D0%259C_3_17062021.pdf/. – (08.11.2021)
- Карпенко С.Н., Введение в программную инженерию. Учебно–методические материалы по программе повышения квалификации «Информационные технологии и компьютерное моделирование в прикладной математике». Нижегородский государственный университет им. Н.И. Лобачевского, 2007, С.103.
- Bogoyavlenskiy, Yu.A., Intelligent Tutoring Environment for Correct Application Study of Partial Differential Equations and Numerical Methods of Their Solution [Текст] / Yu.A. Bogoyavlenskiy, G.S. Sigovcev, V.T. Vdovicyn // Proceedings of Japan–CIS Symposium on Knowledge Based Software Engineering’94 (JCKBSE’94). – 1994. – С.104–106.
- Web System for Demonstrating the Syntactic Algorithms for Solving Linear Equations in Nonnegative Integers [Электронный ресурс] / Петрозавод. гос. ун–т. – Электрон. дан. – [Петрозаводск], cop. 2004. – URL: http://websyndic.cs.karelia.ru/. – (08.11/2021)
- Программа семинара Неделя финской информатики 2004 [Электронный ресурс] / Dmitry Korzun, Kirill Kulakov, Andrey Salo, Mikhail Kryshen, Andrey Ananin, The Web–SynDic Software Engineering Project Петрозавод. гос. ун–т. – Электрон. дан. – [Петрозаводск], cop. 2004. – URL: https://cs.petrsu.ru/fdpw/2004/korzun01.pdf/. – (08.11.2021).
- Богоявленский Ю. А., Корзун Д. Ж. Программная система удаленного решения однородных линейных диофантовых уравнений в неотрицательных целых числах // Научно–технические ведомости СПбГПУ. Сер. "Информатика. Телекоммуникации. Управление". СПб.: Изд–во Политехнического университета, 2010. – N 1 (93). – С. 90–99. – URL: https://infocom.spbstu.ru/userfiles/files/volume/itc_2010_1.pdf/.
- Корзун Д. Ж.. Syntactic Methods in Solving Linear Diophantine Equations / Д. Ж. Корзун // Труды межд. семинара Finnish Data Processing Week at the University of Petrozavodsk (FDPW’2004): Advances in Methods of Modern Information Technology. Vol. 6. Петрозаводск: Изд–во ПетрГУ, 2005. C. 151–156. – URL: https://cs.petrsu.ru/fdpw/2004/korzun01.pdf.
- Кулаков К. А., Итеративный алгоритм нахождения базиса Гильберта однородных линейных диофантовых систем, ассоциированных с контекстно–свободными грамматиками / К.А. Кулаков, Д.Ж. Корзун, Ю.А. Богоявленский // Вестник Санкт–Петербургского университета. Сер. 10. Вып. 2. СПб.: Изд–во СПбГУ, 2008. С. 73–84. – URL: https://cyberleninka.ru/article/n/iterativnyy-algoritm-nahozhdeniya-bazisa-gilberta-odnorodnyh-lineynyh-diofantovyh-sistem-assotsiirovannyh-s-kontekstno-svobodnymi/viewer
- Совместный студенческий проект DaCoPAn Пресс–релиз. [Электронный ресурс] / Петрозавод. гос. ун–т. – Электрон. дан. – [Петрозаводск], cop. 2004. – URL: https://cs.petrsu.ru/news/2004/dacopan/index.php.ru/. – (08.11.2021).
- DaCoPAn Software Engineering Project [Электронный ресурс] / Хельсинкский.
ун–т. (Финляндия) – Электрон. дан. – [Хельсинки], cop. 2004. – URL: https://www.cs.helsinki.fi/group/dacopan/index.html/. – (08.11.2021). - DaCoPAn. Documents related to the project. [Электронный ресурс] / Петрозавод. гос. ун–т. – Электрон. дан. – [Петрозаводск], cop. 2004. – URL: http://dacopan.cs.karelia.ru/development/DaCoPAnDocumentation.html. – (08.11.2021).
- I. Verkamo, J. Taina, Y. A. Bogoyavlenskiy, D. G. Korzun, T. Tuohiniemi. Distributed Cross–Experience in a distributed cross–cultural Student Software Project. A Case Study. // Proc. of 18th Conference on Software Engineering Education & Training (CSEET'05). 2005. P. 207–214. – URL: https://www.researchgate.net/publication/4140013_Distributed_Cross-Cultural_Student_Software_Project_A_Case_Study
- Богоявленский Ю.А. А. В. Воронин, Д. Ж. Корзун. Организация годового курса ≪Технология разработки программного обеспечения≫. Информационная среда вуза XXI века: Материалы всероссийской науч.–прак. конф. (3–8 сент.2007 г.). Петрозаводск, 2007. С.37–39. – URL: https://it2007.petrsu.ru/publications
- Корзун Д.Ж.. Развитие учебной дисциплины "Технология разработки программного обеспечения" Восьмая открытая всероссийская научно–практическая конференция "Преподавание информационных технологий в Российской Федерации". – Петрозаводск : ПетрГУ, 2010 Сборник трудов. – Петрозаводск: Изд–во ПетрГУ, 2010. – С. 122–126. – URL: https://cs.petrsu.ru/studies/methodwork/PetrSU-SEedu_slidesAPKIT2010.pdf
- Чистяков Д.Б., Богоявленский Ю.А. Цифровая среда Института математики и информационных технологий. Преподавание инструментов разработки программных продуктов // Цифровые технологии в образовании, науке, обществе. Материалы XII всероссийской научно–практической конференции (4–6 декабря 2018 года), Изд-во ПетрГУ, С.247–250. – URL: https://it2018.petrsu.ru/publications
- Воронин А.В., Богоявленский Ю.А., Корзун Д.Ж., Шабаев А.И., Обучение технологии разработки программного обеспечения в Петрозаводском государственном университете // Сб. тр. 5–й открытой всероссийской конф. "Преподавание информационных технологий в Российской Федерации". АПКИТ, 2007. С. 102–119. – URL: https://cs.petrsu.ru/news/2007/article/PetrSU-IT-talkAPKIT2007.pdf
- Воронин А. В., Печников А. А., Шабаев А. И., Конвейерная технология разработки программного обеспечения для управления производственными ресурсами и процессами // Перспективы науки. 2010. № 2. С. 95–99. – URL: https://moofrnk.com/assets/files/journals/science-prospects/4/science-prospects-2(4)-2010.pdf#page=91
- Богоявленский Ю. А., Корзун Д. Ж., Студенческие проекты по разработке ПО для платформы Maemo в Петрозаводском государственном университете: текущее состояние и перспективы (Student Software Engineering Projects for the Maemo Platform at Petrozavodsk State University: State–of–the–Art and Perspective) // Proc. of the Annual Int. Workshop on Advances in Methods of Information and Communication Technology (AMICT'2009). Petrozavodsk, Russia, 19–20 May 2009. Петрозаводск: Изд–во ПетрГУ, 2010. Т. 11. – С. 155–156.
- Software Engineering Competency Model, Version 1.0, SWECOM, IEEE, 2014, P168. – URL: http://ppdi.stmik-banjarbaru.ac.id/data.bc/1001.%202021/2014%20IEEE%20Software%20Engineering%20Competency%20Model-2014-V1.pdf
- Корзун Д.Ж., Светова Н.Ю., Богоявленский Ю.А., Бородин А.В., Применение математического образования при подготовке специалистов по разработке программного обеспечения в сфере информационно–коммуникационных технологий // Материалы 16–й открытой Всероссийской конференции "Преподавание информационных технологий в Российской Федерации" (Москва, 14–15 мая) с.76–78
- Ехлаков, Ю.П., Управление программными проектами: учебник / Ю.П. Ехлаков; Министерство образования и науки Российской Федерации, Томский Государственный Университет Систем Управления и Радиоэлектроники (ТУСУР). – Томск, 2015. – 217 с. : схем., табл. – Библиогр. в кн. – ISBN 978–5–86889–723–8 ; То же [Электронный ресурс]. – URL: http://biblioclub.ru/index.php?page=book&id=480634 (08.11.2021)
- Зубкова, Т.М.. Технология разработки программного обеспечения / Т.М. Зубкова ; Министерство образования и науки Российской Федерации, Федеральное государственное бюджетное образовательное учреждение высшего образования «Оренбургский государственный университет», Кафедра программного обеспечения вычислительной техники и автоматизированных систем. – Оренбург : ОГУ, 2017. – 469 с. : ил. – Режим доступа: по подписке. – URL: http://biblioclub.ru/index.php?page=book&id=485553 (дата обращения: 08.11.2021. – Библиогр.: с. 454–459. – ISBN 978–5–7410–1785–2. – Текст : электронный.
- Орлов С. А., Программная инженерия. Учебник для вузов. 5–издание обновленное и дополненнон. Стандарт третьего поколения. – СПб.: Питер, 2016.– 640 с.
- Вигерс Карл, Битти Джой, Разработка требований к программному обеспечению. Издание третье, дополненное. /Пер. с англ. – М. : Издательство «Русская редакция»; СПб. : БХВ–Петербург,2014. – 736 стр. : ил.