Кілька місяців тому мені доручили вибрати інструмент для проектування та документації систем. У компанії, де я працюю, все це робилося у ворді та інших офісних програмах, а продукти, які компанія виробляє, ставали все більш складними, все більше людей брало участь у розробці та інше. Тому виникла потреба використовувати якийсь більш підходящий інструмент для роботи аналітиків, проектувальників та розробників. Поділюсь знахідками.

Після короткого ознайомлення з подібними інструментами були виділені 5, які оцінені більш детально. Оцінюючи, ми з колегою виділили близько 30 критеріїв, для об'єктивності оцінки. Критерії ці ми згрупували так:
- Проектування системи– чи дає інструмент достатньо функціональності для документації вимог, юс-кейсів, ГО проектування та інших UML діаграм. Чи в ньому є функціональність для створення залежності між об'єктами різних типів, можливість відстежувати зміни. Це обов'язковий критерій для інструменту.
- Експорт– інструмент повинен підтримувати зручний експорт артефактів, вироблених у ньому. Повинні бути доступні різні формати експорту – хоча б html та doc. Шаблони документів мають бути легко модифіковані. Це також обов'язковий критерій.
- Зручність користування.Інструмент повинен бути зручним, інтуїтивно зрозумілим, з простим інтерфейсом для функцій, що часто використовуються.
- Мінімізація рутини. Було б непогано, щоб інструмент робив деякі речі сам – наприклад, генерував тест-кейси, об'єктний дизайн із БД, може, шматки коду.

Отже, 5 інструментів та їх оцінка.
1. Case Complete– інструмент для запису вимог, створення юс-кейсів та зв'язків між ними. Зручний інтерфейс, експорт, але один серйозний мінус - далі юс-кейс ця штука не йде. Взагалі незрозуміло, як вона потрапила до нашого списку. 2 із 5.
2. Artiso Visual Case- перше, що впадає в око при використанні цього інструменту - дико незручний інтерфейс користувача. Щоб створити елементарний клас, мені знадобилося 5 хвилин. Крім того, в інструменті немає можливості пов'язувати об'єкти (як юс-кейс<->клас) та ін. 1 з 5.
3. Magic Draw– інструмент має дуже сильний бік для UML, але через це ставати трохи незручно. Ще, там немає зв'язку між різними об'єктами (як клас та діяльність тощо). 3 із 5.
4. Sparx Enterprise Architect– відповідає практично всім висунутим критеріям, що деякі часто використовувані функції кудись заховані. Напевно, якщо звикнути – гаразд. Ще, я не знайшла, як пов'язувати вимоги з об'єктами дизайну. Може, погано шукала. 4 із 5.
5. Sybase PowerDesigner– перше враження після відкриття програми – це зовсім інший рівень. Усі функції знаходяться саме там, де очікуєш їх знайти, і цей інструмент задовольнив усі 30 критеріїв описаних груп. Крім того, у PowerDesigner є купа дуже корисних функцій, які не потрапили до списку критеріїв – як, наприклад, оцінка зміни (impact), перевірка моделі, Repository та багато іншого. 5 із 5.

Ось сюди я виклала повне порівняння, якщо комусь цікаво.

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

Напевно, відразу запитайте, чому до списку не увійшов Rational Rose. Не люблю його! Він не гарний. І ще, не змогла знайти, де його легально завантажити. Але в принципі він добрий. Але PowerDesigner краще

Pacestar UML Diagrammer створює UML 2. ... Даний спеціалізований інструмент для малювання та дизайну допомагає вам використовувати найкращі аспекти UML, стандартизований процес обробки візуальних дизайнів без об'ємної методології проектів ... Програмаспрощує цей процес, тому ви можете стати більш продуктивним після невеликого тренування.

Cadifra UML Editor – це швидкий та легкий редактор UMLдіаграм для Windows 2000, XP та Vista. ... Має редактор стилів для встановлення шрифтів тексту сімейства UMLелементів. ... Створює високоякісні діаграми, реально проста у використанні програма. ... Може легко прикріплювати діаграми в Microsoft Word (та інших програмах).

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

