Управление конфигурациями и изменениями на основе IBM Rational ClearCase и ClearQuest Новичков Александр www.cmcons.com alex-golder@cmcons.com Проблемы разработки сложных информационных систем Проблемы разработки сложных информационных систем • Проекты создания программного обеспечения почти никогда не укладываются в запланированные сроки и бюджет • Созданные в результате этого программы почти никогда не оправдывают возлагавшихся на них надежд «… только 26% проектов создания ИС заканчиваются успешно» (Standish Group CHAOS Report, 1998) Результаты исследования Standish Group по выполнению программных проектов Проект завершен вовремя, в пределах бюджета, реализована вся запланированная функциональность (в 1998 г. - 26%) Проект завершен с опозданием, с превышением бюджета, реализована не вся запланированная функциональность Досрочно прекращенные (неудачные) проекты Статистика: Среднее превышение сроков выполнения проекта - 222% Средний перерасход бюджета - 189% Проблемы разработки сложных информационных систем • Корни проблемы: – Задачи почти всегда опережают наши возможности – Разработчики пренебрегают присущими другим индустриям системными принципами: • • • • массовое производство; повторяемость процессов и компонентов; надежность; следование методологическим и технологическим принципам. – Узкая специализация затрудняет взаимопонимание между участниками проекта – Отсутствуют механизмы определения начальных требований Как попасть в 26% успешных проектов? Успешные проекты Не полностью завершенные проекты Проваленные проекты Вовлечение пользователя Недостаточные исходные данные Неполнота требований Поддержка руководства Неполнота требований Недостаточное вовлечение пользователя Четкое определение требований Изменение требований, спецификаций Недостаток ресурсов Надлежащее планирование Недостаток поддержки руководства Нереалистичные оценки Реалистичные оценки Технологическая некомпетентность Недостаток поддержки руководства Пути выхода из кризиса •Использовать хорошо зарекомендовавшую себя на практике методологию •Методология – возможность быстрого приобретения квалификации •Методология и технология должны быть рассчитаны на разработку качественных программных систем силами разработчиков средней квалификации Введение в Rational Unified Process Состав IBM Rational Unified Process • Методология коллективной разработки • Описание процесса разработки, технологии и правил создания артефактов • Рекомендации по применению средств инструментальной поддержки • Настраиваемые шаблоны, позволяющие использовать информацию проекта для создания отчетных документов • Инструментарий для настройки процесса под нужды организации и конкретного проекта • Методики и инструментарий измерения характеристик проектов Преимущества IBM Rational Unified Process • Дает практические рекомендации по планированию, укомплектованию персоналом, выполнению и мониторингу • Предлагает структуру управления рисками • Планирование итерационного проекта, всего жизненного цикла и конкретной итерации • Методика мониторинга продвижения итерационного проекта Кто использует методологию? • Заказчики – для организации портфелей проектов разработки и сопровождения ПС, для организации систем приемочного тестирования и сопровождения • Разработчики - для организации коллективной разработки ПС разного масштаба, в том числе распределенной разработки • Сопровождающие организации – для организации и автоматизации процессов сопровождения • Службы тестирования – для сборочного, приемочного, аттестационного функционального и нагрузочного тестирования Методология IBM Rational Unified Process Процессы и фазы жизненного цикла Гармонизация с ГОСТ Р Адаптация к условиям России ПРОЦЕССЫ СТАДИИ Обследование Технический проект Рабочий проект Передача в эксплуатацию Моделирование деятельности организации Управление требованиями Анализ и проектирование Реализация Тестирование Ввод в действие Конфигурационное управление и управление изменениями Управление проектом Поддержка среды разработки №0 №1 №2 № n № n+1 № n+2 № m № m+1 Итерации Rational Unified Process • Структура жизненного цикла – Жизненный цикл программной системы разбивается на циклы, каждый из которых работает над новым поколением изделия – Каждый цикл разработки состоит из четырех последовательных стадий • Стадии разбиваются на итерации • Каждая итерация содержит все аспекты разработки и повторяет все основные потоки работ Время Итерационно #1, #2, … #N Цели жизненного цикла Архитектура жизненного цикла Начальная работоспособность Выпуск Итерационная разработка Итерация - это законченный цикл разработки, приводящий к выпуску выполнимого изделия (внутренней или внешней версии) или подмножества конечного продукта, которое возрастает от итерации к итерации, чтобы стать законченной системой Требования Бизнесмоделирование Планирование Анализ и проектирование Управление конфигурацией и изменениями Эволюция Среда Тестирование Реализация Развертывание Rational Unified Process • Итерационная разработка – Итерационный подход позволяет раньше обнаруживать и разрешать риски Rational Unified Process • RUP – это «общий» процесс – Каждый проект выполняется с использованием адаптированного процесса – Организация может поддерживать общий процесс организации как основу для процессов проектов Ядро RUP Концепции Работы Руководства по работе Задачи Процессы Руководства по использованию инструментальных средств Роли Артефакты Руководства по созданию артефактов Стадии Шаблоны документов Отчеты Контрольные точки Описание процессов Процессы описываются с использованием диаграмм деятельности. Процессы разбиваются на работы Описание работ Для описания работ используются диаграммы взаимодействия (диаграммы деталей) RUP - настраиваемый процесс •Может использоваться в целом или частично •Может быть настроен так, чтобы соответствовать существующему процессу •Может использоваться НЕМЕДЛЕННО после поставки Web Site Ваш проект RUP Web Site Импорт RUP Model Слияние Адаптация Создание Model Ваши процессы Количественные характеристики RUP Процесс Управление проектами Управление требованиями Управление инфраструктурой Анализ и проектирование Конфигурационное управление и управление изменениями Развертывание Разработка Бизнес-моделирование Тестирование Итого Работы Задачи Артефакты Шаблоны документов 8 6 4 7 6 30 13 16 16 19 15 14 13 17 5 11 8 7 2 1 7 5 8 6 12 9 14 7 9 5 14 12 3 1 8 2 57 136 104 43 Rational Unified Process Процессы и стадии жизненного цикла СТАДИИ Обследование Технический проект Рабочий проект Передача в эксплуатацию ПРОЦЕССЫ Моделирование деятельности организации Управление требованиями Анализ и проектирование Реализация Тестирование Ввод в действие Конфигурационное управление и управление изменениями Управление проектом Поддержка среды разработки №0 №1 №2 №n № n+1 Итерации № n+2 № m № m+1 Процесс УК в RUP Что такое УК • Процесс управления конфигурацией есть процесс применения административных и технических процедур на протяжении всего жизненного цикла разработки ПС для: – идентификации, определения и базирования единиц программного обеспечения в информационной среде – управления модификациями и выпуском версий ПС – фиксирования и сообщения о состоянии версий ПС – управления и контролирования хранения, обращения и поставок версий ПС ЦЕЛИ УК Цель конфигурационного управления при создании сложных информационных систем, состоящих из множества компонентов и подсистем, каждые из которых могут иметь множество разновидностей или версий – обеспечить контролируемое и управляемое развитие их структуры, состава компонентов и функций на протяжении всего жизненного цикла ПС. Требования к процессу УК •Любые действия по направлению конфигурационного управления заранее спланированы •Любые программные работы идентифицированы, управляются, и являются общедоступными •Любые изменения в продукте являются управляемыми •Заинтересованные лица постоянно информируются о состоянии развития проекта; УК в RUP Установка плана управления конфигурацией Создание проекта и среды Управление базовыми линиями и релизами Изменение и продвижение конфигурационных элементов Управление запросами на изменение Составление отчетов по конфигурационному пространству Подготовка Установка плана управления конфигурацией установка конфигурационной политики создание конфигурационного плана Создание проекта и среды установка среды конфигурации создание интегрирующего пространства Артефакты: конфигурационный план, модель внедрения, настройка проектного репозитория, рабочее пространство Роли: Менеджер конфигурации, Менеджер контроля изменений, Интегратор Работа Изменение и представления конфигурационных элементов создание базовых линий создание рабочего пространства создание изменений обновление рабочего пространства Артефакты: наряд на работу, модификация пространства Роли: Интегратор, Остальные Работа Управление базовыми линиями и релизами создание базовых линий выделение базовых линий Составление отчетов по конфигурационному пространству генерация отчетов по состоянию подготовка конфигурационного аудита Артефакты: спецификации материалов, репозиторий, единицы развертывания, аудит репозитория (отчет) Роли: Менеджер конфигурации, Интегратор Работа Управление запросами на изменение просмотр запросов на изменение поиск дублей в запросах проверка изменений в билде представление запросов на изменение обновление запросов на изменение Артефакты: запросы на изменения Роли: Менеджер контроля изменений, Интегратор, Остальные УК в стандарте СММ Process Level CMM 2 3 4 5 Requirements Management + + + + Software Project Planning + + + + Software Project Tracking and Oversight + + + + Software Subcontract Management + + + + Software Quality Assurance + + + + Software Configuration Management + + + + Organization Process Focus + + + Organization Process Definition + + + Training Program + + + Integrated Software Management + + + Software Product Engineering + + + Peer Reviews + + + Quantitative Process Management + + Software Quality Management + + Defect Prevention + Technology Change Management + Process Change Management + Инструментальная поддержка • Rational ClearCase – Конфигурационное управление • ClearCase MultiSite – Распределенная разработка • Rational ClearQuest – Управление запросами на изменения Инструментальная поддержка • Руководитель проекта может – Использовать метрики Разработчики – Распределять нагрузку исполнителей – Выделять приоритеты • Каждый член команды знает Аналитики – Какие задачи являются приоритетными – Какие задачи уже завершены – Какие задачи решаются в данный момент Руководитель Тестировщики Интегратор Rational ClearCase - это: • Надежная база данных хранения релизов • Настраиваемая среда разработки • Возможность параллельной разработки • Набор средств для сборки и аудита • Событийно-ориентированный интерфейс Versioned Object Base. Репозиторий • Содержит полную историю: – – – – – – – Запросов к базе и проекту Моделей Rational Rose Исходных текстов Бинарных файлов Скриптов тестирования Графических файлов Html-файлов и cgi-скриптов • Запоминает состав директорий Примеры объектов версионного контроля • Функциональная модель деятельности организации • Концептуальная модель данных • Логическая модель • Реляционная модель данных • Модели данных приложений • Модели данных интерфейса • Модули прототипов системы: – – – – экраны, меню, отчеты, модули процедур. • Планы тестирования • Спецификации тестовых процедур • Документация Versioned Object Base. Репозиторий • Делает невозможными неконтролируемые (несанкционированные) изменения – ClearCase невозможно обойти – ClearCase имеет мощные средства установки локальной политики на уровне элемента • Поддерживает дробление структуры между несколькими VOB Гибкая настройка среды Прозрачная файловая система: позволяет обращаться не только к отдельному файлу, но и к его конкретной версии View Profile: Ограничивает область контроля посредством индивидуальных видовых профилей, которые возможно создать для каждого участника проекта ClearCase VOB ClearCase Views Rel. 2.5 View print.c print.h main.c Development View 2.5 Bug Fix View ClearCase Views • Dynamic Views используют подключение real-time, позволяя всем участникам проекта работать с VOB по сети – Мгновенное обновление – Быстрый доступ к истории элемента – Контролируемая и конфигурируемая сборка – Создание копий и экземпляров элементов – Работает только под NT, 2000, XP, Unix ClearCase Views • Snapshot Views разрешает внеофисную работу с проектом – Сохранение проектных файлов локально – Ручное обновление – Локальная сборка – Синхронизация версий с главной базой Виды • Dynamic Views - быстрое управление пространством – Мгновенный доступ к Репозиторию – Сборка проекта и аудит – Совместная работа распределенных Репозиториев • Snapshot Views - для отложенного редактирования – Автоматическое обнаружение и синхронизация “потерянных файлов” – Раздельные видовые профили на конкретные релизы Ветви и слияния • Каждый проект имеет древовидную структуру • История каждого файла сохраняется • Имеются мощные средства сравнения и слияния данных: – Допускается слияние нескольких версий одного файла – Допускается слияние целых проектов – Допускается произвольное сравнение любого числа файлов – При слиянии автоматически порождается новая версия файла без физического воздействия на остальных участников Версионный контроль и параллельная разработка • Параллельная разработка и возможность автоматического слияния • Определение всех несогласованных изменений • “Тривиальное” слияние происходит автоматически Доработка • Поддержка разрешения 0 конфликтов при слиянии изменений 1 Ревизии 0 1 2 Новая разработка 3 0 1 4 2 3 2 5 Что получаем? \main 0 1 Rel1 2 3 rel1_bugfix rel2_integration 0 1 0 4 1 2 3 Rel1.1 2 5 Rel2 6 db_update 0 1 2 3 win98_port 0 1 2 3 Реальная модель Параллельная разработка в жизни Main (он же поток интеграции) B_1.0.xxx Dev PR_1.0.xxx BF_1.0.xxx Доставка интегратором R_1.0.xxxx Private Private Доставка разработчиком Доставка разработчиком Доставка разработчиком PR_1.1.xxx Управление сборкой в ClearCase • Высокая продуктивность – Полный контроль: • Кто? • Когда? • Зачем? – Возможность раздельных билдов • Сравнение одного или нескольких билдов • Полная история всех билдов – – – – Работа на основе компилятора командной строки Возможность работы на основе обычных MakeFife Возможность сборки файлов из разных проектов Интеграция со средами разработки Управление конфигурацией в ClearCase Сопровождение каждой версии элемента набором свойств: Типом элемента Атрибутами Метками Гиперссылками Триггерами Бренчами Окно сравнения 2х версий Окно сравнения 3 версий Окно слияния двух версий Сравнение и слияние версий. Связь версий с запросами на изменение Слияние версий Сравнение версий Версия элемента Запросы на изменение «Тонкое» управление политикой доступа к элементам Настраиваемая форма автоматизированной отчетности Интеграция с WebSphere и .NET • Интегрированная поддержка ClearCase – Выполнение всех операций из среды – Версионный контроль высокого разрешения • класс, компонент, роль, объект, прецедент, пакет Контроль над версиями •Мощный интерфейс командной строки •Расширенная файловая система MVFS •Безграничные возможности по созданию скриптов обработки событий •Доступ через командную строку к любой версии •Генерация отчетов произвольного образца Примеры команд: Co –nc 900.txt@@\main\Asteroid\cc_test\2 Merge –to 900.txt 900.txt@@\main\Asteroid\cc_test_99\2 Ci –nc 900.txt Преимущества • Сокращение времени на решение проблем с инсталляцией отдельных компонент ПО • Сокращение затрат на переделку ПО (как при разработке так и при сопровождении) • Сокращение затрат на диагностику сделанных изменений • Повышение качества процессов разработки и сопровождения • Улучшение взаимодействия с тестировщиками, постановщиками требований • Поддержка регионально удаленных команд разработчиков • Улучшение контроля над деятельностью разработчиков • Улучшение планирования Преимущества • Сокращение времени настройки рабочего пространства разработчика • Экономия времени за счет использования базовых версий и релизов • Сокращение времени разработки за счет ветвлений и слияний • Не тратится время на интеграцию рабочего пространства с новой базовой версией • Использование утилит автоматизации сборки сокращает время на сборку отдельных модулей или ПО в целом • Сокращение времени на обновление и синхронизацию рабочих материалов географически распределенных команд • Сокращение трудозатрат на решение проблем, связанных с неодинаковой работой ПО, полученных в результате разных сборок Поддержка всего жизненного цикла разработки и сопровождения ПО Rose/XDE Разработка. Rapid Developer XDE XDE Purify Plus RequisitePro TestManage r ClearCase ClearQuest Robot Поддержка всего жизненного цикла разработки и сопровождения ПО Rose/XDE Получение сценариев использования. Поддержка синхронизации Генерация объектного кода С++, Java. Синхронизация кода и модели Разработка. Rapid Developer XDE Хранение версий Сборка проекта Сопровождение Сбор информации о производительности, стабильности и охвате при компонентном тестировании TestManage r ClearCase Осуществляется связь между запросами на изменения и всеми версиями артефактов, находящихся в версионном хранилище ClearQuest XDE Purify Plus Требования и сценарии использования – основа для создания планов тестирования и сценариев тестирования RequisitePro Запросы на изменение и расширения порождают новые требования Осуществление тестирования на этапе разработки. Компонентное тестирование Документирование всех дефектов на этапах тестирования и сопровождения Запись и воспроизведение скриптов тестирования по плану тестирования. Сбор ошибок при функциональном и нагрузочном тестировании Robot Поддержка всего жизненного цикла разработки и сопровождения ПО Rose/XDE Генерация объектного кода С++, Java. Синхронизация кода и модели Осуществление тестирования на этапе разработки. Компонентное тестирование XDE Purify Plus Разработка. Rapid Developer XDE +Rational Unified Process Получение сценариев использования. Поддержка синхронизации Сбор информации о производительности, стабильности и охвате при компонентном тестировании +Rational Developer Network Требования и сценарии использования – основа для создания планов тестирования и сценариев тестирования RequisitePro +Project Console Хранение версий Сборка проекта Сопровождение Запросы на изменение и расширения порождают новые требования TestManage r + SoDAClearCase Осуществляется связь между запросами на изменения и всеми версиями артефактов, находящихся в версионном хранилище Запись и воспроизведение скриптов тестирования по плану тестирования. Сбор ошибок при функциональном и нагрузочном тестировании + ProcessWorkbench ClearQuest Документирование всех дефектов на этапах тестирования и сопровождения Robot ИТОГО Высокопроизводительное средство клиент-сервер промышленного уровня Полный учет и сопровождение проектных документов Наличие механизмов параллельной разработки Настройка среды пользователя в зависимости от его привилегий Присутствует возможность по удаленному внесению изменений При наличии MultiSite объединяет регионально удаленные команды разработчиков Хранит весь проект, включая исходные файлы, двоичные файлы, библиотеки, документацию, WEB-приложения, модели и директории Конвертирует данные из PVCS, CVS, RCS, SourceSafe в собственный формат Имеет дружественный, настраиваемый интерфейс ClearCase MultiSite • Позволяет объединять регионально удаленные команды разработчиков – Реплицируется база на один или несколько сайтов • Создание уникальных реплик Возможности 00 11 0 22 0 1 33 1 2 2 4 5 3 Что, у кого и сколько есть? • HP – Более 1600 лицензий, 14 сайтов • Fidelity Investments – 25 баз, расположенных на 3 сайтах – Синхронизация каждые 5 минут • Oracle – Более 1200 лицензий, 10 сайтов Количество лицензий Honeywell - 273 Hughes - 438 Boeing - 1201 Lockheed - 1721 Raytheon - 1181 Oracle - 1523 Sybase - 482 Informix -2909 Philips - 328 Princeton - 757 SDRC - 250 Computervision - 275 Siemens - 2459 Texas Instruments - 608 Santa Cruz SCO - 500 Thomson - 313 Hewlett Packard - 3360 Alcatel - 704 Lucent - 1355 Motorola - 4010 Ericsson - 1969 TRW - 462 AT&T - 774 Bay Networks - 577 Cisco Systems - 1297 BNR/Nortel - 4082 Fidelity - 481 Ford Motor - 263 EDS - 704 GTE - 936 Digital - 344 Silicon Graphics - 368 Требования Требования для клиента: Минимум: 128MB ОЗУ, 35MB Дискового пространства Требования для сервера: Минимум: 256MB ОЗУ, 70MB Дискового пространства Поддерживаемые Web-броузеры: Microsoft Internet Explorer Netscape Поддерживаемые Web-Серверы: Apache Microsoft IIS Netscape Поддерживаемые ОС Windows 2000, NT, XP Windows 95/98 (клиенты) Compaq Tru64 UNIX Hewlett-Packard HP-UX IBM, AIX, NCR MP-RAS Red Hat Linux (7.1, 7.2) SCO UnixWare Siemens Reliant UNIX Silicon Graphics IRIX Sun Solaris SPARC Sun Solaris Intel Интеграция со средствами разработки Borland JBuilder IBM WebSphere Studio product family IBM WebSphere Server IBM VisualAge for Java Microsoft Visual Studio .NET: VB, C#, C++, ASP.NET Microsoft Visual Studio: VB, C++, J++ InterDev Sun ONE Studio and Forte for Java Sybase PowerBuilder Microsoft FrontPage and Microsoft Office All SCC-compliant tools Рынок средств SCM Rational Merant Microsoft Continuus MKS CA Other Какое же средство УК лучше? # Функция СС (base) СС LT SourceSafe PVCS CVS Предустановленная политика Конфигурационного Управления + (UCM) + (UCM) + + - Адаптация политики под любые требования (адаптированная политика в зависимости от сложности проекта и корпоративной политики) + - - +* + Управление версиями файлов + + + + + Управление версиями каталогов + + - - + Быстрый доступ к версиям файлов и каталогов + - - + ? Работа с данными проекта в реальном масштабе времени (при котором не требуется синхронизации с сервером) + - - + - Выборка элементов репозитория по определенным критериям (в реальном масштабе времени) + - - + - Более подробный анализ смотрите в материалах курса Процесс управления изменениями • Контролируемая обработка запросов (поручения, отчеты о выполнении, ошибки…) в соответствии с заранее определенным процессом • Работа с различными типами запросов • Настраиваемый набор атрибутов и состояний запросов на изменения • Формирование отчетов произвольного образца • Создание разнообразных графиков (текущее состояние, статистика, тенденции) • Автоматическое уведомление исполнителей о ходе обработки запросов по электронной почте • Контроль и внесение изменений через Интернет • Широкие возможности по адаптации • Инструмент поддержки процесса управления изменениями – IBM Rational ClearQuest Примеры схем прохождения запроса на изменение начало внести дефект( ИЗ ) Представлен Обозначение: РП - руководитель проекта Р - разработчик Т - тестировщик ИЗ - инициатор запроса назначить( РП ) Назначен принять( Р ) отказаться( Р ) Открыт реалировать( Р ) закрыть( РП ) Реализован тестировать( Т ) Протестирован закрыть( РП ) Закрыт конец вернуть( Т ) Управление изменениями Статистика по запросам на изменение Текущие отчеты позволяют определять состояние проекта Мастера быстро создают отчеты и графики Можно работать в Windows и/или Webинтерфейсе Менеджер проекта Статистика по запросам на изменение Преимущества • Четкое представление того кто и чем занимается в проекте • Полное документирование дефектов • Планирование деятельности каждого разработчика • Удобное взаимодействие между саппортом, тестировщиками и разработчиками • Неразрывная связь с требованиями • Графическое представление метрик проекта Настройка репозитория проекта Техническое задание, План тестирования, Юзкейсы, ... База данных требований Сообщения об ошибках, Запросы на развитие, Поручения Модель бизнес-процессов, Модель реализации Модели Rational Rose Репозиторий Rational База данных запросов на изменения Тестовые скрипты, Обнаруженные ошибки База данных тестирования Версионное хранилище Среда разработки и сопровождения Руководитель проекта Репозиторий База данных требований RequisitePro ClearCase ClearQuest Аналитик RequisitePro Rational Rose ClearCase ClearQuest Дизайнер тестов RequisitePro ClearCase ClearQuest Модели Rational Rose База данных Репозиторий тестирования Rational Разработчик RequisitePro Rational Rose ClearCase ClearQuest Тестировщик RequisitePro TeamTest ClearCase CleaQuest База данных запросов на изменения Администратор Версионное хранилище Rational Suite UCM работает так как нужно Вам База задач Разработчики Request Priority Owner Status Bug 98 1 Sam Code Bug 527 3 Sandy Open Add GUI button 1 Kim Code Аналитики Новая функциональность Открыть Руководитель Назначить Кодирование Тестирование Закрыть Интегратор Тестировщики Поддержка процессов ЖЦ Unified Change Management ClearQuest Activity Management Сбор требований AnalystStudio Проектирование DevelopmentStudio Тестирование Разработка Performance Studio IDEs TestStudio Инструмен тарий Требования Модели Код ClearCase Artifact Management Скрипт