前の関連記事:linuxBean14.04(54)EclipseのPapyrusプラグインでクラス図を描く
Unified Modeling Language (UML)にある資料を読んでもさっぱりわかりませんでしたが、Kirill Fakhroutdinov氏が作ってくれたUML Class Diagrams - Graphical Notation Referenceをみてクラス図への理解がぐっと深まりました。FirstStepsプロジェクトのクラス図の続きを描きます。
関連<Association>をクラス図に描く
Modelエクスプローラから、root model→FirstSteps→default package、と展開して下までみるとこのようになっていました。
前回は<Dependency>をClassDiagramにドロップしましたが、今回はその続きにある関連<Association>をドロップしてみます。
OperationはFilters設定で表示させ、表示位置は手動で調整しました。
HelloTextTableShapeクラスのattributeはJavaソースではprivateになっているのにVisibilityがpublicなっていた(なぜ?Modiscoのバグ?)のでPropertiesでprivateに変更しました。
XComponentContextへのAssociationのPropertiesはこのようになっています。
NavigableがTrueになっている方が矢頭がある方なのでXComponentContextインターフェイス側になります。
OwnerがClassifierになっており、対側のノードのHelloTextTableShpaeクラスのAttribute名xRemoteContextがNameに入りクラス図内ではそのVisibirityとともに表示されています。
OwnerがClassifierになっていることはOwnerになっている側のノードの型(=XComponentContext)の要素が対側のノード(=HelloTextTableShapeクラス)の要素(=xRemoteContext Attribute)になっていることを表します。
Aggregationはcompositeになっています。
XComponentContextがHelloTextTableShapeクラスに対してcompositeであるということは、ComponentContextがHelloTextTableShapeクラス内でBootstrapContext Serviceでインスタンス化されていることから判断されていると思われます。
XComponentContextインターフェイスはライブラリにあるものなのでXComponentCotext側からHelloTextTableShapeから呼び出されることはないのでNavigableはXComponentContext側のみtrueになっています。
XMultiComponentFactoryへのAssociationのPropertiesです。
XComponentContextインターフェイス相手のときと違ってAggregationはnoneになっています。
xRemoteContextと違ってxRemoteServiceManagerはxRemoteContextインスタンスから得られたものだからです。
FirstStepsプロジェクトのクラス図の要素をすべて描画する
一旦いままで描画したものをすべて消して一からModelエクスプローラから描き直します。
ClassDiagramで描いたものを消すときは消したいものを選択して右クリックしてDelete from diagramを使います。
Modelエクスプローラからdefault package内のものをすべて選択してClassDiagramにドロップしました。
結構何も反応がない時間が過ぎた後こんな風に出力されました。
何もないところで右クリック→Arrange All。
整列されましたがノードの文字も切れていますし、エッジも重なってとても見にくいです。
とりあえずattributeとoperationをすべて表示させてみます。
何もないところで右クリック→Select→All。
選択されたノードの一つ右クリック→Filters→Show/Hide Contents。
「Select All」をクリックして「OK」。(継承しているすべてのattributeとoperationが表示されます。)
さらに見にくくなったのでもう一度右クリック→Arrange All。
出力画像では単語が途切れていますが、画面上では途中で途切れることなく見えています。
ただエッジが重なって見にくい点は同じです。
Modelエクスプローラにあるエッジをすべて選択してClassDiagramにドロップできないか考えてみましたが、そういう方法はないようです。
参考にしたサイト
UML Class Diagrams - Graphical Notation Reference
クラス図表記の一覧。
0 件のコメント:
コメントを投稿