Сервісна програма UML CASE також надає вам зручні UMLкерівництва, інтерактивні UMLдемонстрації та UMLпроекти. ... Visual Paradigm for UML– це професійний інструмент роботи з UML, який підтримує весь робочий цикл програми – аналіз орієнтований на об'єкти, орієнтований на об'єкти дизайн, конструкцію, тестування та розробка.

Спробуйте цю програмупрямо зараз і будьте впевнені в тому, що ви перевірили наш веб-сайт на наявність різних джерел по послідовним UMLдіаграм, підказок та трюків, знімків екрану та демонстрацій. ... Trace Modeler – це проста у використанні та зрозуміла програмаредагування UMLпослідовних діаграм.

XPArchitect – це CASE сервісна програмадля моделювання та екстремального програмування. ... Допоможе вам згенерувати UMLдіаграми швидко і легко. ... Ви зможете створювати використаннякасової діаграми, класові діаграми, діаграми діяльності, діаграми стану і діаграми компонентів, діаграми розміщення і т.д.

Програма EDraw – це нова діаграма UMLі програмадля малювання, для розробників програмта дизайнерів. ... Програмадозволяє вам малювати діаграму моделі uml, COM і OLE, діаграму потоку даних, діаграму SSADM, Nassi-Schneiderman, Booch OOD, ROOM, Yourdon та Coad діаграми та багато інших видів діаграм.

Дана програмавізьме на себе турботу про шари та форматування (за багатосторінковими, якщо потрібно) дозволяючи вам з легкістю створити діаграми коливання набагато швидше, ніж з програмамикреслення чи навіть UMLсервісними програмами. ... Sequence Diagram Editor спрощує створення та зміст UMLдіаграм коливання та звукових коливань.

Розробка програмного забезпечення(англ. software engineering, software development) — це рід діяльності (професія) та процес, спрямований на створення та підтримку працездатності, якості та надійності програмного забезпечення, використовуючи технології, методологію та практики з інформатики, управління проектами, математики, інженерії та інших галузей знання.

Системи керування версіями

Система керування версіями(Від англ. Version Control System або Revision Control System) - програмне забезпечення для полегшення роботи з інформацією, що змінюється. Система керування версіями дозволяє зберігати кілька версій одного і того ж документа, при необхідності, повертатися до більш ранніх версій, визначати, хто і коли зробив ту чи іншу зміну та багато іншого.

  • RCS – застаріла. Нащадок: CVS
  • CVS - застаріла. Нащадок: Subversion

Інструменти UML-моделювання (Розробка діаграм класів та ін.)

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

Безкоштовні програми

  • для C# і Java (проста та інтуїтивно зрозуміла програма, є русифікована версія)
  • Acceleo - заснована на Eclipse та EMF шаблонна система для генерації вихідного коду з UML моделей.
  • ArgoUML написано мовою Java
  • Astade - платформо-незалежний UML-засіб на основі wxWidgets.
  • ATLAS Transformation Language – QVT-інструмент, який здатний трансформувати UML моделі в інші моделі. Доступно з Eclipse GMT проект (Generative Modeling Tools).
  • BOUML - мультиплатформний UML 2.0 засіб, що генерує код C++/Java/IDL/PHP/Python. Дуже висока продуктивність (написано на C++, Qt). Ліцензія GNU GPL.
  • Dia : GTK+/GNOME засіб для побудови діаграм, який також підтримує UML (Ліцензія GNU GPL)
  • - GTK+/GNOME середовище моделювання UML 2.0, написане на Python
  • Kivio – частина проекту KOffice
  • NetBeans - з NetBeans IDE 5.5 Enterprise Pack
  • : програма для складання діаграм UML для KDE
  • Software Ideas Modeler: засіб моделювання UML, написаний на C#
  • : UML/MDA платформа для Microsoft Windows з відкритим вихідним кодом, випущена за модифікованою версією GNU GPL; написана в основному на Delphi
  • Rhapsody Modeler : безкоштовна версія Rhapsody для створення UML моделей для вбудованих систем реального часу
  • UML Pad – засіб моделювання UML, написаний на C++/wxWidgets (ліцензія GNU GPL)

