ログイン
検索
メインメニュー
開発者ブログ
ChangeVisionメンバーズ分布マップ
フォーラム一覧   -   トピック一覧
   旧JUDE/Community, Professionalベータ版へのご意見、ご感想
     [Pro 5.0β] JUDE APIの機能について
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
miyazaki
投稿日時: 2007-5-16 11:13
新米
登録日: 2007-5-11
居住地:
投稿: 9
Re: [Pro 5.0β] JUDE APIの機能について
Kotaさん

早速のご回答、有り難うございます。

ノートの情報を取得できました。
有り難うございました。

また、宜しくお願い致します。
Kota
投稿日時: 2007-5-16 9:57
開発者
登録日: 2006-5-9
居住地:
投稿: 151
Re: [Pro 5.0β] JUDE APIの機能について
引用:

[デシジョンノード]にアンカーで付加した[ノート]オブジェクトの情報を
取得することは、可能でしょうか?
条件分岐をUML2.0からの「デシジョン入力<<decision Input>>」の表記方法で
記述した場合の、条件を取得したいのですが。


可能です。
モデルのインターフェースIElementから
getComments()メソッドで
コメントの配列(IComment[])が取得できます。

そのほかにも質問があれば、また気軽に聞いてくださいね。
miyazaki
投稿日時: 2007-5-15 18:07
新米
登録日: 2007-5-11
居住地:
投稿: 9
Re: [Pro 5.0β] JUDE APIの機能について
zhouyiさん

丁寧で分かり易いご回答、有り難うございました。

ご提示頂いたサンプルで、アクティビティ図を読み込む事が出来ました。

また、1点追加の質問をさせて頂きたいのですが、

[デシジョンノード]にアンカーで付加した[ノート]オブジェクトの情報を
取得することは、可能でしょうか?

条件分岐をUML2.0からの「デシジョン入力<<decision Input>>」の表記方法で
記述した場合の、条件を取得したいのですが。

宜しくお願い致します。


zhouyi
投稿日時: 2007-5-14 17:17
開発者
登録日: 2006-5-9
居住地: 福井
投稿: 47
Re: [Pro 5.0β] JUDE APIの機能について
ゲストの「開発者」さんからの投稿です。
---

JUDEのご利用ありがとうございます。
ご質問について回答させていただきます。

[質問1]
アクティビティ図を読み込みたいのですが、
5.0βでは、まだ公開されていないのでしょうか?

[回答]
アクティビティ図を読み込むことができます。

アクティビティ図の取得

public List getActivityDiagram(IPackage iPackage) {
    List activityDiagrams = new ArrayList();
    
    IDiagram[] dgms = iPackage.getDiagrams();
    for (int i = 0; i < dgms.length; i++) {
        IDiagram dgm = dgms[i];
        if (dgm instanceof IActivityDiagram 
                && !((IActivityDiagram )dgm).isFlowChart()) {
               activityDiagrams.add(dgm);
        }
    }
    return activityDiagrams;
}

パーティション情報の取得
アクティビティ(IActivity)のメソッドgetPartitions()を用いることによって、
パーティション(IPartition)の配列を取得できます。
アクティビティ(IActivity)のメソッドgetSubPartition()とgetSuperParition()を用いることによって、
パーティション(IPartition)の階層を取得できます。
例えば、Partition0とPartition1の情報は、図の様になります。


制御フロー情報の取得
アクティビティ(IActivity)のメソッドgetFlows()を用いることによって、
制御フロー(IFlow)の配列を取得できます。
アクティビティノード(IActivityNode)のメソッドgetIncomings()とgetOutgoings()を用いることによって
アクションに関連する制御フローを取得できます。
例えば、二つの制御フローの情報は、図の様になります。

アクションや開始ノードなどの情報の取得
アクティビティ(IActivity)のメソッドgetActivityNode()を用いることによって、
アクティビティノード(IActivityNode)の配列を取得できます。
さらに、パーティション(IPartition)のメソッドgetActivityNode()を用いることによって
パーティションに含まれるアクションを取得できます。
例えば、action0と開始ノードの情報は、図の様になります。



[質問2]
5.0で次の機能は対応されますでしょうか?
ハイパーリンク情報の取得

[回答]
ハイパーリンクの情報を取得することができます。

ハイパーリンクの情報は、内部ではタグ付き値として保持しています。
タグ付き値にはITaggedValueを通してアクセスできます。
タグ付き値のキーはハイパーリンクが"jude.hyperlink"となっておりますので、
以下のコードのように取得することが可能です。


private static final String KEY_HYPERLINK = "jude.hyperlink";

