1 of 21

Технология объектно-ориентированного проектирования ИС (разработки программного обеспечения) – Rational Unified Process (RUP)

2 of 21

Вопросы

  1. Сущность, особенности подхода, архитектура RUP
  2. Динамическая структура RUP, фазы разработки
  3. Статическая структура RUP, процессы разработки

3 of 21

Литература

  • Н.Н. Заботина. Проектирование информационных систем. – М.: Инфра-М, 2011
  • П. Кролл, Ф. Крачтен. Rational Unified Process – это легко. Руководство по RUP для практиков. – Кудиц-Образ, 2004.
  • Р. Деннис Гиббс. Управление проектами с помощью IBM Rational Unified Process Кудиц-Пресс, 2007.
  • Крачтен.Ф. Введение в Rational Unified Process. Изд. 2-е.- М.: Издательский дом "Вильямс", 2002. - 240 с.: ил.
  • Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения - Спб.: Питер, 2002. - 496 с.: ил.
  • Фаулер М., Скотт К. UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. – М.:Мир, 1999. – 191 с., ил.
  • А.М. Вендров. Проектирование программного обеспечения экономической информационной системы. – М.: Финансы и статистика, 2000.
  • Г.Н. Смирнова, А.А. Сорокин, Ю.Ф. Тельнов. Проектирование экономических информационных систем. - М.: Финансы и статистика, 2005

4 of 21

Технологии проектирования ИС (разработки ПО)

5 of 21

1. Понятие технологии проектирования ИС

  • Под проектированием ИС в широком смысле понимается процесс преобразования входной информации об объекте проектирования, о методах проектирования и об опыте проектирования объектов аналогичного назначения в соответствии с ГОСТом в проект ИС (действующую ИС и проектно-технологическую документацию).
  • В узком смысле – это вторая стадия ЖЦ ИС
  • Технология проектирования ИС – это совокупность методологии и средств проектирования ИС, а также методов и средств организации проектирования (управления процессом создания и модернизации проекта ИС)

6 of 21

Технологии проектирования ИС

7 of 21

Технологический процесс создания ИС

  • Технология проектирования определяет технологический процесс создания ИС, который характеризуется специфическим набором технологических операций (действий), их последовательностью, составом исполнителей, применяемых средств и ресурсов.
  • Технологические операции могут быть собственно проектировочными, которые формируют или модифицируют результаты проектирования, и оценочными, которые вырабатывают по установленным критериям оценки результатов проектирования.
  • Технологические процессы могут выполняться последовательно-параллельно

8 of 21

1. Общая характеристика Rational Unified Process - RUP�

  • Четко-определенная и структурированная технология программной инженерии, поддерживающая полный жизненный цикл проекта
  • Документированный набор наилучших практических методов для разработки ПО
  • Технологический продукт, настраиваемый на особенности автоматизации конкретного объекта.
  • Используется для успешной разработки больших и сложных программных систем

9 of 21

Базовые принципы RUP (до 2005 г.)

  1. Разрабатывайте итеративно - Controlled Iterative. Прототипная спиральная разработка, главное работающий правильно и эффективно программный код. Этот подход обеспечивает большую гибкость при изменяющихся требованиях и тактических коррективах в бизнес-целях, что позволяет более эффективно и заблаговременно идентифицировать и снижать проектные риски.
  2. Управляйте требованиями - Use-case driven. Обеспечьте выполнение требований заказчиков -документирование и строгое исполнение требований, между всеми участниками проекта обеспечивать единое понимание ожидаемых функциональных возможностей,
  3. Используйте компонентную архитектуру - Architecture Centric. Стройте систему из компонентов – использование повторно-используемых компонентов (объектно-ориентированный подход) Проектирование, реализация и тестирование архитектуры системы на ранних стадиях использование.
  4. Моделируйте визуально - Visual Modeling Techniques. Моделирование по методологии RUP является объектно-ориентированным и базируется на понятиях объектов, классов и зависимостей между ними с помощью унифицированного языка моделирования Unified Modelling Language™ (UML)
  5. Непрерывно проверяйте качество – Continuos Quality Management . Сделайте качество образом жизни, а не запоздалой идеей - Управление качеством (тестирование на всех фазах, а не только в конце развертывания). Оценка качества всех работ, выполняемых любыми участниками проекта, использует объективные метрики и критерии. Методология RUP создавалась с прицелом на поддержку управления качеством в рамках требований SEI CMM/CMMI.
  6. Управление изменениями с самого начала разработки и на всех фазах ЖЦ - Requirements Configuration and Change Management. Приспосабливайтесь к изменениям с самого начала проекта - Закладывание основу используемой архитектуры как можно раньше
  7. Работайте вместе как одна команда - Командный принцип разработки (архитекторы, аналитики, программисты, тестировщики в одном проекте)

