Цели и задачи курса и практикума
3. Методология создания программных решений Microsoft Solutions Framework.
3.1. Введение в методологию MSF и историческая справка.
Что такое MSF. Основные концепции методологии: модель процессов, управление проектом, модель проектной группы, управление рисками. Позиционирование MSF в сравнении с другими методологиями разработки программного обеспечения. Инструментальная поддержка методологии до версии 3.0 включительно. Источники информации.
3.2. Нововведения версии MSF 4.0.
Разделение методологии на два направления: MSF for Agile Software Development и MSF for CMMI Process Improvement. Причины разделения методологии MSF на "облегченный" и "тяжелый" варианты, основные отличия направлений. Почему в основу курса положено направление MSF for Agile Software Development? Характеристика основных положений MSF for Agile Software Development. Инструментальная поддержка MSF 4.0 в среде разработки Microsoft Visual Studio 2005. Источники информации.
3.3. Формирование команды. Модель проектной группы MSF for Agile Software Development.
Основные принципы построения команды.
"Проектная группа - команда равных".
Каждая ролевая группа имеет зону ответственности и защищает интересы заинтересованных лиц из этой зоны.
"Масштабируемость" модели проектной группы в зависимости от числа участников.
Ролевые группы и роли, зоны ответственности ролевых групп, их задачи и взаимодействие с заинтересованными лицами.
MSF for Agile Software Development выделяет 7 ролевых групп: управление программой, архитектура продукта, разработка, тестирование, управление выпуском, удовлетворение потребителя, управление продуктом, - и 6 ролей: менеджер проекта, архитектор, разработчик, тестер, релиз-менеджер, бизнес-аналитик. Для каждой группы и роли, помимо зоны ответственности, в которой роль имеет решающий голос, определены заинтересованные стороны, как внутри, так и вне команды, с которыми группа должна взаимодействовать и чьи интересы представлять/отстаивать при принятии решений.
Рекомендации по возможному объединению ролей.
Пример: Задача о разработке программного комплекса бронирования билетов для аэропорта.
3.4. Управление рисками в MSF for Agile Software Development.
Основные сведения о рисках.
Планирование управления рисками.
Процесс управления рисками: выявление, анализ и приоритезация, планирование, мониторинг, корректирование, извлечение уроков.
Управление рисками как составная часть жизненного цикла проекта.
Пример: Задача о разработке программного комплекса бронирования билетов для аэропорта. Выделение рисков.
3.5. Модель процессов MSF for Agile Software Development.
Принципы модели процессов.
Взаимодействуйте с "заказчиками".
Поощряйте свободный обмен информацией в проекте.
Создавайте "единое видение проекта".
Следите за качеством продукта.
Проявляйте гибкость - будьте готовы к изменениям.
Ставьте "вехи".
Будьте готовы к внедрению сегодня.
Схема процесса разработки.
Основные структурные единицы схемы: циклы, фазы и вехи.
Цикличность всех уровней процесса разработки. Примеры циклов в различных задачах на различных уровнях: контроль версий, ежедневная сборка, итерация, версия продукта.
Фазы и вехи процесса разработки: выработка концепции, планирование проекта, разработка решения, стабилизация решения, внедрение решения. Распределение задач по фазам. Выбор продолжительности фаз. Принцип "каждой фазе - свои вехи". Вопросы, определяющие выполнение очередной фазы и достижение соответствующей вехи.
3.6. Старт проекта. Фаза выработки концепции.
Основные задачи фазы: создание ядра проектной группы, формирование видения проекта, подготовка документа общего описания и рамок проекта, подготовка документа оценки рисков и представление главных рисков проекта, выявление и анализ бизнес-требований.
Задачи ролевых групп на фазе выработки концепции.
Главная веха фазы: "Концепция утверждена".
Рекомендуемые промежуточные вехи: "Ядро проектной группы сформировано", "Черновой вариант концепции проекта составлен".
Результаты фазы: "Общее описание и рамки проекта", "Документ оценки рисков", "Описание структуры проекта".
Пример: Задача о разработке программного комплекса бронирования билетов для аэропорта. Выработка концепции.
3.7. Планирование проекта. Фаза планирования.
Основные задачи фазы: анализ и документирование проектных требований, подготовка функциональной спецификации, разработка дизайнов, подготовка рабочих планов, оценка проектных затрат и сроков разработки различных составляющих проекта.
Категории проектных требований. Уровни процесса проектирования.
Задачи ролевых групп на фазе планирования.
Главная веха фазы: "Планы проекта утверждены".
Рекомендуемые промежуточные вехи: "Верификация технологий", "Базовая версия функциональной спецификации создана", "Базовая версия сводного плана проекта создана", "Базовая версия сводного календарного графика проекта создана", "Среды разработки и тестирования развернуты".
Результаты фазы: "Функциональная спецификация", "План управления рисками", "Сводный план и сводный календарный график проекта".
3.8. Разработка решения. Фаза разработки.
Основная задача фазы - создание компонент решения, включая как документацию, так и программный код.
Задачи ролевых групп на фазе разработки.
Главная веха фазы: "Разработка завершена ".
Рекомендуемые промежуточные вехи: "Концепция подтверждена", "Билд номер N завершен", "Билд номер N+1 завершен",…
Результаты фазы: "Исходный и исполняемый код приложений", "Скрипты установки и конфигурирования", "Окончательная функциональная спецификация", "Материалы поддержки решения", "Спецификации и сценарии тестов".
3.9. Стабилизация решения. Фаза стабилизации.
Основные задачи фазы: тестирование разработанного решения, приоритезация и устранение ошибок, подготовка решения к выпуску, пилотное внедрение.
Задачи ролевых групп на фазе стабилизации.
Главная веха фазы: "Готовность решения утверждена".
Рекомендуемые промежуточные вехи: "Точка конвергенции", "Точка достижения нуля ошибок", "Версии-кандидаты", "Контрольное тестирование завершено", "Тестирование приемлемости для потребителей завершено", "Пилотное внедрение завершено".
Результаты фазы: "Окончательный продукт", "Документация выпуска", "Материалы поддержки решения", "Результаты и инструментарий тестирования", "Исходный и исполнимый код приложений", "Проектная документация", "Анализ пройденной фазы".
3.10. Внедрение решения. Фаза внедрения.
Основные задачи фазы: внедрение технологий и компонент решения, стабилизация внедренного решения, передача работ персоналу поддержки и сопровождения, получение со стороны заказчика окончательного одобрения результатами проекта, анализ выполненной работы и удовлетворенности заказчика.
Задачи ролевых групп на фазе внедрения.
Главная веха фазы: "Внедрение завершено".
Рекомендуемые промежуточные вехи: "Ключевые компоненты развернуты", "Внедрение на местах завершено", "Внедренное решение стабилизировано".
Результаты фазы: "Информационные системы эксплуатации и поддержки", "Процедуры и процессы", "Базы знаний, отчеты, журналы протоколов", "Версии проектных документов, массивы данных и программный код, разработанные во время проекта", "Отчет о завершении проекта", "Окончательные версии всех проектных документов", "Показатели удовлетворенности заказчика и потребителей", "Описание последующих шагов".
4. Затрагиваемые разделы рекомендаций Computing Curricula 2001 (Software Engineering 2004)
Данный курс является вводным курсом в рамках направления "Программная инженерия" и затрагивает следующие элементы курса SE201:
CMP.ct - Технологии разработки
MAA.rfd - Требования
MAA.rsd - Спецификация и документирование требований
MAA.rv - Проверка требований
DES - Проектирование
PRO.imp - Процесс разработки
MGT - Управление процессом разработки
5. Учебно-методические материалы по курсу
5.1. Литература
- И. Соммервиль. Инженерия программного обеспечения, 6 изд. - И.д. "Вильямс", 2002.
- Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Второе издание. - Бином, 1998.
- N. Wirth. Program Development by Stepwise Refinement // Communications of the ACM vol.26(1).- 1971, 1983.
- O. Dahl, E. Dijkstra, C.A.R. Hoare. Structured Programming.-London, England: Academic Press, 1972.
- Р. Лингер, Х. Миллс, Б. Уитт. Теория и практика структурного программирования. - М.: Мир, 1982.
- Э. Салливан. Время - деньги. - М.:Microsoft Press, Русская редакция, 2002.
- Г. Буч, Дж. Рамбо, А. Джекобсон. UML. Руководство пользователя. - ДМК-Пресс, Питер, 2004.
- G. Booch, J. Rumbaugh, I. Jacobson. The Unified Modeling Language Reference Manual - Second Edition, Addison-Wesley, 2004.
- Модель процессов MSF. Белая книга, 2003, перевод eLine Software.
- Дисциплина управления рисками MSF. Белая книга, 2003, перевод eLine Software.
- Модель проектной группы MSF. Белая книга, 2003, перевод eLine Software.
- 1846A: Microsoft Solutions Framework Essentials. Microsoft Official Course, 2002
- 2710B: Analyzing Requirements and Defining Microsoft .NET Solutions Architecture. Microsoft Official Course, 2003
- MSF Process Model. White paper, 2002 Microsoft Corporation.
- MSF Risk Management Discipline. White paper, 2002 Microsoft Corporation.
- MSF Team Model. White paper, 2002 Microsoft Corporation.
5.2. Информационные ресурсы сети Интернет
- Ian Sommerville. Software Engineering. 6th Edition. [http://www.comp.lancs.ac.uk/computing/resources/IanS/SE6]
- Ian Sommerville. Software Engineering. 7th Edition. [http://www.comp.lancs.ac.uk/computing/resources/IanS/SE7]
- http://www.uml.org
- http://www.wikipedia.org
- http://www.microsoft.com/msf
- С. Якимчук. MSF - философия создания IT-решений или голые амбиции лидера, 2004: [http://www.citforum.ru/SE/project/msf/].
- Алистер Кокбёрн. Каждому проекту своя методология:[http://software-testing.ru/lib/cockburn/methodology-per-project.htm](перевод статьи Alistair Cockburn. Methodology per project: [http://alistair.cockburn.us/index.php/Methodology_per_project]).
- А. Терехов, А. Ложечкин. Microsoft Solutions Framework 4.0 - опыт Microsoft по организации командной разработки. Презентация с Microsoft Платформа 2006
- MSF for Agile Software Development Process Guidance: [http://go.microsoft.com/fwlink/?linkid=63524]