Програмування у картинках

Java, C++, Visual C++ - це чудові об'єктно-орієнтовані мови програмування, проте для написання великих і складних додатків потрібен досвід роботи з цими мовами.

Rational Rose дозволяє не тільки спроектувати та створити каркас програми (не надрукувавши жодного оператора), а й вносити суттєві зміни до ієрархії класів у ході розробки.

Технології

Rational Rose – це об'єктно-орієнтований засіб проектування, тобто реалізація CASE-технології. Поняття CASE-технологія розшифровується як Computer-Aided Software/System Engineering – розробка систем (або програмного забезпечення) за допомогою комп'ютера.

CASE-технологія – це сукупність методологій аналізу, проектування, розробки та супроводу складних систем програмного забезпечення, що підтримується комплексом взаємопов'язаних засобів автоматизації. Вона служить для проектування програми чи системи, абстрагуючись від її в коді. CASE-технологія дозволяє розділити створення програми чи системи на етапи: проектування, кодування, тестування, впровадження.

Для роботи з Rational Rose необхідно знати UML (Unified Modeling Language – уніфікована мова моделювання). UML – це графічна мова опису архітектури системи. У Rational Rose можна працювати з UML в одній із нотацій:

  • в Unified (уніфікованій);
  • у нотації Г. Буча (Booch);
  • у нотації ЗМТ (Object Model Template - шаблон об'єктної моделі).

Найбільш поширена Unified (уніфікована) нотація.

Програма на UML не кодується, а описується за допомогою діаграм, що дуже нагадують шкільну алгоритмічну мову. Діаграми UML складаються з об'єктіві зв'язків між ними (як на рис. 1) або з етапів процесу (як на рис. 2).

Rose

Мал. 1. Діаграма використання термометра

моделі

Мал. 2. Діаграма станів процесу порівняння двох змінних

Після проектування класів на діаграмах Rational Rose дає можливість прив'язати їх до конкретної мови програмування та створити на ньому програмний код. Rational Rose підтримує роботу з такими мовами: C++, Ada, Java/J2EE, Visual C++, Visual Basic та XML. Існує надбудова, що забезпечує інтеграцію Rational Rose із середовищем Delphi. Rational Rose розуміє моделі COM та CORBA, схеми Oracle.

Розробник

Сама назва Rational Rose перекладається з англійської або як "Раціональна троянда", або як "Підвищення раціональності", що пов'язано з неоднозначністю перекладу слова "Rose".

Rational Rose розроблена компанією Rational, яка заснована в 1981 році і займається створенням CASE-технологій. Програмні продукти фірми Rational призначені для аналізу вимог до системи, розробки програмного забезпечення, тестування, управління проектами та підтримки команди розробників.

Сторінка на сайті розробника присвячена Rational Rose. Попередньо зареєструвавшись, із сайту розробника можна завантажити безкоштовну 15-денну версію Rational Rose. Там же можна отримати документацію (англійською мовою).

Rational Rose існує для двох платформ – Windows (починаючи з 98) та UNIX (Solaris 2.6, 7 та 8, HP-UX 10.20, 11, 11.11 (11i), Linux).

Ті, кому не вистачає можливостей, що надаються Rational Rose, можуть додатково закачати та встановити різноманітні надбудови та утиліти до неї.

Rational Rose модель представлена ​​з чотирьох точок зору, або видів (View):

  • Use CaseView - визначає, як проект виглядає з погляду його використання. Хто і куди вводить дані, що після цього робить програма та кому передає результат. Приклад такої діаграми показано на рис. 1 і більшому кадрі браузера на рис. 3;
  • Logical View – тут описується логіка програми. Рекомендується приступати до роботи з цим аспектом моделі в останню чергу, коли вже визначено, що і в якій послідовності робитиме програма. Тут описуються класи, їх властивості та методи, відносини між класами. Приклад такої діаграми показано на рис. 4;
  • Component View - показує, які компоненти розбито проект, що вміщено у кожен із них. Тут проектуються модулі та залежності між ними, переходи від головної програми до підпрограм;
  • Deployment View – допомагає продумати розташування фізичних пристроїв та зв'язків між ними. У кожному з цих видів за умовчанням знаходиться головна діаграма - Main, в якій відображається відповідний аспект моделі. Можна не обмежуватись нею і створювати інші діаграми. Крім того, у видах можна створювати додаткові типи діаграм:
  • State diagram - діаграма станів та переходів між ними;
  • Activity diagram – приклад цієї діаграми наведено на рис. 2. Вона відображає стан системи та її об'єктів, виконувані дії та умовні переходи;
  • Iteraction diagram - діаграма взаємодії об'єктів.

Корисність

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

Rational Rose у цьомуплан відрізняється від мов програмування. "З кондачка" її не вивчиш - потрібен дуже серйозний стимул. Оскільки система комплексна і багатогранна – орієнтуватися у ній так само непросто, як у сучасній політиці.

Хоча, втім, не слід забувати, що робота програміста - це теж творчість, а тому випадки, схожі на осяяння, - не рідкість. Коли виявляється, що зміни моделі не потрібно переписувати її зверху до низу; коли розумієш, що можеш показати замовнику майбутній продукт із будь-яким ступенем деталізації; коли начальство багатозначно хмикає при погляді на стрункі лави класів та об'єктів – у такі моменти почуваєшся деміургом, творцем невеликого всесвіту. Що також не шкідливо для самолюбства.

При встановленні Rational Rose виявляє програмне забезпечення розробника та активно з ним взаємодіє. У Rational Rose 2001 реалізовано контроль версій за допомогою Microsoft Visual SourceSafe або вбудованого засобу Rational.

Любителям "відкритого програмування", та й тим, хто просто має бажання поділитися власним відкриттям, варто знати, що Rational Rose за допомогою засобу Rose Web Publisher може публікувати свої діаграми, щоб вони стали надбанням громадськості, на будь-якому веб-сервері. Або в локальній мережі – все залежить від налаштувань. На рис. 3 показано діаграму Use Case, викладену на веб-сервер на ім'я HAWK.

Rational Rose

Мал. 3. Публікація моделі Rational Rose у мережі

Але не все так безхмарно, як може здатися на перший погляд, - при створенні програми за допомогою Rational Rose доводиться довго налаштовувати середовище і вводити різноманітну інформацію про класи, що створюються. Але в майбутньому це окупається сторицею - зміни до моделі вносяться з легкістю, не порушуючи при цьому цілісності програмного забезпечення.продукту.

При створенні класу ім'я вводиться один раз, а потім вибирається зі списку доступних об'єктів. Це захищає від граматичних помилок. Коли програма складається з кількох класів, кожен із яких використовує довільну кількість інших, не заплутатися складно. Але на діаграмі Rational Rose добре видно, які сутності використовує кожен клас.

моделі

Мал. 4. Зв'язки між класами

На рис. 4 показано, що клас EnvironmentalController успадкований від Controller. Він використовує класи TemperatureSensor і pHSensor. Клас pHSensor включає класи pH і location, а клас TemperatureSensor - класи temp і location.

Після створення моделі програми Rational Rose залишається лише асоціювати її з мовою програмування, список яких знаходиться в меню Tools (Сервіс). Потім для створення програмного коду використовується пункт підменю Code Generation. Rational Rose може бути корисною не тільки розробникам. Системні аналітики та менеджери проектів цілком можуть застосовувати її для розуміння архітектури та вимог при створенні великих програм. З її допомогою керівник проекту легко може розділити роботу між командою програмістів так, щоб кожен не втручався в роботу інших, але бачив результати роботи товаришів.

І, тим не менш, не варто забувати, що творцем залишається людина, а комп'ютер і технології - це лише його вірні (хоча часом дуже примхливі!) помічники.