Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

Microsoft Solutions Framework by S20Nr7

VIEWS: 13 PAGES: 44

									  Технологии разработки
программного обеспечения –
           MSF

         А.В.Гаврилов
О докладе
   • Обзор технологий
   • MSF
     – Модель проектной группы
     – Модель процессов
     – Дисциплина управления рисками
     – Дисциплина управления проектами
     – Дисциплина управления подготовкой
     – Управление компромиссами
   • Поддержка MSF в Visual Studio 2005
Немного терминологии
• Решение (solution) - скоординированная
    поставка набора элементов (таких как
    программно-технические средства,
    документация, обучение и сопровождение),
    необходимых для удовлетворения некоторой
    бизнес-потребности конкретного заказчика.
•   Заинтересованные стороны (stakeholders) –
    лица либо организации, чьи интересы
    затрагиваются результатами проекта
•   Спонсоры проекта (project sponsors)
    – лица либо организации, которые
    инициировали проект, выделяют для проекта
    ресурсы и утверждают его результаты.
Критерии успешности проекта

• Качество
• Время
• Бюджет

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

        2000         23%                            49%                             28%


        1998           28%                             46%                           26%


        1995                  40%                            33%                    27%


        1994            31%                                53%                          16%



Статистика по 30,000 проектам по разработке ПО в американских компаниях.
Источник: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000
Успешные проекты – вовремя и в рамках бюджета был выполнен весь намеченный фронт работ.
Проблемные – не уложились в сроки, перерасходовали бюджет и/или сделали не все, что требовалось.
Проваленные – не были доведены до конца.
Подходы к разработке
• Методологии
  –   Состав и последовательность работ
  –   Роли участников проекта
  –   Состав и шаблоны документов
  –   Порядок контроля и проверки качества
• Используются
  –   Каскадная модель
  –   Rational Unified Process (RUP)
  –   Extreme Programming (XP)
  –   Microsoft Solutions Framework (MSF)
  –   …
• Должны обеспечивать успешность
  – стандарты ISO, CMMI, OMG, IEEE
Жизненный цикл проекта
• Основные процессы
  –   Моделирование бизнес-процессов
  –   Управление требованиями
  –   Анализ и проектирование
  –   Реализация
  –   Тестирование
  –   Документирование
  –   Развертывание
  –   Обучение
• Вспомогательные процессы
  –   Конфигурационное управление
  –   Управление изменениями
  –   Управление проектом
  –   Управление средой
Последовательность этапов
• Модели процессов
    – Каскадная модель
    – Итерационная модель
    – Эволюционная модель
• Участие заказчика и внесение изменений
• Стоимость исправления ошибок
• Разделение ролей и специализация
    разработчиков
•   Документирование
Кратко – Каскадная модель




• • модель состоит из последовательно расположенных этапов;
• • каждый этап полностью заканчивается до того, как начнется
    следующий;
•   • этапы не перекрываются во времени: следующий этап не начинается
    до тех пор, пока не завершится предыдущий;
•   • возврат к предыдущим этапам не предусмотрен либо всячески
    ограничен;
•   • исправление ошибок происходит лишь на стадии тестирования;
•   • результат появляется только в конце разработки.
Кратко - RUP
• 9 основных потоков - элементов жизненного цикла ПО:
    – Разработка
            •   •   бизнес-анализ
            •   •   требования
            •   •   анализ и моделирование
            •   •   реализация, кодирование
            •   •   тестирование
            •   •   внедрение
    – Поддержка
        •       • управление конфигурацией и изменениями
        •       • управление проектом
        •       • окружение
•   В RUP       рекомендовано следовать шести практикам:
    –   •   итеративная разработка;
    –   •   управление требованиями;
    –   •   использование модульных архитектур;
    –   •   визуальное моделирование;
    –   •   проверка качества;
    –   •   отслеживание изменений.
Продукты, поддерживающие RUP
• • Rational Rose — CASE-средство визуального моделирования
    информационных систем, имеющее возможности генерирования
    элементов кода;
•   • Rational Requisite Pro — средство управления требованиями,
    позволяющее создавать, структурировать, устанавливать приоритеты,
    отслеживать, контролировать изменения требований;
•   • Rational ClearQuest — продукт для управления изменениями и
    отслеживания дефектов в проекте;
•   • Rational SoDA — продукт для автоматического генерирования проектной
    документации;
