Главная
страница 1



Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины Технологии экстремального программирования для направления/ специальности 080700.62 Бизнес-информатика подготовки бакалавра





Правительство Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"

Факультет Бизнес-информатики

Программа дисциплины

Технологии экстремального программирования



для направления/ специальности 080700.62 Бизнес-информатика



подготовки бакалавра

Автор программы:

Кириченко Александр Аполлонович, кандидат технических наук, профессор.

a-kiri@km.ru


Одобрена на заседании кафедры Архитектуры программных систем «___»____________ 20 г

Зав. кафедрой Назаров Станислав Викторович
Рекомендована секцией УМС «___»____________ 20 г
Утверждена УС факультета Бизнес-информатики «___»_____________20 г.
Ученый секретарь ________________________ [подпись]

Москва, 2012



Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы.

1Область применения и нормативные ссылки


Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности.

Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 080700.62 «Бизнес-информатика» подготовки бакалавра, изучающих дисциплину "Технологии экстремального программирования".

Программа разработана в соответствии с:

ФГОС по направлению 080700.62 «Бизнес-информатика» подготовки бакалавра.


2Цели освоения дисциплины


Технологии экстремального программирования – это дисциплина, относящаяся к разделу «Технология программирования», но программирования в экстремальных условиях, т.е. в условиях недостатка времени, крайне ограниченных ресурсов, отсутствия у проектировщиков пространства для манёвра в отношении функциональности создаваемых программных средств, и др.

Эдвард Йордон в книге «Путь камикадзе» экстремальное программирование приравнивает к работе над “безнадёжным” проектом, вероятность провала которого превышает 50%.

Служба Microsoft Consulting Services провела анализ результатов выполнения большого количества своих программных проектов. Оказалось, что вероятность провала программных проектов довольно велика. Только 24% проектов можно признать в той или иной степени успешными, 26% не были завершены, а остальные 50% столкнулись с большими проблемами, например, бюджет был превышен вдвое или затрачено в 1,5 раза больше времени.

Практика показывает, что для успешного выхода из экстремальной ситуации надо увеличить скорость и качество разработки программ. Для этого надо уметь работать в команде, программировать на различных алгоритмических языках, владеть современным инструментарием для создания программ, знать и уметь применять на практике различные системы и технологии программирования, уметь строить системы опережающего тестирования и владеть средствами автоматизации этой работы, иметь навыки отладки программ.

Целями освоения дисциплины "Технологии экстремального программирования" являются поиск, сбор, обработка, анализ и систематизация информации о способах увеличения скорости и качества разработки программ в экстремальных условиях; знакомство со способами и особенностями работы в команде; освоение современного инструментария для создания программ и проектирования систем опережающего тестирования; и таким образом – приобретения навыков, необходимых для решения проблем в экстремальных условиях.

3Компетенции обучающегося, формируемые в результате освоения дисциплины


В результате освоения дисциплины студент должен:

  • Знать

- основные технологии программирования;

- современные модели, ключевые концепции и технологии ускорения разработки программных систем;

- различные подходы к инженерному проектированию и решению общих и специфических проблем в экстремальных условиях.


  • Уметь

- применять математические методы и инструментальные средства для исследования объектов профессиональной деятельности;

- уметь использовать имеющиеся математические и программные инструментальные средства для обработки, анализа и систематизации информации по теме исследования;

- программировать с использованием программных средств, написанных на разных языках.


  • Владеть

- различными методами и инструментальными средствами разработки программ;

- методами управления процессами создания и использования информационных сервисов;




В результате освоения дисциплины студент осваивает следующие компетенции:



Компетенция

Код по ФГОС/ НИУ

Дескрипторы – основные признаки освоения (показатели достижения результата)

Формы и методы обучения, способствующие формированию и развитию компетенции

Общекультурная

ОК-13

имеет навыки работы с компьютером как средством управления информацией, способен работать с информацией в глобальных компьютерных сетях

предоставление студентам учебной информации на электронных носителях, Интернет-поиск;


Общекультурная

ОК- 16

способен работать с информацией из различных источников

предоставление студентам учебной информации на электронных носителях, Интернет-поиск;


Профессиональная

ПК-4


проводить анализ инноваций в экономике, управлении и ИКТ

исполнение индивидуального научно-исследовательского задания, как обязательной составляющей изучения учебной дисциплины


