Skip to main content
QUICK REVIEW

[論文レビュー] M3: An Open Model for Measuring Code Artifacts

Anastasia Izmaylova, Paul Klint|arXiv (Cornell University)|Dec 4, 2013
Software Engineering Research被引用数 9
ひとこと要約

M³ は、不変で型付きの関係と URI ベースのソース位置を用いて、ソースコードアーティファクトを表すオープンで拡張可能で合成可能なモデルを提案する。Rascal プログラミング言語内に構築され、標準化され、シリアル化可能なモデルを通じてパーサーとメトリクス消費者を分離することで、言語に依存しないコード解析を可能にする。このモデルは型推論、ソーストレース、プロジェクトおよび依存関係をまたがるメトリクスのインクリメンタルな合成をサポートする。

ABSTRACT

This document details design considerations of M3: a meta model for source code artifacts

研究の動機と目的

  • 多様なプログラミング言語とメトリクスを対象としたコード品質の測定という課題に対処するため、コードアーティファクトのための統一的で拡張可能なモデルを構築すること。
  • 標準化された、言語に依存しないモデルを通じて、コード抽出器(パーサー)とメトリクスおよび可視化ツールを分離すること。
  • 物理的および論理的な URI ベースの位置を用いることで、メトリクスをソースコードに正確に追跡可能にする。
  • 不変で永続的なデータ構造を用いて、ファイル、プロジェクト、依存関係をまたがるコードメトリクスのインクリメンタルかつ合成可能な解析をサポートすること。
  • ソフトウェア分析および進化研究分野における再利用可能で拡張可能なコード解析パイプラインの基盤を提供すること。

提案手法

  • M³ モデルは、Rascal のセット、関係、パターンマッチングのネイティブサポートを活用して、ソースコードアーティファクト間の不変で型付きの関係として構築される。
  • ソース位置は、物理的(例:file://、project://)および論理的(例:java+class://)識別子を持つ URI としてモデル化され、コードの移動に対してもトレーサビリティと安定性を確保する。
  • コア関係には、アーティファクトの階層(包含)、論理的場所から物理的場所へのマッピング(宣言)、依存関係の追跡(使用)が含まれる。
  • 抽象構文木(AST)は、モデル関係からオンデマンドで再構築され、ノードにはソース位置および型情報が付加される。
  • 型シンボルは第一級の値としてモデル化され、汎用型のパラメトリック型推論および型インスタンス化を伴うメトリクス計算を可能にする。
  • モデルは明示的なユニオンおよびリンク操作により合成される:ユニオンは関係を統合し、リンクは権限フィールドを更新することで、複数プロジェクトにまたがる参照を可能にする。

実験結果

リサーチクエスチョン

  • RQ1複数のプログラミング言語にまたがるソースコードアーティファクトを、ソースコードへのトレーサビリティを保ちながら、単一で拡張可能なモデルで表すにはどうすればよいか?
  • RQ2コード抽出器をメトリクスおよび可視化ツールから分離するための、言語に依存しない設計原則とは何か?
  • RQ3非機能的コード変更(例:コメントの追加、インデントの変更)に対しても安定し、人間が読みやすい識別子としてのソース位置識別子をどのように設計すればよいか?
  • RQ4ファイル、プロジェクト、依存関係をまたがるコードメトリクスのインクリメンタルかつ合成可能な解析を実現するメカニズムは何か?
  • RQ5パラメトリック型や型インスタンス化を含むメトリクスをサポートするため、型システムを一貫してどのようにモデル化すればよいか?

主な発見

  • M³ は、抽象構文のための最小限の代数的型(Expression、Declaration、Statement、Type、Modifier)を標準化することで、言語に依存しないコード解析パイプラインの構築を可能にする。
  • URI ベースのソース位置の使用により、正確で人間が読みやすく、変更に強く安定した、導出されたメトリクスを元のソースコードにリンクする仕組みが実現され、結果のデバッグや説明が可能になる。
  • モデルはインクリメンタル解析をサポートする:ボリュームメトリクスは外部依存関係を統合する前にも計算可能であるが、継承の深さメトリクスはすべての宣言にアクセスできるように統合後に必要となる。
  • 型シンボルは第一級の値としてモデル化されており、汎用型の可能なインスタンス数などのメトリクス計算が可能になる。
  • このモデルは、UvA および CWI での教育課程および研究プロジェクトにおいて実際のソフトウェア分析ワークフローで成功裏に適用されており、実用性が裏付けられている。
  • Java、C#、PHP への初期対応が進行中であり、制御フローおよびプログラム依存関係への拡張が計画されている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。