Transcript RUP

Повышение эффективности разработки прикладного ПО: интегрированная платформа для программирования и анализа производительности процесса разработки. Продукты семейства IBM Rational

Новичков Александр www.cmcons.com

[email protected]

• • • • • • • • • • • •

Введение Что такое 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 Student Information <> Registrar Validation

Диаграмма сценариев использования

Maintain Professor Information

Диаграмма действий (activity)

There may be multiple Desktop PCs Desktop PC EmployeeApplication <> <> Payroll Server Printer Payrol lControl lerProcess T imecardControllerProcess ProjectManagementDBAccess BankSystemAccess Pri nterAccess There may be multiple printers One PayrollControllerProcess Multiple TimecardControllerProcesses (one per user updating his/her timecard) One ProjectManagementDBAccess process One BankAccess process One PrinterAccess process <> <>

Диаграмма классов

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 • Ваньеганнефть • Восточно-сибирский государственный университет • Парекс-Банк • Люксофт • Телесофт-Россия • Терралинк • Пилот • Инист • РАО ЕЭС

Спасибо за внимание