« 自由であるためにドキュメントを作る | トップページ | エンタープライズ・アジャイル:手法論より大事なもの »

2014.10.27

既存システムをハッキングする

 モデリングツールXEAD Modelerで作成したモデルを手早く実装する――開発基盤XEAD Driver/Editorはそれを意図して開発された。したがって、これらのツールを組み合わせることでより大きな効果が得られる。通常のシステム開発におけるツール利用の流れは図1のようになる。

図1.通常のシステム開発
20141022_1

 Modeler(1)でER図、業務フロー、業務マニュアルといった基本設計情報(モデル)をまとめ、それをEditor(2)を用いてDriver(3)向けのシステム定義(仕様書)に変換する。ちなみにモデルも仕様書も、その中身は様式が公開されているXMLデータである。

 つまり、Modelerは「モデルを編集する」ためのツールで、Editorは「仕様書を編集する」ためのツールで、Driverは「仕様書にもとづいてDBを操作する」ためのツールである。Driverが仕様書を読み込んでその場で自らを変形させアプリとして立ち上がることから、私はこれを「自動生成」ではなく「動的制御」のしくみと呼んでいる。

 XEAD Driver/Editorの活用事例が増えてくると、想定していた方向とは逆の使い方があることに気づいた。既存システムの「ハッキング」である(図2)。まずEditor(1)で既存DBのテーブル定義を読み込んで仕様書をまとめ、Driver(2)で動作を確認する。そのうえでModeler(3)にシステム定義を取り込んでモデルを整理する。

図2.既存システムのハッキング
20141022_2

 図1ではEditorでテーブルオブジェクトをCREATEしているが、図2で示したように、既存のテーブルオブジェクトからメタ情報を取り込めるようにもなっている。そのようにして既存DBをEditorに認識させさえすれば、それらを処理するためのアプリの仕様書(つまりDriverによって動作するアプリそのもの)を作成することはズッコケるほど簡単だ。

 現行のDB構成のままでDriverの動作が検証できたなら、そのシステム定義にもとづいてModelerでモデルを整理すればよい。アジャイルにシステムを改善できるだけでなく、システムのドキュメント(仕様書やモデル)も手に入る。いったんそれらが整備されたなら、図1の通常の流れでシステム構成を維持してゆけばよい。こうして既存のアプリを廃止すれば、既存システムのハッキングが完了する。

 この「手順は逆だが現実的」な要望を考慮して、Driver/Editor用の仕様書情報(システム定義ファイル)をインポートするための機能をModelerの最新版(V1.4.10)に組み込んだ。今まではEditorでモデル情報を開発基盤にインポートするだけだったので、これで双方向の連係が実現されたことになる(図3)。

図3.モデルと仕様書の双方向連係
20141022_3

 実装技術の進展によって、業務システム開発は今後も合理化されてゆくだろう。それは、旧来の「プログラムコードでアプリを制御する態勢」から「ドキュメント(モデルや仕様書)でアプリを制御する態勢」への移行が進むことでもある。その結果、設計担当と実装担当との分業が無用になるとともに、「コードが仕様書」であるようなハタ迷惑なシステムを作らずに済むようになる。設計成果物であるドキュメントがそのまま動作するからだ。

 その結果として生じるコスト上の余力は、的確なモデルを手に入れることに投じられなければいけない。なぜか。どんなに実装技術が進展しても、複雑で巨大な業務システムの保守性や使い勝手は、けっきょくのところモデルの品質によって規定されるからだ。また、飛行機や高層ビルの設計がそうであるように、業務システムのモデルは高度な専門性によって生み出されるものだからだ。

|

« 自由であるためにドキュメントを作る | トップページ | エンタープライズ・アジャイル:手法論より大事なもの »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 既存システムをハッキングする:

« 自由であるためにドキュメントを作る | トップページ | エンタープライズ・アジャイル:手法論より大事なもの »