革命的なソフトウエア開発手法か、単なるデマカセか?カテナが提供する「Lyee」にはいまだに“謎”が多い。登場から4年を経て、ようやくその実態が見えてきた。総力取材でLyeeの正体に迫る。

(矢口 竜太郎)


本記事は日経コンピュータ2003年2月10日号からの抜粋です。そのため図や表が一部割愛されていることをあらかじめご了承ください。なお本号のご購入はバックナンバー、または日経コンピュータの定期ご購読をご利用ください。

 「開発工数が従来の5分の1~20分の1」、「開発期間が従来の5分の1~10分の1」、「ドキュメント量が従来の100分の1」、「業務知識がなくても開発可能」、「設計もテストも不要」―。1998年11月、衝撃的な宣伝文句とともにソフトウエア開発方法論「Lyee(リー)」は華々しく登場した(図1[拡大表示])。

図1●Lyee発表当時のキャッチ・コピー

 中堅システム・インテグレータのカテナはこれ以降、強烈にLyeeのプッシュを始める。2000年から2001年にかけてカテナが掲載した新聞の一面広告を記憶している人も多いだろう。2001年5月には、カテナは主軸事業であったパソコン卸売りからの撤退を表明。Lyee事業を新たな主軸事業に育てることを打ち出した。

 しかし発表から4年以上経過した今、Lyeeを取り巻く状況は極めて厳しい。カテナは年間20億円を超えるコストをかけ、Lyeeによる開発のための要員を増強してきた。それにもかかわらず今年1月現在、Lyeeで実システムを開発したユーザーはわずか6社。2003年3月期はLyee事業で15億円の赤字を見込む。

 それどころか、Lyeeにはいまだに“謎”と“うさん臭さ”が付きまとう。発表当初のLyeeの解説には、「深層心理において意味が生み出される仕組み」、「人間の知的作用とは…」など、ソフト開発者を煙に巻くフレーズが並んでいた。その後も出てくるのは「過大な宣伝文句」か「憶測による批判」ばかりで、Lyeeの実像は現在でも見えにくい。

 一方で、Lyeeの開発元であるソフトウェア生産技術研究所(ソフト技研)に“熱狂的な支持者”が集結しつつある。20数人のソフト技研社員のうち、少なくとも4人は、インテグレータやユーザー企業から“Lyeeにほれ込んで”転職した人たちである。

 昨年11月下旬には、こんな“事件”があった。家電量販店大手のエイデンの子会社であるエヌワークのWebサイトから、「Lyee」の文字が突然消えたのである(図2[拡大表示])。当初の予定では、エイデンは2001年からLyeeで基幹システムを構築するはずだった。エヌワークはWebサイトでそのことを告知しており、担当者は講演でも話していた。ところが本誌が取材を申し込んだ直後に、エヌワークはWebサイトを改訂した。広報は「自社のやり方に合わなかったため、Lyeeの採用は見送った」とだけコメントしている。

図2●家電量販店大手エイデンの子会社であるエヌワークは昨年11月、WebサイトからLyeeの文字を消した

 カテナは昨年11月、Lyee事業の人員削減を発表した。それでも今後もLyeeは続けるという。謎が謎を呼ぶLyeeとはいったい何なのか。ユーザー企業やインテグレータへの取材をもとに検証する。

これがLyeeの実像だ

 「そもそもLyeeとは何か?」、「Lyeeで本当に動くシステムを作れるのか」…。Lyeeに対する五つの疑問を通じて、Lyeeの実像を明らかにする。

