Добавлен: 08.07.2023
Просмотров: 57
Скачиваний: 2
Введение
Rational Unified Process (RUP)- это процесс разработки программного обеспечения. Его цель состоит в том, чтобы гарантировать высокое качество программного продукта, отвечающего потребностям конечных пользователей, в пределах предсказуемого графика и бюджета выполнения. RUP обеспечивает строгий подход к решению задач проектирования и ответственности разработчиков.
Rational Unified Process – это итеративный процесс (так называемая спиральная модель жизненного цикла разработки). Каждая итерация может приводить к созданию фрагмента разрабатываемой системы или новой версии и включает этапы выработки требований, анализа, проектирования, реализации и тестирования. Поскольку тестирование проводится на каждой итерации, риск снижается уже на начальных этапах жизненного цикла разработки.
Итеративный подход позволяет увеличивать понимание проблемы через последовательные усовершенствования и повышать эффективность проектных решений. Этот подход обеспечивает лучшую гибкость в учете новых требований или тактических изменений в деловых целях, и позволяет проектировщику заранее идентифицировать и разрешать риски.
Rational Unified Process – это управляемый процесс. Итеративный подход предполагает управление требованиями и управление изменениями, чтобы своевременно и по всем пунктам обеспечивать общее понимание ожидаемых функциональных возможностей, ожидаемый уровень качества, и гарантировать наилучшее управление связанными затратами и графиками выполнения.
Rational Unified Process заключается в создании и обслуживании моделей. RUP фокусирует внимание не на создании большого количества бумажных документов, а на развитии и эксплуатациb моделей - семантически богатых представлений программной системы при ее разработке.
Rational Unified Process концентрирует внимание на первоначальной разработке и компоновке устойчивой архитектуры программы, которая облегчает параллельную разработку, минимизирует переделки, увеличивает возможность многократного использования и надежность эксплуатации. Эта архитектура используется для планирования использования и управления развитием программных компонентов.
Действия при выполнении Rational Unified Process управляются прецедентами. Определение прецедентов и сценария управляет технологическим маршрутом от делового моделирования и требований до испытаний, и обеспечивают связанные и доступные для анализа маршруты разработки и поставки системы.
Rational Unified Process поддерживает объектно-ориентированную технологию. Объектно-ориентированные модели базируются на понятиях объектов, классов и зависимостей между ними. Эти модели, подобно многим другим техническим искусственным объектам (артефактам), используют унифицированный язык моделирования (UML) как общую систему обозначений.
Rational Unified Process поддерживает компонентно-ориентированное программирование. Компоненты - это нетривиальные модули или подсистемы, которые выполняют конкретную функцию и могут быть смонтированы в строго очерченной архитектуре, специальной или некоторой общедоступной инфраструктуре компонентов, типа Internet, CORBA, COM/DCOM, для которых появляется индустрия многократно используемых компонентов.
Rational Unified Process – это процесс с перестраиваемой конфигурацией. Rational Unified Process удовлетворяет и маленькие группы разработчиков, и большие организации. Rational Unified Process основан на простой и корректной архитектуре, которая обеспечивает общность для семейства процессов, и все же может быть адаптирована к конкретным ситуациям. RUP содержит рекомендации о том, как сконфигурировать процесс, чтобы удовлетворить потребности данной организации.
Rational Unified Process поощряет объективно осуществляемое управление качеством. Оценка качества всех действий и их участников, формируемая в процессе, использует объективные измерения и критерии.
Rational Unified Process поддерживается инструментальными средствами, которые автоматизируют большинство действий процесса. Инструментальные средства используются для создания и обслуживания различных артефактов - моделей в частности - процесса разработки программного обеспечения: визуального моделирования, программирования, испытаний и так далее. Инструментальные средства осуществляют информационную поддержку управления изменениями, которыми сопровождается каждая итерация.
Рассмотрим, как понимается в RUP процесс разработки программы. Процесс - частично упорядоченный набор шагов, которые нужно проделать для достижения цели; при разработке программного обеспечения цель состоит в формировании или расширении существующего программного изделия; при разработке процессов цель состоит в том, чтобы разработать или расширить процесс. Таким образом, процесс программирования - деловой процесс. Rational Unified Process представляет собой универсальный деловой процесс объектно-ориентированной разработки программного обеспечения. Он описывает семейство связанных процессов разработки программного обеспечения, совместно использующих общую структуру и имеющих общую архитектуру.
Структура жизненного цикла
Когда мы рассматриваем динамическую организацию процесса во времени, жизненный цикл программы разбивается на циклы, каждый из которых работает над новым поколением изделия. Rational Unified Process делит один цикл развития на четыре последовательных стадии:
- Начало
- Уточнение
- Конструирование
- Переход
Каждая стадия заканчивается четко определенной вехой – временной точкой, в которой должны быть принятыми некоторые проблемные решения, а поэтому ключевые цели должны быть достигнуты.
Стадии и главные вехи процесса.
Первый цикл выполнения этих четырёх стадий для данного изделия называют начальным циклом разработки. Если жизненный цикл изделия на этом не завершается, существующее изделие разовьётся в своём следующем поколении, повторив ту же последовательность стадий начала, уточнения, конструирования и перехода. Этот период называется "эволюцией". Циклы развития, которые следуют за начальным циклом развития, называются "эволюционными циклами".
Начальная стадия
На начальной стадии разработчик устанавливает деловые применения системы и определяет рамки проекта. Чтобы сделать это, нужно идентифицировать все внешние объекты, с которыми взаимодействует система (субъекты), и определить характер этого взаимодействия на высоком уровне. Эта работа включает идентификацию всех прецедентов и описание нескольких наиболее существенных. Деловое применение включает критерии успеха, оценку риска, оценку необходимых ресурсов и укрупненный план с указанием дат завершения главных этапов.
В конце начальной стадии разработчик исследует требования жизненного цикла проекта и решает, следует ли продолжать разработку.
Стадия уточнения
Цели стадии уточнения состоят в том, чтобы проанализировать прикладную область, создать нормальную архитектурную основу, разработать план проекта и устранить самые высокие элементы риска проекта. Архитектурные решения должны приниматься с пониманием целостной системы. Это подразумевает описание большинства прецедентов и рассмотрение дополнительных требований. Чтобы проверить архитектуру, нужно разработать систему, которая демонстрирует архитектурные решения и выполняет существенный прецедент.
В конце стадии уточнения разработчик детально исследует цели и контекст системы, архитектурные решения и способы разрешения главных рисков.
Стадия конструирования
В ходе стадии конструирования происходит итеративная разработка законченного изделия, которое готово к передаче его пользователям. Это подразумевает описание оставшихся прецедентов, изложение деталей конструкции, завершение выполнения и проверку программного обеспечения.
В конце стадии конструирования разработчик решает, все ли программное обеспечение, рабочие места и пользователи готовы и работоспособны.
Переходная стадия
В процессе переходной стадии разработчик передает программное обеспечение его пользователям. Как только изделие попадает в руки пользователей, часто возникают новые проблемы, которые требуют дополнительной разработки для корректировки системы, исправлению не обнаруженных ранее проблем или завершению реализации некоторых возможностей, которые, возможно, были отложены. Эта стадия обычно начинается с выпуска "бета-версии" системы.
В конце переходной стадии разработчик решает, были ли достигнуты цели жизненного цикла, и возможно, запускает другой цикл разработки. Это также та точка, в которой разработчик может проанализировать результаты и сделать выводы из некоторых уроков, полученных в процессе разработки проекта.
Решения, которые предлагает RUP для разработки программного обеспечения:
- Выпускать программное обеспечение, пользуясь принципом промышленного подхода. То есть так, как поступают любые заводы и фабрики: определяя стадии, потоки, уточняя обязанности каждого участника проекта. Именно промышленный подход позволит достаточно оперативно выпускать новые версии ПО, которые при этом будут надежными и качественными.
- Расширять кругозор специалистов для снятия барьеров. Ведь в подавляющем большинстве случаев специалисты из разных отделов просто говорят на разных языках. Соответственно, снятие языкового барьера должно вести к ускорению работы над программным обеспечением.
- Использовать итеративную разработку вместо каскадной, существующей в настоящее время. Принцип итерации заключается в повторяемости определённой последовательности процессов с целью доведения элемента до безошибочного состояния.
- Обязательное управление требованиями. Всем известно, что по ходу разработки в систему вносятся изменения (самой группой разработчиков или заказчиком – неважно). RUP предлагает мощную систему контроля управления требованиями: их обнаружение и документирование, поддержку соглашений между разработчиками и заказчиками.
- Полный контроль всего происходящего в проекте посредством создания специальных архивов.
- Унифицированный документооборот, приведенный в соответствие со всеми известными стандартами. Это значит, что каждый этап в разработке (начало, работа и завершение) сопровождаются унифицированными документами, которыми должен пользоваться каждый участник проекта.
- Использование визуального моделирования.
- Применение не только механизмов объектно-ориентированного программирования, но и объектно-ориентированного мышления.