仕様書でシステムが動く時代へ
仕様書をいい加減に書くと、思った通りのプログラムが出来上がらない。かといって懇切丁寧に書いていると、自分でプログラミングしたほうが早いというバカバカしい気持ちになる。そうでなくても、仕様書とソースコードの整合性を維持するのが面倒――これらの矛盾を解消するのが、筆者の言う「アプリケーションドライバ」だ。アプリケーションドライバは仕様書(仕様情報)を読み込んで、システムを動的に立ち上げる。
筆者謹製のアプリケーションドライバ「XEAD Application Driver」の公開に先立って、その概要を紹介しよう。このツールは大雑把に言うと、"Editor"と"Driver"の2種類のソフトウエアで出来ている。仕様書を編集するためのソフトが"Editor"で、編集された内容を解釈してシステムを立ち上げるためのソフトが"Driver"である。
"Editor"を用いて仕様書を編集している様子が図1だ。これは「見出し/明細表示」という処理タイプ向けの仕様を登録している場面なのだが、エクセルあたりを使って仕様書を書いている様子に似ている。項目がなにやら多そうに見えるが、後述するテーブル定義から読み込まれる情報が多いため、あらたに入力すべき情報は案外少ない。それに、仕様書情報向けの専用エディタなのでエクセルよりもずっと使いやすい。
この作業の結果として、次のようなXMLセグメントとしてプログラム仕様書情報が出来上がる。
これをアプリケーションドライバに読ませると、図2のパネル機能が「動的」に立ち上がる。すなわち、処理タイプ毎に用意されスタンバイしているクラスインスタンスが、仕様書情報を読み込んで瞬時に変形して立ち上がる。
よく見ると、項目のキャプションや長さ等、仕様書情報の上で指定されていない仕様が補足されていることに気づく。それは、プログラム仕様書とは別に「テーブル仕様書」が定義されているためだ。そこには通常のテーブル定義だけでなく、キャプション等のさまざまな拡張定義が含まれている(後続記事参照)。ドライバはプログラム仕様書とテーブル仕様書の双方を読み込むので、結果的にプログラム仕様書の様式もシンプルなもので済んでいるのである。
アプリケーションドライバを使った場合のシステム開発は次のように進行する。まず、XEADやXupperのようにデータモデルと機能モデルを同時に扱えるモデリングツールを用いて基本設計をまとめる。続いて基本設計にもとづいて、専用のエディタで「仕様書」を作る。これをドライバに食わせれば、いきなりシステムが立ち上がる。保守もエディタを用いてなされる。コードをゴリゴリ書く必要も、クラス構造やORマッピングに頭を悩ませる必要もない。仕様書でシステムが動く時代の始まりだ。
アプリケーションドライバは「MDAに対するDOAからの回答」でもある。2010年の春にDOA+のイベントの一環としてXEAD Application Driverの説明を行う予定なのだが、それに合わせてソフトも公開される。乞うご期待。
| 固定リンク
この記事へのコメントは終了しました。
コメント
DOAについて調べていて見つけました。2、3の記事を興味深く読ませていただきました。私の理解が間違っていなければ、設計書を書いたらシステムが動き出すことを目標に作られているのが「仕様書でシステムが動く時代へ」で書かれている、アプリケーションドライバーなるものだと思いました。このアプリケーションドライバーがカバーするシステム開発のカテゴリーはどの部分なのか、全体枠で語ってもらうととても助かるなぁと思いました。詳細設計なるものが、アプリケーションのそれなのか?ハードのセッティングの為のそれなのか?ミドルウェアの設定の為のそれなのか?はたまたその全部なのか?システム開発全体を織り成す要素のうち、どの部分をターゲットされているのか?体系的に知りたいと思ってしまいました。もし、既に論じられているのでしたら、誘導していただければ助かります。
投稿: のっぽさん | 2009.12.12 21:24
のっぽさんへ
ご質問の意味をじゅうぶん理解していないかもしれませんが、アプリケーションドライバがカバーする工程はアプリケーションの設計・開発・保守の部分だという回答でよろしいでしょうか?
ちなみに、同時に販売管理システムも公開するのですが、ダウンロードすればそのままマルチユーザで使えるようになっていてハードやミドルウエアの設定は要りません。動かすためにあれやこれやとインストールしたり設定したりしなければいけないという面倒のないツールにしたかったんですよね。最初のバージョンがJavaDB向けなのはそのためだったりします。
投稿: わたなべ | 2009.12.13 10:25
毎回、楽しみに読ませていただいています。
仕様書でシステムが動く時代、ついに来たか!という感じです。
同じことを複数回書かないということが効率的なシステム開発に不可欠だと思うのですが、その究極の形ですね。
ほんとスバラシイと思います。
公開を楽しみに待っています!
投稿: くまきち | 2009.12.16 00:37