Подходы к обучению программной инженерии
В рамках работ по становлению программной инженерии опубликовано ряд учебников и монографий, отображающие разные ее аспекты, и сформировалось несколько подходов к обучению и подготовки соответствующих специалистов [5–13]:
1) введение в программы обучения отдельных элементов программной инженерии;
2) создание самостоятельной специальности «программная инженерия» и обучение ей студентов всех курсов;
3) сертифицированное обучение программной инженерии как профессии на курсах подготовки или переподготовки ИТ–специалистов.
Подход 1. Обучение этой дисциплине фактически уже проводиться на факультетах информатики в виде отдельных курсов, отражающих аспекты программной инженерии: модульное, объектно-ориентированное, компонентное программирование, управление данными, тестирование ПО и др. Дипломированные специалисты, прошедшие изучение некоторых из этих аспектов, не пользуются большим спросом на рынке труда, так как не имеют знаний и опыта в организации планирования и управления деятельностью разработчиков ПО, а также знаний по вопросам распределения ресурсов (людских, аппаратных, программных), оценки трудозатрат, повышения качества и др. важных моментов ведения крупных промышленных проектов. Они могут использоваться как программисты, либо повышать знания до уровня менеджера проекта или инженера в области программной инженерии на курсах повышения квалификации.
Подход 2. Наибольшее развитие в международной практике получил подход, ориентированный на создание самостоятельной специальности «программная инженерия» на факультетах информатики. Данный подход поднимает престиж учебного заведения, требует дополнительных вложений на его оборудование и привлечение соответствующего преподавательского состава. Учебный план факультета информатики предусматривает программы по информатике и программной инженерии. Согласно [24] эти учебные программы относятся как 50:50. При этом треть предметов факультета связаны с программной инженерией, а две трети – с информатикой.
Эти темы включены в программу обучения CС– 2001 как не обязательные темы, хотя проблемы интерфейса и компонентного подхода сейчас являются перспективными направлениями дальнейшего развития современного программирования и производства ПО.
Подход 3. Обучение сформировавшихся специалистов программной инженерии на специальных курсах повышения квалификации (с отрывом и без отрыва от производства) представляет значительный интерес для действующих компаний, специализирующихся в разработке ПО и крупных программных проектов. Для усовершенствования квалификации персонала фирм объявляются или заказываются отдельные темы программной инженерии или целый курс. Самыми широко распространенными сертифицированными курсами являются: программная инженерия, управление требованиями, повторное использование, управление программными проектами, моделирование в UML и Case Rational Rose и др.
Рассмотренные подходы к преподаванию программной инженерии используются в США, Канаде, Великобритании и других европейских странах. Остановимся на анализе состояния дел по ее преподаванию на факультетах информатики в странах СНГ. До настоящего времени во многих Вузах ведется обучение ЯП ( С++, Паскаль, Бейзик Lava и др.), теории алгоритмов, ОС, СУБД, информационным технологиям и системам и др. Обсуждение предмета программной инженерии как специальности проведено, например, в российской прессе [26-28, 34]. Общее мнение состоит в том, что системное преподавание этой дисциплины в основном отсутствует, в университетах ощущается недостаток профессорско-преподавательского состава и соответствующих учебно-методических пособий.
В частности, в [27] отмечается, что сложившаяся советская система образования в университетах бывшего СССР «постепенно все больше и больше отдаляется от требований современного мира»; программирование представляет фундаментальную науку и прикладную инженерную дисциплину, основанную на применение теоретических знаний в жестких ограничениях реального мира.
Тем более, что в информатике отсутствует такие понятия, как ресурсы, трудозатраты, менеджмент, измерения и оценки продуктов, которые в программной инженерии играют ключевую роль. В связи с этим возникает естественная потребность в разносторонних и полноценных программах обучения профессиональных специалистов в области программной инженерии, основу которых может составлять СС-2001 [22 ].
Основу подготовки специалистов по программной инженерии составляют специальные программы обучения и учебники, с помощью которых студенты смогут усвоить суть данной инженерной дисциплины, получать навыки и овладеть методами создания и управления программными проектами с учетом требований индустрии, современных сред и заказчиков.
На основе огромного опыта программирования разных программных систем, преподавания спецкурса по этой дисциплине в Киевском Национальном университете им. Тараса Шевченко и учитывая международный опыт по созданию ядра знаний SWEBOK, разработан и опубликован учебник серии «высшее образование XXI столетия» [8], который рекомендован в качестве учебного пособия для обучения студентов в Вузах. Однако этот учебник вышел небольшим тиражом, его использует авторы при проведении курсов в Национальном университете имени Тараса Шевченко, в Киевском отделении МФТИ, в Национальном авиационном институте.