忍者ブログ
研究関係覚書用 無事に卒業できますように・・・
[1] [2] [3] [4] [5]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

☆UML2
・Creating UML 2 diagrams with Eclipse UML2 Tools - Tutorial
< http://www.vogella.de/articles/UML/article.html#uml_intros1s2a >
・Eclipse Modeling -MDT
< http://www.eclipse.org/modeling/mdt/?project=uml2 >
・MDT/UML2
< http://wiki.eclipse.org/MDT-UML2 >
・UMLモデリングプラグイン
< http://eclipsewiki.net/eclipse/?UML%A5%E2%A5%C7%A5%EA%A5%F3%A5%B0%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3 >
・modelbased.net  - UML Tools
< http://www.modelbased.net/uml_tools.html >
・UML2 Toolsはまだ完成度が・・・
< http://d.hatena.ne.jp/kojihashi/20080523/1211553664 >
シーケンス図のエディタが含まれていない
何ですとーーーーー

☆JDI
・JDIのテスト
< http://d.hatena.ne.jp/nozom/20060304/1141441887 >
・JPDA JDIアプリケーションの例
http://72.5.124.55/javase/ja/6/docs/ja/technotes/guides/jpda/examples.html >
・Java Debug Interface
< http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jpda/jdi/index.html >
・Javaプログラムトレースツールの開発
< http://www.th.cs.meiji.ac.jp/researches/2006/obata/ >
PR
<http://www.omg.org/spec/UML/2.1.2/>

に「Superstructure specification」
がありますが、これがUMLのメタ定義になります。
でも、かなりむずかしい(^_^;)
これを簡単に解説したような本かページをみたことがあるのですが、
見つかっていません。

<http://www.eclipse.org/modeling/mdt/?project=uml2#uml2>

にUML2のページがあって、いろいろなツールがあって、
関係がありそうです。調べてみてください。

UML2

UML2 is an EMF-based implementation of the
Unified Modeling Language (UMLTM) 2.x OMG metamodel for the Eclipse 
platform.

UML2 Tools

UML2 Tools is a set of GMF-based editors for viewing and editing UML 
models;
it is focused on (eventual) automatic generation of editors for all 
UML diagram types.

JDI
動的解析において取得したい情報は何か
*差分に注目→実行経路
*実行に関連したクラス、属性、メソッドなど
*変化していった値や代入値など(属性、返り値、引数など)
*ループの回数など

JDI: Java Debug Interface
  • JDIは、その名の通り、仮想マシンデバッガや類似システムに有用な情報を提供するJava API です。
  • リモートからのデバッグを標準でサポートしています。
  • JDK添付ですが、実装はtools.jar内にあります。利用するにはtools.jarをクラスパスに通す必要があります。(<JAVA_HOME>/lib以下にあります。)
研究内容整理@ゼミ用

☆プログラム理解に重点をおく

「プログラム理解のためにソースコードを変えて実行することも多い」
表示が変わる所も、表示が変わらない所もある。

*流れ、構造を表示(静的解析)→ 動的解析の結果をプラスする
 ★対象者のレベルは? 
   ☆初心者レベルの支援ならば何が必要なのか
      Java特有の構造(他より強調して表示させるとか)
      既存ライブラリ等の機能説明(ドキュメント?) 
   ☆中規模レベルの支援ならば何が必要なのか
      抽象化
  Maybe中規模レベル(1万行程度まで?)
    そのまま図にすると量が多くなり余計に複雑になる可能性がある
    → 読む量を減らす
       ★抽象化
         ソースコードから得られた図を抽象化
         ☆ユーザがまとめる
           ある程度のまとまりのある動作をユーザが判断し、1つの動作としてまとめる
         ☆似た構造の部分を知らせる(まとめるための1つの参考になる?)
           必要があれば自動で一括にまとめる?(リファクタリング) 
           (メンテナンスの立場では役に立つ 似た場所は同様に直すことが多い)
       ★実行時に通らなかった所を非表示にする(注目すべき所を目立たせる)
         もしくは通った所をハイライト表示
       ★表示する動作、しない動作の選択を可能にする
         (必要のない箇所を見る手間を省く)

 ★どこまでをシステムとするのか
   ライブラリ
   フレームワーク