Профессиональная

ПК-7

управлять контентом, процессами создания и использования информационных сервисов

выполнение специального исследовательского проекта


Профессиональная

ПК-13

организовывать управление малыми проектно-внедренческими группами

поиск наилучших путей выполнения задачи; организация совместной работы в группе (парное программирование)


Профессиональная

ПК-18

разрабатывать контент и ИТ-сервисы предприятия и Интернет-ресурсов

выполнение специального исследовательского проекта


Профессиональная

ПК-20

использовать соответствующий математический аппарат и инструментальные средства для обработки, анализа и систематизации информации по теме исследования

Использование конспектов лекций (презентаций) и раздаточных материалов


Профессиональная

ПК-21

готовить научно-технические отчеты, презентации, научные публикации по результатам выполненных исследований

выполнение специального исследовательского проекта




4Место дисциплины в структуре образовательной программы


Настоящая дисциплина относится к профессиональному циклу дисциплин и блоку дисциплин, обеспечивающих базовую (общепрофессиональную) подготовку.

Изучение данной дисциплины базируется на следующих дисциплинах:



  • Информатика;

  • Введение в программирование;

  • Объектно-ориентированный анализ и проектирование.

Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями:

  • знание основ информатики и программирования,

  • практическое умение работы на персональном компьютере (ПК) в операционных системах Windows 95/98/Me/2000/XP/2003/Vista, офисных пакетах MS Office,

  • умение разрабатывать Windows-приложения на алгоритмическом языке С#.

Основные положения дисциплины должны быть использованы в дальнейшем при изучении следующих дисциплин:

  • Методы разработки и анализа компьютерных алгоритмов

  • Анализ и моделирование бизнес-процессов


5Тематический план учебной дисциплины




Название раздела

Всего часов

Аудиторные часы

Самостоя­тельная работа

Лекции

Семинары

Практические занятия

1

Технологические процессы и принципы программирования в экстремальных условиях


28


6





6


16

2

Технологии программирования

42

8




6

28

3

Тестирование, отладка, автоматизация программирования


34


6





8


20




ИТОГО

104

20




20

64


6Формы контроля знаний студентов


Тип контроля

Форма контроля

3 год

Параметры

1

2

3

4

Текущий

(неделя)


Контрольная работа










*

6 неделя

Домашнее задание










*

10 неделя

Итоговый

Зачет










*

Компьютерный тест

Оценка знаний предусматривает традиционные аудиторные и внеаудиторные формы контроля уровня обученности студентов.

Итоговая оценка (зачет) по учебной дисциплине складывается из следующих элементов:

аудиторная контрольная работа по теме 1 (45мин.);

домашнее контрольное задание;

тест на зачете (30мин.).



6.1Критерии оценки знаний, навыков


При выставлении итоговой оценки Оит за дисциплину средневзвешенная оценка округляется до большего целого, если дробная часть оценки не ниже 0.5, в противном случае оценка округляется до меньшего целого. При выставлении итоговой оценки (ОИТ5) по 5-балльной шкале используется решающее правило:

  • Если Оит  8, то ОИТ5 = 5 (“отлично”);

  • Если 6  Оит < 8, то ОИТ5 = 4 (“хорошо”);

  • если 4  Оит < 6, то ОИТ5 = 3 (“удовлетворительно”);

  • если Оит < 4, то ОИТ5 = 2 (“неудовлетворительно”).