Поширені комерційні системи

  • Gentleware Poseidon – зручний засіб моделювання, є русифікована версія
  • MagicDraw - є русифікована версія
  • Microsoft Visio – редактор діаграм для Windows
  • Sybase PowerDesigner – повнофункціональний інструментарій для створення бізнес-додатків.
  • Telelogic Rhapsody - середовище розробки на основі візуального моделювання для розробників вбудованих систем реального часу

Шаблони проектування

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

  • Ольга Дубина Огляд патернів проектування - Огляд кількох найбільш значних монографій, присвячених патернам проектування інформаційних систем.
  • Portland Pattern Repository - список шаблонів проектування на движку вікі
  • mgrand's book - сайт з описом великої кількості шаблонів проектування
  • Каталог шаблонів на сайті

Кілька місяців тому мені доручили вибрати інструмент для проектування та документації систем. У компанії, де я працюю, все це робилося у ворді та інших офісних програмах, а продукти, які компанія виробляє, ставали все більш складними, все більше людей брало участь у розробці та інше. Тому виникла потреба використовувати якийсь більш підходящий інструмент для роботи аналітиків, проектувальників та розробників. Поділюсь знахідками.

Після короткого ознайомлення з подібними інструментами були виділені 5, які оцінені більш детально. Оцінюючи, ми з колегою виділили близько 30 критеріїв, для об'єктивності оцінки. Критерії ці ми згрупували так:
- Проектування системи– чи дає інструмент достатньо функціональності для документації вимог, юс-кейсів, ГО проектування та інших UML діаграм. Чи в ньому є функціональність для створення залежності між об'єктами різних типів, можливість відстежувати зміни. Це обов'язковий критерій для інструменту.
- Експорт– інструмент повинен підтримувати зручний експорт артефактів, вироблених у ньому. Повинні бути доступні різні формати експорту – хоча б html та doc. Шаблони документів мають бути легко модифіковані. Це також обов'язковий критерій.
- Зручність користування.Інструмент повинен бути зручним, інтуїтивно зрозумілим, з простим інтерфейсом для функцій, що часто використовуються.
- Мінімізація рутини. Було б непогано, щоб інструмент робив деякі речі сам – наприклад, генерував тест-кейси, об'єктний дизайн із БД, може, шматки коду.

Отже, 5 інструментів та їх оцінка.
1. Case Complete– інструмент для запису вимог, створення юс-кейсів та зв'язків між ними. Зручний інтерфейс, експорт, але один серйозний мінус - далі юс-кейс ця штука не йде. Взагалі незрозуміло, як вона потрапила до нашого списку. 2 із 5.
2. Artiso Visual Case- перше, що впадає в око при використанні цього інструменту - дико незручний інтерфейс користувача. Щоб створити елементарний клас, мені знадобилося 5 хвилин. Крім того, в інструменті немає можливості пов'язувати об'єкти (як юс-кейс<->клас) та ін. 1 з 5.
3. Magic Draw– інструмент має дуже сильний бік для UML, але через це ставати трохи незручно. Ще, там немає зв'язку між різними об'єктами (як клас та діяльність тощо). 3 із 5.
4. Sparx Enterprise Architect– відповідає практично всім висунутим критеріям, що деякі часто використовувані функції кудись заховані. Напевно, якщо звикнути – гаразд. Ще, я не знайшла, як пов'язувати вимоги з об'єктами дизайну. Може, погано шукала. 4 із 5.
5. Sybase PowerDesigner– перше враження після відкриття програми – це зовсім інший рівень. Усі функції знаходяться саме там, де очікуєш їх знайти, і цей інструмент задовольнив усі 30 критеріїв описаних груп. Крім того, у PowerDesigner є купа дуже корисних функцій, які не потрапили до списку критеріїв – як, наприклад, оцінка зміни (impact), перевірка моделі, Repository та багато іншого. 5 із 5.

