Проф. А. В. Воронин, доц. Ю. А. Богоявленский, доц. Д. Ж. Корзун, мф, ПетрГУ
Пути решения этой проблемы давно известны: производственные практики, сотрудничество вузов и предприятий с привлечением студентов. Введение учебной дисциплины «технология разработки ПО» (ТП) — это еще один шаг к решению вышеупомянутой проблемы. Рассмотрим организационные и методические аспекты дисциплины ТП для 3-го года обучения [8]. Цель — формирование у студентов компетенции программирования в большом. Дисциплина обеспечивает закрепление полученных ранее базовых знаний инструментов ОПП и формирование навыков работы в команде и с заказчиком, управления проектом, реализации жизненного цикла ПО, представления и защиты разработки. В семестре 5 студенты прослушивают лекционный курс по основам ТП, а на лабораторных работах выполняют крайне простой проект (3-5 разработчиков, 4 часов на человека в неделю), позволяющий завершить освоение базовых инструментов и пройти основные этапы разработки. В семестре 6 студенты выполняют разработку более сложных программных проектов (заказчик, 4-6 разработчиков, 8 часов на человека в неделю). Проекты приближены к промышленным условиям. Заказчиками выступают сотрудники вуза и представители промышленности. По их заявкам формируется набор тем проектов.
Полученный нами опыт позволил организовать в рамках учебного процесса разработку прототипов промышленных приложений в ОПП Maemo. Платформа Maemo основана на ОС Linux и разрабатывается корпорацией Nokia для Интернет планшетов N8xx, N900. Развитие ИТ-парка ПетрГУ предполагает создание подразделения разработки в среде Maemo. Работа по подготовке разработчиков была начата весной 2008 г. при поддержке Программы университетского сотрудничества в России и СНГ Исследовательского центра Nokia (NRC, Хельсинки). Для проведения предварительного отбора студентов разработан интенсивный шестидневный курс в среде Moodle по программированию для платформы Maemo. Сформирован коллектив преподавателей. В вычислительную систему кафедры добавлена серверная ЭВМ и установлены следующие системы поддержки. 1) терминальный сервер с набором инструментов Scratchbox для кросс-компиляции maemo приложений. 2) web-сервер для доступа к учебным и техническим материалам. 3) репозиторий SVN и система wiki для взаимодействия разработчиков. Обеспечивается параллельная работа нескольких десятков разработчиков. Реализована версия серверной ЭВМ на ноутбуке для проведения выездных тренингов. В августе проведена летняя школа «Интернет-планшет 2008», на которой инициировано 23 минипроекта. Работа над ними продолжена в осеннем семестре на лабораторных и факультативных занятиях. Для привлечения новых студентов разработан двухдневный интенсивный курс в среде Moodle, который опробован на зимней школе «Интернет-планшет 2009» для студентов ПетрГУ и на выездных тренингах 5-го семинара FRUCT в апреле 2009 г. [9] и для сотрудников компании "Тэлма Софт" (Нижний Новгород) в сентябре 2009 г. На подготовительном этапе отобрано 28 студентов. Проекты, приближенные к производственным условиям, организуются в весеннем семестре. В начале 2009 г. определяются и согласуются с NRC технические задания на четыре проекта. Три из них ориентированы на сервисы социальных сетей (Vkontakte (My-Socials), Google calendar (Kimi), Livejournal (Scribo), а четвертый — на web-сервисы торговых бизнес систем. Некоторые метрики разработки представлены в табл. 2 (см. текущее состояние и детали проектов в [10]). Таблица 2. Метрики студенческих проектов Maemo (итерация II, сентябрь 2009)
На итерации I (февраль – май, 16 недель) разрабатываются концептуальные прототипы приложений, которые представляются на 5-м семинаре FRUCT [9]. Команды разработчиков состоят из 5-7 человек, каждый тратит до 16-18 часов в неделю. Менеджеры проектов — преподаватели кафедры. Особое внимание уделяется специфике Maemo программирования и взаимодействию в команде. В июне 2009 г. выполняется анализ достигнутых результатов и планируется итерация II, которая начинается в июле-августе 2009 г. как учебная практика студентов в ИТ-парке ПетрГУ. Концептуальный прототип приложения доводится до демонстрационного на основе сценариев использования. Команды разработчиков состоят из 4-5 человек, каждый тратит в среднем 4-6 часов в день. Особое внимание уделяется качеству производимого кода и тестированию. Результаты проектов представляются на 6-м семинаре FRUCT [11]. В качестве основного выбран стандарт оформления кода K&R. Разработана оригинальная система автоматизированного системного тестирования (магистрант В. Н. Ковалев), где тест определяет вариант выполнения сценария использования. Любое обращение приложения к внешним источникам (пользователь, сервис) автоматически заменяется на ввод тестовых данных. В каждой такой точке выполняется проверка правильности обработки данных. Все запуски тестов фиксируются в журнале. 4. Заключение В статье показано, что использование при обучении открытых программных платформ позволяет повысить фундаментальность образования в сфере ИКТ и, тем самым, способствовать решению задачи подготовки специалистов, способных к долговременной эффективной профессиональной работе. Представлен опыт математического факультета ПетрГУ по использованию ОПП в учебном процессе. Эффективность предлагаемого подхода продемонстрирована на примере организации в рамках учебного процесса разработки прототипов промышленных приложений для ОПП Maemo. Благодарности Авторы искренне благодарят доцента О. Ю. Богоявленскую, которая в течение восьми лет читала лекции по дисциплине «Введение в программирование на языке С», администратора вычислительной системы кафедры информатики и математического обеспечения старшего преподавателя В. А. Пономарева, автора курсов по Maemo в среде Moodle и менеджера проекта старшего преподавателя А. В. Бородина, инструкторов по практике и менеджеров проектов, старших преподавателей А. С. Колосова и М. А. Крышеня, а также инструкторов по практике, преподавателя В. М. Димитрова и магистранта В. Н. Ковалева. Все они также являются преподавателям значительной части дисциплин, представленных в табл. 1. Без их высококвалифицированного и заинтересованного участия получение представленных в статье результатов было бы невозможно. Литература 1. Богоявленский Ю. А. Подготовка специалистов по информационным и коммуникационным технологиям на базе семейства стандартов «Прикладная математика и информатика». Материалы межд. конф. «Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы». Петрозаводск, 2006, ч. 1, с. 33–45. http://www.cs.karelia.ru/news/2006/files/sorucom-ybgv-ru.pdf 2. IEEE/AIS/ACM Joint Task Force on Computing Curricula. Computing Curricula 2005. The Overview Report covering undergraduate degree programs in Computer Engineering, Computer Science, Information Systems, Information Technology, Software Engineering. 2005. 3. http://en.wikipedia.org/wiki/List_of_FSF_approved_software_licences 4. http://en.wikipedia.org/wiki/List_of_OSI_approved_software_licences# OSI_approved_licenses 5. http://software.intel.com/en-us/intel-cluster-toolkit-compiler/ 6. http://maemo.org/ 7. Клавдиев В.Е., Штурц И. В. Модель партнерства университета и промышленности ИТ при подготовке кадров. Сб. докл. 5-й открытой всеросс. конф. «Преподавание информационных технологий в Российской Федерации». М.: АП КИТ, 2007, с. 78–80. 8. Богоявленский Ю.А., Воронин А.В., Корзун Д.Ж. Организация годового курса «технология разработки программного обеспечения». Материалы Всеросс. науч.-практ. конф. «Информационная среда вуза XXI века». Петрозаводск, 2007, с. 37–39. 9. Пятый семинар программы FRUCT, СПб., ГУАП, 27–30.4.2009. http://www.fruct.org/index.php?morus_itemid=65 10. Wiki-ресурс разработки проектов Maemo. ПетрГУ. http://maemo.cs.karelia.ru/wiki/ 11. Шестой семинар программы FRUCT, Хельсинки, HUT и NRC, 3–6.11.2009. http://www.fruct.org/index.php?morus_itemid=78 1Используется также термин «Программная инженерия» 2www.blackducksoftware.com/oss/projects#languageos |