private List getHyperlinkStrings(INamedElement element) {
    List hyperlinkStrings = new ArrayList();

    ITaggedValue[] tvs = element.getTaggedValues();
    for (int i = 0; i < tvs.length; i++) {
        ITaggedValue tv = tvs[i];
        if (KEY_HYPERLINK.equals(tv.getKey())) {
            hyperlinkStrings.add(tv.getValue());
        }
    }
    return hyperlinkStrings;
}


以下の例のように、取得した文字列にはハイパーリンクの種類、名前、パス、
コメントが格納されています。ハイパーリンクの種類は
ファイルが"file",URLが"url,モデルが"model"となっております。モデルの場合、
nameがモデルのidで,IElementImpのgetId()によって取得することも可能です。

ハイパーリンク文字列の例
type=file,name=jude.log,path=C:/Documents and Settings,comment= Target is a file
type=url,name=http://www.change-vision.com,path=http://,comment= Target is a web page
type=model,name=9a1411-1112fec29a5-0804d01aa6c5fb9fe2aab956b4ca593a,path=,comment= Target is a Jude model

[質問3]
5.0で次の機能は対応されますでしょうか?
2.フローチャートの基本要素オブジェクトの取得
 (判断、ループ開始・終了etc.)

[回答]
フローチャートの基本要素オブジェクトを取得することができます。
JUDEはフローチャートをアクティビティ図の一系統に考えています。
アクションにステレオタイプを付加することで、基本要素オブジェクト
を実現しています。

フローチャート図の取得

public List getFlowCharts(IPackage iPackage) {
    List flowCharts = new ArrayList();
    
    IDiagram[] dgms = iPackage.getDiagrams();
    for (int i = 0; i < dgms.length; i++) {
        IDiagram dgm = dgms[i];
        if (dgm instanceof IActivityDiagram 
                && ((IActivityDiagram )dgm).isFlowChart()) {
            flowCharts.add(dgm);
        }
    }
    return flowCharts ;
}


ループ開始基本要素の判断


private static final String LOOP_START_ELEMENT = "loop_start";

public List getLoopStartElements(IActivityDiagram iActivityDiagram) {
   List loopStartElements = new ArrayList();

   IActivity iActivity = iActivityDiagram.getActivity();
   IActivityNode[] activityNodes = iActivity.getActivityNodes();
   for (int i = 0; i < activityNodes.length; i++) {
        IActivityNode node = activityNodes[i];
        String[] stereotypes = node.getStereotypes();
        for (int j = 0; j < stereotypes.length; j++) {
           if (LOOP_START_ELEMENT.equals(stereotypes[j])) {
               loopStartElements.add(node);
               break;
           }
        }
    }
    return loopStartElements;
}


基本要素オブジェクトのステレオタイプ一覧
処理1 <--- 標準アイコンの要素にステレオタイプを付加しません。
処理2(flow_process)
定義済処理 (predefined_process)
手作業 (hand_work)
準備 (preparation)
サーバー(server)
端末(machine)
データ(data)
記憶データ(stored_data)
内部記憶(internal_storage)
順次アクセス(sequential_storage)
ディスク1(disk)
ディスク2(database)
文書(document)
手操作入力(hand_inputting)
表示(display)
判断(judgement)
ループ開始(loop_start)
ループ終了(loop_end)
ページ内結合子(internal_connector)
ページ外結合子(external_connector)

以上の情報のほかに、複合フラグメントなどの取得方法も
Pro5.0正式版のAPIユーザガイドに反映させていただきます。

今後もJUDEをよろしくお願い致します。
ゲスト
投稿日時: 2007-5-11 22:50
Re: [Pro 5.0β] JUDE APIの機能について
ゲストの「とおりすがり」さんからの投稿です。
---

JUDE にこだわらなければならない理由がなければ、
他の同じ価格帯のUML モデリングツールで、
希望のAPI 持っているのありますよー
miyazaki
投稿日時: 2007-5-11 16:04
新米
登録日: 2007-5-11
居住地:
投稿: 9
[Pro 5.0β] JUDE APIの機能について
宮崎です。こんにちは。

アクティビティ図を読み込みたいのですが、
5.0βでは、まだ公開されていないのでしょうか?
どうもクラスの情報しか取得できません・・・
もし可能であれば、サンプルソースを頂けないでしょうか。


また、5.0で次の機能は対応されますでしょうか?

1.ハイパーリンク情報の取得

2.フローチャートの基本要素オブジェクトの取得
 (判断、ループ開始・終了etc.)

上記の情報が取得できますと、
既存Frameworkとの連携可能となり、大幅に開発効率の向上が期待できる為、
Professional版購入の推進につながるのですが・・・
#今は大半がCommunity版を利用させて頂いています。

以上、宜しくお願い致します。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を