【前へ】

2.2 NSF SDPワークショップ

2.2 NSF SDPワークショップ

 PITACの提案により、SDPの研究開発予算はついたものの、PITACの提案は、具体的にどのような研究を行えばよいか必ずしも明らかではない。そこで、NSF のFrank Angerが座長となって、後述する米国の著名な研究者(他に省庁の研究機関担当者も出席)が、2001年4月18~19日にアーリントンに集まって開催されたのが、本ワークショップ[2]である。

2.2.1 SDPワークショップの狙い

 本ワークショップでは、Frank Angerがイントロとして、ソフトウェアの現状は、以下のようであり、

 従って、以下のことを達成しなければならない。

 この「どのようなソフトウェア研究をすればよいか」の議論を基にして、SDP(Software Design and Productivity)の研究計画を作ろうということで、以下の4つのグループに分かれて検討がなされた。

 これら四つのグループの参加メンバを表1に示す。

表1 SDPワークショップ参加メンバ
ソフトウェア研究の将来
新ソフトウェア開発パラダイム
Barry Boehm, USC
Benjamin Pierce, Univ. of Pennsylvania
Doris Carver, Louisiana State Univ.
Shankar Sastry, UC Berkeley
Bonnie John, Carnegie Mellon Univ.
Kevin Sullivan, Univ. of Virginia
William Mark, SRI International
Grady Booch, Rational Software
Ralph Johnson, Univ. of Illinois
Gregor Kiczales, Univ. of British Columbia
Charles Simonyi, Microsoft
John Vlissides, IBM
実世界ソフトウェア ネットワーク中心のシステム
Don Winter, Boeing Phantom Works
Martin Feather, Jet Propulsion lab.
Gabor Karsai, Vanderbilt Univ./ISIS
Patrick Lardieri, Lockheed Martin
Cleve Moler, MathWorks, Inc.
Edward Lee, UC Berkeley
Ian Foster, Argonne National lab.
Doug Lea, State Univ. of New York at Oswego
Adam Porter, Univ. of Maryland
Rick Schantz, BBN Technologies
Jim Waldo, Sun Microsystems, Inc

2.2.2 各検討グループからの提言

2.2.2.1 ソフトウェア研究の将来

 現状は、

 との仮説に立って、以下の目標を立てている。

 この目標実現に向けて、特に注目すべき領域は、以下であり、

 その領域で基礎となる科学は、以下であり、

 そのキーポイントは、以下であると提言している。

2.2.2.2 新ソフトウェア開発パラダイム

 新ソフトウェア開発パラダイムでは、現状は、以下のような要因によって、複雑さが指数関数的に増加している。

 この難問題を以下のような革新的概念によって、一挙に解決することが必要である。

[国立ソフトウェア考古学センター構想]
 ソフトウェアの古典を蒐集および保存し、それをリバースエンジニアリングによって、その古典の芸術的本質を抽出し、Webで公開する。これにより、参考となるソフトウェアアーキテクチャの宝庫として、将来の研究の基礎として、特許取得のための事前芸術研究として、役立て、芸術的表現を奨励することをねらう。
[多面的ソフトウェア]
 高級言語、オブジェクト指向プログラミング、デザイン・パターン、特定領域用言語といったこれまでの歩みは、ある側面をより理解しやすくした、あるいは、ある側面をうまく表現したというものにすぎない。本来、ソフトウェアは、様々な異なる意図を表現するものであり、新たなシステムは、共存する異なる側面が互いに影響しあって生まれるものである。このような多面的ソフトウェアについて、従来は認識不足であったが、デザイン・パターン、協調開発環境、アスペクト指向プログラミング、特定領域用言語といった研究分野では、一部、多面的ソフトウェアの考えが取り入れられ始めている。今後、多面的ソフトウェアとしてすべきことは以下である。

[協調開発環境]
 協調開発環境とは、ソフトウェア開発のプラットフォームとしてWebを仮想的な議論の場にするものであり、研究すべきことは以下である。

 これらの革新的概念の研究計画例には、以下のようなものがある。

2.2.2.3 実世界ソフトウェア

 今日のソフトウェアは、偶然的複雑性、予測不能性、合成不能性、脆弱性、実世界との相互作用に向かないといった問題点を抱えている。
 また、ソフトウェアは「コードの集まり」という考え方にハマッテおり、大規模にするには人力を注ぎ込む、システム全体像の理解が喪失している、仕様とその実現が分離している、といった事態を招いている。
10年後には、どこでもコンピュータだらけになって、これまでの世界とは全く変わった世界になるというのに、今日のようなソフトウェアの作り方をしていたら、世界は危険極まわりない場所となってしまう。それを避けたければ、技術の実施を遅らせねばならず、その場合には、自動車は、コンピュータ制御とはならず、交通渋滞にはまり込んでしまうだろう。
 これを解決するには、モデリング言語、システムの合成、変換、過去のソフトウェア遺産の扱い、といった課題に取り組まねばならない。

[モデリング言語]
 ソフトウェアの問題点は、「プログラムコード」、あるいは「仕様」にあるのではなく、「モデル」あるいは「設計」にある。すなわち、複雑な機能の実現、設計の理解、質問の定式化、振舞いの予測、といったことを行う際に、それを表現するモデリング言語を我々が持っていないことである。
 これを解決するため、以下のような研究を行うべきである。

[システムの合成]
 システムを組合せて作る組織的方法、例えば、要素の枠組み、組合せの意味論、その場での(on-the-fly)合成、既成のソフトウェア要素との統合、といったことが欠如している。
 これを解決するため、以下のような研究を行うべきである。

[変換]
 異なる抽象間の変換についての理論、例えば、異なる抽象の間の関係、生成器(変換器)、複数の視点を許す抽象化(multi view abstraction)、物理的環境の抽象化、高信頼性ソフトウェアとシステム(HCSS:High Confidence Software and Systems)との関係: 証明つきの変換、といったことが欠如している。
 これを解決するため、以下のような研究を行うべきである。

[過去のソフトウェア遺産の扱い]
 過去の遺産を扱う方法論、例えば、システムを徐々に現代化する方法、新しいものを古いものと統合する方法論、といったことが欠如している。
 これを解決するため、以下のような研究を行うべきである。

2.2.2.4 ネットワーク中心のシステム

 今後のシステムは、以下のような状況に進展すると予想される。

 その状況下で、以下のような応用システムが登場してくるであろう。

 このような状況、応用システムにおいては、以下のような技術的課題が生じる。

 これらの問題を解決するには、以下のような研究方向とアプローチが必要である。

 この他、次のような研究も必要である。

 これらの研究によって、以下のような効果が期待される。

2.2.3 SDPワークショップ提案のまとめ

 4つのグループからのそれぞれの提案は、別々の方向を向いているのではなく、ほぼ同一方向を向いており、概ね、以下の提案にまとめられる。

 

【次へ】