Предисловие
Часть I. Введение в Rational Unified Process
Глава 1. Введение в Rational Unified Process
Что такое Rational Unified Process?
RUP-подход
Базовые принципы подхода RUP
RUP и итеративная разработка
RUP - четко определенная технология программной инженерии
Динамическая структура Rational Unified Process
Статическая структура Rational Unified Process
RUP - настраиваемый технологический продукт
Средства конфигурирования и создания собственных процессов
Средства доставки
Кто использует продукт RUP
Глава 2. "Дух RUP" - путь к успеху
Начинайте вести наступление на главные риски раньше и ведите его непрерывно
Обеспечьте выполнение требований заказчиков
Сконцентрируйтесь на исполняемой программе
Приспосабливайтесь к изменениям с самого начала проекта
Закладывайте основу исполнимой архитектуры как можно раньше
Стройте систему из компонентов
Работайте вместе как одна команда
Сделайте качество образом жизни, а не запоздалой идеей
Резюме
Глава 3. Сравнение технологий: RUP, гибкие методы и тяжеловесные правительственные стандарты
Как мы можем сравнивать процессы?
Гибкая разработка: низкая формализованность, итеративные подходы
SEI CMM, SEI CMMI, ISO/IEC, DOD-STD, MIL-STD: тенденция к большей формализованности для большей предсказуемости
SEI CMM: средство оценки процессов
SEI CMMI: Средство оценки процессов
ISO/IEC 15504: Средство оценки процессов
DOS-STD и MIL-STD: высокоформализованные процессы
RUP: альтернативный подход с адаптируемым уровнем формализованности
Насколько все должно быть итеративным?
Сколько понадобится формальностей?
Какой вид конфигураций RUP соответствует нуждам вашего процесса?
Проект "Деймос": команда из одного человека
Проект "Ганимед": небольшой проект с плотным графиком
Проект "Марс": проект среднего размера без опыта итеративной разработки
Проект "Юпитер": большой распределенный проект
Глава 4. RUP для команды из одного человека: проект "Деймос"
Одиночный программный проект: проект "Деймос"
Первоначальная идея (вечер субботы)
Предложение (утро понедельника)
Концепция
План
Список рисков
Экономическое обоснование
Архитектура
Обязательства
Концепция (Этап второй)
План (Этап второй)
Список рисков (Этап второй)
Экономическое обоснование (Этап второй)
Работаем (вечер понедельника)
Поднажмем (вторник)
Больше прогресс, больше изменений (среда)
Почти закончил (четверг)
Бета-версия и выпуск
Часть II. Жизненный цикл проекта в Rational Unified Process
Глава 5. Через четыре фазы
Главное недопонимание
Никаких фиксированных рабочих процессов
Никаких "замороженных" артефактов
Типы проектов
Глава 6. Фаза Начало
Цели фазы Начало
Фаза Начало и итерации
Цель 1. Понять, что создавать
Создайте документ "Концепция"
Создайте широкое, но неглубокое описание системы
Устраивайте семинары или "мозговые штурмы"
Подробно опишите ключевые акторы и прецеденты использования
Цель 2. Выяснить ключевые функции системы
Цель 3. Выявить хотя бы одно возможное решение
Цель 4. Оценить стоимость, сроки и риски, связанные с проектом
Цель 5. Решить, какому процессу следовать и какие средства использовать
Рецензирование проекта. Веха целей жизненного цикла
Глава 7. Фаза Проектирование
Цели фазы Проектирование
Фаза Проектирование и итерации
Первая итерация Проектирования
Вторая итерация Проектирования
Цель 1. Более глубоко понять требования
Цель 2. Спроектировать, реализовать и проверить базовую архитектуру
Архитектура: определение подсистем, ключевых компонентов и их интерфейсов
Для формирования архитектуры используйте архитектурно-значимые прецеденты использования
Проектируйте критичные прецеденты использования
Объединяйте и собирайте готовые классы в пакеты
Обеспечьте архитектурный охват
Спроектируйте базу данных
Создайте схему параллельного выполнения, процессов, потоков и физического распределения
Определите архитектурные механизмы
Реализуйте критические сценарии
Интегрируйте компоненты
Тестируйте критические сценарии
Что осталось сделать?
Цель 3. Снизить существенные риски и дать более точную оценку сроков и стоимости
Планируйте проект и оценивайте затраты
Цель 4. Уточнить прецедент разработки и установить среду разработки
Рецензирование проекта. Веха архитектуры жизненного цикла
Глава 8. Фаза Построение
Цели фазы Построение
Фаза Построение и ее итерации
Цель 1. Снизить стоимость разработки и добиться определенного параллелизма
Организация вокруг архитектуры
Управление конфигурациями
Укрепляйте архитектуру
Обеспечьте непрерывный прогресс
Цель 2. Разработать итеративным методом окончательный продукт, готовый к представлению пользовательскому сообществу
Опишите оставшиеся Прецеденты использования и прочие требования
Завершайте проектирование
Спроектируйте базу данных
Реализуйте код и проводите модульное тестирование
Проводите интеграцию и системное тестирование
Раннее внедрение и обратная связь
Подготовка к выпуску бета-версии
Подготовка к окончательному развертыванию
Рецензирование проекта. Веха начальной функциональной готовности
Глава 9. Фаза Внедрение
Цели фазы Внедрение
Итерации внедрения и циклы разработки
Фаза Внедрение и итерации
Внедрение и циклы разработки
Цель 1. Провести бета-тестирование для проверки соответствия программы ожиданиям пользователей
Фиксирование, анализ и реализация запросов на изменения
Тестирование в фазе Внедрение
Выпуск исправлений (patches) и дополнительные бета-релизы
Показатели завершения фазы Внедрение
Цель 2. Научить пользователей и обслуживающий персонал работать самостоятельно
Цель 3. Подготовить площадку (сайт) для развертывания и конвертировать рабочие базы данных
Цель 4. Подготовить упаковку, тиражирование, маркетинговые материалы, выпуск в дистрибуцию и продажу
Упаковка, спецификация материалов и промышленное производство
Маркетинговые материалы
Цель 5. Достичь соглашения между заинтересованными лицами в том, что развертывание завершено
Приемочное тестирование продукта
Цель 6. Повысить производительность при выполнении будущих проектов на основе приобретенного опыта
Рецензирование проекта. Веха готового продукта
Часть III. Внедрение Rational Unified Process
Глава 10. Конфигурирование, реализация и модификация Rational Unified Process
Конфигурирование RUP
Создание Конфигурации процесса RUP
Создание Представлений процесса
Модификация шаблонов в RUP
Реализация RUP для проекта
Прецедент разработки в RUP
Web-сайт проекта
Альтернативы созданию Прецедента разработки
Модификация RUP
Rational Process Workbench и Process Engineering Process
Создание Тонких Плагинов RUP с помощью RUP Organizer
Создание Структурных Плагинов RUP с помощью RUP Modeler и RUP Organizer
Глава 11. Внедрение Rational Unified Process
Применение RUP в проекте
Предварительная оценка
Планирование
Выполнение
Оценка результатов
Применение RUP в малых проектах
Внедрение RUP в крупных организациях
Пилотные проекты
Проекты по разработке программного обеспечения
Типичная программа для умеренных изменений
Типичная программа для крупных изменений
Агрессивная программа для крупных изменений
Глава 12. Планирование итеративного проекта
Мотивировка
Ключевые концепции
Цикл
Фазы
Итерация
Выпуск
Ограничение времени
Общие и детальные планы: планы проекта и планы итераций
План проекта
План итерации
Создание плана проекта
Определение количества итераций
Продолжительность итераций
Цели итерации
Кадровое обеспечение проекта
Планирование итерации
Начало и Проектирование
Построение и Внедрение
Определение задач
Оценка
Техника итеративной оценки: широкополосная модификация дельфийского метода
Оптимизация плана проекта
Перекрывающиеся итерации
Параллельные итерации
Глава 13 Распространенные ошибки при внедрении и использовании RUP, и как их избежать
Ошибки при внедрении RUP
Внедрение слишком многого из того, что есть в RUP
Внедрение всего сразу, не постепенно
Отсутствие планирования при внедрении RUP
Отсутствие связи между совершенствованием процесса и экономическими результатами
Излишне детальная и слишком ранняя настройка RUP
Пустословие
Ошибки при управлении итеративной разработкой
Функциональная, специализированная организация
Отсутствие корректировки ожиданий заинтересованных лиц или использование старой схемы заключения контракта
Слишком большое число разработчиков в начале работы над проектом
Разрешение сначала легких проблем
Расширенная первая итерация
Использование перекрывающихся итераций
Слишком много изменений на поздних этапах проекта
Ошибки в анализе, архитектуре, проектировании и тестировании
Создание слишком большого числа прецедентов использования
Аналитический паралич
Включение в требования проектных решений
Отсутствие утверждения требований заинтересованными лицами
Подход "это сделано не у нас"
Завершение фазы Проектирование до достижения стабильного состояния архитектуры
Акцент на инспектировании, а не на исполняемой программе
Часть IV. Руководство по Rational Unified Process для различных ролей
Глава 14. Руководство по RUP для менеджера проекта
Миссия менеджера проекта
Сложная роль
Один человек или команда?
Управление проектом
Границы дисциплины "Управление проектом" в RUP
План разработки программного обеспечения
Итеративная разработка
Риски
Метрики
Задачи менеджера проекта
Начало нового проекта
Создание Плана разработки программного обеспечения
Запуск и завершение фаз и итераций
Слежение за проектом
Найдите свой путь в RUP
Ресурсы для менеджера проекта
Дополнительная литература
Ресурсы WEB
Учебные ресурсы
Глава 15. Руководство по RUP для аналитика
Миссия аналитика
С чего начинать?
Поймите, как должен работать бизнес
Поймите желания заинтересованных сторон
Создайте Концепцию
Формулировка проблемы
Список свойств
Разработка модели прецедентов использования и глоссария
Широкое, но неглубокое описание требований
Подробное описание акторов и прецедентов использования
Пример: спецификация прецедента использования для записи на курсы
Уточнение моделей
Разработка прототипов пользовательского интерфейса
Разработка раскадровок, или прототипов прецедентов использования
Фиксирование нефункциональных требований
Обновление и уточнение требований
Обеспечить выпуск и тестирование требований
Роль аналитика в Rational Unified Process
Ресурсы для аналитика
Дополнительная литература
Образовательные ресурсы
Глава 16. Руководство по RUP для архитектора
Миссия архитектора
На все руки мастер
Один человек или команда?
Центральная фигура общения
Архитектура
Определение архитектуры
Модели и представления
Описание архитектуры программы
Прототип исполняемой архитектуры
Архитектурные механизмы
Дополнительная архитектура
Развивающая роль
Что делают архитекторы?
Концепция
Ритм
Предвосхищение
Партнерство
Упрощение
Задачи архитектора в RUP
Работа с требованиями и управление проектом
Совершенствование архитектуры
Поддержание архитектурной целостности
Роль архитектора в RUP
Найдите свой путь в RUP
Ресурсы для архитектора
Дополнительная литература
Полезные Web-сайты
Глава 17. Руководство по RUP для разработчика
Миссия разработчика
Общий обзор задач разработчика
Понять требования и проектные ограничения
Спроектировать, реализовать и протестировать прецеденты использования и компоненты
Проектирование реализаций прецедентов использования и компонентов
Реализация прецедентов использования и компонентов
Тестирование при разработке
Проектирование, реализация и тестирование необходимых баз данных
Часто осуществлять интеграцию своего приложения с работой других разработчиков
Рабочие пространства Управления конфигурациями
Планирование интеграции
Создание выпуска
Лучшие практические методы разработчика
Тесты вперед
Переработка кода и проектирование
Использование шаблонов, архитектурных механизмов и других повторно используемых решений
Используйте простые решения
Парное программирование
Роль разработчика в Рациональном унифицированном процессе
Ресурсы для разработчиков
Рекомендуемая литература
Рекомендуемые учебные курсы
Глава 18. Руководство по RUP для тестировщика
Миссия тестировщика
Концепция качества продукта в RUP
Понятия о "достаточно хорошем"
Цена качества
А не поможет ли количественная оценка?
Соответствие стандартам
Что такое тестирование?
Философия тестирования в RUP
Миссия
Тестовые циклы
Дисциплина Тестирование в RUP
Роли, связанные с тестированием в RUP
Главные артефакты тестирования
Задачи тестировщика
Определение миссии тестирования
Проверка подхода к тестированию
Проверка стабильности выпуска ("тест на герметичность")
Тестирование и оценка
Достижение приемлемого результата миссии
Совершенствование средств и методов тестирования
Прочие задачи, связанные с тестированием
Ресурсы для тестировщиков
Дополнительная литература
Учебные курсы
Глоссарий
Литература