web-dev-qa-db-ja.com

UMLクラス図はJavaScriptシステムの設計に適していますか?

UMLがオブジェクト指向へのより古典的なアプローチを指向していることを考えると、JavaScriptシステムを設計するための信頼できる方法でUMLはまだ使用できますか?

私が見ることができる特定の問題の1つは、クラス図は実際にはシステムの構造的なビューであり、JavaScriptはより行動に基づいたものであるということです。どうすればそれに対処できますか?

ここでは実世界のドメインについて話しているのではないことに注意してください。それは私が達成しようとしているソリューションのモデルです。

23
Julio Rodrigues

あなたは2つの異なることを求めているように聞こえます

  • UMLを使用してJavaScriptシステムを表現できますか?
  • クラス図を利用してJavaScriptシステムを表現できますか?

UMLには 多くの種類の図 、特にシーケンス図やユースケース図などの動作図の分岐が含まれていることに注意してください。このような図は、JavaScriptを動作駆動型言語としてモデル化することの懸念に具体的に対応しています。

JavaScriptシステムがオブジェクト指向設計を使用していない可能性は十分にあります。そのような場合、指摘したように、クラス図はおそらく適切ではありません。ただし、javascriptはオブジェクト指向設計をサポートしているため、クラス図がjavascriptを使用してシステムを効果的に表現することが可能です。それは本当にJavaScriptがどのように使われているかに依存します。

18
David Kaczynski

あなたの答えはあなたの質問に隠されています:

私が見ることができる特定の問題の1つは、クラス図は実際にはシステムの構造的なビューであり、JavaScriptはより多くの動作に基づいているということです。どうすればそれに対処できますか?

BDD(Behavior-Driven development) テクニックを見て、設計のニーズに合ったツールを選択します。

見るのに役立つと思われる関連ディスカッション- BDDでストーリー/シナリオを記述する方法 。そして、コードマガジンからの非常に包括的な記事- 行動駆動型開発

ps:一般的に、UML represent general types of behavior、ただし、それでも、シーケンス図のように、選択したカテゴリの正しいセットを使用してデザインをモデル化するために使用できます。 I would reference the Wikipedia and find the right UML diagram category to use.

5
Yusubov

WebアプリケーションをUMLに適合させるために行われた作業はWAE拡張機能と呼ばれ、Jim ConallenによるBuilding Web Applications with UMLと呼ばれる本で詳細に説明されています。 JavaScriptの変数と関数はクラス図で見ることができます。

Webアプリケーションをモデル化するための最良のオプションを信じるのはなぜですか?なぜなら、evrybodyはクラス図がどのように機能するかを知っており、これがそれに最も近いからです。とても理解しやすく、プログラマーは言葉でドキュメントを読むのが面倒ですが、図を見るのはそれほど難しくありません;)ただし、実行時に何が起こるかを確認したい場合は、Webアプリケーションではファイルが動的に生成されることがあるので、シーケンス図を探す必要があります。

Diagram generated by node.js package "wavi"

4
Bakunin95

UMLには、シーケンス図や状態図のようなシステムの動作を表すために使用できる動作モデルもあります。

3
Dummy Derp

はい、UML、特にシーケンス図を使用できます。

クラス図の使用に関しては、オブジェクト指向の設計原則を使用してアプリケーションを設計するかどうかによって異なります。 JavaScript関数がたくさんある場合、クラス図はそれほど追加しません。 JavaScriptオブジェクトのプロトタイプを使用して一種のクラスをシミュレートする場合、これらの図は役に立ちます。

UMLでのJavascriptフロントエンドの設計における私の経験に基づいて、このテーマに関するホワイトペーパーを書きました: Angularアプリケーション用のUMLの技術設計

1

JavaScriptにUMLを使用できるようですが、作業への取り組み方によって異なります。

具体的には JS/UML は、JSDoc、Dojo、YUIのUMLドキュメントを自動化できます。

まだまだあると思いますが、まだ他には何も見つかりませんでした。

0
knguyeniii