最近の MIT newsの記事 で、オブジェクト間の接続を自動的に記憶する技術が紹介されている。紹介されているシステムが決定するのは、
大きなソフトウェアプロジェクトで、いかにオブジェクトがやりとりするかを決定して、後から来たオブジェクトに、特定タイプの機能を設計するのに、どのオブジェクトが必要となるのかを知らせることができる。
MIT News Officeの Larry Hardesty氏によると、過去40年のソフトウェアエンジニアリングにおける主要な改革は、オブジェクト指向プログラミング言語の発展だった。そこでは、オブジェクトは
プログラムにおける計算の詳細に替わるリポジトリとして考えられ、お蔭でプログラマは、全体像に集中することができる。
開発者はしばしば、システムサイズの増大に伴って、オブジェクトの数と同時にそのインタラクションの数が圧倒的に多いような状況に直面する。システム全体を理解するために、彼らは多くの時間を費やす必要がある。この状況をMITの Computer Science and Artificial Intelligence Laboratoryの新しいアプローチは、解決しようとしているのである。 MatchMakerと呼ばれるシステムは、自動的に開発中のシステム内のオブジェクトのインタラクションについて学習する。
これが特に役立つのは、機能がオープンソースソフトウェアに追加される必要がある時である、と Solar-Lezama氏と彼の学生である Zhilei Ku と Kuat Yessenovの両氏がEclipseフレームワークを使って示した。
MatchMakerでは、開発者はオブジェクトの名前をクエリフィールドで指定できる。そうすると、 MatchMakerが指定されたオブジェクトにリンクしている全オブジェクトと共にあらゆる既存のメソッドに必要な全修正をリストアップする。
しかしシステムは間違った推論をするかもしれないが、そのような場合でも開発者は少なくとも、アドバイスを得ることができる、とSolar-Sezama 氏は主張する。彼らはこの主張をEclipseを使うのが始めてである、8人の開発者によるユーザー調査で実験的に証明しようとした。開発者は4人づつ2つのグループに分けられた。1つ目のグループは MatchMakerを使わずに問題を解決にしなければならず、2つ目のグループは使ったが、 MatchMakerから不完全な情報を得た。それにもかかわらず2つ目のグループの全開発者は、1つ目のグループの開発者を凌いだ。しかし、この状況では、8人に関する調査は典型的なものではない、と言う必要がある。
時間が経てば MatchMakerが期待に応えるものかどうかがわかるだろう。もっと詳細を知りたければ、研究者が今年の SPLASHとOOPSLAカンファレンスに提出して、受理された 論文 を読むのがいいだろう。