2011-12-06 13 views
4

私がしなければならないソフトウェア設計プロジェクトでは、フレームワークとしてEclipse Platformを選択しました。意味私は実装するために多くの拡張ポイントを持っています。UMLクラス図でEclipse拡張ポイントをモデル化する方法は?

しかし、私はUMLクラス図でこれらの拡張ポイントを指定することができません。では、クラスがクラス図の拡張ポイントに属しているという事実をどのようにモデル化しますか?

または、これを行うにはクラス図が間違った場所ですか?もしそうなら、実装する拡張ポイントを指定する最も良い場所はどこですか?

参考までに、私はPapyrusでUMLモデリングを行っています。私はすでにアプリケーションのプロトタイプを作っていますので、ダイアグラムを作成することです。センスの拡張機能で

答えて

1

eclipse拡張ポイントはインターフェイスのようなものです。実装する必要がある一連のプロパティを宣言します。

  1. ID
  2. アイコン
  3. クラス
  4. ファイル拡張子
  5. :たとえば、org.eclipse.ui.editors拡張ポイントは、それはあなたが提供する必要があり、この拡張ポイントを実装するために

    を宣言します投稿者

拡張ポイントはインタフェースでもオブジェクトでもないので、UMLでこれを説明する方法はありませんが、モデルにステレオタイプを追加することでモデリングできます。<<extension_point>>(ステレオタイプの詳細はhereを読むことができます)これらのすべての属性と必要な型(この例では、org.eclipse.ui.IEditorPartclassを除くすべての属性は文字列です)を持つダイアグラムにクラスを作成します(たとえばorg.eclipse.ui.editors)。

この後、別のステレオタイプ、たとえば<<extension_point_implementation>>とこのステレオタイプを持つ新しいクラスを作成できます。このクラスを<<extension_point>>クラスの実現リンクに接続し、すべての属性の値を実装している値に設定します。

セマンティクスが追加された新しいドメインを定義しているので、これは「純粋な」UMLではありませんが、これはあなたが望むものをモデル化するための理解しやすい方法だと思います。

0

は、インスタンスがクラスにあるものを拡張ポイントにある

乾杯。拡張ポイントは拡張の可能な属性を定義し、各拡張は拡張ポイントに従う具体的な属性を含む。

0

Javaコードを逆にしてメモを追加するだけです。それは仕事をするだろう。

+0

「Javaコードを逆にする」という意味が理解できません。あなたはすぐにそれを説明していただけますか?前もって感謝します! – user1083696

+0

他のプラグインのjarファイルを元に戻し、コードを逆にします。したがって、1つまたは複数のプロジェクトで構成された1つの大きなモデルが、現在は逆転されています。空のクラス図を作成してから、他のプラグインクラスを呼び出すクラスを同じ図の中にドラッグアンドドロップします。ステレオタイプとして「拡張ポイント」を持つ依存関係を作成します。 Job done :-) –

+0

また、メソッドをリバースすることもできます。また、Eclipseプロジェクトがあり、同じワークスペース内にある場合は、その逆もまたjarファイルや他のプロジェクトで何が起きているのかを確認するために移動します。シーケンス図が複数のプロジェクトレベルにあることを意味します。 –

2

Eclipseプラグインといえば、私はむしろクラス図よりもコンポーネント図を選択したいと思います。拡張ポイントをポートとしてモデル化し、それらのコントラクトをインターフェース(ロリポップ)としてモデル化することができます。

特殊なステレオタイプ(またはキーワード)を持つインターフェイスとして拡張ポイントを指定するクラスダイアグラムを使用することもできます。

拡張ポイントを実装するクラスに関しては、コンポーネントに依存関係を使用することも、(第2の解決策では)インタフェースを実現することもできます。

関連する問題