Javaソースコード蓄積・ 検索システムSPARS-Jの概要

Slides:



Advertisements
Similar presentations
プラグイン作成講座 Control System Studio 3.0 Takashi Nakamoto
Advertisements

Web 共同編集機能を実装した メール検索システム 井上研究室 Choy Kho Yee 2006年02月27日.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 保守支援を目的とした コードクローン情報検索ツール.
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
ソースプログラム・アーカイブ・サイト -関数依存グラフと検索への応用-
最新ファイルの提供を保証する代理FTPサーバの開発
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
ソースコードの編集内容を入力とした ソフトウェア部品の自動検索
電子社会設計論 第11回 Electronic social design theory
利用実績に基づくソフトウェア部品検索システムSPARS-J
ACT-JSTプロジェクト ソフトウェアプロダクトの 収集・解析・検索システム (SPARSプロジェクト)
Webサイト運営 09fi118 橋倉伶奈 09fi131 本間昂 09fi137 三上早紀.
FreeBSD Ports Collection におけるファイルクローンの検出
共同ローカリゼーション フレームワーク 井上 謙次.
Curlの仕組み.
バイナリ形式コンポーネントの 収集・解析・検索システムの開発
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
ソースコードの利用関係を用いた 再利用性評価手法の提案
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
Javaソフトウェア部品 解析・検索システムSPARS-Jの構築
メソッド間の依存関係を利用した プログラム理解支援手法の提案と実現
Javaクラスの利用関係を用いた ソフトウェア部品のカテゴリ階層構築法
SPARS-J デモ 山本哲男 立命館大学 情報工学部 2018/12/1 SPARS-J デモ.
関数の変更履歴と呼出し関係に基づいた開発履歴理解支援システムの実現
類似度を用いたプログラムの再利用性尺度の提案と実現
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
オープンソース開発の履歴情報を用いたコミュニティ検索支援システム
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
実行時情報に基づく OSカーネルのコンフィグ最小化
WWW上の効率的な ハブ探索法の提案と実装
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
利用実績に基づくソフトウェア部品検索システムSPARS-J
Javaを対象としたソフトウェア部品 検索システムSPARS-Jの実験的評価
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
コードクローンの動作を比較するためのコードクローン周辺コードの解析
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
エピソード記憶に訴えるBookmarkless Bookmarkの実現
アスペクト指向言語のための 独立性の高いパッケージシステム
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
ソフトウェア保守のための コードクローン情報検索ツール
類似度メトリクスを用いた Javaソースコード間類似度測定ツールの試作
様々なデータの蓄積,共有が簡単操作で可能に!
コーディングパターンの あいまい検索の提案と実装
複数のリポジトリを統合できる バージョン管理システムの提案と試作
ソフトウェアプロダクト集合に対する 派生関係木の構築
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
第7回OACISシンポジウム 大阪大学におけるソフトウェア工学研究と産学連携活動
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
ソフトウェア理解支援を目的とした 辞書の作成法
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
ソースコードの利用関係を用いた 再利用性評価手法の提案
関数の変更履歴と呼び出し関係に 基づいた開発履歴理解支援システム
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
Presentation transcript:

Javaソースコード蓄積・ 検索システムSPARS-Jの概要 井上克郎 大阪大学大学院 情報科学研究科

ソフトウェアプロダクト管理システム 開発したドキュメント,ソースコード,テストケースなどを保存・取り出しを行う 組織全体のソフトウェアプロダクトを資産として管理するのが理想 ソフトウェア開発を行う組織にとってのメリット: 再利用して生産性を向上 過去の信頼できるプロダクトの利用によって品質の向上 ユーザ組織にとってのメリット: 現状の把握(規模や品質vs投資) 緊急時の対応とりやすい 過去の資産の把握,整理

ソースコードの蓄積・検索 ソースコードは最も信頼できるプロダクト? しかし,誰が管理するの? 動いているシステムに対応 他のドキュメントは更新がされていない場合も ソースコードを核として他は関連付けて蓄積 しかし,誰が管理するの? 開発,運用の要員だけで管理まで手が回らない 常に最新の状態にしないと意味がない いい加減な分類や索引付けでは探せない

ソースコード蓄積・検索システム ソフトウェアプロダクトの自動収集・解析・検索システム Asset Locator (IBM) 各種ソース(Java, JSP, C++, HTML, XML, Cobol, Java ClassFile, Text)の収集,解析,検索システム 計画倒れ?