•   • Rational Purify, Rational Quantify Rational PureCoverage, — средства
    тестирования и отладки:
•   • Rational ClearCase — продукт для управления конфигурацией программ,
    позволяющий производить версионный контроль всех документов
    проекта.
•   • SQA TeamTest — средство автоматизации тестирования;
•   • Rational TestManager — система управления тестированием;
•   • Rational Robot — инструмент для создания, модификации и
    автоматического запуска тестов;
•   • SiteLoad, SiteCheck — средства тестирования Web-сайтов на
    производительность и наличие неработающих ссылок;
•   • Rational PerformanceStudio — измерение и предсказание характеристик
    производительности систем.
 Кратко - XP
• Принципы (4):
   – непрерывная связь с заказчиком и внутри группы;
   – простота, достигаемая за счет концентрации на минималистских
     решениях;
   – оперативная обратная связь (модульное и функциональное
     тестирование);
   – возможность предупреждать возникновение проблем.
• Практики (12):
   –   Планирование процесса
   –   Частые релизы
   –   Метафора системы
   –   Простая архитектура
   –   Тестирование
   –   Рефакторинг
   –   Парное программирование
   –   Коллективное владение кодом
   –   Частая интеграция
   –   40-часовая рабочая неделя
   –   Стандарты кодирования
   –   Тесное взаимодействие с заказчиком
Кратко - MSF
• Причиной появления MSF стало
  осознание в Microsoft проблем в
  собственном процессе разработки ПО
• Первоначальная версия MSF увидела
  свет в 1994 г.
• В 2002 г. была опубликована последняя
  версия MSF (v3.0)


• MSF является частью более широкого
 набора методологий от Microsoft
MSF и MOF
                       Microsoft Solutions Framework




   Microsoft Operations Framework
MSF и MOF
• MSF = Microsoft Solutions Framework
  – Подход Microsoft к управлению
    ИТ-проектами:
     • Проекты разработки ПО
     • Проекты развертывания инфраструктуры

• MOF = Microsoft Operations Framework
  – Подход Microsoft к управлению
    ИТ-процессами (операциями) на
    предприятии
Структура MSF
• MSF состоит из двух моделей и трех дисциплин
• Модели
  – Проектной группы
  – Процессов
• Дисциплины управления
  – Проектами
  – Рисками
  – Подготовкой

• Они подробно описаны в 5 whitepapers
  – http://www.microsoft.com/rus/msf
   Сравнение RUP, MSF и XP
            Оптимал Соответств Допустимые              Удобство
Техноло
              ьная      ие     технологии и         модификации и
  гия
            команда стандартам инструменты          сопровождения
Rational                                                Удобно
                                     UML + IBM
Unified      10 - 40   Соответств.
                                     Rational + …       (RUP)
Process
Microsoft
Solutions                                               Удобно
             3 - 20    адаптируема     Любые
Framewo                                               (MSF+MOF)
   rk

                                                     Сложно (роль
   XP         2-6          нет         Любые
                                                     разработчика)
 Структура MSF
                  ДВЕ МОДЕЛИ

 Модель                               Модель
Проектной                           Процессов
 Группы



                ТРИ ДИСЦИПЛИНЫ




   Дисциплина       Дисциплина   Дисциплина
   управления       управления   управления
   Проектами         Рисками     Подготовкой
     Модель проектной группы
                        Управление проектом
                        Выработка архитектуры решения
                        Контроль производственного процесса
                        Административные службы
Бизнес-приоритеты
Маркетинг                       Управление               Технологическое консультирование
Представление
интересов заказчика
                                программой               Проектирование и осуществление реализации
                                                         Разработка приложений
Планирование продукта                                    Разработка инфраструктуры

     Управление
      продуктом                                        Разработка


  Удовлетворение
   потребителя                                        Тестирование
Обучение                                                 Планирование тестов
Эргономика                                               Разработка тестов
Графический дизайн              Управление               Отчетность по тестам
Интернационализация
Обеспечение технической
                                 выпуском
поддержки                         Инфраструктура
Общедоступность (обеспечение      Сопровождение
возможности работы для            Бизнес-процессы
пользователей с ограниченными     Управление
физическими возможностями)        выпуском готового
                                  продукта
В MSF нет роли
“менеджер проекта”
 Деятельность по управлению
 проектом распределяется
 между лидерами групп
 и ролевым кластером
 “Управление
 программой”


     Лидеры групп
