今や世界中でユーザー人口を増やしているOS「Linux(リナックス)」は、1990年、当時フィンランドの学生であったLinus Torvalds氏が開発したものである。それからわずか10年。世界中の開発者が参加したことにより、Linuxはまたたく間に使い勝手の良さと機能性にあふれるOSへと進化した。急速に進化を遂げたのは、一足先に普及していたインターネットが、いつでも、どこでも、誰もが自由に参加できる“開発空間”となっていたからに他ならない。Linuxに限らず、「Netscape」などの有名なソフトウエアも実は、ソースコード(※1)を広くネットワーク上に公開する方法によって開発されている。
「離れた場所にいる開発者たちが、コンピュータネットワークを通じて共同でソフト開発を進めていく。こうした分散型開発の傾向は今後ますます増えるでしょう」とソフトウエア工学を専門とする落水教授は語る。
 しかし、開発者同士がデスクを並べて開発する環境とは異なり、「コミュニケーション」という点で課題が多いと教授は指摘する。
「連絡の手段は電子メールなどに頼るケースが多くなる。必然的に開発状況に関する認識にズレが生じてくるし、ネットワーク上での議論が長引き、作業が停滞するケースも生じてくる。分散型開発を円滑に進めるための支援環境というのは、まだまだ未整備な状況なんですね」。
 分散型開発の支援環境をより効果的に構築していくにはどうすればよいのか、そして実際の場面 でどう活用していくかーー。それが、今後のソフトウエアの開発環境から強く求められるテーマであると、落水教授は考えている。

 

(1)[メーリングリストから討議内容を整理する]
開発者同士が開発段階ごとのさまざまな課題を協議する際には、電子メールが頻繁に利用される。便利な反面、一つのメールに複数の話題が含まれることもあり、議論の流れを整理しにくい。(図1参照)
「話題によって相手が返答をしたり、しなかったりと、協議のケースはまちまちです。開発に関する重要な話題であるならば、当事者はそのやりとりの状況を把握しておく必要があります」
 落水研究室では解決策として、同大学の島津教授(自然言語処理学専門)の協力を得ながら、さまざまな話題が混在する複数の電子メールのやりとりから話題ごとに発話文をつなげて抽出するモデルを開発している。(図2参照)

(2) [開発状況の大まかな流れを把握する]
オープンソース(ソース公開型)のソフト開発現場では、CVS(※2)という、ソースコードとその更新された差分を記録していくバージョン管理システムが利用されている。研究室ではそこに着目し、
 ・更新頻度の高い情報の特定  
 ・特定の開発者による作業内容
 ・特定の期間に行われた作業内容
などの概要を、効率的に抽出するプログラムを構築している。
「“誰がどの辺りの開発や変更作業に携わっているか”ということを明らかにすることによって、開発過程の大まかな流れを容易に把握することができます」

