2024年4月30日
先端テクノロジーの研究を論文ベースで記事にするWebメディア「Seamless/シームレス」を運営。最新の研究情報をX(@shiropen2)にて更新中。
米カリフォルニア大学サンディエゴ校に所属する研究者らが発表した論文「Taking ASCII Drawings Seriously: How Programmers Diagram Code」は、ソースコード内で使用するアスキーアート(ASCII art)を収集し分析した研究報告である。
オープンソースのソフトウェア開発では、プログラマーがコードの中にアスキーアートを使って図を描き、アイデアを視覚的に表現することがよくある。アスキーアートはコードや自然言語では表現しにくい概念を視覚的に明快に説明でき、またコードよりも詳細度は低いものの、コードを理解するうえで「サムネイル」のような役割を果たす。
こうしたアスキーアートは、実際のソフトウェア開発の現場で使われているにもかかわらず、これまであまり研究されてこなかった。研究者らは、LinuxカーネルやChromiumブラウザ、LLVMコンパイラ、TensorFlowといった大規模プロジェクトから、合計2,156点のアスキーアートを収集した。また、アスキーアートの作者9人に、詳細なインタビューを行った。
インタビューの結果、ソフトウェア開発のライフサイクルにおいてアスキーアートの持つ役割が5つ挙げられた。(1)ホワイトボードでのスケッチなど、外部の知識をコードに反映するため。 (2) テストするシナリオを図で説明するため。(3)コードレビューにおいて変更内容を同僚に伝えるため。 (4) 他者がコードを理解しやすくするための文書化として。(5) 数ヶ月後の自分自身がコードを思い出すための備忘録として。
インタビューを通して、アスキーアートがソフトウェア開発の様々な場面で活用されていることが分かった。バグの発見、知識の共有、コードの理解など、プログラミングという知的活動において、視覚表現が重要な役割を果たしている。
アスキーアートの内容自体も多様だった。研究チームは504点の図を精査し、図が何を、どのように表現しているかを分類した。その結果、コードとどのように関連しているのかを分類する、7つの次元からなる設計空間を導き出した。
これら収集したアスキーアートを7つの次元に分けたデータセットは、こちらのウェブページにまとめられている。
Source and Image Credits: Devamardeep Hayatpur, Brian Hempel, Kathy Chen, William Duan, Philip J. Guo, Haijun Xia. Taking ASCII Drawings Seriously: How Programmers Diagram Code.
関連記事
人気記事