そもそもLyeeとは何か?

 Lyeeとは、ソフトウエア開発作業を効率化する方法論(ソフト開発手法)と、「人間の意図」を正確に表現することを目的とする理論体系の総称である。ソフト開発手法としてのLyeeは、理論としてのLyeeを基に作られている。

 理論としてのLyeeを一般の人が理解するのは困難だ。簡単な解説書でもA4サイズのワープロ文書で78ページもの量がある。ただしソフト開発でLyeeを使う際にその理論を理解する必要はない。

 ソフト開発手法としてのLyeeは、簡単に言えば「ユーザーから得た“要件”からプログラム(ソース・コード)を直接作成すること」を狙ったものである。Lyeeでいう要件とは、(1)システムで使うデータ項目(Lyeeでは「単語」と呼ぶ)の一覧である「単語表」と、(2)画面に表示するデータの流れと格納場所を図示した「処理経路図」の二つを指す。単語表はシステムから出力したいデータ項目の定義を、処理経路図はプログラムに何をやらせるかを示すものだ。

 Lyeeでソフトを開発するときには、「LyeeALL」と呼ぶ開発ツールを使う。実作業としては単純で、LyeeALLを使って単語表と処理経路図を定義すればよい。その際、プログラムにおける処理の順番を考える必要はない(別掲記事を参照)。LyeeALLはその結果から、COBOLやC、Javaなどのプログラミング言語で記述されたソース・コードを自動的に生成する。

 Lyeeによる“理想的な”開発スタイルでは、通常のシステム開発のようなデータベース設計や「どのようなシステムを作るか」を決める基本設計、「どうやってシステムを実現するか」を決める詳細設計といった工程は不要になる。LyeeALLで(Lyeeとしての)要件から直接ソース・コードを生成するので設計工程はそもそもない(注:ただし特に単語表の定義は、通常の言い方なら「システム設計」と呼んでもよさそうな部分もある)

 「システムがユーザーの要件に合っているか」や「きちんと動作するか」を検証するテストも不要になる。要件とソース・コードの間に人手を介さないので、ユーザーとSE、あるいはSEとプログラマの間で見られがちな“伝言ゲーム”が発生しない。コードは自動的に生成されるので、コードにエラーが入る可能性は低い。これが「テスト不要」の理由だ(注:実際には、Lyeeを導入した企業はほぼ例外なくデータベース設計やテスト、生成したソース・コードのチューニングを行っている。カテナも今では、「テストが不要」は「ロジック・テストは不要」、「業務知識が不要」は「単語の定義さえすれば、業務の処理手順の知識は不要」などと言い換えている)


処理の順番を考えなくてよい

 Lyeeによるソフトウエアの開発作業が通常のプログラミングと最も大きく違う点は、処理の順番を考える必要がないことである。といっても、コンピュータが処理の順番を探し出すわけではない。すべての処理が終わるまで繰り返し実行するようなプログラムを作るためである。

図A●Lyeeはプログラムを繰り返し実行するため、処理の順番を考えなくてよい

 Lyeeでの開発はデータ項目である「単語」を定義することから始まる。具体的には、単語の意味を表す計算式と、その計算式が成り立つための条件式を決める。この作業をシステムで使う単語すべてについて行う。すべての単語の一覧を「単語表」と呼ぶ。

 単語表のほかに、Lyeeでは「処理経路図」と呼ぶものを作成する。処理経路図には、画面に表示するデータの格納場所などを図示する。この二つの内容を「LyeeALL」に入力すると、LyeeALLは1単語ごとに小さなプログラムを作る。この小さなプログラムの集まりがLyeeのプログラムの実体である。

 1単語ごとの小さなプログラムは、「単語の定義式が実行できる場合は実行せよ。実行できなければその定義式を無視して次の単語のプログラムの実行に移れ」という命令でできている。通常のプログラムは、例外処理などを除くと基本的に1行でも実行できないと止まる。だが、Lyeeではその行を飛ばして次の実行時にまわすことができる。こうして、最後の単語のプログラムを実行/通過すると、また最初の単語の定義式の実行に移る。これをすべての単語の定義式が実行し終わるまで繰り返す。当然、一度実行した定義式は通過する。


続きは日経コンピュータ2003年2月10日号をお読み下さい。この号のご購入はバックナンバー、または日経コンピュータの定期ご購読をご利用ください。




 この特集を執筆することになったきっかけの一つに、ソフトウェア生産技術研究所の方から届いた1通のメールがあります。「2002年10月21日号の特集『経営スピードに負けないシステム作り』は根本的な解決になっていない、Lyeeこそが唯一の解決法である」、という内容でした。

 Lyeeについては若干知っていたものの、そのメールの説明では理解できませんでした。おそらく読者のみなさんの多くも、Lyeeは聞いたことがある程度ではないか。今回の取材はそんなところから始まった次第です。(矢口)