Ось сюди я виклала повне порівняння, якщо комусь цікаво.

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

Напевно, відразу запитайте, чому до списку не увійшов Rational Rose. Не люблю його! Він не гарний. І ще, не змогла знайти, де його легально завантажити. Але в принципі він добрий. Але PowerDesigner краще

Безкоштовна програма для побудови діаграм за допомогою блоків та зв'язків між ними. З її допомогою можна швидко створити якісну та красиву діаграму для представлення її на презентаціях, семінарах або для власного використання.

Установка редактора для побудови діаграм

Процес встановлення цілком стандартний. Після запуску вилученого з архіву інсталятора слідуємо підказкам Майстра установки. У двох перших вікнах натискаємо "Next", а в третьому - "Install".

Прийде трохи почекати, поки програма встановиться. У заключному вікні натискаємо "Finish".

При першому запуску програма привітає нас проханням підтримки розробника "хто чим може".

Якщо допомагати йому нічим не збираємося, знімаємо галочку, щоб це вікно більше не з'являлося і натискаємо "Continue".

Потім з'явиться вікно вибору мови програми. Вказуємо потрібну мову, наприклад, Російська (Росія) та натискаємо "Ок".

Нове вікно повідомить про необхідність перезапустити програму, щоб зміни набули чинності. Погоджуємось, натиснувши єдину кнопку "Добре".

Тут також залишаємо все за замовчуванням та натискаємо "Добре". І тепер нарешті завантажиться сама програма.

Інтерфейс Diagram Designer

У головному вікні редактора діаграм ми відразу зауважимо, що інтерфейс русифікований далеко не повністю. Насправді, потрібно неабияк пошукати, де ж тут російська мова:) Але це не завадить нам у вивченні програми, оскільки всі основні функції досить інтуїтивні.

Якщо придивитися, це вікно трохи нагадує текстовий редактор, так що освоїтися тут не складе особливих труднощів.

Саме робоче вікно складається із шести зон:

  1. У самому верху – текстове горизонтальне меню.
  2. Трохи нижче – основна панель інструментів (робота із файлами, копіювання, навігація, малювання тощо).
  3. Зліва – історія дій і за сумісництвом – список об'єктів.
  4. Центр – робочий лист, на якому ми і креслитимемо наші схеми.
  5. Справа – список готових шаблонів. Можна вибрати потрібну палітру шаблонів у списку, що випадає, або завантажити із зовнішнього файлу.
  6. Внизу – статусна панель, що відображає сторінку, шар та положення курсору.

Створення блоків

Розгляньмо роботу з програмою на конкретному прикладі. Допустимо, потрібно побудувати діаграму з центром, від якого йдуть пояснювальні записи.

Для центру найкраще підійде еліпс (овал). Перетягуємо його із шаблонів праворуч або натискаємо кнопку "Draw Ellipse" (Чортити еліпс) та малюємо вручну.

Якщо еліпс було взято з палітри шаблонів "Flowchart", то в ньому вже буде присутній текст. Якщо ні, його можна легко додати подвійним кліком лівої кнопки миші на еліпсі. Відкриється таке вікно редагування тексту.

Тег- Елемент розмітки, що задає властивості укладеного в нього тексту або іншого об'єкта.

Тут нарешті видно сліди деякої русифікації програми:) Дане вікно дозволяє досить гнучко (хоч і не дуже зручно) налаштувати оформлення тексту за допомогою спеціальних тегів.

Коли результат влаштовує нас, натискаємо "Добре", щоб підтвердити вибраний формат тексту або "Скасувати", щоб відмовитися від змін.

Також є варіант вставки тексту в еліпс за допомогою кнопки «Insert text» (Вставити текст) на панелі інструментів або перетягуванням із шаблону "Default" (За замовчуванням), але такий текст буде сам по собі і при переміщенні еліпса не переміщатиметься разом з ним .

За тим же принципом створимо ще кілька різних блоків навколо нашого еліпса і впишемо в них потрібний текст із бажаним оформленням (і не проґавимо можливості попіаритися:)

З'єднання блоків у діаграмі