10 of 21

Шесть лучших практик RUP (после 2005 г.)

  • Практика 1. Приспосабливайте процесс – Сильная формализация процесса проектирования связана с распределенностью и сложностью проекта:
    • Географическое распределение проектной команды
    • Географическое распределение большого числа пользователей
    • Сложная структура проекта, множество подрядчиков
    • Жесткое соответствие стандартам
    • Техническая сложность программного продукта
    • Завершающая стадия проекта (в начале проекта формализация меньшая)

При разработке нескольких проектов накопление проектных решений в корпоративной памяти ( репозитории)

  • Практика 2. Ищите компромисс для разных приоритетов заинтересованных лиц - избегать заказной разработки там, где возможно, использование коммерческих продуктов (Commercial Off-The-Shelf –COTS), сервисов и компонентов повторного использования: снижение затрат и рисков
  • Практика 3. Организуйте совместную работу команд как в организации –заказчике, так и в организации-подрядчике
  • Практика 4. Показывайте результат итеративно
    • Декомпозиция функциональности
    • Демонстрация прототипов
    • Создание прототипов на ранних стадиях
    • Результат итерации – новая версия
    • Измерение реального прогресса по итогам итераций

11 of 21

Шесть лучших практик RUP (после 2005 г.)

  • Практика 5. Увеличивайте уровень абстракции– объектно-ориентированная реализация. Компонентная технология: компонент – набор логически сгруппированных классов (задание интерфейсов – оперции+атрибуты):
    • Определение границ между компонентом и пользователями компонента
    • Высокий уровень абстракции
    • Повторное использование компонентов
    • Независимость поддержки компонентов
    • Поддержка работы рассредоточенных команд
  • Практика 6. Постоянно уделяйте внимание качеству – во всех дисциплинах (процессах) создания ИС
    • Дисциплина «Руководство проектом» - Планирование итерации включает формирование списка рисков, требований для реализации и внесения изменений; оценка результата итерации; анализ использования всех ресурсов
    • Дисциплина «Требования» – проверка качества документирования требований: соответствие реальным потребностям; доказуемость требований; понятность и доступность описания
    • Дисциплина «Анализ и проектирование» – проверка соответствия результатов проектирования (артефактов) требованиям; согласование уровня детализации; возможность преобразования проектных решений в исполняемый код
    • Дисциплина «Тестирование» - Тестирование в каждой итерации ближе к концу.

12 of 21

2. Архитектура технологии RUP

  • Два ортогональных измерения
  • Горизонтальное измерение представляет временное или динамическое измерение процесса:
    • Жизненный цикл, стадии (phases), итерации, контрольные точки (milestones), как процесс разработки развертывается во времени
  • Вертикальное измерение: статическая структура
    • Роли исполнителей (roles), Задачи (activity, действия, работы), результаты действий (artifacts), рабочие процессы (workflows) логически группируются в дисциплины (disciplines)

12

13 of 21

Архитектура RUP

14 of 21

Итерационность технологии объектно-ориентированного проектирования RUP (Rational Unified Process)

  • Итерационность технологии - последовательность работ в рамках утвержденного плана, приводящая к созданию работоспособного варианта ПО (релиза)
  • Итерация – это законченный цикл разработки, приводящий к выпуску некой сокращенной версии системы, которая расширяется от итерации к итерации, чтобы стать законченной системой
  • Итерация - реализация одного или нескольких функциональных требований (вариантов использования)
  • Каждая фаза содержит одну или более итераций, которые направлены на создание промежуточных компонентов системы, необходимых для достижения бизнес-целей данной фазы.
  • Каждая итерация связана с вариантом использования и включает полный цикл: анализ, проектирование, кодирование, тестирование и интеграцию

15 of 21

1). Начальная стадия (inception)

Цели:

  • Понять границы проекта, установить ключевые высокоуровневые требования к системе
  • Разработать экономическое обоснование (business case), его концепцию (vision), список рисков
  • Добиться соглашения между заинтересованными сторонами для дальнейшего продвижения

Веха целей жизненного цикла (LCO – Lifecycle Objective)

Результаты стадии:

    • Общее описание системы (основные требования)
    • Начальная диаграмма вариантов (прецедентов использования) – модель бизнес-процессов
    • Начальный проектный глоссарий
    • Начальный бизнес-план
    • План проекта, отражающий стадии и итерации
    • Один прототип или несколько

Итерации могут отсутствовать на этой фазе, если все понятно, или делаются итерации на «выброс», демонстрация возможностей

16 of 21

