База знань

Раціональний уніфікований процес (RUP)

Раціональний уніфікований процес (Rational Unified Process, RUP) – одна з кращих методологій розробки програмного забезпечення. Грунтуючись на досвіді багатьох успішних програмних проектів, RUP дозволяє створювати складні програмні системи, грунтуючись на індустріальних методах розробки. Передумови для розробки RUP зародилися на початку 1980-х рр. в Rational Software corporation. На початку 2003 р Rational придбала IBM. Одним з основних стовпів, на які спирається RUP, є процес створення моделей за допомогою уніфікованої мови моделювання (UML).

RUP – одна з спіральних методологій розробки ПЗ. Методологія підтримується і розвивається компанією Rational Software. Як мова моделювання в загальній базі знань використовується мова Unified Modelling Language (UML). Ітераційна і інкрементна розробка програмного забезпечення в RUP передбачає поділ проекту на кілька проектів, які виконуються послідовно, і кожна ітерація розробки чітко визначена набором цілей, які повинні бути досягнуті в кінці ітерації. Кінцева ітерація передбачає, що набір цілей ітерації повинен в точності збігатися з набором цілей, зазначених замовником продукту, тобто всі вимоги повинні бути виконані.

Процес передбачає еволюціонування моделей; ітерація циклу розробки однозначно відповідає певній версії моделі програмного забезпечення. Кожна з ітерацій містить елементи управління життєвим циклом програмного забезпечення: аналіз і дизайн (моделювання), реалізація, інтегрування, тестування, впровадження. У цьому сенсі RUP є реалізацією спіральної моделі, хоча досить часто зображується у вигляді графіка-таблиці.

Результат пошуку зображень за запитом "rup"

На малюнку представлені два виміри: горизонтальна вісь представляє час і показує тимчасові аспекти життєвого циклу процесу; вертикальна вісь представляє дисципліни, які визначають фізичну структуру процесу. Видно, як з плином часу змінюються акценти в проекті. Наприклад, в ранніх ітераціях більше часу відводиться вимогам; в пізніх ітераціях більше часу відводиться реалізації. Горизонтальна вісь сформована з часових відрізків – ітерацій, кожна з яких є самостійним циклом розробки; мета циклу – принести в кінцевий продукт деяке, заздалегідь визначене,відчутне доопрацювання, корисне з точки зору зацікавлених осіб.

По осі часу життєвий цикл ділиться на чотири основні фази.

  1. Початок (Inception) – формування концепції проекту, розуміння того, що ми створюємо, уявлення про продукт (Vision), розробка бізнес-плану (business case), підготовка прототипу програми або часткового вирішення. Це фаза збору інформації та аналізу вимог, визначення способу проекту в цілому. Мета – отримати підтримку і фінансування. У кінцевій ітерації результат цього етапу – технічне завдання.
  2. Проектування, розробка (Elaboration) – уточнення плану, розуміння того, як ми це створюємо, проектування, планування необхідних дій і ресурсів, деталізація особливостей. Завершується етап визначенням архітектури, коли всі архітектурні рішення прийняті і ризики враховані. виконувана архітектура є працюючим програмним забезпеченням, яке демонструє реалізацію основних архітектурних рішень. У кінцевій ітерації це – технічний проект.
  3. Реалізація, створення системи (Construction) – етап розширення функціональності системи, закладеної в архітектурі. У кінцевій ітерації це – робочий проект.
  4. Впровадження, розгортання (Transition), створення кінцевої версії продукту. Фаза впровадження продукту, постачання товару конкретному користувачу (тиражування, доставка і навчання).

Вертикальна вісь складається з дисциплін, кожна з них може бути більш детально розписана з точки зору виконуваних завдань, відповідальних за них ролей, продуктів, які подаються завданням на вхід і випускаються в ході їх виконання і т.д.

З цієї осі розташовуються ключові дисципліни життєвого циклу RUP, які часто російською мовою називають процесами, хоча це не зовсім вірно з точки зору даної методології, підтримувані інструментальними засобами IBM (і / або третіх фірм).

  • Бізнес-аналіз та моделювання (Business modeling) забезпечує реалізацію принципів моделювання з метою вивчення бізнесу організації та накопичення знань про нього, оптимізації бізнес- процесів і прийняття рішення про їх часткову або повну автоматизацію.
  • Управління вимогами (Requirements) присвячено отриманню інформації від зацікавлених осіб та її перетворенню в набір вимог, що визначають зміст запропонованої системи і детально описують очікування від того, що система повинна робити.
  • Аналіз і проектування (Analysis and design) охоплює процедури перетворення вимог в проміжні описи (Моделі), що пояснюють, як ці вимоги повинні бути реалізовані.
  • Реалізація (Implementation) охоплює розробку коду, тестування на рівні розробників і інтеграцію компонентів, підсистем і всієї системи відповідно до встановлених специфікацій.
  • Тестування (Test) присвячено оцінці якості створюваного продукту.
  • Розгортання (Deployment) охоплює операції, що мають місце при передачі продуктів замовникам і забезпеченні доступності продукту кінцевим користувачам.
  • Конфігураційне управління та управління змінами (Configuration management) присвячено синхронізації проміжних і кінцевих продуктів і управління з їх розвитком в ході проекту і пошуком прихованих проблем.
  • Управління проектом (Management) присвячено плануванню проекту, управлінню ризиками, контролю ходу його виконання та безперервній оцінці ключових показників.
  • Управління середовищем (Environment) включає елементи формування середовища розробки інформаційної системи і підтримки проектної діяльності.

