何某日和

「カメラ」のち「ハンダゴテ」ところにより「プログラミング」 ── そんな私“かめきち”のウェブサイト

「Software Systems as Cities: A Controlled Experiment」読書ログ

概要

 私の研究「スパゲッティを題材としたソフトウェアプログラム可食化に関する研究」の発想の源となった論文です。 ザックリとした概要だけしか知らなかったため、今回改めて読みなおすことにしました。 ここでは、当該の論文を読んで理解したことや、備忘録目的で概要の記載を行います。解釈の誤りもあるかと思います。ご指摘を賜ることができれば嬉しいです。 必要そうだと感じた部分に限定して読むことにしていて、これから研究が進行するにつれ、さらに読み進めることになろうかと思います。

目次

0. 概要

 ソフトウェアのメンテナンスやリバースエンジニアリングなどに援用される「ソフトウェアの可視化」。 この「ソフトウェアの可視化」のために用いる「CodeCity」というツールの有効性を検討するための対照実験(A Controlled Experiment)について述べている論文です。 教育関係や産業界を含む数カ所で実験を実施した上で、「プログラム認識の正確さの向上」や「プログラム認識の時間短縮」に繋がったことが明らかになったようです。 (CodeCity:ソフトウェアプログラムを三次元の都市に見立てて可視化するツール。)

1. 導入

 最近、ソフトウェア可視化に関する手法が様々に提示されてはいるものの、実験及びデータ収集の難しさに起因する問題があるため、なかなか研究開発が滞りがち。 そんな中で、この論文では次の二つのことに寄与するとのこと。

  • この種の実験に伴う様々な落とし穴を示す
  • 非ビジュアルのプログラム理解の手法に置き換わることができることを示す

2. CodeCityとは

 「CodeCity」は、ソフトウェアメトリクスにおける指標を建造物の視覚的属性(色、高さ、敷地面積など)に写像することで、プログラムを都市に見立てて可視化してくれます。 具体的な写像関係を以下に示します。

  • メソッド数:ビルの高さ
  • 属性数:敷地面積の大きさ
  • LOC(Lines Of Code):ビルの色(LOCが大小によって、激しい青色から暗い灰色までに写像する)

 また、これだけに留まらず、ソフトウェア設計上の問題点についても可視化しているようです。(外部文献を参考にしたもの。) 残りの「Tool support.」の項目では、CodeCityの機能やユーザインタフェースの特徴についての説明がなされています。

12. 参考文献

[16] Visualizing software systems as cities.

R. Wettel and M. Lanza. Visualizing software systems as cities. In Proceedings of VISSOFT 2007, pages 92-99. IEEE CS Press, 2007. (2012.08.12現在、Webサイトに当該の論文が掲載されています。 http://www.inf.usi.ch/phd/wettel/publications.html

[17] CodeCity: 3D visualization of large-scale software.

R. Wettel and M. Lanza. CodeCity: 3D visualization of large-scale software. In Proceedings of ICSE 2008, Tool Demo Track, pages 921-922. ACM Press, 2008. (2012.08.12現在、Webサイトに当該の論文が掲載されています。 http://www.inf.usi.ch/phd/wettel/publications.html