при обнаружении в самостоятельной письменной работе студента факта плагиата в отношении данного студента будут применены меры согласно документу: “Порядок применения дисциплинарных взысканий при нарушениях академических норм в написании письменных учебных работ в ГУ-ВШЭ” (документ размещен на http://www.hse.ru/infopage/documents1.shtml#9).


7Содержание дисциплины


Тема 1. Технологические процессы и принципы программирования в экстремальных условиях

Введение в дисциплину: жизненный цикл и технологии разработки программного обеспечения, стандартные (классические) технологические процессы и модели разработки программного обеспечения, типичные проблемы разработки программного обеспечения, особенности и область применимости технологий экстремальной разработки. Технологические процессы и модели экстремальной разработки программного обеспечения, формирование команды и организация деятельности команды заказчика и команды программистов. Методические основы экстремальной разработки: принципы и методы (практики) экстремальной разработки. Инструментальные средства разработки: программные средства и языки, программирование в .NET Framework и технологии MSDN. Компонентное программирование. Сборки. Комплексирование программных средств.

Литература: [1] главы 18 - 24, [2] главы 3, 5, 8, 12, 17 – 19, 22, [3] главы 1-10, [5] главы 1, 4.

Тема 2. Технологии программирования.

Технологии ХР, гибкого моделирования, унифицированного процесса разработки. Технология асинхронного программирования.

Стратегическое и тактическое планирование: Технологические особенности создания объектно-ориентированных программ. ХP, концептуализация программы и игра в планирование, предоставление оценок, планирование версии (релиза) и план итераций разработки, планирование и распределение задач, виды планов. Управление разработкой. Разработка программного кода: простое проектирование, парное программирование и коллективное владение кодом; сборка программы, стандарты кодирования, рефакторинг. Средства планирования и управления: организационные и инструментальные средства, методики оценки трудозатрат.

Литература:

[1], главы 11-12; глава 31; [ 2 ], часть 3.; [3] глава 2,14, приложение А.


Тема 3. Тестирование, отладка, автоматизация программирования.

Отладка и тестирование. Особенности отладки и тестирования синхронных и асинхронных программ. Средства MSDN для отладки и тестирования. Трассировка асинхронных программ.

Тестирование ХР-проекта и выпуск готового продукта: опережающая разработка тестов, модульные (unit) и приемочные тесты, автономное и комплексное тестирование, выпуск релиза. Создание серии итераций. Прототипирование разработки. Разработки тестов: методы разработки, разработка модульных и приемочных тестов, содержание программы и методики испытаний. Программная реализация модулей и автономное тестирование, кодирование модулей и использование unit-тестов, сборка программы. Комплексное тестирование и выпуск версии. Средства, облегчающие тестирование и отладку программ. Принципиальная возможность и накопленный опыт автоматизации программирования. Перспективы развития экстремального программирования.

Литература:

[1] гл. 25– 32, [2] гл. 17 – 19, 21, [3], гл. 13, 14 - 22 ; [4], гл. 13 .


8Образовательные технологии


В основе обучения лежит выполнение специального исследовательского проекта, направленного на разработку архитектуры асинхронной объектно-ориентированной программы на языке C#. В процессе выполнения проекта особое внимание обращается на поиск наилучших путей выполнения задачи, нахождение обходных путей. Этим достигается заинтересованность в качестве работы, в реализации новых идей и достижении правильных результатов.

В качестве способа организации совместной работы в группе студентам предлагается работать в режиме «парного программирования».



Использование современных подходов к изучению материалов, контролю и оцениванию достижений студентов (дважды за модуль проводится компьютерное тестирование, для подготовки к занятиям используются файлы с раздаточными материалами к лекциям, и обучающий тест), обеспечивает объективность и надежность, заинтересованность в качестве работы, в новых идеях и достигнутых результатах.

9Оценочные средства для текущего контроля и аттестации студента


Примерные вопросы для контрольных работ и тестов

  1. Стандартные технологические процессы и модели разработки программного обеспечения

  2. Технологические процессы экстремальной разработки.

  3. Графическая модель экстремальной разработки.

  4. Принципы экстремальной разработки.

  5. Методы (практики) экстремальной разработки.

  6. Состав и деятельность команды разработчиков.

  7. Состав и деятельность команды заказчиков.

  8. Этапы концептуализации проекта.

  9. Этапы планирования версий.

  10. Определение бюджета и планирование серии итераций.

  11. Цель и содержание декомпозиции пользовательских историй.

  12. Задачи стратегического и тактического планирования.

  13. Понятие опережающей разработки тестов и виды ХР-тестирования.

  14. Виды тестов и методы их разработки.

  15. Понятие и содержание «простого проектирования».

  16. Практики ХР-разработки программого кода.

  17. Особенности парного программирования.

  18. ХР-практика интеграции программного кода.

  19. ХР-практика рефакторинга программного кода.

  20. Оценка рисков ХР-проекта.

  21. Метрики ХР-процесса.

Вопросы для оценки качества освоения дисциплины

  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Порядок формирования оценок по дисциплине


Оценка за дисциплину определяется как средневзвешенная оценка по десятибальной шкале Оит по формам работы и корректируется с учётом активности студента на занятиях. Вклад в итоговую оценку различных форм контроля:

Формы контроля

Вклад в итоговую оценку (%)

Аудиторная контрольная работа (О1)

30

Домашнее контрольное задание (Одз) (Блокирующая)

40

Тест на зачете (От1)

30


Оит = 0.3*O1 +0,4*Oдз+0.3*От1

11Учебно-методическое и информационное обеспечение дисциплины

11.1Основная литература


1. Бек К. Экстремальное программирование: разработка через тестирование. Библиотека программиста. – СПб.: Питер, 2003. – 224 с.: ил. ISBN 5-8046-0051-6. Главы 1 – 32.

2. Амблер С. Гибкие технологии: экстремальное программирование и унифицированный процесс разработки. Библиотека программиста. – СПб.: Питер, 2005. – 412 с.: ил.

ISBN 5-94723-545-5. Главы 1 - 30.

3. Вендров А.М. Проектирование программного обеспечения экономических информационных систем: Учебник. - 2-е изд., перераб. и доп. - М.:Финансы и статистика, 2006.-544с.: ил. Главы 1, 4, 5, 7.

4. Кириченко А.А. Комплексирование программных средств: использование в C#-программах системы команд и программ ОС Windows. Монография. М: ООО ИПЦ Маска, 2010-126с. ISBN 978-5-91146-546-9.

11.2Дополнительная литература


5. Кулямин В.В. Технологии программирования. Компонентный подход. М., Бином, 2007, www.intuit.ru.

6. Кариев Ч.А. Разработка Windows-приложений на основе Visual C#. М., Бином, 2007, www.intuit.ru.

7. Кен Ауер, Рой Миллер. Экстремальное программирование: постановка процесса. С первых шагов и до победного конца..- Спб.: Питер, 2004.-368с., ISBN 5-318-00132-7. Главы 10-14.

8. Астелз , Дэвид ; Миллер. Гренвил; Новак. Мирослав. Практическое руководство по экстремальному программированию.: Пер. с англ.-М.: Издательский дом “Вильямс”, 2002.-320с.. ISBN 5-8459-0329-7. Главы 1-18.



12Материально-техническое обеспечение дисциплины


Для проведения занятий необходимы:

  1. Сеть ЭВМ с выходом в Интернет и наличием общей папки для оперативного обмена информацией преподавателя со студентами во время занятий

  2. Операционная система Windows

  3. Пакет программ Microsoft Visual Studio

  4. Проектор для демонстрации программ при объяснении материала.

Автор: А.А.Кириченко





Смотрите также:
Программа дисциплины Технологии экстремального программирования для направления/ специальности 080700. 62 Бизнес-информатика подготовки бакалавра
175.83kb.
1 стр.
Программа дисциплины Технология экстремального программирования для направления 080700. 62 Бизнес-информатика подготовки бакалавра
78.43kb.
1 стр.
Программа дисциплины " Технологии экстремального программирования" для направления 080700. 62 «Бизнес-информатика» подготовки бакалавра
133.07kb.
1 стр.
Программа дисциплины Культурология для направления 080700. 62 «Бизнес-информатика» подготовки бакалавра
191.06kb.
1 стр.
Программа дисциплины Экономическая история для направления 080700. 62 «Бизнес-информатика» подготовки бакалавра
182.75kb.
1 стр.
Программа дисциплины Высокопроизводительные вычисления для направления 080500. 62 «Бизнес-информатика» подготовки бакалавра
233.52kb.
1 стр.
Программа дисциплины «Теория организации»
275.53kb.
1 стр.
Программа дисциплины Электронная коммерция и бизнес для направления 080500. 68 «Бизнес-информатика»
131.28kb.
1 стр.
Программа дисциплины Моделирование процессов и систем  для направления 080500. 62 «Бизнес информатика» подготовки бакалавра
91.46kb.
1 стр.
Программа дисциплины Операционная система unix для направления 010400. 62 Прикладная математика и информатика подготовки бакалавра
201.94kb.
1 стр.
Программа дисциплины "Крупная корпорация как субъект публичной политики. Корпоративное гражданство"  для направления
365.99kb.
4 стр.
Программа дисциплины Введение в программирование для направления 080500. 62 Бизнес-информатика подготовки бакалавра
211.28kb.
1 стр.