Принципи проектування¶
Gaphor існує вже досить багато років. За ці роки ми (розробники Gaphor) дізналися кілька речей про те, як його створювати. Gaphor намагається бути легко доступним для користувачів-початківців, а також корисним інструментом для більш досвідчених користувачів.
Gaphor — не звичайний редактор. Це модельне середовище. Це означає, що існує мова, що лежить в основі моделей. Мови дотримуються правил, і Gaphor намагається дотримуватися цих правил.
Зручність використання дуже важлива. Якщо ви новачок у Gaphor, вам буде легко зорієнтуватися. Мінімальні знання UML повинні принаймні дозволити вам створити діаграму класів.
Керівництво¶
Щоб допомогти користувачам, Gaphor має надавати вказівки, де це можливо.
Допомога у відносинах¶
Діаграма має особливість: вона зафарбовує сірим кольором всі елементи, з якими зв’язок не може з’єднатися. Це допомагає вам вирішити, з чим може з’єднуватися зв’язок. Ви все ще можете змішувати різні елементи, але ми намагаємося зробити це якомога простіше, щоб створювати узгоджені моделі.
Тримайте модель в синхронізації¶
Важливою частиною моделювання є розробка системи в абстракціях і вміння пояснювати їх іншим. Оскільки системи стають складнішими, важливо, щоб дизайн (модель) був викладений у вигляді діаграм.
Gaphor докладає чимало зусиль, щоб підтримувати синхронізацію моделі з діаграмами. При цьому невикористовувані елементи можуть бути автоматично видалені з моделі, якщо вони більше не відображаються на жодній діаграмі.
З твоєї дороги¶
Під час моделювання ви повинні бути зайняті своєю проблемою або областю рішення, а не інструментом. Gaphor намагається не заважати вам, наскільки це можливо. Він не намагається надокучати вам повідомленнями про помилки, тому що модель не є «правильною».
Уникайте діалогів¶
Роблячи правильні речі та не заважаючи користувачам, Gaphor уникає використання діалогів, наскільки це можливо.
Gaphor має дозволити вам робити розумні речі (див. вище), а не виводити вас із потоку всілякими запитаннями.
Повідомляти про зміни¶
Коли Gaphor робить щось, що не видно безпосередньо, ви побачите сповіщення, наприклад, про те, що елемент непрямим чином видаляється з моделі. Це не буде переривати вас діалогами, а лише надасть невелике сповіщення в додатку. Якщо зміна небажана, натисніть «скасувати».
Збалансований¶
Хоча Gaphor реалізує досить багато моделі UML 2, він не є повним. Ми намагаємося знайти правильний баланс у функціях, щоб підходити як експертам, так і новачкам.
Безперервність¶
Створена модель повинна бути придатною для використання в майбутньому. Гафор це визнає. Ми дбаємо про сумісність.
Зворотна сумісність¶
Gaphor здатний завантажувати моделі, починаючи з Gaphor 1.0. Важливо, щоб інструмент завжди дозволяв завантажувати старіші моделі.
Мультиплатформенність¶
Ми доклали багато зусиль, щоб Gaphor працював на всіх основних платформах: Windows, macOS та Linux. Наявність Gaphor на всіх платформах дуже важлива, якщо модель потребує спільного використання. Було б жахливо, якби для того, щоб відкрити модель, вам потрібно було б запустити одну конкретну операційну систему.
Наразі ми не підтримуємо четверту основну платформу (веб). Власні програми забезпечують кращий досвід користувача (після встановлення). Але це може змінитися.
Взаємодія з користувачем¶
Gaphor спочатку написано на Linux. Вона використовує GTK як інструментарій інтерфейсу користувача. Це означає, що Gaphor дотримується [GNOME Human Interface Guidelines (HIG)] (https://developer.gnome.org/hig/). Gaphor також є багатоплатформною програмою. Ми намагаємося дотримуватися GNOME HIG, але намагаємося не вводити концепції, недоступні у Windows і macOS.
Компоненти інтерфейсу користувача не генеруються. Ми виявили, що генерація інтерфейсу користувача (як це роблять багато інструментів корпоративного моделювання) забезпечує жахливий користувацький досвід. Ми хочемо, щоб користувачі використовували Gaphor на регулярній основі, тому ми прагнемо, щоб він був інструментом, на який приємно дивитися і з яким легко працювати.
Що ще?¶
На технічному рівні також застосовуються такі принципи:
Ідемпотентність Дозволяє застосовувати ту саму операцію кілька разів. Це не повинно вплинути на результат.
**Gaphor - це користувацький додаток, керований подіями. Він реагує на події користувача. Додаток використовує внутрішню шину подій для розповсюдження подій серед зацікавлених осіб. Кожен повинен мати можливість прослуховувати події.