*全体の概要?
・ソースコードからUMLを作成する(リバースエンジニアリング)
・実行時にログをとり、UMLに結果を反映させる
・プログラムを変更した際に差分を取得し、UMLに結果を反映させる
(ソースコードを返ることでどれくらいUMLがかわるか、どちらをベースに考える方がよいのか)
  → ベースは変更前のソースコード(より一般的な状態であるため)
  → 少しずつ変えて元に戻してを繰り返す
    変更を保存した場合はそれに対して新たなUMLセットを保存?

*リバースエンジニアリング機能*
<ユーザ>(参:EclipseUML)
 ・フォルダ選択
 ・関係選択
 ・パッケージコンテンツの選択
  ↓
<システム>
 ・JavaMLでXML形式に変換
 ・必要な情報を取得(DOM)
    クラス図:クラス名、メソッド名、変数名
          継承や実装の関係(インヘリタンス)
          クラスの包含関係など(関連)
          動的・一時的な関係(依存)
    シーケンス図:クラス名
             クラスの呼び出し関係(メソッド名、返り値など)
             条件分岐、ループ、再起
  ↓
 ・UMLを作成(クラス図、シーケンス図?)
    EMFで定義
    GEFで表示

*動的解析機能*
・ツールの検討
  JDIを用いて必要な情報を取得
  メソッドなどの呼び出しとか?
・アスペクト指向
  AspectJ
  必要な実行履歴を取得箇所へうめこんでいくことが可能に

*差分解析機能*
☆差分
  ・動的解析・静的解析
  ・追加、削除、修正
☆表示法
  ・追加した場合:追加部分+影響範囲をハイライト
    影響範囲の定義の必要 どこまでを影響とするか(修正が必須、可能性がある等)
  ・削除した場合
  ・修正した場合(削除+追加) UMLだとどうなるか
  ・複数箇所の変更を行った場合
      などの場合どう差分を表示すると良いか
☆どうやって差分を取得するのか
☆どのタイミングで差分を解析するのか
   保存したら?   目安となる量はどの程度か
   同期させて表示? どのように同期させるのか、重くならないか
☆「差分」の定義
  ★ソースコードを変更したときの静的な差分
    影響範囲とは? 変数の依存関係、どのような違いを表現するのか
  ★実行時の変化を表したときの差分
    経路の違い

*結果反映機能(表示部)*
・実行後に実行に関係した箇所をハイライト(図に反映、ソースコードにも反映?)


*評価方法
・実際に利用してもらいアンケートをとる
  対象者:Java経験者かつUMLの知識のある人
  対象プログラム
   1、有用な結果が見込まれるプログラムについてシステムを利用
       リバースエンジニアリング機能と事項履歴反映機能のみを
       使用する場合と、差分反映機能を追加した場合で理解の容易性
       を比較、評価
   2、自由なプログラムを用いてシステムを利用
       実際のプログラム開発における有用性を評価
・より定量的・科学的な評価方法はないか
   限界があっても、部分的にでも評価できる物がないか
★プログラム理解
 人に使ってもらった感触でやるしかない?(システムの有用性の調査)    


*参考
・影響波解析 アクサ(名大)、井上(阪大)
・ソースコード影響範囲 波及効果が及ぶ範囲(呼び出し関係図・依存関係図)
   メンテナンスとか
・静的解析+動的解析
*UMLエディタの実装方法
http://m--takahashi.com/bbs/pastlog/12400/12347.html

*CodeProject
http://www.codeproject.com/miscctrl/umleditor.asp
http://www.codeproject.com/miscctrl/flowcharteditor.asp
http://www.codeproject.com/miscctrl/linetracker.asp

*UML Quick Reference
http://www.holub.com/goodies/uml/index.html




忍者ブログ [PR]
カレンダー
09 2025/10 11
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
最新記事
(02/11)
(02/09)
(02/09)
(02/09)
tex
(02/05)
最新TB
プロフィール
HN:
nrk
性別:
非公開
バーコード
ブログ内検索
最古記事
(10/14)
(10/16)
(10/20)
(10/23)
(10/24)
P R