SEMAT.org にて「ソフトウェア工学再建」運動が開始
semat.org というサイトで始まっている、「ソフトウェア工学の再建」とも言うべき復興運動をご存知ですか。現在のソフトウェア工学が、あまりにもおそまつであることを省みて、再度、基礎からソフトウェア工学を積み上げようではないか、という動きです。
そこに署名している人たち(signatories)の顔ぶれがすごい。
Pekka Abrahamsson Scott Ambler Victor Basili Jean Bézivin
Dines Bjorner Barry Boehm Alan W. Brown Alistair Cockburn
Larry Constantine Bill Curtis Donald Firesmith Erich Gamma
Carlo Ghezzi Tom Gilb Ellen Gottesdiener Sam Guckenheimer
David Harel Brian Henderson-Sellers Watts Humphrey Capers Jones
Martin Griss Ivar Jacobson Philippe Kruchten Robert Martin
Stephen Mellor Bertrand Meyer James Odell Meilir Page-Jones
Dieter Rombach Ken Schwaber Alec Sharp Richard Soley
ソフトウェア開発に身を置く人であれば、この中に知った名前をいくつか発見できるはずです。
さて、先週、Ivar Jacobson, Bertrand Meyer, Richard Soleyの3者の連名で、SEMATのビジョンステートメントが発表されたので、それを要約して紹介したいと思います。原著は、こちらを参照してください。(http://www.semat.org/pub/Main/WebHome/SEMAT-vision.pdf)
題名は、
"Software Engineering Method and Theory -- A Vision Statement"
です。6章と付録で構成されています。章立ては以下の通り。
- Purposes and scope(目的と範囲)
- The vision(ビジョン)
- The kernel(カーネル)
- The goals(ゴール)
- The principles(原則)
- One-year milestones(1年のマイルストン)
さて、1つずつ、簡単に紹介していきます。まず、1. Purpose and Scope で、現在のソフトウェア工学についての嘆きから始まり、行動を求めています(Call for Action)。
今日のソフトウェア工学は未成熟なプラクティス(immature practices)によって重大に阻害されて(gravely hampered)いる。
- 言葉の流行が多く、工学というよりファッション業界のようだ。
- 広く受け入れられ、確立された、理論的基礎がない。
- 方法論が乱立している。
- 産業界と学会のギャップが大きい。
うんうん、とうなづいてしまいませんか?実に辛口に、しかも、現実をうまく描写していると思う。ファッション業界のようだ、というのは言いえて妙、というか、すごくマーケティング的にエッジが効いたあおり方だなぁ、と感心します。
さて、そこでどうする。。。。
確かな理論と、証明された原則(principles)とベストプラクティス(best practices)の上にソフトウェア工学を再構築(refound)したい、そのプロセスを支援したい。そのプロセスとは、
- 広く合意された要素を特定用途に拡張できるような論理カーネルを含み、
- 「技術」と「人」の問題両方を扱い、
- 産業界、学会、研究者そして、ユーザから支援され、
- 変化する要求と技術に追随できるよう拡張できる
ものである。
なるほど。この「プロセスを支援」しするのが、SEMAT がやりたいことなのだ。そして、そのプロセスの特徴を箇条書きしている。それらは、とってもとっても正しいことをシンプルに言っている。技術と人の両方、というのはさすがヤコブソン氏が、最近のアジャイル動向の中にいて、彼自身もUPをアジャイル風に再構成していることを反映している。そして、カーネルを小さく保ち、各用途に(ドメイン方向に)拡張できる、というのは、UMLを彷彿させる考え方で、これも、ヤコブソン氏やソーリー氏がやってきたことの成功の自然な延長だろう。
そして、2. The vision に入る。
ビジョンは、2つ。
- この文書の以下の章に書かれたすべてのゴールを満たすこと。
- 人々が現在や未来のプラクティス、パターン、メソッドを記述し、それらを「組み合わせ」「模倣」「応用」「比較」「評価」「計測」「教育」「研究」できるような、そんなプラットフォーム(カーネル)を作る。
うん。これもよさそう。活動のプラットホームを作る、ということで、これが、確かに、産業界と学会、現場を結ぶ鍵になるだろう。それから、「ファッション業界のようだ」と言われないような、感性に拠らない比較ができるようになる。さらに、現場からの賛同が得られれば、ソフトウェア開発活動のデータを取得したり、プラクティスを紹介しあえたり、できるようになる。
そして、具体的なカーネルのイメージ 3. The Kernel に。ここには、この文書の中で唯一の図が出てくる。その図には、"The Semat Diamond"という名前が付いている。
- カーネル:ユニバーサルなカーネル言語(図1 の Level 1)
- プラクティスとパターン:カーネル言語によって定義される(Level 2)
- メソッド:プラクティスとパターンの組み合わせによて定義される(Level 3)
なんとなく、イメージが湧いてきた。この後、この文書は、
4. The goals
5. The principles
6. One-year milestones
付録
と続く。今日はここまで。全体で20pages の pdf 文書で、読みやすいので、ぜひ、原文を読んでみてください。