Цели обучения гибким технологиям
Современные требования к разработчикам программного обеспечения на рынке труда приводят нас к тому, что при обучении инженеров-программистов необходимо уже в ходе обучения сформировать у студентов практические навыки эффективной работы над проектом в распределенной команде, использующей гибкие технологии разработки программного обеспечения. Стоит отметить, что сегодня существует крайне мало работ, посвященных вопросам, обсуждаемым в данной статье [1].
Проблема целей и содержания обучения является одной из центральных в дидактике. Цели образования выполняют системообразующую функцию в педагогической деятельности. Именно от выбора целей в наибольшей степени зависит выбор содержания, методов и средств обучения и воспитания. Принято рассматривать цели обучения как планируемые результаты обучения в виде требований к знаниям, умениям и навыкам учащихся.
В результате изучения спецкурса «Гибкие технологии разработки программного обеспечения» студент должен знать:
- методы, технологии и инструменты гибкой разработки программного продукта;
- метод разработки, выявления спецификации требований «Истории пользователя»[1]
- метод управления проектом и требованиями «Скрам»[2];
- концепции и стратегии архитектурного проектирования и конструирования программного обеспечения «Разработка через тестирование» и «Рефакторинг»;
- концепцию итеративной разработки программного обеспечения;
- стандарты кодирования, используемые в различных языках программирования;
уметь:
- производить автоматическую сборку и автоматическое тестирование программных проектов;
- разрабатывать и специфицировать требования методом «Истории пользователя»;
- конструировать программное обеспечение используя методы «Разработки через тестирование» и регулярный «Рефакторинг»,
- создавать самодокументируемый программный код;
- работать с современными интегрированными средами разработки, системами управления требованиями, задачами и ошибками;
- планировать задачи;
- оценивать сроки разработки программ;
владеть:
- навыками разработки модульных тестов;
- методами рефакторинга программного кода;
- средствами миграции схем баз данных;
- средствами ведения технической документации.
Содержание обучения гибким технологиям
Для достижения поставленных целей можно предложить следующую структуру программы курса «Гибкие технологии разработки программного обеспечения».
Обзор гибких моделей разработки программного обеспечения
Манифест гибких технологий разработки программного обеспечения. Основы экстремального программирования [2]. Другие распространенные методологии гибкой разработки программного обеспечения.
Разработка через тестирование
Основные положения. Инструменты реализации модульных тестов [5]. Инструменты поддельных объектов. Обзор инструментов модульного тестирования графического интерфейса пользователя. Средства автоматизации разработки модульных тестов. Анализ покрытия кода тестами.
Кодирование и управление исходным кодом
Стандарты кодирования. Конвенции об именовании классов, методов, полей, констант. Системы контроля версий. Средства автоматической сборки. Системы непрерывной сборки.
Управление требованиями
Игра в планирование. Измерение и оценка сложности и приоритетности задач. Системы отслеживания ошибок.
Проектирование
Шаблоны проектирования. Рефакторинг программного кода [4]. Рефакторинг и миграция баз данных. Рефакторинг модульных тестов.
Планирование и управление проектом
Основы методики управления проектом «Скрам». Роли. Совещания. Доска задач. Обзор требований. График выполнения задач на итерацию [3].
Курс «Гибкие технологии разработки программного обеспечения» имеет явные межпредметные связи со следующими разделами образовательного стандарта: «Введение в программную инженерию», «Конструирование программного обеспечения», «Проектирование и архитектура программных систем», «Тестирование программного обеспечения», «Разработка и анализ требований», «Управление программными проектами», что делает влияние курса на обучение будущих инженеров-программистов весьма значительным.
Для построения полноценной методической системы обучения гибким технологиям разработки программного обеспечения дальнейшего изучения требуют методы, формы и средства обучения.
СПИСОК ЛИТЕРАТУРЫ
- Шопырин Д.Г. Управление проектами разработки ПО: Рекомендации по самостоятельной работе студентов. - СПб.: СпбГУ ИТМО. - 2007. - 39 с.
- Бек, К. Экстремальное программирование. - СПб.: Питер. - 2002. - 215 с.
- Kniberg, H. Scrum and XP from the Trenches [Electronic resource] / Information Queue. - 2007. - Mode of access: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
- Фаулер M. Рефакторинг: улучшение существующего кода. - Пер. с англ. - СПб: Символ Плюс, 2003. - 432 с., ил.
- Бек, К. Экстремальное программирование: разработка через тестирование. Библиотека программиста. - СПб.: Питер, 2003. - 224 с.: ил.
Работа представлена на Общероссийскую научную конференцию «Современные проблемы науки и образования», Москва, 16-18 февраля 2010 г. Поступила в редакцию 16.03.2010.
[1] Перевод с англ. "User stories"
[2] На англ. "Scrum"