(3)[先を見越した作業遂行を可能にする]
効率よく開発を進めるためには、他の関係者の承認を待たずに先を見越して作業することも必要となる。そのために分散型開発の現状を反映している成果物、つまりJava(※3)のソースコードをもとにして、作業者に全体の進行具合を正確に伝える技術を開発している。
「プログラムの構文情報間のデータ依存関係や制御依存関係を示すグラフ(依存グラフ)をバージョンごとに作成して、バージョンの違いによる差異を求めるとともに(差分解析)、開発者ごとに作業を進めているソースコードの共通部分を見出します(波及解析)。それらを視覚化することで、開発者間の作業内容で競合している箇所と理由を示すことができます」(図3参照)
 落水研究室では、(1)から(3)までの研究を集約し、分散型共同開発の現場において、何がどのような状態になっているかを忠実に反映する、情報の掲示板ともいえる空間を作りあげている。その情報をもとに構築されているのが、各現場の作業進行を調整支援する支援環境ソフト「自在(じざい)」である。現時点では共有情報の変更管理、重要度やレベルに応じて決定事項の管理を行う機構を組み込むことに成功しており、今後は生成物や決定事項に含まれている矛盾や不確実さを制御する理論の開発に取り組んでいくという。

 

 研究室では“教育の場”においても分散型の環境創出を試みている。 「本学では1998年7月から全学プロジェクトとして次世代遠隔教育・研究システムの開発がスタートしています。日本だけではなく、世界中にいる学生、そして社会人が学ぶことができるシステムを構築していくことが目的です」。
 近年、「オンデマンド学習」というテーマについて、世界中で研究・開発が進められている。ウェブ上に公開された電子教材を閲覧することができるシステムは、既に一般 に浸透しているが、それだけでは本当に有効なオンデマンド学習とはいえないと落水教授は考えている。 「学問の体系は、知識のつまみ食いで習得できるものではありません。個々の知識間のつながりやバックグラウンドも効率的に会得できるシステム環境を構築していく。それが当研究室のオンデマンド学習支援における目標なのです」

 

 落水研究室が目標とするイメージは、左図のようなものだ。(図4

(1)インタラクティブな学習空間〜
教室講義は[講師1人対受講生多数]という形式であり、ほとんど一方通行型の講義である。それに対してこのオンデマンド学習は直接指導的であり、質疑応答も可能になる。

(2)知識をリアルタイムに獲得〜
講義内容に関連する情報や教材とあらかじめリンクさせておくことで、学習者はスムーズに必要な知識を手に入れることができる。

(3)レベルによって講義を可変〜
学習者の知識レベルには差異があるが、誰もが確実にスキルアップを図ることができるよう、個別 に講義形式を可変するシステムを導入する。

(4)他の学習者との位置づけを知る〜
コンピュータネットワークという環境上、学習者はどうしても孤立しがち。他にどんな学習者がいるか、自分はどのようなレベルにあるかを知ることが学習を進めていく上で必要になる。

 現段階では一つのモデルとして、教授が専門とする「ソフトウエア設計論」を題材にし、ウエブサイト方式によるオンデマンド学習の実装を実現している。(図5

 落水教授の講義をリアルビデオプレイヤーで再生するというものだが、ここで特筆すべきは、一つの講義を概要、各論、例題、関連の話題……というように、細かな知識単位 に分割・体系化している点である(※4)。つまり受講者が自分の理解度に応じて単位 を選択し、学習を進めることができるのである。さらに専門用語やバックボーン、関連事項への自動リンクも設定されており、学習者が情報を検索する手間を省くことができる。
「公開して間もなく、まだまだ実験的なものです。オンデマンド学習をする際に利用者はどのようなところで不便さ、不具合を感じるのか。そういう点も見極めながら理想的な教材を創り上げたいと思います」
 さらに新たな試みとして、世界中のさまざまな研究機関の知識情報データベースから受講者が望む知識を自動で収集し、提供するシステムの構築も目指している。
「システム開発企業と共同で行っている研究なのですが、もともとは『何かを学びたい人』、『何かを教える力のある人』、『コンピュータの能力』の3者をネットワーク上で結合する研究がベースになっています。教材をサーバー内で完結させるのではなく、関連知識とリンクさせる。OSなど仕様が異なるコンピュータ間でも、自由自在に知識のやりとりができるのが特長です(※5)」。

 

 ソフト開発環境、オンデマンド学習環境ともに、落水研究室が取り組む研究には一貫したテーマがある。それは、異なる機種間の分散したコンピュータネットワーク上で快適な情報のやりとりを可能にするシステム創造を目指すこと。そしてそれを効果 的かつ効率的に機能させるため、既にある個々のコンピュータプログラムを組み合わせて開発すること(オブジェクト指向プログラミング)(※6)である。
「方法論は世の中にあるものを噛み砕き、ツールは市場に既に出回っているものを活用する。あらゆる現場でうまく機能するコーディネーションをサポートするデータベースを構築すること。当研究室のコンセプトはそこにあります」。
 落水教授が目指すのは、「人々が自由に活動し発想できる雰囲気と場所をもたらし、研究や技術、学問の最前線を知らないがために発生する貧弱な発想を防止する」こと。ますます進化を遂げるITが、私たちに今いる場所を意識させずに作業、学習する共同の空間をもたらしてくれる。そこに、落水研究室の研究が果 たす役割は大きい。

 

──研究コンセプトは?
さまざまなプログラムを使ってソフト開発、あるいはオンデマンド学習といった作業環境をサポートするデータベースを創造するところに主眼を置いています。
──それはどのようなところから発想されたのですか?
研究職に就く際、ソフトウエア関連の研究に携わりたいと考えていたのですが、当時はまだ理論も体系化されていませんでしたので、企業の開発現場の状況を理論立てていくことを研究目標に定めて取り組んできました。その過程で自分自身がソフト開発に没頭した時期があり、開発環境そのものの構築に関心が移ってきたのです。オンデマンド学習に関しては、 JAIST自体が 1998年に次世代遠隔教育研究システムを開始しており、その一環としてネットワークを介した教育システムのあり方を探ることが当研究室のテーマとなっています。

  ──研究の根底にあるのが、『オブジェクト指向論』ということですが?
わかりやすく言うと、世の中で企業や研究機関が発表するプログラミング理論をさまざまな開発現場に適用するという実践的な研究手法と言えます。企業との共同研究として工場の生産管理システムにも適用した実績もあり、各現場において非常に有効な方法論であると考えています。
──研究を始めるにあたっては、どのようなことを重視していますか?
現在、主流となっている技術開発が一段落する際、その次に起こるであろう問題点を把握する。まずはそこからです。
──学生の指導面で心がけていらっしゃることは?
本人の個性を伸ばすということ。自分は好きでこのテーマを研究しているという気持ちは優先させたい。研究に行き詰まった時に乗り越えられるのは好きという気持ちだけですから。もう一つは積極的に外部で発表し、なるべく多くの人々の意見や考え方に触れるということ。研究室の狭い空間に閉じこもっていては、なかなか発想も拡がらないですから。