Министерство экономического развития и торговли Российской Федерации Государственный университет – Факультет Бизнес-Информатики Программа дисциплины Технология экстремального программирования для направления 080700.62 Бизнес-информатика подготовки бакалавра Автор: Кириченко А.А. (a-kiri@km.ru) Рекомендовано секцией УМС Секция Бизнес-Информатика Председатель ______________________ «___» __________ 2007 г. Одобрено на заседании кафедры Основ информатики и прикладного программного обеспечения Зав. кафедрой _______________С.В.Назаров «___» __________ 2007 г. Утверждено УС факультета Бизнес-Информатики Ученый секретарь ____________________ «___»__________ 2007 г. Москва, 2007г. I. Тематический план учебной дисциплины № Название темы Всего часов 1. Технологические процессы и принципы экстремального программирования Планирование версий и управление разработкой Разработка программного кода и тестирование 14 ИТОГО 2. 3. Аудиторные часы Лекции Сем. и практ. занятия 6 2 Самостоятельная работа 6 16 4 2 10 24 4 10 10 54 14 14 26 II. Базовые учебники 1.Кен Ауер, Рой Миллер. Экстремальное программирование: постановка процесса. С первых шагов и до победного конца..- Спб.: Питер, 2004.-368с., ISBN 5-318-00132-7. Главы 10-14 2.Астелз , Дэвид ; Миллер. Гренвил; Новак. Мирослав. Практическое руководство по экстремальному программированию.: Пер. с англ.-М.: Издательский дом “Вильямс”, 2002.-320с.. ISBN 5-8459-0329-7. Главы 1-18. 3.Орлов С. Технологии разработки программного обеспечения: Учебник,-СПб.: Питер, 2002.-464с. ISBN 5-94723 145-Х. Глава 2, 14. III. Формы контроля знаний студентов Оценка знаний предусматривает традиционные аудиторные и внеаудиторные формы контроля уровня обученности студентов. Итоговая оценка (зачет) по учебной дисциплине предусматривает складывается из следующих элементов: аудиторная контрольная работа по теме 1 (45мин.); аудиторная контрольная работа по теме 2 и 3 (45мин.); домашнее контрольное задание; тест на зачете (30мин.). Оценка за дисциплину определяется как средневзвешенная оценка по десятибалльной шкале Оит по формам работы: Формы контроля Вклад в итоговую оценку (%) Аудиторная контрольная работа по теме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 (“неудовлетворительно”). IV. Содержание программы . Тема 1. Технологические программирования процессы и принципы экстремального Введение в дисциплину: жизненный цикл и технологии разработки программного обеспечения, стандартные (классические) технологические процессы и модели разработки программного обеспечения, типичные проблемы разработки программного обеспечения, особенности и область применимости технологии экстремальной разработки, экстремальное программирование и учебная программа дисциплины. Процесс экстремальной разработки: технологические процессы и модель экстремальной разработки программного обеспечения, деятельность команды заказчика и команды программистов Методические основы экстремальной разработки: принципы и методы (практики) экстремальной разработки. Инструментальные средства разработки: программные средства и языки. Литература: [1], главы 1-10 Тема 2. Планирование версий и управление разработкой Стратегическое и тактическое планирование: концептуализация программы и игра в планирование, предоставление оценок, планирование версии (релиза) и план итераций разработки, планирование и распределение задач, виды планов. Управление разработкой: соотношение ХР и других технологий управления, управление качеством, рисками и персоналом., контроль за проектом, измерение ХР-проекта. Средства планирования и управления: организационные и инструментальные средства, методики оценки трудозатрат. Литература: [1], главы 11-12; глава 31; [ 2 ], часть 3.; [3] глава 2,14, приложение А. Тема 3. Разработка программного кода и тестирование Разработка программного кода: простое проектирование: CRC-сессия и дизайн, гибкое моделирование, парное программирование, коллективное владение кодом и сборка программы, стандарты кодирования, рефакторинг. Тестирование ХР-проекта и выпуск готового продукта: опережающая разработка тестов, модульные (unit) и приемочные тесты, автономное и комплексное тестирование, выпуск релиза. Создание серии итераций: анализ архитектурной метафоры, составление графика итераций и распределение задач. Прототипирование разработки: моделирование функций и: простое проектирование модулей программного кода. Разработки тестов: методы разработки, разработка модульных и приемочных тестов, содержание программы и методики испытаний. Программная реализация модулей и автономное тестирование.: кодирование модулей и использование unit-тестов, сборка программы. Комплексное тестирование и выпуск версии: прогон приемочных тестов, анализ результатов и принятие решения о дальнейшей разработке. Литература: [1], гл. 13, 14. 21; 22 ; [2], гл. 13 . V. Тематика заданий по формам контроля Примерные вопросы для контрольных работ и тестов 1. Стандартные технологические процессы и модели разработки программного обеспечения 2. Технологические процессы экстремальной разработки. 3. Графическая модель экстремальной разработки. 4. Принципы экстремальной разработки. 5. Методы (практики) экстремальной разработки. 6. Состав и деятельность команды разработчиков. 7. Состав и деятельность команды заказчиков. 8. Этапы концептуализации проекта. 9. Этапы планирования версий. 10. Определение бюджета и планирование серии итераций. 11. Цель и содержание декомпозиции пользовательских историй. 12. Задачи стратегического и тактического планирования. 13. Понятие опережающей разработки тестов и виды ХР-тестирования. 14. Виды тестов и методы их разработки. 15. Понятие и содержание «простого проектирования». 16. Практики ХР-разработки программого кода. 17. Особенности парного программирования. 18. ХР-практика интеграции программного кода. 19. ХР-практика рефакторинга программного кода. 20. Оценка рисков ХР-проекта. 21. Метрики ХР-процесса. Тема домашней работы: “Планирование и реализация версий ХРпроекта.» Примечание: для каждой работы предусматривается свой набор пользовательских историй. VI. Вопросы для оценки качества освоения дисциплины 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.10 2006 г.