Залежно від специфіки проекту можуть бути використані будь-які засоби IBM Rational, а також третіх фірм.

У RUP рекомендовано дотримуватися 6 практик, що дозволяє успішно розробляти проект: ітеративна розробка; управління вимогами; використання модульних архітектур; візуальне моделювання; перевірка якості; відстеження змін.

Невід’ємну частину RUP складають артефакти (artefact), прецеденти (precedent) і ролі (role).

Артефакти(artefact)– це деякі продукти проекту, породжувані або використовуються в ньому при роботі над остаточним продуктом.

Прецеденти (precedent)– це послідовності дій, виконуваних системою для отримання спостережуваного результату. Фактично будь-який результат роботи окремих людей чи групи є артефактом, будь то документ аналізу, елемент моделі, файл коду, тестовий скрипт, опис помилки і т. д.

За створення того чи іншого виду артефактів відповідають певні фахівці. Таким чином, RUP чітко визначає обов’язки – ролі (role)– кожного члена групи розробки на тому чи іншому етапі, тобто коли і хто повинен створити той чи інший артефакт. Весь процес розробки програмної системи розглядається в RUP як процес створення артефактів – починаючи з первинних документів аналізу і закінчуючи виконуваними модулями, посібниками користувача і т.д.

Для комп’ютерної підтримки процесів RUP в IBM розроблений широкий набір інструментальних засобів:

  • Rational Rose – CASE – засіб візуального моделювання інформаційних систем, що має можливості генерування елементів коду. Спеціальна редакція продукту – Rational Rose.
  • RealTime – дозволяє на виході отримати виконуваний модуль.
  • Rational Requisite Pro – засіб управління вимогами, який дозволяє створювати, структурувати, встановлювати пріоритети, відстежувати, контролювати зміни вимог,що виникають на будь-якому етапі розробки компонентів додатку.
  • Rational ClearQuest – продукт для управління змінами та відстеження дефектів в проекті (bug tracking), тісно інтегрується із засобами тестування і управління вимогами і представляє собою єдине середовище для зв’язування всіх помилок і документів між собою.
  • Rational SoDA – продукт для автоматичного генерування проектної документації, що дозволяє встановити корпоративний стандарт на внутрішньофірмові документи, можливо також приведення документації до вже існуючих стандартів (ISO, CMM).
  • Rational Purify, Rational Quantify Rational PureCoverage, – засоби тестування і налагодження.
  • Rational Visual Quantify – засіб вимірювання характеристик для розробників додатків і компонентів, що програмують на C / C ++, Visual Basic і Java; допомагає визначати і усувати вузькі місця в продуктивності ПЗ.
  • Rational Visual PureCoverage – автоматично визначає області коду, які не схильні до тестування.
  • Rational ClearCase – продукт для управління конфігурацією програм (Rational’s Software Configuration Management, SCM), що дозволяє проводити версійність ,контроль всіх документів проекту. З його допомогою можна підтримувати кілька версій проектів одночасно, швидко переключаючись між ними. Rational Requisite Pro підтримує поновлення і відстежує зміни у вимогах для групи розробників;
  • SQA TeamTest – засіб автоматизації тестування;
  • Rational TestManager – система управління тестуванням,яка об’єднує всі пов’язані з тестуванням інструментальні засоби, артефакти, сценарії і дані;
  • Rational Robot – інструмент для створення, модифікації та автоматичного запуску тестів;
  • SiteLoad, SiteCheck -для тестування Web-сайтів на продуктивність і наявність непрацюючих посилань;
  • Rational PerformanceStudio – вимір і передбачення характеристик продуктивності систем.

Цей набір продуктів постійно вдосконалюється і поповнюється. Так, наприклад, недавній продукт IBM Rational Software Architect (RSA) є частиною IBM Software Development Platform – набору інструментів, що підтримують життєвий цикл розробки програмних систем. Продукт IBM Rational Software Architect призначений для побудови моделей  програмних систем, які розробляються,  з використанням уніфікованої мови моделювання UML 2.0, перш за все моделей архітектури  розроблюваних додатків. Проте, RSA об’єднує в собі функції таких програмних продуктів, як Rational Application Developer, Rational Web Developer і Rational Software Modeler, тим самим надаючи можливість архітекторам і аналітикам створювати різні уявлення розробляється інформаційної системи з використанням мови UML 2.0, а розробникам – виконувати розробку J2EE, XML, веб-сервісів і т.д.

Дотримуючись принципів RUP, Rational Software Architect дозволяє створювати необхідні моделі в рамках робочих процесів таких дисциплін, як:

  • бізнес-аналіз і моделювання (Business modeling);
  • управління вимогами (Requirements);
  • аналіз і проектування (Analysis and Design);
  • реалізація (Implementation).

Крім того, Rational Software Architect підтримує технологію розробки, керованої моделями (model-driven development, MDD), яка дозволяє моделювати програмне забезпечення на різних рівнях абстракції з можливістю трасуванню.

Набагато більше інформації на курсі базовий модуль тестування