プログラム実行時情報を用いたトランザクションファンクション抽出手法

Slides:



Advertisements
Similar presentations
1 WSIF における Web サービス・メソッドの自動設 定 2004 年 3 月 23 日 越田高志 松江工業高等専門学校 情報工学科 電子情報通信学会 2004年総合 大会.
Advertisements

1 プリミティブ Web サービスの 入出力データに関する一考察 2005 年 3 月 21 日 松江工業高等専門学校 情報工学科 奈良先端科学技術大学院大学 情報科学研究科 越田高志 電子情報通信学会 2005年総合 大会.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
データベースの基礎知識 ACEESS の基本操作. データベースの基礎知識 データベース  特定のテーマや目的に毎のデータの集合体 データベースソフトウェア  データベースを作成、管理するソフトウェアの総 称 Oracle(Oracle) IBM(DB2) Microsoft(SQL Server)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 保守支援を目的とした コードクローン情報検索ツール.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
OWL-Sを用いたWebアプリケーションの検査と生成
シーケンス図の生成のための実行履歴圧縮手法
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
学生のシステム提案における 見積もり法提案 湯浦研究室4年 飯田真矢.
ネストした仮想化を用いた VMの安全な帯域外リモート管理
デバイスからの異常注入が指定可能なCPUエミュレータ
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
入出力データ型に透過な Webサービス動的実行システム 松江工業高等専門学校 情報工学科 越田高志 情報処理学会第68回全国大会
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
プログラム実行履歴を用いたトランザクションファンクション抽出手法
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
関数の変更履歴と呼出し関係に基づいた開発履歴理解支援システムの実現
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
暗黙的に型付けされる構造体の Java言語への導入
動的依存グラフの3-gramを用いた 実行トレースの比較手法
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
実行時情報に基づく OSカーネルのコンフィグ最小化
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
リファクタリング支援のための コードクローンに含まれる識別子の対応関係分析
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
通信機構合わせた最適化をおこなう並列化ンパイラ
動的データ依存関係解析を用いた Javaプログラムスライス手法
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
コードクローンの動作を比較するためのコードクローン周辺コードの解析
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
ソフトウェア保守のための コードクローン情報検索ツール
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
インスタンスの型を考慮したJavaプログラムの実行経路の列挙手法の提案
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
コードクローン間の依存関係に基づく リファクタリング支援環境の実装
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
類似した振舞いのオブジェクトの グループ化による クラス動作シナリオの可視化
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
オブジェクトの動的支配関係解析を 用いたシーケンス図の縮約
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
メソッドの同時更新履歴を用いたクラスの機能別分類法
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
クラスタリングを用いた ベイズ学習モデルを動的に更新する ソフトウェア障害検知手法
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
ソフトウェア理解支援を目的とした 辞書の作成法
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
コードクローン解析に基づく デザインパターン適用候補の検出手法
木構造の比較に基づく メソッド呼び出し履歴の変化の可視化手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
オブジェクト生成の観測に基づく プログラム実行の要約の抽出
Presentation transcript:

プログラム実行時情報を用いたトランザクションファンクション抽出手法 †大阪大学 大学院情報科学研究科 ‡株式会社 日立システムアンドサービス 森岡 佑†, 谷口考治†, 楠本真二†, 井上克郎†, 英 繁雄‡, 前田憲一‡, 津田道夫‡ 2006/3/10 第68回情報処理学会全国大会

ファンクションポイント(FP) ソフトウェアの規模測定の尺度 画面や帳票,ファイルなどを通じた情報の入出力に着目し,それらを種類別に数え上げ,種類数を加重合計した値を機能量とする ソフトウェア開発工数・費用の見積もりやソフトウェア取引における指標 ソフトウェア開発実績データの蓄積から開発予定のソフトウェアの工数予測 機能規模に応じた価格交渉 2006/3/10 第68回情報処理学会全国大会

実用面における課題 一般的な計測ルールが述べられているだけで,測定者によって誤差が出る 基礎データとして用いるために,過去に開発されたソフトウェアのFP値を計測する必要がある 過去の開発の生成物としてソースコードしか存在しないことも多い FP計測導入のための初期コスト(教育等)が必要となる 2006/3/10 第68回情報処理学会全国大会

研究の動機 ファンクションポイントはソフトウェアの設計仕様書から求められることが多い 過去に開発されたソフトウェアのFP計測は困難 設計仕様書が存在しない 最終成果物で実現されている機能が設計仕様書と一致しない 最終成果物であるプログラム自身(ソースコード)からファンクションポイントを計測したい 設計仕様書から求められたFPと近い値の算出 2006/3/10 第68回情報処理学会全国大会

ファンクションポイント法(IFPUG法) ビジネスアプリケーションソフトウェアに含まれるデータや処理を分類し,それぞれ点数をつけて数値化し,機能量を算出する手法 データファンクション(データのまとまり) トランザクションファンクション(データの入出力処理) 内部論理 ファイル 外部 インタフェース ファイル 計測対象ソフトウェア 外部入力 外部出力 外部照会 ユーザ 2006/3/10 第68回情報処理学会全国大会

