Нижегородский государственный университет им. Н.И. Лобачевского Факультет вычислительной математики и кибернетики Учебный курс «Технологии программирования. Курс на базе Microsoft Solutions Framework (MSF)» Мееров И.Б., Сысоев А.В., Козинов Е.А. При поддержке компании Microsoft® (победитель конкурса Software Engineering Contest-2006) Нижний Новгород, 2006г. Актуальность курса... Доля успешных проектов в области IT невелика * 2001 28% 2003 Провалены 23% 2000 31% 1994 0% Испытали большие проблемы 35% Успешные 28% 46% 40% 1995 2004 49% 28% 1998 31% 33% 26% 27% 53% * - по данным The Standish Group International, "CHAOS 2005", "Extreme Chaos", "Chaos Report", 1994-2004 16% 100% 2 Актуальность курса... В 2004 году на разработку программных средств ушло около 3 700 000 000$ Индустрия нуждается в повышении доли успешных проектов. Как этого добиться? • Новые технологии. • Квалифицированные кадры. 3 Актуальность курса • Необходимо учить не только технологиям разработки программ, но и принципам и технологиям командной работы. • Акцент все больше смещается от талантливых программистов-одиночек к грамотным командным «бойцам». • Закончивший ВУЗ студент должен уметь органично влиться в коллектив разработчиков. • Для формирования подобных навыков необходима теоретическая подготовка, подкрепленная практикой командной работы. 4 Цель курса • Цель данного курса состоит в изучении основных путей организации и проведения успешных проектов в области разработки программного обеспечения на базе принципов Microsoft Solutions Framework (MSF). • Важная роль отводится практической составляющей курса – работе в небольших командах. 5 Методы достижения цели • Рассмотрение технологических основ процесса разработки программного обеспечения. • Изучение основ унифицированного языка UML для визуального моделирования элементов предметной области в рамках проектирования программной системы и ее основных компонентов. • Получение практического опыта работы в команде из 5-7 человек с применением методологии MSF. • Приобретение и развитие навыков анализа, проектирования, документирования и разработки программных комплексов средней сложности. 6 Место курса в учебном плане ВМК ННГУ • Основные параметры: – – – – 2-ой курс, 4-ый семестр; 16 часов лекции; 16 часов семинары; 32 часа лабораторные работы. CS103 CS101 CS102 Элементы SE201 7 Характеристика курса... • Данный курс читается на 2 курсе и является вводным. • Опирается на изучение курсов – Основы программирования; – Объектно-ориентированное программирование; – Алгоритмы и структуры данных. • Базовая методология – MSF 4.0 for Agile software development. • Ориентация на разработку ПО в небольших командах. 8 Характеристика курса... • Лекционная часть: – Введение (лекция 1) • понятие программного обеспечения; • проблема роста сложности разработки качественного продукта в заданные сроки в соответствии с имеющимся бюджетом; • основные технологии программирования как средства борьбы со сложностью. 9 Характеристика курса... • Лекционная часть: – Первый раздел курса (лекция 2) • Обзор некоторых понятий и принципов программной инженерии. • В частности разбирается понятие программной инженерии, процесса, модели процесса разработки ПО. • Рассматриваются классические модели процесса. 1 0 Характеристика курса... • Лекционная часть: – Второй раздел курса (лекции 3-4) • Принципы объектно-ориентированного анализа и проектирования ПО при помощи UML. • Обзор принципов объектного подхода. • Важные аспекты повторного использования. • Элементы языка UML. • Применение UML для визуализации проектирования лекционных примеров из читаемого параллельно курса CS103 «Алгоритмы и структуры данных». 1 1 Характеристика курса... • Лекционная часть: – Третий раздел курса (лекции 5-8) • Методология разработки программных решений Microsoft Solutions Framework 4.0. • История MSF. • Основные принципы MSF. • Модель проектной группы. Роли и фазы MSF. Через все фазы проводится лекционный пример – разработка системы бронирования билетов для аэропорта 1 2 Характеристика курса... • Семинары: – 8 семинаров на закрепление лекционного материала. – Разбор учебного примера. – Изложение и анализ учебных задач. Разбиение на студентов на команды. – Практическое освоение принципов MSF. Командная работа. 1 3 Характеристика курса... • Лабораторные работы: – Командная работа – проектирование и разработка решения. – Тестирование, отладка. – Создание документации. – Сдача продукта заказчику (в роли заказчика может выступать преподаватель). 1 4 Характеристика курса • Отличительные особенности: – Командная работа. – Упор на практику. – Привлечение магистрантов, специализирующихся в области Software Engineering в качестве одной из ролей в проектных группах. – Сдача результата «заказчику» - преподавателю. – Изменение требований в процессе работы. 1 5 Комплект поставки • • • • • • • Программа курса Программа лабораторного практикума Лекции (материалы + презентации) Семинары (презентации) Шаблоны документов MSF (материалы, рус.) Постановки учебных задач Учебный пример (коды, документация – заполненные шаблоны) • Презентация курса 1 6 Контакты • Сайт курса: http://www.software.unn.ru/msf • Пишите нам на mib@uic.nnov.ru syav2@uic.nnov.ru 1 7