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


Правительство Российской Федерации
Государственный университет –

Высшая школа экономики
Факультет Бизнес Информатика

Отделение Программная Инженерия



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

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

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

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

Автор программы
профессор, к.т.н. А.А.Кириченко
a-kiri@km.ru

Рекомендована секцией УМС

по бизнес-информатике


Председатель Г.А. Левочкина

________________________________

«_____» __________________ 2008 г.
Утверждена Ученым Советом

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


Ученый секретарь В.А. Фомичев

«_____» __________________ 2008 г.

Одобрена на заседании кафедры

Архитектуры программных систем

Зав. кафедрой С.В.Назаров

_________________________________

«____»_____________________ 2008 г.


Москва
  1. Пояснительная записка

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


профессор, к.т.н. А.А.Кириченко

Общие сведения об учебном курсе:


дисциплина читается студентам бакалаврской программы «Технологии экстремального программирования» на Отделении Программная Инженерия факультета бизнес-информатики ГУ-ВШЭ. Она входит в блок специальных дисциплин, определяющих бакалаврскую программу, и читается в первом и во втором модулях третьего учебного года. Количество кредитов – 5. Продолжительность курса составляет 28+20 аудиторных учебных часов, в том числе: 24 часа лекционных занятий, 24 часа практических занятий, и 114 часов самостоятельной работы. Рубежный контроль – домашнее задание, контрольная работа и экзамен по окончанию второго модуля.

Требования к студентам:


освоение курса предполагает предварительное знакомство студентов с содержанием учебной дисциплины: “Объектно-ориентированный анализ и программирование”.

Цель курса:


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

Аннотация:


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

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

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

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

Умение работать в команде предусматривает наличие знаний:


  • Как подбираются кадры для командной работы, каким образом можно сформировать эффективно работающую команду;

  • Как управлять коллективом, как коллектив развивается, методы управления коллективом;

  • Какие типы команд существуют;

  • Как организуется общение в команде (в том числе – в команде, члены которой территориально разделены, например, общение через Интернет,

    • с помощью отдельного сайта совместного проектирования,

    • с помощью системы взаимосвязанных сайтов,

    • используя Интернет-телефонию);

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

    • линейного документа Word или Power Point,

    • интерактивного документа,

    • документа типа Web-сайта,

    • html-help – документа,

    • XML – документа;

  • Состав документации, разрабатываемой по ГОСТ;

  • Инструментарий для создания различных видов документов.

Владение инструментарием для создания программ предусматривает

  • освоение дополнительных разделов программирования на C#,

  • активное использование компонентного программирования и библиотек MSDN,

  • свободное использование динамических библиотек и ресурсов,

что создаёт предпосылки для

  • комплексирования программных средств,

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

  • и тем самым – сокращение времени выполнения проекта.

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

Основными разделами дисциплины являются:



  • Особенности работы в команде

  • Состав документации и способы её изготовления

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

  • Отладка и тестирование

  • Средства автоматизации программирования


Учебные задачи курса:


в результате прохождения учебного курса студенты должны:

  • получить углубленные знания в технологии программирования

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

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

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




Название темы

Всего часов

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

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




Лекции

Сем. и практ. занятия

1.

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

12

6

6

26

2.

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

18

10

8

48

3.

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

18

8

10

40




ИТОГО

48

24

24

114


  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#. М., Кудиц-образ, 2003.

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.


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


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

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

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

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

экзамен.

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



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

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

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

30

Домашнее контрольное задание (Одз)

30

Экзамен (Э)

40

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

При выставлении итоговой оценки Оит за дисциплину средневзвешенная оценка округляется до большего целого, если дробная часть оценки не ниже 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).



  1. Содержание программы


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

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

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

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

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

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

Литература:

[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 .


  1. Тематика заданий по различным формам текущего контроля


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



    Тема домашней работы: “Планирование и реализация версий ХР-проекта.»

Примечание: для каждой работы предусматривается свой набор пользовательских историй.
  1. Вопросы для оценки качества освоения дисциплины





  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. Что такое рефакторинг и чем обусловлено его проведение?

Автор программы: ____________________/Кириченко А.А./



Смотрите также:
Программа дисциплины Технологии экстремального программирования для направления/ специальности 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 стр.
Программа дисциплины Введение в программирование для направления 080500. 62 Бизнес-информатика подготовки бакалавра
211.28kb.
1 стр.
Программа дисциплины Управление данными для направления 080500. 62 Бизнес-информатика подготовки бакалавров
1404.1kb.
14 стр.
Программа дисциплины Операционная система unix для направления 010400. 62 Прикладная математика и информатика подготовки бакалавра
201.94kb.
1 стр.