Повышение эффективности разработки прикладного ПО: интегрированная платформа для программирования и анализа производительности процесса разработки. Продукты семейства IBM Rational Новичков Александр www.cmcons.com alex-golder@cmcons.com • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Проблемы разработки сложных информационных систем • Проекты создания программного обеспечения почти никогда не укладываются в запланированные сроки и бюджет • Созданные в результате этого программы почти никогда не оправдывают возлагавшихся на них надежд «… только 26% проектов создания ИС заканчиваются успешно» (Standish Group CHAOS Report, 1998) Результаты исследования Standish Group по выполнению программных проектов Проект завершен вовремя, в пределах бюджета, реализована вся запланированная функциональность (в 1998 г. - 26%) Проект завершен с опозданием, с превышением бюджета, реализована не вся запланированная функциональность Досрочно прекращенные (неудачные) проекты Статистика: Среднее превышение сроков выполнения проекта - 222% Средний перерасход бюджета - 189% Проблемы разработки сложных информационных систем • Корни проблемы: – Задачи почти всегда опережают наши возможности – Разработчики пренебрегают присущими другим индустриям системными принципами: • • • • массовое производство; повторяемость процессов и компонентов; надежность; следование методологическим и технологическим принципам. – Узкая специализация затрудняет взаимопонимание между участниками проекта – Отсутствуют механизмы определения начальных требований Как попасть в 26% успешных проектов? Успешные проекты Не полностью завершенные проекты Проваленные проекты Вовлечение пользователя Недостаточные исходные данные Неполнота требований Поддержка руководства Неполнота требований Недостаточное вовлечение пользователя Четкое определение требований Изменение требований, спецификаций Недостаток ресурсов Надлежащее планирование Недостаток поддержки руководства Нереалистичные оценки Реалистичные оценки Технологическая некомпетентность Недостаток поддержки руководства Пути выхода из кризиса •Использовать хорошо зарекомендовавшую себя на практике методологию •Методология – возможность быстрого приобретения квалификации •Методология и технология должны быть рассчитаны на разработку качественных программных систем силами разработчиков средней квалификации • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Состав 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 Разработка ПО – командная игра Аналитик Pervasive and Embedded WebSphere Business Integrator Modeler & Monitor Rational RequisitePro IBM and 3rd Party Servers Менеджер Microsoft Архитектор Разработчик WebSphere Studio Family Rational Rose XDE family Тестер Rational Rapid Developer Rational Functional Tester for Java and Web Rational Rose XDE Developer for Java Rational Robot Rational Rose XDE Developer for Visual Studio Rational PurifyPlus Rational Unified Process Rational ClearCase Rational ClearQuest Open Standards DB2 Lotus Tivoli WebSphere Rational Performance Tester Rational RequisitePro Rational TestManager Rational ProjectConsole IBM Services Partners Уровни зрелости процессов по модели CMM Процессы Уровни CMM 2 3 4 5 Управление требованиями + + + + Управление конфигурацией (SCM) + + + + Планирование проектов + + + + Отслеживание и контроль выполнения проекта + + + + Контроль качества + + + + Работа с субподрядчиками + + + + Управление интегрированным процессом создания ПО (ISM) + + + Проектирование ПО (Software Product Engineering) + + + Сосредоточение на процессах в организации + + + Обучение + + + Координация работ между группами (Intergroup Coordination) + + + Экспертные оценки (Peer Reviews) + + + Управление процессом на основе количественных оценок + + Управление качеством на основе количественных оценок + + Предотвращение ошибок + Управление изменениями в технологии создания ПО + Управление внедрением новых технологий + • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Процесс бизнес-моделирования • Описание бизнес процессов и структуры подразделений • Определение узких мест в бизнес процессах и определение потенциальных возможностей их усовершенствовании • Моделирование бизнес-процессов на языке UML • Инструмент поддержки процесса управления бизнесмоделирования – IBM Rational Rose Виды диаграмм Select Courses to Teach Student Professor Register for Courses Billing System Maintain Curriculum <<uses>> <<uses>> Maintain Student Information Registrar <<uses>> Registrar Validation Диаграмма сценариев использования Maintain Professor Information Диаграмма действий (activity) Desktop PC There may be multiple printers Printer EmployeeApplication There may be multiple Desktop PCs <<Company LAN>> <<Company LAN>> One PayrollControllerProcess Payroll Server Multiple TimecardControllerProcesses (one per user updating his/her timecard) One ProjectManagementDBAccess process One BankAccess process PayrollControllerProcess TimecardControllerProcess ProjectManagementDBAccess BankSystemAccess PrinterAccess <<Internet>> Bank System Диаграмма классов One PrinterAccess process <<Company LAN>> Project Management Database Диаграмма развертывания Проектирование ПС • Визуальное моделирование на UML • Прямой и обратный инжиниринг реляционных баз данных ведущих производителей: DB2, ORACLE, SQL Server, Sybase • Коллективная разработка моделей, включая их сравнение и интеграцию • Генерация кода для ведущих средств разработки приложений: Java, C++, С#, Visual Basic, Ada, С, XML Процесс реализации • Построение графических моделей объектноориентированного описания компонентов ПС на языке UML • Поддержка шаблонов проектирования (паттернов) • Поддержка прямого и обратного проектирования на Java и С# • Взаимодействие со средствами разработки WebSphere • Синхронизация между кодом и моделью в реальном масштабе времени разработки • Среда тестирования для каждого разработчика на его рабочем месте • Инструмент поддержки процесса реализации - IBM Rational XDE и RapidDeveloper Ускорение разработки в WebSphere • XDE – привычная для разработчика среда IBM WebSphere Application Developer Возможности XDE доступны как обычные функции IDE Нет необходимости в конвертировании • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Беды – Требования не всегда очевидны и имеют много источников – Требования не всегда удается ясно выразить словами; – Есть много типов требований на разных уровнях абстракции – Число требований неуправляемо, если ими не управлять – Требования имеют уникальные свойства. Например, они не являются ни одинаково важными, ни одинаково простыми для согласования – Есть много заинтересованных сторон, значит требования должны управляться смешанными группами людей – Требования изменяются Процесс управления требованиями • Ведение базы данных требований (репозитория) • Контроль выполнения требований • Создание и поддержание необходимых типов требований и их атрибутов • Автоматизация выделения и сбора требований в документах формата MS Word • Трассировка связей между требованиями • Управление метриками • Поддержка дискуссий • Автоматизированное взаимодействие с процессами бизнес-моделирования, реализации, управления изменениями и тестирования • Работа через Интернет • Инструмент поддержки процесса управления требованиями – IBM Rational RequisitePro Способы формирования требований – разметка требований в документах Word2000 (извлечение требований из документов) – непосредственный ввод требований и атрибутов в инструментальном средстве RequisitePro – формирование требований из Rose (установление связи между сценарием использования и требованием) Способы формирования требований Управление требованиями Разметка требований Формирование Use-case диаграмм Определение типов и атрибутов требований Трассировка требований Интеграция с WebSphere • Связь с RequisitePro – Объединяет точки зрения разработчиков, проектировщиков, тестировщиков – Позволяет отслеживать изменение требований Создание нового Use Case в модели XDE Его описание в RequisitePro Как сделать лучше? • Добиться одинакового понимания с заказчиками и пользователями того, что должно делать ПО • Дать разработчикам полное понимание требований к ПО • Определить границы ПО • Обеспечить базу для оценки стоимости и времени на разработку ПО • Обеспечить базу для планирования технического содержания итераций • Определить пользовательский интерфейс, базируясь на потребностях и целях пользователей Как сделать лучше? – проанализировать проблему • определить границы в рамках, которых решается проблема, и ограничения, накладываемые на ее решение – определить потребности заинтересованных лиц. – описать разрабатываемое ПО • результатом описания является ее описание на естественном языке и в графике с использованием моделей – управлять проектом • определить ресурсы для управления (время, люди, финансы) – управлять изменяющимися требованиями • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Беды • 53% проектов имеют перерасход средств более чем на 50% • 68% проектов имеют перерасход времени более чем на 50% • Более 31% проектов прекращены до их заверения • Только 16% проектов завершены в срок и в пределах запланированного бюджета • В крупных организациях только 9% проектов завершены в срок и в пределах запланированного бюджета! Эти ошибки в реализации проектов стоили компаниям около $145 000 000 в 1995 году. Правильная реализация процесса управления конфигурацией при разработке и сопровождении ПС позволяет значительно сократить такие потери Процесс управления конфигурациями • Версионное управление файлами и директориями • Обеспечение одновременного развития и сопровождения систем - поддержка параллельных изменений одних и тех же файлов • Специализированная обработка файлов различных типов • Поддержка интеграции и сборки системы • Средство управления конфигурациями компонент ПС в реальном масштабе времени • Поддержка взаимодействия регионально распределенных проектных команд • Возможность выполнения основных операций через Web • Инструмент поддержки процесса управления конфигурациями – IBM Rational ClearCase Параллельная разработка Параллельная разработка в жизни Main (он же поток интеграции) B_1.0.xxx Dev PR_1.0.xxx BF_1.0.xxx Доставка интегратором R_1.0.xxxx Private Private Доставка разработчиком Доставка разработчиком Доставка разработчиком PR_1.1.xxx Сравнение и слияние версий. Связь версий с запросами на изменение Слияние версий Сравнение версий Версия элемента Запросы на изменение «Тонкое» управление политикой доступа к элементам Настраиваемая форма автоматизированной отчетности Интеграция с WebSphere и .NET • Интегрированная поддержка ClearCase – Выполнение всех операций из среды – Версионный контроль высокого разрешения • класс, компонент, роль, объект, прецедент, пакет Объединение регионально удаленных групп MultiSite позволяет объединить регионально удаленные проектные группы в рамках одного проекта Преимущества • Сокращение времени на решение проблем с инсталляцией отдельных компонент ПО • Сокращение затрат на переделку ПО (как при разработке так и при сопровождении) • Сокращение затрат на диагностику сделанных изменений • Повышение качества процессов разработки и сопровождения • Улучшение взаимодействия с тестировщиками, постановщиками требований • Поддержка регионально удаленных команд разработчиков • Улучшение контроля над деятельностью разработчиков • Улучшение планирования Преимущества • Сокращение времени настройки рабочего пространства разработчика • Экономия времени за счет использования базовых версий и релизов • Сокращение времени разработки за счет ветвлений и слияний • Не тратится время на интеграцию рабочего пространства с новой базовой версией • Использование утилит автоматизации сборки сокращает время на сборку отдельных модулей или ПО в целом • Сокращение времени на обновление и синхронизацию рабочих материалов географически распределенных команд • Сокращение трудозатрат на решение проблем, связанных с неодинаковой работой ПО, полученных в результате разных сборок • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Процесс управления изменениями • Контролируемая обработка запросов (поручения, отчеты о выполнении, ошибки…) в соответствии с заранее определенным процессом • Работа с различными типами запросов • Настраиваемый набор атрибутов и состояний запросов на изменения • Формирование отчетов произвольного образца • Создание разнообразных графиков (текущее состояние, статистика, тенденции) • Автоматическое уведомление исполнителей о ходе обработки запросов по электронной почте • Контроль и внесение изменений через Интернет • Широкие возможности по адаптации • Инструмент поддержки процесса управления изменениями – IBM Rational ClearQuest Примеры схем прохождения запроса на изменение начало внести дефект( ИЗ ) Представлен Обозначение: РП - руководитель проекта Р - разработчик Т - тестировщик ИЗ - инициатор запроса назначить( РП ) Назначен принять( Р ) отказаться( Р ) Открыт реалировать( Р ) закрыть( РП ) Реализован тестировать( Т ) Протестирован закрыть( РП ) Закрыт конец вернуть( Т ) Управление изменениями Статистика по запросам на изменение Текущие отчеты позволяют определять состояние проекта Мастера быстро создают отчеты и графики Можно работать в Windows и/или Webинтерфейсе Менеджер проекта Статистика по запросам на изменение Преимущества • Четкое представление того кто и чем занимается в проекте • Полное документирование дефектов • Планирование деятельности каждого разработчика • Удобное взаимодействие между саппортом, тестировщиками и разработчиками • Неразрывная связь с требованиями • Графическое представление метрик проекта • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Беды • Тестирование сложный и ненормированный процесс • Типичное тестирование, как правило, производится без соответствующей методологической части и без использования программных средств для реализации правильного (планируемого) тестирования • Отсутствие формализованных требований • Не все релизы или\и билды проходят регрессионное тестирование Процесс тестирования • Автономное, сборочное и системное тестирование • Планирование и осуществление тестирования • Создание и воспроизведение многократно используемых тестовых скриптов • Итерационное регрессионное тестирование • Тестирование кода Java, С#, С++… • Поддержка ведущих средств разработки мировых производителей • Тестирование интернет-приложений (Java и Dynamic HTML) • Поддержка командной работы над проектом • Инструменты поддержки процесса тестирования – TestStudio, PurifyPlus Методика тестирования Автономное тестирование Разработчик Сборочное тестирование Специалист по комплексированию Системное тестирование Функциональное Нагрузочное Специалист по качеству Планирование, проектирование, выполнение и анализ хода тестирования Автономное тестирование Quantify Purify Quantify PureCoverage Запись скриптов, формирование отчетности и анализ тестов Robot TestManager TestManager Преимущество • Итерационный подход • Тестирование на ранних этапах разработки ПО • Снижение основных рисков заказчика, и разработчика • Экономию ресурсов за счет автоматизации регрессионного тестирования • Улучшение качества ПО за счет многократных проверок изменений • Улучшение качества тестирования за счет использования современных технологий • Снижаются основные риски и заказчика, и разработчика • Экономия ресурсов при повторном использовании регрессионных тестов • Улучшение качества системы при более частых проверках изменений • Правдивое воспроизведение загрузки системы при нагрузочных испытаниях • Улучшение качества тестирования при использовании современных технологий Преимущество 500 450 Количство тестов 400 350 300 250 200 150 100 50 0 2000 2001 2002 Год 2003 2004 • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Беды • Низкое качество выпускаемой документации • Сложно обеспечить актуализацию проектной документации • Приходится вести 2 комплекта документации (внутреннюю и внешнюю) Процесс документирования • Выпуск документации в соответствии с требованиями практически любых стандартов (ГОСТ 19, ГОСТ 34, ISO …) • Минимизация ручных операций • Работа на основе предопределенных шаблонов • Генерация документов в форматах MS Word и HTML • Повторное использования шаблонов • Инструмент поддержки процесса документирования – IBM Rational SoDA Сбор и публикация проектной документации Требования Проектная Документация MS Word Изменения Дефекты Планы Тесты WEB-сайт с проектной документацией Формирование шаблонов документов Формирование документов из репозитория в соответствии с шаблонами MS Word - SoDA Преимущества • • • • Минимизация ручных операций Контроль хода проекта по документации Гибкая адаптация под любые стандарты Повторное использование в других проектах • Разработка шаблонов автоматизированной отчетности в Rational SoDA • Обеспечение версионного сопровождения шаблонов и отчетов в Rational ClearCase • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Сбор и визуализация проектных метрик Поддержка всего жизненного цикла разработки и сопровождения ПО 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 • • • • • • • • • • • • Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов Основные преимущества технологии IBM Rational • Ориентация на коллективную разработку • Единая методология для поддержания всего жизненного цикла разработки программных систем • Итерационный подход • Адаптируемость процессов • Инструментальная поддержка • Поддержка территориально удаленных групп разработчиков • Удаленная работа и контроль состояния проекта через WEB • Глубокая интеграция инструментов IBM Rational со средствами разработки Rational в России • Motorola (СПб) • Петербургский государственный университет путей сообщения • ММВБ • ЦБРФ • Сбербанк (Москва) • Siemens • Северсталь • Спутник • Мурманское Морское Пароходство • Telma (Н. Новгород) • • • • • • • • • • • Computer Mechanics PriceWaterHouse Ваньеганнефть Восточно-сибирский государственный университет Парекс-Банк Люксофт Телесофт-Россия Терралинк Пилот Инист РАО ЕЭС Спасибо за внимание