Чи є діаграми класів UML адекватними для проектування систем JavaScript?


23

З огляду на те, що UML орієнтований на більш класичний підхід до орієнтації на об'єкти, чи все-таки корисний для надійного проектування систем JavaScript?

Одна з конкретних проблем, яку я бачу, полягає в тому, що діаграми класів насправді є структурним видом системи, а JavaScript керується більшою поведінкою, як ви можете з цим боротися?

Будь ласка, майте на увазі, що я не говорю тут про реальний світ; це модель для рішення, яке я намагаюся досягти.


7
Багато хто з нас скаже, що UML не є адекватним для розробки насправді нічого. Я вважаю, що єдине значення у всьому каноні UML - це діаграма послідовностей. Кожна інша схема UML, яку я намагався зрозуміти, краще пояснюється англійською мовою. Але це суб’єктивно для того, що це є.
Джиммі Хоффа

1
@JimmyHoffa Я згоден у значній мірі. Особливо з сучасними IDE програміст повинен легко мати можливість переглядати об'єктно-орієнтований вихідний код і отримувати ту саму інформацію (та більше), яку зображено на діаграмі класів. Я можу уявити, що діаграми класів були більш корисними до того, як були доступні сучасні IDE з підсвічуванням синтаксису та автоматично створеними контурами. Діаграми класів можуть підходити для зображення об'єктно-орієнтованих структур людям без досвіду програмування або у великому проекті, де розробник не має достатньо часу, щоб словесно пояснити дизайн усім.
Давид Качинський

1
@JimmyHoffa Чи рекомендуєте ви, будь ласка, кілька хороших книг чи ресурсів у системах, змодельованих за допомогою конкретних діаграм послідовності? Я читав Застосування UML та Шаблонів, і це дало дійсно хороші приклади форми, використовуючи UML практично, а не просто пояснюючи діаграми та синтаксис.
Songo

@JimmyHoffa: Я майже погоджуюся з вами, але не про діаграми послідовностей - тому що діаграма послідовностей IMHO не показує нічого, що не можна краще виразити за допомогою псевдо-коду. Єдиний тип діаграм, який для мене справді використовується, є діаграми потоку даних, і вони не є частиною UML.
Doc Brown

@DocBrown досить чесно, давайте просто погодимось, що слід уникати засвоєння UML, і, можливо, читання штрих-білих має замінити його можливо :)
Джиммі Хоффа

Відповіді:


18

Здається, ви запитуєте дві різні речі

  • Чи можна використовувати UML для зображення систем javascript?
  • Чи можна використовувати діаграми класів для зображення систем javascript?

Майте на увазі, що UML включає багато типів діаграм , зокрема гілки діаграм поведінки, включаючи діаграми послідовності та використання регістрів. Такі діаграми конкретно вирішують ваше занепокоєння щодо моделювання javascript як мови, керованої поведінкою.

Цілком можливо, що система JavaScript не використовує об'єктно-орієнтований дизайн. У такому випадку, як ви вказали, діаграми класів, ймовірно, не були б доречними. Однак, оскільки javascript підтримує об'єктно-орієнтований дизайн, діаграми класів можуть ефективно зображувати систему за допомогою javascript. Це дійсно залежить від того, як використовується JavaScript.


5

Ваша відповідь прихована у вашому запитанні:

Однією з конкретних проблем, яку я бачу, є те, що діаграми класів насправді є структурним видом системи, а JavaScript керується більшою поведінкою, як можна з цим боротися?

Перегляньте методи BDD (поведінка, орієнтована на поведінку) та виберіть інструменти, що відповідають вашим дизайнерським потребам.

Пов’язана дискусія, яка може вам виявитися корисною - Як писати історії / сценарії в BDD . І дуже вичерпна стаття журналу Code - « Поведінка, що розвивається»

ps: Однак UML represent general types of behavior, однак, це все ще може бути використане для моделювання вашого дизайну за допомогою правильного набору обраної категорії (наприклад, діаграма послідовностей).I would reference the Wikipedia and find the right UML diagram category to use.


Здається, це визначення проблеми або підхід до управління розвитком. Я фактично говорив про дизайн нижчого рівня, ближче до рішення.
Хуліо Родрігес

4

Була проведена робота з адаптації веб-додатків до UML, його називають розширенням WAE, і є книга під назвою «Створення веб-додатків за допомогою UML» Джима Коналлена, що детально пояснює це. Ви можете бачити змінні та функції JavaScript на діаграмі класів.

Чому я вважаю, що це найкращий варіант для моделювання веб-додатків? Тому що evrybody знає, як працює діаграма класів, і це найближче до неї. Це дуже легко зрозуміти, і програмісти лінуються читати документацію словами, але дивитись на схему не так складно;). Однак, якщо ви хочете побачити, що відбувається при виконанні, тоді слід шукати діаграму послідовностей, оскільки у веб-додатку файли колись динамічно генеруються.

Діаграма, згенерована пакетом node.js "wavi"


3

Також в UML є моделі поведінки, які можна використовувати для зображення поведінки системи, наприклад, послідовних діаграм або діаграм стану


1

Так, ви можете використовувати UML, найбільш помітні діаграми послідовності .

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

На основі свого досвіду проектування лицьових версій Javascript в UML я написав довідку на тему: Технічний дизайн в UML для кутових додатків .


0

Здається, ви можете використовувати UML для JavaScript, але це буде залежати від того, як ви збираєтеся підходити до своєї роботи.

Зокрема, JS / UML може автоматизувати документацію UML для JSDoc, Dojo, YUI.

Я б здогадався, що там є більше, але ще нічого не наткнувся.


як це відповідає на поставлене запитання?
гнат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.