1 I. Обязательный минимум содержания дисциплины по ГОС Жизненный цикл ХР- процесса . Принципы и практики экстремального программирования. Игра в планирование и пользовательские истории. Метафора программной системы. Планирование версий и итераций. Разработка тестов и автоматизация тестирования. Парное программирование и стандарты разработки программного кода. Рефакторинг. II. Пояснительная записка Программа разработана на кафедре «Основы информатики и прикладного программного обеспечения» Автор программы: ктн, доцент Андрейченко Владимир Александрович Аннотация: Целью дисциплины является изучение основ технологии экстремального програмирования (еXtreme Programming, ХР). Экстремальное программирование, как методология, или процесс разработки программ (автор Кент Бек), получило публичную известность с 1999 года. Экстремальное программирование предназначено для использования в условиях постоянно изменяющихся требований заказчика, характерных для автоматизации решения большого круга задач, в том числе экономических. Экономический эффект экстремальной разработки (ХР-процесса) состоит в снижении высокой стоимости изменений за счет радикально гибкого подхода к итерационной разработке программного обеспечения версиями. Гибкость экстремальной разработки понимают с одной стороны в смысле уменьшения состава обязательных работ классических технологических процессов, а с другой стороны – концентрации усилий на тех работах, которые нацелены на быстрое получение работоспособного программного продукта. В современной литературе по инженерии программного обеспечения термины “экстремальная разработка”, “ХР-процесс”, “экстремальное программирование” используют как синонимы. Дисциплина изучается в пятом модуле студентами третьего курса факультета «Бизнесинформатика» и. охватывает вопросы менеджмента и практической реализации XP-проектов программного обеспечения. Теоретические знания, получаемые студентами в рамках данного курса, включают принципы и методы практического использования и социально-экономические факторы обоснованности применения экстремального программирования. Достижение цели обучения возможно лишь при условии, что теоретическая часть курса поддерживается практической работой в соответствующей инструментальной среде. Кроме специализированных инструментальных сред программирования данный курс может опираться на открытую языковую среду разработки Visual Studio .Net и язык программирования C#. Материал курса изучается на лекциях, практических занятиях, в процессе выполнения домашнего задания и в ходе самостоятельной работы студентов. На лекциях студенты приобретают теоретические знания по основам технологии экстремальной разработки программ. На практических занятиях студенты осваивают возможности инструментальной среды экстремального программирования, приобретают навыки и умения управления ХРпроцессом и применения методов экстремального программирования. Домашнее задание рассчитано на контроль усвоения знаний по управлению ХР-процессом в части планирования версий, а также навыков и умений кодирования и тестирования модулей (классов) в части разработки комплексных (приемочных) и автономных (unit) тестов. По результатам обучения предусмотрен зачет. Программа курса включает введение и три темы. 2 III. Требования к студенту и учебная задача дисциплины Предполагается, что студенты знакомы с алгоритмическим языком (C) и обладают опытом программирования в классах (C++, С#). В результате изучения дисциплины студент должен: ЗНАТЬ: жизненный цикл и технологические процессы экстремальной разработки программ, основные принципы и методы (практики) экстремальной разработки программ; инструментальные средства экстремального программирования, деятельность команды заказчика и команды программистов. особенности управление ХР- процессом, реализации и внедрения ХР -проектов; УМЕТЬ: планировать разработку версий программного обеспечения, использовать парное программирование и коллективное владение кодом, разрабатывать программные тесты для модулей ХР-проекта, разрабатывать и проводить тестирование модулей. ИМЕТЬ ПРЕДСТАВЛЕНИЕ: об области применимости и основных направлениях развития ХP технологий разработки программного обеспечения. ОБЛАДАТЬ НАВЫКАМИ: создания и реализации ХР-проектов . IV. Тематический план учебной дисциплины № Название темы Всего часов 1. Технологические процессы и принципы экстремального программирования Планирование версий и управление разработкой Разработка программного кода и тестирование 14 ИТОГО 2. 3. Аудиторные часы Лекции Сем. и практ. занятия 6 2 Самостоятельная работа 6 16 4 2 10 24 4 10 10 54 14 14 26 V. Формы контроля и структура итоговой оценки Итоговая оценка (зачет) по учебной дисциплине складывается из следующих элементов: Аудиторная контрольная работа по теме 1 (45мин.) Аудиторная контрольная работа по теме 2 и 3 (45мин.) Домашнее задание Тест на зачете (30мин.) 3 Структура итоговой оценки по учебной дисциплине: Оценка за дисциплину определяется как средневзвешенная оценка по десятибалльной шкале Оит по формам работы: Формы работы Вклад в итоговую оценку (%) Аудиторная контрольная работа по теме1 (О1) 15 Аудиторная контрольная работа по теме 2 и 3 (О2) 15 Домашнее задание (Одз) 50 Тест на зачете (От) 20 Оит = 0.15*O1 + 0.15*O2 + 0.5*Oдз+0,2От При выставлении итоговой оценки Оит за дисциплину средневзвешенная оценка округляется до большего целого, если дробная часть оценки не ниже 0.5, в противном случае оценка округляется до меньшего целого. При выставлении итоговой оценки (ОИТ5) по 5балльной шкале используется решающее правило: Если Оит 8, то ОИТ5 = 5 (“отлично”); Если 6 Оит < 8, то ОИТ5 = 4 (“хорошо”); если 4 Оит < 6, то ОИТ5 = 3 (“удовлетворительно”); если Оит < 4, то ОИТ5 = 2 (“неудовлетворительно”). VI. Базовые учебники 1. Кен Ауер, Рой Миллер. Экстремальное программирование: постановка процесса. С первых шагов и до победного конца..- Спб.: Питер, 2004.-368с., ISBN 5-318-00132-7. 2.. Астелз , Дэвид ; Миллер. Гренвил; Новак. Мирослав. Практическое руководство по экстремальному программированию.: Пер. с англ.-М.: Издательский дом “Вильямс”, 2002.320с.. ISBN 5-8459-0329-7 3.. Орлов С. Технологии разработки программного обеспечения: Учебник,-СПб.: Питер, 2002.-464с. ISBN 5-94723 145-Х 4.. Рихтер Дж. Программирование на платформе Microsoft NET Framework/Пер. с англ.-2-2 изд.-М.: "Русская редакция”, 2003.-512 с., ISBN 5-7502-0202-9 5. Троелсен Э. С# и платформа NET. Библиотека программиста.-СПб.: Питер? 2004/-706c., ISBN 5-318-00750-3. VII. Содержание программы . Тема 1.Технологические процессы и принципы экстремального программирования Введение в дисциплину: жизненный цикл и технологии разработки программного обеспечения, стандартные (классические) технологические процессы и модели разработки программного обеспечения, типичные проблемы разработки программного обеспечения, особенности и область применимости технологии экстремальной разработки, экстремальное программирование и учебная программа дисциплины. Процесс экстремальной разработки: технологические процессы и модель экстремальной разработки программного обеспечения, деятельность команды заказчика и команды программистов Методические основы экстремальной разработки: принципы и методы (практики) экстремальной разработки. Инструментальные средства разработки: программные средства и языки. 4 Литература: [1], главы 0-10 Тема 2. Планирование версий и управление разработкой Стратегическое и тактическое планирование: концептуализация программы и игра в планирование, предоставление оценок, планирование версии (релиза) и план итераций разработки, планирование и распределение задач, виды планов. Управление разработкой: соотношение ХР и других технологий управления, управление качеством, рисками и персоналом., контроль за проектом, измерение ХР-проекта. Средства планирования и управления: организационные и инструментальные средства, методики оценки трудозатрат. Литература: [1], главы 11-12; глава 31; [ 2 ], часть 3.; [3] глава 2,14, приложение А. Тема 3.Разработка программного кода и тестирование Разработка программного кода: простое проектирование -CRC-сессия и дизайн, гибкое моделирование, парное программирование, коллективное владение кодом и сборка программы, стандарты кодирования, рефакторинг. Тестирование ХР-проекта и выпуск готового продукта: опережающая разработка тестов, модульные (unit) и приемочные тесты, автономное и комплексное тестирование, выпуск релиза. Создание серии итераций: анализ архитектурной метафоры, составление графика итераций и распределение задач. Прототипирование разработки: моделирование функций и: простое проектирование модулей программного кода. Разработки тестов: методы разработки, разработка модульных и приемочных тестов, содержание программы и методики испытаний. Программная реализация модулей и автономное тестирование.: кодирование модулей и использование unit-тестов, сборка программы. Комплексное тестирование и выпуск версии: прогон приемочных тестов, анализ результатов и принятие решения о дальнейшей разработке. Литература: [1], гл. 13, 14. 21; 22 ; [2], гл. 13 . VIII. Указания к практическим занятиям и самостоятельной работе студентов Количество часов, отводимое для самостоятельной работы (26 из 54) сопоставимо с количеством часов аудиторных занятий.. Время самостоятельной работы отводится для выполнения домашнего задания (не менее 50%), усвоения лекционного материала (не менее 25%) и дополнительного изучения материала по рекомендованной литературе, который выносится лектором на самостоятельную работу. Содержание практических занятий, контрольных заданий и тестов текущего контроля знаний в рамках тематики настоящей учебной программы может определяться предпочтениями преподавателей по следующим направлениям: Освоение инструментальных средств экстремального программирования;. Освоение методик измерения ХР-процессов и проектов; Освоение практик планирования и управления ХР-процессов; Простое проектирование и моделирование функций программных модулей; Парное программирование и коллективное владение кодом;. Опережающая разработка тестов; .Разработка программного кода и рефакторинг; Автоматизация тестирования и сборки программ в ХР-процессе. 5 Тема домашней работы: “Оценка экономических показателей ХР-процесса и разработка плана итерации” Примечание : для каждой работы предусматривается свой набор исходных данных. Примерные вопросы для контрольных работ и тестов 1. Перечислите основные принципы экстремальной разработки программного обеспечения. 2. Назовите основные технологические процессы экстремальной разработки программного обеспечения. 3. Опишите связи технологических процессов в модели экстремальной разработки. 4. Укажите семейство базовых моделей итерационной разработки, содержащее модель экстремальной разработки. 5. Перечислите основные рабочие процессы деятельности команды заказчиков ХРпроекта. 6. -Укажите состав и перечислите основные рабочие процессы деятельности команды разработчиков ХP проекта 7. Сформулируйте понятие экстремального программирования. 8. Сформулируйте экономическое обоснование и дайте характеристику области применимости технологии экстремальной разработки программного обеспечения. 9. Укажите основные преимущества и недостатки экстремального программирования. 10. Перечислите виды и дайте характеристику предназначения тестов в практике экстремального программирования. 11. В чем суть стратегического и тактического планирования? 12. Оценки каких факторов используют для планирования версий и итераций? 13. Каким образом формулируют требования к программе?. 14. Что такое пользовательская история и метафора разработки, кто и как их формирует и используют ? 15. Каким образом проводят и как используют оценку трудозатрат ? 16. В чем суть управления разработкой и кто им занимается? 17. Что такое риск и качество разработки и как ими управляют?. 18. В чем заключается простое проектирование в ХР-процессе? 19. Что такое парное программирование? 20. Зачем нужно коллективное владение кодом? 21. Что такое опережающая разработка тестов? 22. Какие методы используют при разработке тестов? 23. Кто и как разрабатывает и использует приемочные тесты ? 24. Кто и как разрабатывает и использует модульные тесты ? 25. Каким образом проводят сборку программы в ХР-процессе? 26. Что такое рефакторинг и чем обусловлено его проведение? Автор программы: _______________В. Андрейченко 10.01. 2005 г. 6