Управление программой
 Управление продуктом
           Разработка
         Тестирование
   Удовл. потребителя
  Управление выпуском


                        на уровне всего проекта   на уровне подгрупп
Характеристики проектной
группы MSF
 • Команда соратников (команда равных)
 • Наличие единого видения (shared vision)
 • Распределение ответственности при
     фиксации отчетности
 •   Нацеленность на необходимый заказчику
     конечный результат
 •   Наличие у сотрудников необходимых
     полномочий
 •   Открытое общение
 •   Установка на отсутствие дефектов
 •   Стремление к самосовершенствованию
 •   Гибкость и готовность к переменам
 •   Заинтересованность и энтузиазм
Масштабирование модели
проектной группы
• В одном ролевом кластере может быть
  много людей
• Один человек может взять на себя
  несколько ролей
• Большие коллективы:
  – Создаем группы направлений
  – Создаем функциональные группы
• Малые коллективы:
  – Используем таблицу совместимости ролей
Таблица совместимости ролей
                 Управление   Управление                               Удовлетворение   Управление
                  продуктом   программой   Разработка   Тестирование     потребителя     выпуском
Управление
 продуктом                        -            -            +               +              ±
                     -                         -            ±               ±              +
Управление
программой

 Разработка          -            -                          -               -              -
Тестирование
                     +           ±             -                            +               +
                     +           ±             -            +                               ±
Удовлетворение
  потребителя



                     ±           +             -            +               ±
Управление
 выпуском



 + Допустимо             ± Нежелательно            - Нельзя
Минимальный коллектив




  Удовлетворение   Управление
    потребителя    программой   Разработка

    Управление     Управление
     продуктом      выпуском

   Тестирование
Модель процессов
                           Внедрение
                           завершено




Готовность решения                           Концепция проекта
        утверждена                           утверждена




              Разработка                Планы проекта
              завершена                 утверждены

                           Разработка
Промежуточные вехи
                                                       Внедрение
                                                       завершено
                  Внедренное решение стабилизировано
                                                                              Ядро проектной группы сформировано
               Внедрение на местах завершено
                                                                                        Черновой вариант концепции
       Ключевые компоненты развернуты                                                   проекта составлен



 Готовность решения                                                                         Концепция проекта
         утверждена                                                                         утверждена
     Пилотное внедрение завершено                                                             Верификация технологий
                                                                                              осуществлена
Контрольное тестирование завершено
                                                                                              Базовая версия функциональной
                                                                                              спецификации создана
                   Версии-кандидаты
                                                                                             Базовая версия сводного плана
       Тестирование приемлемости для
                                                                                             проекта создана
              потребителей завершено
                                                                                           Базовая версия сводного календарного
                 Точка достижения нуля                                                     графика проекта создана
                                                                                        Среды разработки и тестирования
                        Точка конвергенции
                                                                                        развернуты


                              Разработка                                         Планы проекта
                              завершена                                          утверждены
                                                                         Концепция подтверждена
                                                                   Промежуточная версия 1 завершена
                                                             Промежуточная версия 2 завершена
                                                        Промежуточная версия N завершена
Стоимость исправления ошибок

100      Чем больше проект, тем круче кривая


 80      Для малых проектов эта кривая может выродиться
         в почти горизонтальную почти прямую

 60



 40



 20



      Выработка   Планирование   Разработка    Стабилизация   Внедрение
      концепции
Итеративный подход
  Минимизируем риски, разбивая большие проекты на
  несколько версий
    Функциональность




                                             Версия 3

                                  Версия 2

                       Версия 1
                                  Время
Итерации
 • Версии
 • Обновляемые документы
 • Периодические сборки

 • Для каждой фазы модели процессов MSF
  определяет:
   – Что (какие артефакты) является результатом
     этой фазы
   – Над чем работает каждый из ролевых кластеров
     на этой фазе
Дисциплина управления рисками
     • Итеративный процесс
     • Осуществляется на протяжении
         всего проекта
     •   Базируется на посылке о присутствии
         рисков в любом проекте
     •   Нацелена на проведение
         профилактических мероприятий


Мы не боремся с рисками – мы ими
 управляем
Процесс управления рисками
                                          2
                                          Анализ и
1             Формулировка               приоритез
                 риска                     ация
Выявление                                  Список
                             5             рисков                3
                                                          Планировани
                             Коррекция        Глав             е
                                               ные
                                              риски
                 6
                Извлечени                Мониторин
