• 検索結果がありません。

ソースコードにおける協調クラス群の抽出

N/A
N/A
Protected

Academic year: 2021

シェア "ソースコードにおける協調クラス群の抽出"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)

Japan Advanced Institute of Science and Technology

JAIST Repository

https://dspace.jaist.ac.jp/

Title JAVAソースコードにおける協調クラス群の抽出

Author(s) グェン ヴァン, トゥアン

Citation

Issue Date 2010‑03

Type Thesis or Dissertation Text version author

URL http://hdl.handle.net/10119/8953 Rights

Description Supervisor:落水 浩一郎, 情報科学研究科, 修士

(2)

ソースコードにおける協調クラス群の抽出

北陸先端科学技術大学院大学 情報科学研究科

キーワード 協調クラス群 デザインパターン メタパターン クラス図

背景、目的

情報システムを開発する際に、膨大な量のソフトウェア図面とプログラムが存在してい る。また、このソフトウェア図面やプログラムの間に複雑な依存関係があるために、変更 作業が困難である。変更に要する労力の軽減、信頼性の向上を保証するために、変更作業 を自動化して支援するツールが必要である。また、変更作業を自動化して支援するツール においては、設計モデルの要素に対応するソースコードにある協調クラス群を自動的に発 見することが大切である。

本研究の目的はユースケースを実現する(クラス図中のクラス群に対応する) ク ラス群を協調クラス群と定義し、それを抽出することである。

関連研究

2006年に金旭東はメタパターンを用いたクラス群を協調クラス群と定義し、

種のメタパターンを3つの協調構造に分類して、各協調構造の特徴による協調クラス 群の抽出アルゴリズムを開発した。の23種のデザインパターンを対象として、抽 出アルゴリズムを適用し、17種のデザインパターンを利用したクラス群を抽出する可能 があった。抽出できない6種のデザインパターンの中に、3種のデザインパターンはメタ パターンで説明できなくて、3種のデザインパターンはメタパターンで説明できる。

研究方法

協調クラス群を抽出するために、我々は先行研究を改良して、ユースケースに含まれる

クラス群を抽出する。このことを達するために、二つの課題がある。

­

(3)

メタパターンで説明できないデザインパターンを解析可能にする。具体的には、メ タパターンの構造的特徴を利用すること以外に、新しく「構造の特徴」と「振る舞 いの特徴」を導入して、メタパターンを適用するクラス群を抽出する。

ユースケースを実装したクラス図に対応するクラス群を抽出する。

課題1については、クラス図を実装する際に、デザインパターンを使って実装すること が多いため、協調クラス群を抽出するためにデザインパターンを利用したクラス群を抽 出することが大切である。また、デザインパターンの大部分がのメタパターンで説 明できるため、金旭東の開発したメタパターンを用いたクラス群を抽出するアルゴリズ ムの失敗した原因を調査し、すべてののメタパターンに対応できるように再開発し た。さらに、メタパターンで説明できないデザインパターンを利用したクラス群を抽出す るために、デザインパターンの構造と振る舞いの特徴をまとめて、抽出アルゴリズムを開 発した。

課題2については、デザインパターンを適用した箇所を抽出するアルゴリズムを利用し て、ソースコードにあるデザインパターンを利用したクラス群を抽出する。抽出し たクラス群を利用して、デザインパターンの構造的特徴に基づいてユースケースを実装 したクラス図の一つひとつのクラスに対して対応をするクラス群を抽出する。その 後、サブグラフ同型判定アルゴリズムを適用して対応をつける手法を提案した。また、デ ザインパターンを使わないで実装する場合があるため、抽出するクラス図のクラスに対応 するクラス群が違う場合がある。そのため、我々は違いを修正するためにデザイン パターンを利用していないソースコードの追跡規則を提案した。

実験

この抽出方法を利用して、各実験を行い、 と言う本に載っている41 種のデザインパターンの中39種のデザインパターンに対応する可能がある。小規模なエ レベータ制御システムとシステムで実験した結果により、抽出アルゴリズムの精度 は!% 以上であった。

まとめと今後の課題

本研究は、金旭東の提案したアルゴリズムを改善して、メタパターンの特徴の以外に構 造と振る舞いの特徴を導入して、 ソースコードにおけるデザインパターンを利用し たクラス群を抽出する方法を提案した。デザインパターンを利用したクラス群を抽出す るアルゴリズムを利用して、クラス図の要素に対応する クラス群を発見する方法を 提案した。ユースケースのクラス図の要素に代わって対応するクラス群を入れることによ り、ユースケースに含まれるクラス群を抽出した。

(4)

今後の課題としては、実験で失敗した事例への対応、より多いデザインパターンを利用 したソースコードへの対応と以外のオブジェクト指向プログラミング言語への対応 が挙げられる。

参照

関連したドキュメント

担い手に農地を集積するための土地利用調整に関する話し合いや農家の意

本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

このため、都は2021年度に「都政とICTをつなぎ、課題解決を 図る人材」として新たに ICT職

本アルゴリズムを、図 5.2.1 に示すメカニカルシールの各種故障モードを再現するために設 定した異常状態模擬試験に対して適用した結果、本書

ユースカフェを利用して助産師に相談をした方に、 SRHR やユースカフェ等に関するアンケ

協⼒企業 × ・⼿順書、TBM-KY、リスクアセスメント活動において、危険箇所の抽出不⾜がある 共通 ◯

ヒット数が 10 以上の場合は、ヒットした中からシステムがランダムに 10 問抽出して 出題します。8.