トランザクションファンクションとは データ入力による内部論理ファイルの更新 アプリケーションに対するデータの出入りを伴う処理 データファンクションにアクセスし入出力を行う ユーザに意味のある業務活動の最小単位 画面からのデータ登録 帳票出力 データ検索 3種類のファンクションタイプ 外部入力 (EI : External Input) データ入力による内部論理ファイルの更新 外部出力 (EO : External Output) 内部論理ファイル、外部インターフェースファイルからのデータ出力で、派生データがある処理(データが加工される) 外部照会 (EQ : External Inquiry) 内部論理ファイル、外部インターフェースファイルからのデータ出力で、派生データなし(データが加工されない) 2006/3/10 第68回情報処理学会全国大会

トランザクションファンクション計測手順 トランザクションファンクションを識別 トランザクションファンクションをEI, EO, EQに分類 識別された各トランザクションファンクションの複雑さを評価 各トランザクションで扱うファイル数・データ数の2つのパラメータによって、低・中・高の3段階に重み付け ファイル数・データ数が多いほど複雑度が高い 2006/3/10 第68回情報処理学会全国大会

提案手法における基本方針 ソースコードの静的情報のみからファンクションポイントを算出するのは困難 計測対象となるシステムの機能に対応するような入力データを作成する 入力データに基づいて実際にシステムを動作させて,FPの計測を行う 「静的情報のみでは導出が困難なので動的な情報を用いる」 2006/3/10 第68回情報処理学会全国大会

提案手法 トランザクションファンクション(TF)抽出 EI, EO/EQ の分類 プログラム実行履歴を準備 全てのトランザクションファンクションが実行されるような処理の履歴 データファンクション(DF)を指定 クラス単位でDFを指定(DFクラス) 実行履歴からDFクラスのメソッド呼び出しを検出し、メソッド名を抽出 TFは「DFに対して入出力を行う処理」を指すため EI, EO/EQ の分類 EI,EO/EQに対応する処理を実装しているメソッドの、メソッド名に含まれていると考えられる部分文字列グループをそれぞれ指定 計測対象のシステムで用いられたメソッドの命名規則に従って、部分文字列グループを決める 実際にメソッド名に含まれている部分文字列から分類 「現状ではEOとEQをまとめて考えている」 2006/3/10 第68回情報処理学会全国大会

提案手法のプログラムへの適用 提案手法の妥当性を確かめる 実際にどのくらいのメソッドが取れるかどうかの確認 DFクラス、部分文字列を過不足なく指定できるか 抽出したメソッドがTFと一致しているか 2006/3/10 第68回情報処理学会全国大会

適用例(対象プログラム) Javaで記述された酒屋問題プログラム 全てのトランザクションファンクションが実行される実行履歴を用意 クラス数17個 含まれるトランザクションファンクション7個 (表1) 全てのトランザクションファンクションが実行される実行履歴を用意 EI, EO/EQ に分類するために入力した部分文字列 EI ・・・ append, set, repair, remove, decrease, add EO/EQ ・・・ display, check, stockcount, out DFクラスとして指定したクラス 8個 Brand, Container, StockLack, BrandList, StockLackList, SakeDBList, DataBase, NoStockList 表1. 含まれるトランザクションファンクション 酒屋問題の命名規約によって部分文字列を指定 なぜ#7がEQなのか→データを変更していない・派生データが出ていないため 2006/3/10 第68回情報処理学会全国大会

適用実験(結果) 13個のメソッドを検出 (表2) 表2. トランザクションとメソッドの対応 2006/3/10 13個のメソッドを検出 (表2) 表2. トランザクションとメソッドの対応 2006/3/10 第68回情報処理学会全国大会

考察 「在庫情報更新と出庫指示票出力(EO)」のTFに対応するメソッド4個のうち3個がEIとして識別された 設計仕様書からのFP計測において、このTFの主な目的は出庫指示票出力であり、在庫情報更新は付随処理と判断されたため 現段階では結果を見て人手による分類をするしかない 1つのTFが複数のメソッドで構成されうる 抽出されたメソッドのグループ化が必要 連続して現れるメソッドを1つのグループとしてまとめる メソッド名に含まれる文字列によるTFの分類ではEOとEQの分類が困難 対象プログラムのソースコードの静的解析によるデータ依存関係の把握で分類が可能であると考えられる 2006/3/10 第68回情報処理学会全国大会

まとめと今後の課題 プログラム実行時情報を用いて、DFクラスのメソッド呼び出しを検出することによってトランザクションファンクションを抽出する手法を提案した 今後の課題 複数のメソッドで構成されるTFの識別 静的解析によるEO, EQの分類 データが途中で加工されるかどうかが静的解析により判断可能 トランザクションとメソッドの対応付けの自動化 2006/3/10 第68回情報処理学会全国大会