Transcript RUP
Повышение эффективности разработки прикладного ПО: интегрированная платформа для программирования и анализа производительности процесса разработки. Продукты семейства IBM Rational
Новичков Александр www.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 настраиваемый процесс
•Может использоваться в целом или частично •Может быть настроен так, чтобы соответствовать существующему процессу •Может использоваться НЕМЕДЛЕННО после поставки
RUP Web Site Импорт Слияние Web Site Ваш проект Создание RUP Model Адаптация Model Ваши процессы
Количественные характеристики RUP
Процесс
Управление проектами Управление требованиями Управление инфраструктурой Анализ и проектирование Конфигурационное управление и управление изменениями Развертывание Разработка Бизнес-моделирование Тестирование
Итого
Работы 7 5 8 6 8 6 4 7 6
57
Задачи 30 13 16 16 19 Артефакты 15 14 Шаблоны документов 11 8 13 17 5 7 2 1 12 9 14 7
136
9 5 14 12
104
3 1 8 2
43
Разработка ПО – командная игра Аналитик
Pervasive and Embedded
WebSphere Business Integrator Modeler & Monitor Rational RequisitePro Архитектор Rational Rose XDE family Разработчик WebSphere Studio Family Rational Rapid Developer Rational Rose XDE Developer for Java Тестер Rational Functional Tester for Java and Web Rational Robot Rational Rose XDE Developer for Visual Studio Rational PurifyPlus Rational Performance Tester
IBM and 3 rd Party Servers
Менеджер
Rational Unified Process Rational ClearCase Rational ClearQuest
Rational RequisitePro Rational TestManager Rational ProjectConsole
DB2 Lotus Tivoli WebSphere Partners Microsoft Open Standards IBM Services
Уровни зрелости процессов по модели CMM
Процессы
Управление требованиями Управление конфигурацией (SCM) Планирование проектов Отслеживание и контроль выполнения проекта Контроль качества Работа с субподрядчиками Управление интегрированным процессом создания ПО (ISM) Проектирование ПО (Software Product Engineering) Сосредоточение на процессах в организации Обучение Координация работ между группами (Intergroup Coordination) Экспертные оценки (Peer Reviews) Управление процессом на основе количественных оценок Управление качеством на основе количественных оценок Предотвращение ошибок Управление изменениями в технологии создания ПО Управление внедрением новых технологий + + + + +
2 Уровни CMM 3 4 5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
• • • • • • • • • • • •
Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов
Процесс бизнес-моделирования
• Описание бизнес процессов и структуры подразделений • Определение узких мест в бизнес процессах и определение потенциальных возможностей их усовершенствовании • Моделирование бизнес-процессов на языке UML • Инструмент поддержки процесса управления бизнес моделирования – IBM Rational Rose
Виды диаграмм
Select Courses to Teach Student Professor Register for Courses Billing System Registrar Maintain Curriculum <
Диаграмма сценариев использования
Maintain Professor Information
Диаграмма действий (activity)
There may be multiple Desktop PCs Desktop PC EmployeeApplication <
Диаграмма классов
Bank System Project Management Database
Диаграмма развертывания
Проектирование ПС
• Визуальное моделирование на UML • Прямой и обратный инжиниринг реляционных баз данных ведущих производителей: DB2, ORACLE, SQL Server, Sybase • Коллективная разработка моделей, включая их сравнение и интеграцию • Генерация кода для ведущих средств разработки приложений: Java, C++, С#, Visual Basic, Ada, С, XML
Процесс реализации
• Построение графических моделей объектно ориентированного описания компонентов ПС на языке UML • Поддержка шаблонов проектирования (паттернов) • Поддержка прямого и обратного проектирования на Java и С# • Взаимодействие со средствами разработки WebSphere • Синхронизация между кодом и моделью в реальном масштабе времени разработки • Среда тестирования для каждого разработчика на его рабочем месте •
Инструмент поддержки процесса реализации XDE и RapidDeveloper IBM Rational
Ускорение разработки в 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 (он же поток интеграции) Private Доставка разработчиком Dev Доставка интегратором B_1.0.xxx
PR_1.0.xxx
BF_1.0.xxx
R_1.0.xxxx
Доставка разработчиком Доставка разработчиком PR_1.1.xxx
Private
Сравнение и слияние версий.
Связь версий с запросами на изменение Слияние версий Сравнение версий Версия элемента Запросы на изменение
«Тонкое» управление политикой доступа к элементам
Настраиваемая форма автоматизированной отчетности
Интеграция с WebSphere и .NET
•
Интегрированная поддержка ClearCase
– Выполнение всех операций из среды – Версионный контроль высокого разрешения • класс, компонент, роль, объект, прецедент, пакет
Объединение регионально удаленных групп MultiSite позволяет объединить регионально удаленные проектные группы в рамках одного проекта
Преимущества
• • • • • • • •
Сокращение времени на решение проблем с инсталляцией отдельных компонент ПО Сокращение затрат на переделку ПО (как при разработке так и при сопровождении) Сокращение затрат на диагностику сделанных изменений Повышение качества процессов разработки и сопровождения Улучшение взаимодействия с тестировщиками, постановщиками требований Поддержка регионально удаленных команд разработчиков Улучшение контроля над деятельностью разработчиков Улучшение планирования
Преимущества
• • • • • • •
Сокращение времени настройки рабочего пространства разработчика Экономия времени за счет использования базовых версий и релизов Сокращение времени разработки за счет ветвлений и слияний Не тратится время на интеграцию рабочего пространства с новой базовой версией Использование утилит автоматизации сборки сокращает время на сборку отдельных модулей или ПО в целом Сокращение времени на обновление и синхронизацию рабочих материалов географически распределенных команд Сокращение трудозатрат на решение проблем, связанных с неодинаковой работой ПО, полученных в результате разных сборок
• • • • • • • • • • • •
Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов
Процесс управления изменениями
• Контролируемая обработка запросов (поручения, отчеты о выполнении, ошибки…) в соответствии с заранее определенным процессом • Работа с различными типами запросов • Настраиваемый набор атрибутов и состояний запросов на изменения • Формирование отчетов произвольного образца • Создание разнообразных графиков (текущее состояние, статистика, тенденции) • Автоматическое уведомление исполнителей о ходе обработки запросов по электронной почте • Контроль и внесение изменений через Интернет • Широкие возможности по адаптации •
Инструмент поддержки процесса управления изменениями – IBM Rational ClearQuest
Примеры схем прохождения запроса на изменение
начало внести дефект( ИЗ ) Представлен Обозначение: РП - руководитель проекта Р - разработчик Т - тестировщик ИЗ - инициатор запроса назначить( РП ) Назначен отказаться( Р ) принять( Р ) Открыт закрыть( РП ) реалировать( Р ) Реализован тестировать( Т ) Протестирован закрыть( РП ) Закрыт вернуть( Т ) конец
Управление изменениями
Статистика по запросам на изменение
Текущие отчеты позволяют определять состояние проекта Мастера быстро создают отчеты и графики Можно работать в Windows и/или Web интерфейсе
Менеджер проекта
Статистика по запросам на изменение
Преимущества
• • • • • •
Четкое представление того кто и чем занимается в проекте Полное документирование дефектов Планирование деятельности каждого разработчика Удобное взаимодействие между саппортом, тестировщиками и разработчиками Неразрывная связь с требованиями Графическое представление метрик проекта
• • • • • • • • • • • •
Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов
Беды
• • • •
Тестирование сложный и ненормированный процесс Типичное тестирование, как правило, производится без соответствующей методологической части и без использования программных средств для реализации правильного (планируемого) тестирования Отсутствие формализованных требований Не все релизы или\и билды проходят регрессионное тестирование
Процесс тестирования
• Автономное, сборочное и системное тестирование • Планирование и осуществление тестирования • Создание и воспроизведение многократно используемых тестовых скриптов • Итерационное регрессионное тестирование • Тестирование кода Java, С#, С++… • Поддержка ведущих средств разработки мировых производителей • Тестирование интернет-приложений (Java и Dynamic HTML) • Поддержка командной работы над проектом •
Инструменты поддержки процесса тестирования – TestStudio, PurifyPlus
Методика тестирования Автономное тестирование Разработчик Сборочное тестирование Специалист по комплексированию Системное тестирование
Функциональное Нагрузочное
Специалист по качеству
Планирование, проектирование, выполнение и анализ хода тестирования
Quantify Автономное тестирование Quantify Purify 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 XDE Purify Plus
Сбор информации о производительности, стабильности и охвате при компонентном тестировании
RequisitePro
Запросы на изменение и расширения порождают новые требования Требования и сценарии использования – основа для создания планов тестирования и сценариев тестирования Хранение версий Сборка проекта Сопровождение
TestManage r ClearCase
Осуществляется связь между запросами на изменения и всеми версиями артефактов, находящихся в версионном хранилище
ClearQuest
Документирование всех дефектов на этапах тестирования и сопровождения Запись и воспроизведение скриптов тестирования по плану тестирования.
Сбор ошибок при функциональном и нагрузочном тестировании
Robot
Поддержка всего жизненного цикла разработки и сопровождения ПО Rose/XDE
Генерация объектного кода С++, Java.
Синхронизация кода и модели Осуществление тестирования на этапе разработки. Компонентное тестирование
XDE Разработка.
+Rational Unified Process
XDE Purify Plus
Получение сценариев использования.
Поддержка синхронизации
RequisitePro
Сбор информации о производительности, стабильности и охвате при компонентном тестировании
+
Rational Developer Network
Требования и сценарии использования – основа для создания планов тестирования и сценариев тестирования
TestManage
Сборка проекта Сопровождение Запросы на изменение и расширения порождают новые требования
+ SoDA
ClearCase r
Осуществляется связь между запросами на изменения и всеми версиями артефактов, находящихся в версионном хранилище Запись и воспроизведение скриптов тестирования по плану
+ ProcessWorkbench
тестирования.
Сбор ошибок при функциональном и нагрузочном тестировании
ClearQuest
Документирование всех дефектов на этапах тестирования и сопровождения
Robot
• • • • • • • • • • • •
Введение Что такое RUP Бизнес-моделирование Проектирование ПС Реализация Управление требованиями Управление конфигурациями Управление изменениями Тестирование Документирование Структура взаимодействия Подведение итогов
Основные преимущества технологии IBM Rational
• • • • • • • •
Ориентация на коллективную разработку Единая методология для поддержания всего жизненного цикла разработки программных систем Итерационный подход Адаптируемость процессов Инструментальная поддержка Поддержка территориально удаленных групп разработчиков Удаленная работа и контроль состояния проекта через WEB Глубокая интеграция инструментов IBM Rational со средствами разработки
Rational в России
• Motorola (СПб) • Петербургский государственный университет путей сообщения • ММВБ • ЦБРФ • Сбербанк (Москва) • Siemens • Северсталь • Спутник • Мурманское Морское Пароходство • Telma (Н. Новгород) • Computer Mechanics • PriceWaterHouse • Ваньеганнефть • Восточно-сибирский государственный университет • Парекс-Банк • Люксофт • Телесофт-Россия • Терралинк • Пилот • Инист • РАО ЕЭС