修正日:2013年01月30日(作成日:2013年01月22日)


第1章 序論

 本章では、論旨ごとにその背景や最終的なねらいを明らかにする。

可食化」の提案

背景

 何かしらの指標に基づいてソフトウェアプログラムの性質を計測する「メトリクスツール」というものが存在する。コードの行数や関数の宣言数など、ツールによっては実に数十〜数百種の指標を取り扱うことができる。 そうして計測した種々の指標値は、図1-1のようにグラフとして提示されるか、図1-2のように一覧形式で提示されることが多い。

図1-1 一覧表示とグラフ表示の例(SourceMonitor)
図1-1 一覧表示とグラフ表示の例(SourceMonitor[6]
図1-2 一覧表示の例(EclipseMetricsPlugin)
図1-2 一覧表示の例(EclipseMetricsPlugin[7]

 各指標の意味をよく理解し活用できるユーザであれば、数値やグラフといった情報のみでプログラムの良し悪しを判断できるかもしれないが、そうでないユーザならどうだろう。 結果として得られた指標値をどう捉えれば良いのか、さらに、どの指標値に注目すると良いのかすら分別が付かないものである。つまり、従来のメトリクスツールは、計測の対象となる分野に疎いユーザに対して放任的なのである。

 ここで、一つの関連研究を紹介しよう。ソフトウェアプログラムの規模や構造を三次元グラフィクスの都市(ビル群)として可視化するものである。(cf. 文献[1]) 「数値」ではなく「都市」で表現することにより、その規模や構造について直感的な理解を促すことができるのだ。

図1-3 都市として可視化する例(CodeCity)
図1-3 都市として可視化する例(CodeCity[1]

 プログラムの性質を表現するメタファ(隠喩表現が「数値」から「都市」に変化したことで、その捉えやすさは大きく変化した。ならば、これと同様にまた別のメタファを用いることで、さらに直感的な提示方法を提案できないものだろうか。

着想とねらい

 次章で詳説する経緯により、上記の背景に対して次のような着想を得た。

ソフトウェアプログラムを「スパゲッティ」というメタファで表現して、情報の「可食化」を実現する。

 背景で述べた通り、従来のメトリクスツールは直感的な理解に向かず、計測対象の分野についての知識がなければ良し悪しを判断することができない。 また、都市として可視化することで直感的な理解を促せるようになったが、それもまだ仮想空間の域を脱しておらず、改善の余地が認められる。 そこで、仮想を超えた現実空間における「スパゲッティ」としてソフトウェアプログラムを可食化し、既存のツールよりもさらに直感的な情報提示を実現したい。

 また、上記の着想に対するねらいは次のとおりである。

可食化が有効な情報表現手段であることを実証し、その新たな活用の可能性を見出すこと。

 本研究では、この「スパゲッティへの可食化」に対する評価実験を執り行い、従来の可視化と比較して直感的な理解が得られるか否かを検証する。 かつ、その有効性を実証し、情報表現手段としての「可食化」を提案することが本研究のねらいである。

本稿での取り扱い

 これは本研究における最大の論旨であるため、その論は、本稿全体を通して主張することにする。(第2章 理論と実施計画 - 理論が、その説明の中心となる。)

メトリクスの新しい枠組みの提案

背景

 先の可食化を実現するためのツール、つまりソフトウェアプログラムを入力としてスパゲッティを出力する「新しいメトリクスツール」を用意しなければならない。 より具体的には、プログラムからその指標値を算出し、それをスパゲッティのある指標値として写像する(対応付ける)ツールを開発する。 このツールの機能は、「プログラムから各種指標値を得ること」と「それら指標値からスパゲッティの指標値を得ること」の、二段階の写像によって構成される。 また、それぞれの段階もさらに小さな写像によって構成されるため、「写像の仕組み」さえ用意できれば可食化を実現できるのだ。 (捉えようでは「調理」も写像と言えるだろう。どちらにせよ大切なことは、全て写像で表現できるという構造である。)

図1-4 「可食化」は二段階の写像で構成される
図1-4 「可食化」は二段階の写像で構成される

 さて、ここで『ソフトウェア作法』という文献から得た学びを引用しよう。(cf. 文献[2]) 何かしらのソフトウェアを拵える際、一枚岩のようなひとかたまりのプログラムで構成するのではなく、小さな部品を組み合わせることによって構成しよう、というもの。 小さな部品で構成しておけば、その単体の部品を別の場面で再利用できるため、将来の徒労(重複した機能の実装)を減らせるのだ。 その意味で、既存のメトリクスツールは「一枚岩のようなプログラム」であり、再利用性が極めて低く、決して良い例とは言えない。 可能であれば、本研究で開発する「可食化のためのメトリクスツール」は、再利用性の高いソフトウェアとして仕上げたい。

着想とねらい

 背景に対する着想は以下の通りである。

写像を担う「メトリクスプラグイン」とその繋ぎ役とで構成される「メトリクスグラフ」によって、再利用性の高いメトリクスツールを実現する。

 従来は再利用性に欠けていたメトリクスツールも、小さな部品で構成することによりそれを高めることができる。 その効用として、部品同士の組み合わせ次第では、より大きな目的(複雑なメトリクス)も成し遂げられるようになろう。 従来通り数値・グラフ・都市で表現するメトリクスも、今回のようにスパゲッティで表現するメトリクスも、さらにユーザ自身が考え出す新しいメトリクスでさえも、この「メトリクスグラフ」の構造によって自在に実現できるのである。

 この着想に対するねらいを提示する。

メトリクスツールのための新しい枠組みを提案し、メトリクスツールの改善によってユーザの活用を促進させること。

 これまでは、多様なユーザの要求に対応すべくあらゆる指標値を一覧表示し、過剰な情報提示となっていた。 しかし、この枠組み(「メトリクスグラフ」の構造)を採用することで、ユーザが本来求めている指標値に限定して効率的に情報を提示できるのだ。 (特に、複数の指標値を加味して評価を行う場合には、この枠組みの利用による効果が大きい。)

 余分な情報を排斥して(冗長性を改善して)メトリクスツールの価値を享受しやすくすること。 また、小さな部品で構成することにより、自由自在なメトリクス(高い適応性)を実現すること。 この二点の相乗効果によってツールの利便性を向上させ、より多くのユーザにツールを活用してもらうことが本研究のねらいである。

本稿での取り扱い

 これは本研究における副次的な論旨であるため、第2章 理論と実施計画 - 理論(写像)を中心に、その論を展開することにする。