2). Стадия Уточнения (проектирования) - Elaboration

Цели:

  • Свести к минимуму технические риски
  • Создать базовую архитектуру (спроектировать, реализовать и протестировать ключевые компоненты, интерфейсы и архитектурные механизмы) функциональности
  • Понять затраты построения системы

Веха архитектуры жизненного цикла (LCA – Lifecycle Architecture)

Результаты

  • Детальные требования к ПО в виде диаграммы вариантов использования – 80 %
  • Перечень нефункциональных требований
  • Описание базовой архитектуры:
    • Модель предметной области (классов объектов)
    • Технологическая платформа, определяющая основные элементы технологии реализации и их взаимодействия
  • Работающий прототип (20 % вариантов использования)
  • Уточненный бизнес-план (затраты, риски)
  • План разработки всего проекта, отражающий итерации и критерии для каждой итерации (детально следующая итерация)

17 of 21

3). Стадия конструирования (реализации) - Construction

Цели:

  • Построить первую работающую версию продукта (несколько внутренних и альфа-релизов, выпуск бета-версии со средствами инсталляции, справочной документации, учебного материала)

Веха начальной функциональной готовности (IOC – Initial Operational Capability)

  • Результаты:
    • ПО, интегрированное на требуемых платформах (бета-версия)
    • Руководства пользователей
    • Описание текущей реализации
    • План развертывания

18 of 21

4). Стадия внедрения (ввода в действие) - Transition

Цели:

  • Создать окончательную версию продукта и отправить заказчику (тестирование продукта, настройка на эксплуатацию)

Веха готового продукта (PR – Product Release)

Результаты:

  • Бета тестирование
  • Параллельное функционирование с существующей системой
  • Конвертирование баз данных
  • Оптимизация производительности
  • Обучение пользователей и специалистов ИТ служб

19 of 21

3. Статическая структура RUP

  • Роли (Role) – категория исполнителей в процессе разработки рабочего продукта
  • Действие (Activity – деятельность, задача) исполнителей нацелены на получение результата (рабочего продукта)
  • Результат (Artifact) – конкретный артефакт (рабочий продукт): модель, документ, план, код и т.д.
  • Рабочий процесс
    • Основные процессы: построение бизнес-моделей, определение требований, анализ и проектирование, тестирование, развертывание
    • Поддерживающие процессы: управление конфигурацией и изменениями, управление проектом, управление инфраструктурой (средой)

20 of 21

Основные процессы

  • Business modeling (моделирование бизнес-процессов) - предполагает анализ бизнес-целей и бизнес-процессов, определение желаемых параметров системы и потребностей пользователей
  • Requirements (требования) - предполагает сбор требований и их анализ, управление требованиями, перевод требований в функциональные спецификации. Здесь начинается анализ прецедентов и построение use cases (вариантов использования) - формальное отображение требований пользователя в UML;
  • Analysis and design (анализ и проектирование) - предполагает перевод собранных требований в формализованную модель проекта. Результатом является описание системы на фазе проектирования и реализации - это документы уровня разработчиков системы. Язык формализации - Unified Modelling Language (UML). В процессе итеративной разработки выполнится эволюция: модель анализа -> модель проекта.
  • Implementation (реализация, кодирование) - предполагает собственно написание кода. Элементы кода в RUP уже созданы на этапе анализа и проектирования, так как средство реализации UML - Rational Software Architect - позволяет создавать элементы кода на нескольких языках программирования. Методология - объектно-ориентированное программирование;
  • Test (тестирование) - предполагает тестирование продукта на каждой итерации. Стоит специально отметить, что regression testing (возвратное тестирование) в данном случае должно содержать все актуальные тесты от предыдущей итерации и новые приемосдаточные тесты;
  • Deployment (внедрение) - предполагает установку продукта на полигоне заказчика, подготовку персонала, запуск системы плюс приемо-сдаточные испытания, подготовка стандартов развертывания продукта, передача материалов отделу продаж (действия опциональны в зависимости от специфики продукта).

21 of 21

Поддерживающие процессы

  • Configuration management (управление конфигурацией и изменениями) - процессы, направленные на управление версиями продукта, что предполагает контроль исходного кода (модели, исполняемых модулей, тестов, документации), контроль версий продукта, корпоративные стандарты разработки кода и документации, отслеживание изменений и ошибок (bug tracking); тесно связан с тестированием и поддержкой пользователей (customers support);
  • Project Management (управление проектом) - предполагает набор административных действий управления проектом согласно идеологии RUP, используются средства управления проектом Rational;
  • Environment (управление средой проектирования) - предполагает создание и поддержку средств анализа, проектирования, разработки, тестирования.