SPARS-J Software Product Archive, Analysis, and Retrieve System for Java 新しい発想に基づいたソースコード蓄積・検索システム Javaを対象に 日々の管理は全自動 静的解析技術を用いて広域の依存関係抽出 メトリクス技術を用いて類似部品抽出

SPARS-Jの概要 SPARS-J 検索 登録 ユーザー Java 表示 ファイル群 依存関係 キーワード キーワード検索 解析・登録 パッケージ階層 表示 レポジトリ Webブラウザ SPARS-J

SPARS-Jの機能の概要(登録) Javaの1クラス(*.java) = 検索単位 :部品 指定したファイル群やディレクトリ群に含まれる部品の自動検索 クラス間の関係(継承,インターフェース,呼び出し,参照等)の解析 部品内に含まれるキーワードの抽出 DB(Berkeley DB)に登録

SPRAS-Jの機能(検索・表示) キーワード検索/パッケージ木ブラウズ 部品のソース,呼ばれている・呼んでいるクラス・メソドの表示や各種メトリクス表示 条件付検索(クラス名,コメント,・・・) 重要な部品を上位に表示 部品間の類似度を計測―同一部品集約 日本語/英語両用

SPARS-J検索入り口

検索結果表示

パッケージブラウザ

SPARS-Jの使い方 一つの開発中のプロジェクトのソース管理 過去の類似プロジェクトのソース管理 組織の全プロジェクトのソース管理 他人が作った部品が見える 前の版も調べられる 過去の類似プロジェクトのソース管理 部品の依存関係が分かる 再利用率,新規開発率が分かる 組織の全プロジェクトのソース管理 何か使われて何がいらないか 全資産量はどれだけあるか

適用例 JDKのライブラリ検索(約2000クラス) 研究室内のJavaの資産管理(約2500クラス) インターネット上から入手できるプログラムの検索(18万クラス) あるソフトウェアハウスのJavaフレームワークにおける資産管理 ...

SPARS-Jの実行環境 UNIX版,Windows版 FreeBSD, Solaris,Windows-XP,... C, Berkeley DB、BisonFlex、gettext、kakasi 最小メモリ 100MB (多いほうがいい) 最小ディスク100MB

DB構築時間 AがB,Cと同程度時間がかかっている D,Eで極端に構築時間が大きくなる 構築時間は索引キー数に依存 Aは索引キー数が多いため メモリが尽きてスワップが生じた 構築時間は索引キー数に依存 OS : FreeBSD 5.2-RC CPU : Intel(R) Xeon2.80GHz(Dual) Memory : 2.0 GB File数(Size: MB) 部品数 部品群数 索引キー数 合計時間(秒) A 3593 (35) 5407 5370 574048 857.8 B 6158 (67) 7594 966 132583 933.7 C 9561 (93) 12355 8995 306551 866.9 D 13696 (130) 15634 9033 745663 6469.5 E 18384 (192) 20463 13839 886574 16093.1(4H) 18万 3日

構築したDBサイズ 格納している情報はほぼ同じ割合 索引キー数に依存 ファイル情報 : 1 %, 部品情報 : 30 % 利用関係情報 : 10%, 索引情報 : 60~70 % 索引キー数に依存 File数(Size: MB) 部品数 部品群数 索引キー数 DB size(MB) A 3593 (35) 5407 5370 574048 288 B 6158 (67) 7594 966 132583 C 9561 (93) 12355 8995 306551 252 D 13696 (130) 15634 9033 745663 800 E 18384 (192) 20463 13839 886574 1000

検索時間 300件のクエリに対してCGIを経由せず検索 部品数の増加に従って検索時間も増加 実際には,結果表示の時間がプラス 索引キー検索よりも,ヒットした部品のソートに時間がかかる File数(Size: MB) 部品数 部品群数 索引キー数 合計時間(秒) A 3593 (35) 5407 5370 574048 4.140 B 6158 (67) 7594 966 132583 4.787 C 9561 (93) 12355 8995 306551 5.964 D 13696 (130) 15634 9033 745663 14.395 E 18384 (192) 20463 13839 886574 19.514

SPARS-Jのライセンス 基本動作を行う部分はオープンソース化(BSDライセンス) ランク付け機能(CR)は特許申請中 変更,再配布,商用利用可能 大阪大学のクレジット表示義務 ランク付け機能(CR)は特許申請中 JST(科学技術振興機構)所有 なくても実用上支障はない