2016-11-08 20 views
0

私は自分の会社のための非常に大きなUMLドキュメントプロジェクトに取り組んでいます。私たちはEnterprise Architectの既存のプログラムをモデル化して、それをよりよく文書化しようとしています。アプリケーションのサイズのため、メインパッケージ(GUI、GPS、リムーバブルメディアなど)内の別々のパッケージにダイアグラムを分割することを選択しました。これは、各パーツの個々のクラス図に適しています。しかし、クラス図を各パッケージからマスターダイアグラムにドラッグアンドドロップして、それらがすべてシステムとしてどのように接続されているかを示したいと思います。大規模システム用のEnterprise Architectクラス図

リンクされた図をコードエンジニアリングのインポートと同様に自動的にリンクするスクリプト関数を記述できますか?私は、コードのインポートの最後のステップで、関連と一般化を追加することに気付きました。 SparxがコードをインポートするときにSparxがそれを行えるのであれば、後でマスター文書でリンクすることができるはずです。どのようにこれを達成するための任意のアイデア?

できない場合は、作成した図をコードエンジニアリングから既にパッケージに存在するものにリンクする方法はありますか?私は、クラス図を右クリックし、マスタードキュメントから「パッケージを見つける」ことがより詳細を見ることができると便利だと思います。

答えて

1

基本的には、概要図を作成し、ブラウザから関連する図をドラッグアンドドロップするだけです。これは、選択ボックスあなただけの最初の選択Diagram Frameを残す

enter image description here

を提供しています。 EAはダイアグラム名から提案された名前の新しいオブジェクトを作成します(それを残すことはできますが、必要があれば変更することもできます)。これで、ドラッグされた図が概要図の名前付きフレームの内側に表示されます。この図を拡大縮小することはできません。元の図形とその周りの枠のサイズになります。

注:上のダイアログでHyperlinkを使用して、図の間を素早くリンクしてナビゲーションを行うことができます。

スクリプト部分については、今すぐ私はメタ言語を使用しますが、あなたは好みの言語でそれを使う方法を推測するでしょう。最初に、概要図を探します。ブラウザで右クリックし、Copy/Copy Node GUID...を使用して、その図のguidに問い合わせることができます。今、そのIDであなたは(下記のguid例)でそれを見つけることができます。

overview = rep.GetDiagramByGUID("{A006B95E-1237-4778-A339-D1B407C6FD5C}") 

次はあなたが概要に表示したい単一図を配置することです。これはどのようにそれらを見つけるかはあなた次第です。最終的にリポジトリ内の特定の場所に配置されます。静的に最初のルートの最初のビューで最初のパッケージの最初の図をロードするには、あなたはおそらく、関連図を反復処理し、見つけるために、よりスマートな方法を使用します

model = repository.Models.GetAt(0) 
view = model.Packages.GetAt(0) 
package1 = view.Packages.GetAt(0) 
dia1 = package1.Diagrams.GetAt(0) 

を呼び出します。

ここでこれらの図オブジェクトを使用すると、ダイアグラムフレームを作成できます。これはパッケージのどこかに配置する必要があります。簡単にするために、私はpackage1を使用しますが、最終的に概要図のパッケージに入れます。

frame = package1.Elements.AddNew(dia1.Name, "UMLDiagram") 
frame.Update() 
sql = "UPDATE t_object SET PDATA1=" + str(dia1.DiagramID) + " WHERE Object_ID=" + str(overview.diagramID 
repository.Execute(sql) 

これはブードーです。 APIは、UMLDiagram要素を参照された図とリンクする方法を提供しません。したがって、これはデータベースに直接ポーズされなければなりません。最後に、新しく作成されたフレームのオブジェクトは概要図に配置することができる

diagramObj = overview.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","") 
diagramObj.ElementID = frame.ElementID 
diagramobj.Update() 

このEAので、Y軸の座標は、上部(L、R、Tから負に向かっていますbは、推測する)。 EAはフレームを指定されたサイズよりも小さい最小値に拡張します。

結果を確認するには、概要図を閉じる/開く必要があります。私はあなたに運動としてそれを残します:-)

関連する問題