База знаний      е уроков                    г
 о рисках                                             4
Дисциплина управления
проектами
• Проект (project) – ограниченная временными
    рамками деятельность, цель которой состоит
    в создании уникального продукта или услуги
•   Управление проектами (project management) –
    это область знаний, навыков, инструментария
    и приемов, используемых
    для достижения целей
    проектов в рамках
    согласованных параметров
    качества, бюджета, сроков
                                    Возможности
    и прочих ограничений
Управление изменениями
• Мы не можем
  избежать изменений
  в проекте                            Фиксируе   Согласов   Принимае
                                         тся      ывается       тся

• Но мы можем заранее     Ресурсы
  договориться о
  приоритетах,
  которыми будем           Время

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

• Для этого
  используется матрица
  компромиссов
Дисциплина управления
подготовкой                                 необходимый уровень
                                            компетенции и опыта

                                          Определение


   Знания,                      текущая
   умения,                      квалификация
 способности
                                           Оценивание



                       Анализ
                                           Изменение
       эффективность
       подготовки                      Обучение и мониторинг
Поддержка MSF в Visual Studio 2005


                                     Developer
                                                         Tester
                    Solution
                    Architect



   Infrastructure                                                 Project
      Architect                                                   Manager




Design for                                                        Predictability
Operations                                                         & Visibility

                       Increased                    Quality
                       Reliability               Early & Often
                                    Visual Studio Team System
                                           Visual Studio                               Visual Studio                               Visual Studio
                                      Team Architect                               Team Developer                                 Team Test
                                        Application Modeling                        Dynamic Code Analyzer                           Load Testing

                                        Logical Infra. Modeling                      Static Code Analyzer                          Manual Testing
Process and Architecture Guidance




                                                                                                                                                           Visual Studio Industry Partners
                                        Deployment Modeling                               Code Profiler                         Test Case Management

                                                                                                                 Unit Testing

                                                                                                               Code Coverage

                                                                  Class Modeling

                                                             Visio and UML Modeling

                                                                                    Team Foundation Client

                                                                                             VS Pro




                                                                    Change Management                       Reporting               Integration Services
                                       Visual Studio
                                    Team Foundation                  Work Item Tracking                   Project Site              Project Management
Поддержка архитекторов системы
• Распределенное проектирование приложения
  – Режим «общего рабочего поля»
  – Поддержка Web Services Enhancements (WSE)
  – Проверка логической инфраструктуры
• Проектирование логической инфраструктуры
  – Редактор установок и ограничений
  – SDM – генерация и компилятор
  – Поддержка «Click-once»
• Проектирование объектной модели
  – Прямая и обратная синхронизация кода
Поддержка разработчиков
• Статический анализ кода
  – Поддержка managed и native кода
• Динамическое профилирование кода
  – Контроль выполнения потоков обработки
  – Контроль управления памятью
  – Контроль функциональных вызовов
• Используемость кода
• Интеграция сред тестирования и
 разработки
 Поддержка тестирования
• Тестирование загрузки
  – Тестирование загрузки Web services
    посредством сценариев на основе протоколов
  – Моделирование загрузки: постоянная,
    пошаговая, настраиваемая
  – Сбор и мониторинг показателей
    производительности
• Управление конфигурациями тестирования
• Верификация приложения
Поддержка организации проекта
• Информационное пространство проекта:
 создание и навигация
  – Мастер создания проекта
  – Редактор процессов для специализированных
    случаев
• Управление проектом
  – Интеграция с Microsoft Project и Excel
• Управление изменениями
  – Ветвления, наборы изменений, архивация
  – Переход от PVCS, ClearCase и VSS
• Аналитика и отчеты
• Портал проекта
MSF v. 4.0 – развитие продолжается
 The right content for the right person at the
 right time
•   Обеспечивает быстрый процесс разработки
•   Поддерживает формальный процесс
    разработки ПО
•   Среда для разработчиков и клиентов для
    обеспечения специализированного процесса
    разработки
•   Объединяет лучшие практики как внутри, так
    и вне Microsoft
Материалы по MSF
• На английском языке
  – http://www.microsoft.com/msf
  – http://www.microsoft.com/traincert/mcp/msf
• На русском языке
  – http://www.microsoft.com/rus/msf
• Шаблоны и примеры документов
 доступны бесплатно на
  – http://download.microsoft.com
Вопросы?

Александр Гаврилов
i-alexga@microsoft.com

								
To top