Тепер нам треба якось зв'язати наші блоки разом. Для цього у нас є інструменти у лівій частині меню:

  1. Прямі лінії (кнопка Draw line).
  2. Прямі стрілки (кнопка Draw arrow).
  3. Конектори (стрілки, ламані під прямим кутом, кнопка Draw connector).
  4. Криві довільної форми (кнопка Draw curve).

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

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

Якщо потрібно, щоб кінці стрілки "прилипли" до блоків і завжди розтягувалися за ними, то причіплюємо їх до червоних хрестиків на межах блоків. Щоправда, цей фокус не працює для кривих ліній. У результаті, виходить щось таке.

Контекстне меню- Меню, що відноситься до вибраного елемента.

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

Крім цього, до будь-якої лінії можна додати текст, двічі клікнувши на неї лівою кнопкою миші.

Колірне оформлення блоків

Градієнт- плавне перетікання одного кольору до іншого.

Однак цього нам мало:) Тепер ми хочемо розфарбувати нашу схему.

Не питання, чи Diagram Designer дозволяє зробити і це. На панелі інструментів є кнопки для розфарбовування ліній, тексту та блоків у будь-які кольори за допомогою стандартної панелі Windows.

Для блоків є навіть розфарбовування градієнтом (на жаль, тільки в одному напрямку). Експериментуємо скільки душі завгодно!

Робота з шаблонами

UML(англ. Unified Modeling Language) – уніфікована мова моделювання для розробки програм.

Однак це ще не все. Як уже говорилося раніше, для побудови діаграм у Diagram Designer створено багато готових шаблонів.

За замовчуванням із програмою йдуть шаблони простих блоків (Default), символи комп'ютерних компонентів (Flowchart), радіоелектронних символів (Electronic Symbols), інтерфейсні шаблони (GUI design) та символи UML (UML Class Diagram).

Щоб поповнити цю бібліотеку новими палітрами шаблонів, заходимо на сайт розробників, шукаємо посилання "Template palettes" за якою переходимо до списку готових шаблонів і завантажуємо ті, що сподобалися собі на комп'ютер.

Потім, у вікні Diagram Designer натискаємо кнопку "Load template palette" (Завантажити палітру шаблонів), праворуч від списку шаблонів, що випадає.

У вікні знаходимо і відкриваємо збережені палітри.

Тепер можна прикрасити діаграму новими малюнками та символами із доданих палітр.

Вставка зображень

А якщо нам цього мало, то можна на фон поставити будь-яку картинку. Для цього немає спеціальної кнопки, тому доведеться звернутися до меню "Edit" - "Insert picture".

У вікні вибираємо будь-який графічний файл на своєму комп'ютері. Єдине "але" - картинка з'явиться поверх схеми, як новий шар.

Щоб це виправити, натискаємо на зображенні правою кнопкою миші і в контекстному меню вибираємо пункт "Send to back" (На задній план).

Ну от тепер можна милуватися результатом!

За великого бажання можна вставляти будь-які картинки в будь-якій кількості і як завгодно розміщувати їх на робочому полі.

Висновки

Побудова діаграм у Diagram Designer значно простіше та швидше, ніж якщо це робити вручну у не пристосованих для цього редакторах.

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

Радіоаматори гідно оцінять можливість у кілька кліків створювати принципові схеми радіо- та електрообладнання. А програмістів може залучити можливість швидко накидати схему алгоритму об'єктно-орієнтованих мов.

Що ще можна додати? Програма займає мало місця, не дуже засмічує реєстр (після її деінсталяції слід забрати лише два ключі реєстру пов'язаних з рідними розширеннями програми:) .ddtі .ddd).

Після встановлення її можна скопіювати на флешку і використовувати як портативний додаток.

І так! Трохи нижче можна пограти в кумедну флеш-гру в жанрі "квест", у якій голови персонажів дуже нагадують блоки діаграм:)

P.S. Дозволяється вільно копіювати та цитувати цю статтю за умови вказівки відкритого активного посилання на джерело та збереження авторства Руслана Богданова.